|
2 | 2 | "store": {
|
3 | 3 | "prefix": "freenitstore",
|
4 | 4 | "body": [
|
5 |
| - "import { writable } from 'svelte/store'", |
| 5 | + "import { methods, store } from '.'", |
6 | 6 | "",
|
7 |
| - "class ${1/(.*)/${1:/capitalize}/}ListStore {", |
8 |
| - " constructor() {", |
9 |
| - " const { set, update } = writable([])", |
10 |
| - " this.set = set", |
11 |
| - " this.update = update", |
12 |
| - " }", |
| 7 | + "export default class ${1/(.*)/${1:/capitalize}/}Store {", |
| 8 | + " list = \\$state({})", |
| 9 | + " detail = \\$state({})", |
13 | 10 | "",
|
14 |
| - " async get() {", |
15 |
| - " try {", |
16 |
| - " const response = await fetch('/api/v1/${1}s')", |
17 |
| - " const data = await.response.json()", |
18 |
| - " this.set(data)", |
19 |
| - " return {", |
20 |
| - " ...data,", |
21 |
| - " ok: true,", |
22 |
| - " }", |
23 |
| - " } catch(error) {", |
24 |
| - " return {", |
25 |
| - " ...error,", |
26 |
| - " ok: false", |
27 |
| - " }", |
28 |
| - " }", |
| 11 | + " constructor(prefix) {", |
| 12 | + " this.prefix = prefix", |
29 | 13 | " }",
|
30 | 14 | "",
|
31 |
| - " async create(${1}Data: Record<string, any>) {", |
32 |
| - " try {", |
33 |
| - " const response = await fetch(", |
34 |
| - " '/api/v1/${1}s', ", |
35 |
| - " {method: 'POST', body: ${1}Data},", |
36 |
| - " )", |
37 |
| - " const data = await.response.json()", |
38 |
| - " this.update((store) => [...store, data])", |
39 |
| - " return {", |
40 |
| - " ...data,", |
41 |
| - " ok: true,", |
42 |
| - " }", |
43 |
| - " } catch(error) {", |
44 |
| - " return {", |
45 |
| - " ...error,", |
46 |
| - " ok: false", |
47 |
| - " }", |
| 15 | + " fetchAll = async () => {", |
| 16 | + " await store.auth.refresh_token()", |
| 17 | + " const response = await methods.get(`\\${this.prefix}/${1}s`)", |
| 18 | + " if (response.ok) {", |
| 19 | + " const data = await response.json()", |
| 20 | + " this.list = data", |
| 21 | + " return { ...data, ok: true }", |
48 | 22 | " }",
|
| 23 | + " return response", |
49 | 24 | " }",
|
50 |
| - "}", |
51 | 25 | "",
|
52 |
| - "class ${1/(.*)/${1:/capitalize}/}DetailStore {", |
53 |
| - " constructor() {", |
54 |
| - " const { set, update } = writable({})", |
55 |
| - " this.set = set", |
56 |
| - " this.update = update", |
| 26 | + " create = async (fields: Record<string, any>) => {", |
| 27 | + " await store.auth.refresh_token()", |
| 28 | + " const response = await methods.post(`\\${this.prefix}/${1}s`, fields)", |
| 29 | + " if (response.ok) {", |
| 30 | + " const data = await response.json()", |
| 31 | + " this.list = data", |
| 32 | + " return { ...data, ok: true }", |
| 33 | + " }", |
| 34 | + " return response", |
57 | 35 | " }",
|
58 | 36 | "",
|
59 |
| - " async get(id: Number) {", |
60 |
| - " try {", |
61 |
| - " const response = await fetch(`/api/v1/${1}s/\\${id}`)", |
62 |
| - " const data = await.response.json()", |
63 |
| - " this.set(data)", |
64 |
| - " return {", |
65 |
| - " ...data,", |
66 |
| - " ok: true,", |
67 |
| - " }", |
68 |
| - " } catch(error) {", |
69 |
| - " return {", |
70 |
| - " ...error,", |
71 |
| - " ok: false", |
72 |
| - " }", |
| 37 | + " fetch = async (id: Number) => {", |
| 38 | + " await store.auth.refresh_token()", |
| 39 | + " const response = await methods.get(`\\${this.prefix}/${1}s/\\${id}`)", |
| 40 | + " if (response.ok) {", |
| 41 | + " const data = await response.json()", |
| 42 | + " this.detail = data", |
| 43 | + " return { ...data, ok: true }", |
73 | 44 | " }",
|
| 45 | + " return response", |
74 | 46 | " }",
|
75 | 47 | "",
|
76 |
| - " async edit(id: Number, ${1}Data: Record<string, any>) {", |
77 |
| - " try {", |
78 |
| - " const response = await fetch(", |
79 |
| - " `/api/v1/${1}s/\\${id}`,", |
80 |
| - " {method: 'PATCH', body: ${1}Data},", |
81 |
| - " )", |
82 |
| - " const data = await.response.json()", |
83 |
| - " this.set(data)", |
84 |
| - " return {", |
85 |
| - " ...data,", |
86 |
| - " ok: true,", |
87 |
| - " }", |
88 |
| - " } catch(error) {", |
89 |
| - " return {", |
90 |
| - " ...error,", |
91 |
| - " ok: false", |
92 |
| - " }", |
| 48 | + " edit = async (id: Number, fields: Record<string, any>) => {", |
| 49 | + " await store.auth.refresh_token()", |
| 50 | + " const response = await methods.patch(`\\${this.prefix}/${1}s/\\${id}`, fields)", |
| 51 | + " if (response.ok) {", |
| 52 | + " const data = await response.json()", |
| 53 | + " this.detail = data", |
| 54 | + " return { ...data, ok: true }", |
93 | 55 | " }",
|
| 56 | + " return response", |
94 | 57 | " }",
|
95 | 58 | "",
|
96 |
| - " async delete(id: Number) {", |
97 |
| - " try {", |
98 |
| - " const response = await fetch(", |
99 |
| - " `/api/v1/${1}s/\\${id}`,", |
100 |
| - " {method: 'DELETE'},", |
101 |
| - " )", |
102 |
| - " const data = await.response.json()", |
103 |
| - " return {", |
104 |
| - " ...data,", |
105 |
| - " ok: true,", |
106 |
| - " }", |
107 |
| - " } catch(error) {", |
108 |
| - " return {", |
109 |
| - " ...error,", |
110 |
| - " ok: false", |
111 |
| - " }", |
| 59 | + " destroy = async (id: Number) => {", |
| 60 | + " await store.auth.refresh_token()", |
| 61 | + " const response = await methods.delete(`\\${this.prefix}/${1}s/\\${id}`)", |
| 62 | + " if (response.ok) {", |
| 63 | + " const data = await response.json()", |
| 64 | + " return { ...data, ok: true }", |
112 | 65 | " }",
|
| 66 | + " return response", |
113 | 67 | " }",
|
114 |
| - "}", |
115 |
| - "", |
116 |
| - "const ${1} = {", |
117 |
| - " detail: new ${1/(.*)/${1:/capitalize}/}DetailStore(),", |
118 |
| - " list: new ${1/(.*)/${1:/capitalize}/}ListStore(),", |
119 |
| - "}", |
120 |
| - "", |
121 |
| - "export default ${1}" |
| 68 | + "}" |
122 | 69 | ],
|
123 | 70 | "description": "Freenit Svelte store"
|
124 | 71 | }
|
|
0 commit comments