@laboratoria/sdk-js 0.0.0 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/coverage/clover.xml +140 -0
- package/coverage/coverage-final.json +9 -0
- package/coverage/lcov-report/base.css +224 -0
- package/coverage/lcov-report/block-navigation.js +79 -0
- package/coverage/lcov-report/client.js.html +152 -0
- package/coverage/lcov-report/core.js.html +281 -0
- package/coverage/lcov-report/favicon.png +0 -0
- package/coverage/lcov-report/index.html +126 -0
- package/coverage/lcov-report/model.js.html +557 -0
- package/coverage/lcov-report/prettify.css +1 -0
- package/coverage/lcov-report/prettify.js +2 -0
- package/coverage/lcov-report/sdk-js/index.html +111 -0
- package/coverage/lcov-report/sdk-js/index.js.html +293 -0
- package/coverage/lcov-report/sdk-js/lib/campuses.js.html +146 -0
- package/coverage/lcov-report/sdk-js/lib/client.js.html +152 -0
- package/coverage/lcov-report/sdk-js/lib/core.js.html +374 -0
- package/coverage/lcov-report/sdk-js/lib/currencies.js.html +89 -0
- package/coverage/lcov-report/sdk-js/lib/index.html +201 -0
- package/coverage/lcov-report/sdk-js/lib/jobs.js.html +143 -0
- package/coverage/lcov-report/sdk-js/lib/model.js.html +665 -0
- package/coverage/lcov-report/sdk-js/lib/roles.js.html +110 -0
- package/coverage/lcov-report/sdk-js/lib/schemas.js.html +434 -0
- package/coverage/lcov-report/sdk-js/lib/team.js.html +233 -0
- package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
- package/coverage/lcov-report/sorter.js +170 -0
- package/coverage/lcov-report/team.js.html +209 -0
- package/coverage/lcov.info +359 -0
- package/index.js +1 -1
- package/lib/core.js +37 -7
- package/lib/jobs.js +21 -3
- package/lib/model.js +65 -29
- package/lib/team.js +6 -4
- package/package.json +5 -5
- package/schemas/core.json +6 -1
- package/schemas/team.json +23 -3
- package/__mocks__/firebase/app.js +0 -1
- package/__mocks__/firebase/auth.js +0 -10
- package/__snapshots__/index.spec.js.snap +0 -12
- package/lib/__mocks__/client.js +0 -1
- package/lib/campuses.js +0 -23
@@ -0,0 +1,359 @@
|
|
1
|
+
TN:
|
2
|
+
SF:index.js
|
3
|
+
FN:13,(anonymous_0)
|
4
|
+
FN:30,(anonymous_1)
|
5
|
+
FN:35,(anonymous_2)
|
6
|
+
FN:35,(anonymous_3)
|
7
|
+
FN:41,(anonymous_4)
|
8
|
+
FN:51,(anonymous_5)
|
9
|
+
FN:57,(anonymous_6)
|
10
|
+
FN:62,(anonymous_7)
|
11
|
+
FNF:8
|
12
|
+
FNH:8
|
13
|
+
FNDA:6,(anonymous_0)
|
14
|
+
FNDA:3,(anonymous_1)
|
15
|
+
FNDA:3,(anonymous_2)
|
16
|
+
FNDA:3,(anonymous_3)
|
17
|
+
FNDA:1,(anonymous_4)
|
18
|
+
FNDA:1,(anonymous_5)
|
19
|
+
FNDA:1,(anonymous_6)
|
20
|
+
FNDA:1,(anonymous_7)
|
21
|
+
DA:13,1
|
22
|
+
DA:20,6
|
23
|
+
DA:27,6
|
24
|
+
DA:28,6
|
25
|
+
DA:30,6
|
26
|
+
DA:31,3
|
27
|
+
DA:34,6
|
28
|
+
DA:35,3
|
29
|
+
DA:36,3
|
30
|
+
DA:37,1
|
31
|
+
DA:38,1
|
32
|
+
DA:40,2
|
33
|
+
DA:42,1
|
34
|
+
DA:48,1
|
35
|
+
DA:49,1
|
36
|
+
DA:52,1
|
37
|
+
DA:53,1
|
38
|
+
DA:54,1
|
39
|
+
DA:57,1
|
40
|
+
DA:62,1
|
41
|
+
DA:65,6
|
42
|
+
LF:21
|
43
|
+
LH:21
|
44
|
+
BRDA:13,0,0,6
|
45
|
+
BRDA:14,1,0,6
|
46
|
+
BRDA:15,2,0,6
|
47
|
+
BRDA:16,3,0,6
|
48
|
+
BRDA:17,4,0,6
|
49
|
+
BRDA:18,5,0,6
|
50
|
+
BRDA:36,6,0,1
|
51
|
+
BRDA:36,6,1,2
|
52
|
+
BRF:8
|
53
|
+
BRH:8
|
54
|
+
end_of_record
|
55
|
+
TN:
|
56
|
+
SF:lib/client.js
|
57
|
+
FN:1,(anonymous_0)
|
58
|
+
FN:1,(anonymous_1)
|
59
|
+
FNF:2
|
60
|
+
FNH:2
|
61
|
+
FNDA:4,(anonymous_0)
|
62
|
+
FNDA:4,(anonymous_1)
|
63
|
+
DA:1,4
|
64
|
+
DA:2,4
|
65
|
+
DA:3,4
|
66
|
+
DA:14,4
|
67
|
+
DA:16,4
|
68
|
+
DA:17,1
|
69
|
+
DA:23,3
|
70
|
+
LF:7
|
71
|
+
LH:7
|
72
|
+
BRDA:1,0,0,3
|
73
|
+
BRDA:2,1,0,1
|
74
|
+
BRDA:2,1,1,3
|
75
|
+
BRDA:7,2,0,4
|
76
|
+
BRDA:7,2,1,1
|
77
|
+
BRDA:8,3,0,4
|
78
|
+
BRDA:8,3,1,1
|
79
|
+
BRDA:11,4,0,4
|
80
|
+
BRDA:11,4,1,1
|
81
|
+
BRDA:16,5,0,1
|
82
|
+
BRDA:16,5,1,3
|
83
|
+
BRF:11
|
84
|
+
BRH:11
|
85
|
+
end_of_record
|
86
|
+
TN:
|
87
|
+
SF:lib/core.js
|
88
|
+
FN:20,(anonymous_0)
|
89
|
+
FN:32,(anonymous_1)
|
90
|
+
FN:58,(anonymous_2)
|
91
|
+
FN:90,(anonymous_3)
|
92
|
+
FNF:4
|
93
|
+
FNH:1
|
94
|
+
FNDA:0,(anonymous_0)
|
95
|
+
FNDA:0,(anonymous_1)
|
96
|
+
FNDA:0,(anonymous_2)
|
97
|
+
FNDA:6,(anonymous_3)
|
98
|
+
DA:4,1
|
99
|
+
DA:20,0
|
100
|
+
DA:33,0
|
101
|
+
DA:59,0
|
102
|
+
DA:90,6
|
103
|
+
LF:5
|
104
|
+
LH:2
|
105
|
+
BRDA:59,0,0,0
|
106
|
+
BRDA:59,0,1,0
|
107
|
+
BRF:2
|
108
|
+
BRH:0
|
109
|
+
end_of_record
|
110
|
+
TN:
|
111
|
+
SF:lib/currencies.js
|
112
|
+
FNF:0
|
113
|
+
FNH:0
|
114
|
+
DA:1,1
|
115
|
+
LF:1
|
116
|
+
LH:1
|
117
|
+
BRF:0
|
118
|
+
BRH:0
|
119
|
+
end_of_record
|
120
|
+
TN:
|
121
|
+
SF:lib/jobs.js
|
122
|
+
FN:19,(anonymous_0)
|
123
|
+
FNF:1
|
124
|
+
FNH:1
|
125
|
+
FNDA:6,(anonymous_0)
|
126
|
+
DA:4,1
|
127
|
+
DA:19,6
|
128
|
+
LF:2
|
129
|
+
LH:2
|
130
|
+
BRF:0
|
131
|
+
BRH:0
|
132
|
+
end_of_record
|
133
|
+
TN:
|
134
|
+
SF:lib/model.js
|
135
|
+
FN:3,(anonymous_0)
|
136
|
+
FN:7,(anonymous_1)
|
137
|
+
FN:43,(anonymous_2)
|
138
|
+
FN:44,(anonymous_3)
|
139
|
+
FN:58,(anonymous_4)
|
140
|
+
FN:61,(anonymous_5)
|
141
|
+
FN:61,(anonymous_6)
|
142
|
+
FN:66,(anonymous_7)
|
143
|
+
FN:66,(anonymous_8)
|
144
|
+
FN:72,(anonymous_9)
|
145
|
+
FN:73,(anonymous_10)
|
146
|
+
FN:88,(anonymous_11)
|
147
|
+
FN:93,(anonymous_12)
|
148
|
+
FN:94,(anonymous_13)
|
149
|
+
FN:99,(anonymous_14)
|
150
|
+
FN:104,(anonymous_15)
|
151
|
+
FN:106,(anonymous_16)
|
152
|
+
FN:127,(anonymous_17)
|
153
|
+
FN:130,(anonymous_18)
|
154
|
+
FN:135,(anonymous_19)
|
155
|
+
FN:136,(anonymous_20)
|
156
|
+
FN:137,(anonymous_21)
|
157
|
+
FN:138,(anonymous_22)
|
158
|
+
FN:141,(anonymous_23)
|
159
|
+
FN:146,(anonymous_24)
|
160
|
+
FN:153,(anonymous_25)
|
161
|
+
FN:155,(anonymous_26)
|
162
|
+
FN:171,(anonymous_27)
|
163
|
+
FN:173,(anonymous_28)
|
164
|
+
FN:182,(anonymous_29)
|
165
|
+
FNF:30
|
166
|
+
FNH:29
|
167
|
+
FNDA:108,(anonymous_0)
|
168
|
+
FNDA:11,(anonymous_1)
|
169
|
+
FNDA:2,(anonymous_2)
|
170
|
+
FNDA:2,(anonymous_3)
|
171
|
+
FNDA:7,(anonymous_4)
|
172
|
+
FNDA:108,(anonymous_5)
|
173
|
+
FNDA:7,(anonymous_6)
|
174
|
+
FNDA:108,(anonymous_7)
|
175
|
+
FNDA:6,(anonymous_8)
|
176
|
+
FNDA:108,(anonymous_9)
|
177
|
+
FNDA:941,(anonymous_10)
|
178
|
+
FNDA:108,(anonymous_11)
|
179
|
+
FNDA:7,(anonymous_12)
|
180
|
+
FNDA:2,(anonymous_13)
|
181
|
+
FNDA:2,(anonymous_14)
|
182
|
+
FNDA:2,(anonymous_15)
|
183
|
+
FNDA:2,(anonymous_16)
|
184
|
+
FNDA:2,(anonymous_17)
|
185
|
+
FNDA:0,(anonymous_18)
|
186
|
+
FNDA:1,(anonymous_19)
|
187
|
+
FNDA:1,(anonymous_20)
|
188
|
+
FNDA:1,(anonymous_21)
|
189
|
+
FNDA:1,(anonymous_22)
|
190
|
+
FNDA:2,(anonymous_23)
|
191
|
+
FNDA:1,(anonymous_24)
|
192
|
+
FNDA:18,(anonymous_25)
|
193
|
+
FNDA:90,(anonymous_26)
|
194
|
+
FNDA:18,(anonymous_27)
|
195
|
+
FNDA:90,(anonymous_28)
|
196
|
+
FNDA:840,(anonymous_29)
|
197
|
+
DA:3,2
|
198
|
+
DA:4,108
|
199
|
+
DA:5,108
|
200
|
+
DA:7,108
|
201
|
+
DA:8,11
|
202
|
+
DA:9,11
|
203
|
+
DA:10,11
|
204
|
+
DA:12,11
|
205
|
+
DA:13,5
|
206
|
+
DA:14,3
|
207
|
+
DA:16,2
|
208
|
+
DA:17,2
|
209
|
+
DA:21,6
|
210
|
+
DA:23,2
|
211
|
+
DA:24,2
|
212
|
+
DA:26,0
|
213
|
+
DA:28,3
|
214
|
+
DA:29,3
|
215
|
+
DA:30,2
|
216
|
+
DA:32,1
|
217
|
+
DA:34,0
|
218
|
+
DA:36,0
|
219
|
+
DA:42,108
|
220
|
+
DA:43,2
|
221
|
+
DA:45,2
|
222
|
+
DA:46,2
|
223
|
+
DA:47,1
|
224
|
+
DA:49,1
|
225
|
+
DA:58,7
|
226
|
+
DA:61,108
|
227
|
+
DA:62,7
|
228
|
+
DA:66,108
|
229
|
+
DA:72,108
|
230
|
+
DA:74,941
|
231
|
+
DA:88,2
|
232
|
+
DA:89,108
|
233
|
+
DA:90,108
|
234
|
+
DA:91,108
|
235
|
+
DA:92,108
|
236
|
+
DA:93,108
|
237
|
+
DA:94,108
|
238
|
+
DA:99,108
|
239
|
+
DA:104,108
|
240
|
+
DA:105,2
|
241
|
+
DA:107,2
|
242
|
+
DA:108,2
|
243
|
+
DA:119,2
|
244
|
+
DA:126,108
|
245
|
+
DA:128,2
|
246
|
+
DA:131,0
|
247
|
+
DA:135,1
|
248
|
+
DA:136,1
|
249
|
+
DA:137,1
|
250
|
+
DA:138,1
|
251
|
+
DA:142,2
|
252
|
+
DA:146,1
|
253
|
+
DA:153,2
|
254
|
+
DA:154,18
|
255
|
+
DA:156,90
|
256
|
+
DA:157,90
|
257
|
+
DA:171,2
|
258
|
+
DA:172,18
|
259
|
+
DA:173,90
|
260
|
+
DA:182,840
|
261
|
+
LF:64
|
262
|
+
LH:60
|
263
|
+
BRDA:4,0,0,108
|
264
|
+
BRDA:4,0,1,9
|
265
|
+
BRDA:5,1,0,108
|
266
|
+
BRDA:5,1,1,72
|
267
|
+
BRDA:8,2,0,11
|
268
|
+
BRDA:8,2,1,1
|
269
|
+
BRDA:9,3,0,3
|
270
|
+
BRDA:9,3,1,8
|
271
|
+
BRDA:10,4,0,11
|
272
|
+
BRDA:10,4,1,3
|
273
|
+
BRDA:12,5,0,5
|
274
|
+
BRDA:12,5,1,6
|
275
|
+
BRDA:13,6,0,3
|
276
|
+
BRDA:13,6,1,2
|
277
|
+
BRDA:13,7,0,5
|
278
|
+
BRDA:13,7,1,3
|
279
|
+
BRDA:16,8,0,2
|
280
|
+
BRDA:16,8,1,0
|
281
|
+
BRDA:21,9,0,2
|
282
|
+
BRDA:21,9,1,3
|
283
|
+
BRDA:21,9,2,0
|
284
|
+
BRDA:21,9,3,0
|
285
|
+
BRDA:21,9,4,1
|
286
|
+
BRDA:23,10,0,2
|
287
|
+
BRDA:23,10,1,0
|
288
|
+
BRDA:23,11,0,2
|
289
|
+
BRDA:23,11,1,2
|
290
|
+
BRDA:29,12,0,2
|
291
|
+
BRDA:29,12,1,1
|
292
|
+
BRDA:29,13,0,3
|
293
|
+
BRDA:29,13,1,3
|
294
|
+
BRDA:46,14,0,1
|
295
|
+
BRDA:46,14,1,1
|
296
|
+
BRDA:58,15,0,5
|
297
|
+
BRDA:58,16,0,0
|
298
|
+
BRDA:58,16,1,7
|
299
|
+
BRDA:62,17,0,4
|
300
|
+
BRDA:62,17,1,3
|
301
|
+
BRDA:66,18,0,2
|
302
|
+
BRDA:67,19,0,6
|
303
|
+
BRDA:67,19,1,6
|
304
|
+
BRDA:67,19,2,0
|
305
|
+
BRDA:72,20,0,108
|
306
|
+
BRDA:72,20,1,9
|
307
|
+
BRDA:74,21,0,96
|
308
|
+
BRDA:74,21,1,845
|
309
|
+
BRDA:75,22,0,941
|
310
|
+
BRDA:75,22,1,863
|
311
|
+
BRDA:75,22,2,18
|
312
|
+
BRDA:88,23,0,9
|
313
|
+
BRDA:107,24,0,2
|
314
|
+
BRDA:107,24,1,0
|
315
|
+
BRDA:111,25,0,1
|
316
|
+
BRDA:111,25,1,1
|
317
|
+
BRDA:111,26,0,2
|
318
|
+
BRDA:111,26,1,1
|
319
|
+
BRDA:120,27,0,0
|
320
|
+
BRDA:120,27,1,2
|
321
|
+
BRDA:138,28,0,1
|
322
|
+
BRDA:138,28,1,0
|
323
|
+
BRDA:142,29,0,1
|
324
|
+
BRDA:142,29,1,1
|
325
|
+
BRDA:162,30,0,90
|
326
|
+
BRDA:162,30,1,72
|
327
|
+
BRDA:176,31,0,12
|
328
|
+
BRDA:176,31,1,78
|
329
|
+
BRDA:186,32,0,840
|
330
|
+
BRDA:186,32,1,510
|
331
|
+
BRDA:189,33,0,78
|
332
|
+
BRDA:189,33,1,54
|
333
|
+
BRF:70
|
334
|
+
BRH:61
|
335
|
+
end_of_record
|
336
|
+
TN:
|
337
|
+
SF:lib/roles.js
|
338
|
+
FNF:0
|
339
|
+
FNH:0
|
340
|
+
DA:1,1
|
341
|
+
DA:3,1
|
342
|
+
LF:2
|
343
|
+
LH:2
|
344
|
+
BRF:0
|
345
|
+
BRH:0
|
346
|
+
end_of_record
|
347
|
+
TN:
|
348
|
+
SF:lib/team.js
|
349
|
+
FN:49,(anonymous_0)
|
350
|
+
FNF:1
|
351
|
+
FNH:1
|
352
|
+
FNDA:6,(anonymous_0)
|
353
|
+
DA:6,1
|
354
|
+
DA:49,6
|
355
|
+
LF:2
|
356
|
+
LH:2
|
357
|
+
BRF:0
|
358
|
+
BRH:0
|
359
|
+
end_of_record
|
package/index.js
CHANGED
package/lib/core.js
CHANGED
@@ -16,6 +16,8 @@ const extended = {
|
|
16
16
|
'signupCohort',
|
17
17
|
'disabled',
|
18
18
|
],
|
19
|
+
searchProps: ['firstName', 'lastName', 'email'],
|
20
|
+
getOptionLabel: ({ firstName, lastName, email }) => `${firstName} ${lastName} (${email})`,
|
19
21
|
properties: {
|
20
22
|
email: {
|
21
23
|
inputType: 'email',
|
@@ -27,6 +29,21 @@ const extended = {
|
|
27
29
|
inputType: 'textarea',
|
28
30
|
},
|
29
31
|
},
|
32
|
+
parse: (props) => {
|
33
|
+
return {
|
34
|
+
...props,
|
35
|
+
fullName: `${props.firstName} ${props.lastName}`,
|
36
|
+
};
|
37
|
+
},
|
38
|
+
},
|
39
|
+
Track: {
|
40
|
+
searchProps: ['name'],
|
41
|
+
},
|
42
|
+
Program: {
|
43
|
+
searchProps: ['name'],
|
44
|
+
},
|
45
|
+
Stage: {
|
46
|
+
searchProps: ['name'],
|
30
47
|
},
|
31
48
|
Cohort: {
|
32
49
|
inputProps: [
|
@@ -37,13 +54,16 @@ const extended = {
|
|
37
54
|
'end',
|
38
55
|
'legacySlug',
|
39
56
|
],
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
},
|
57
|
+
searchProps: ['name'],
|
58
|
+
getOptionLabel: ({ id, name, stage }) => (
|
59
|
+
`${name}${!stage ? '' : ` - ${stage.name}`} (id: ${id})`
|
60
|
+
),
|
61
|
+
properties: {},
|
62
|
+
},
|
63
|
+
Student: {
|
64
|
+
inputProps: [],
|
65
|
+
searchProps: [],
|
45
66
|
},
|
46
|
-
Student: {},
|
47
67
|
Dropout: {
|
48
68
|
inputProps: [
|
49
69
|
'cohort',
|
@@ -57,6 +77,13 @@ const extended = {
|
|
57
77
|
'staffSad',
|
58
78
|
'covidRelated',
|
59
79
|
],
|
80
|
+
searchProps: [
|
81
|
+
'user.uid',
|
82
|
+
'user.firstName',
|
83
|
+
'user.lastName',
|
84
|
+
'user.email',
|
85
|
+
'cohort.name',
|
86
|
+
],
|
60
87
|
},
|
61
88
|
};
|
62
89
|
|
@@ -65,4 +92,7 @@ export const createAPI = (url, state) => createModels(url, state, {
|
|
65
92
|
definitions: extendSchemaDefinitions(schema, extended),
|
66
93
|
});
|
67
94
|
|
68
|
-
// const {
|
95
|
+
// const {
|
96
|
+
// delete: _,
|
97
|
+
// ...userAPI,
|
98
|
+
// } = createModel(coreApiUrl, state, 'users', schemas.user);
|
package/lib/jobs.js
CHANGED
@@ -1,4 +1,22 @@
|
|
1
|
-
import { createModels } from './model';
|
2
|
-
import
|
1
|
+
import { createModels, extendSchemaDefinitions } from './model';
|
2
|
+
import schema from '../schemas/jobs.json';
|
3
3
|
|
4
|
-
|
4
|
+
const extended = {
|
5
|
+
Country: {
|
6
|
+
plural: 'countries',
|
7
|
+
},
|
8
|
+
Job: {
|
9
|
+
// inputProps: [],
|
10
|
+
// properties: {},
|
11
|
+
},
|
12
|
+
Company: {
|
13
|
+
plural: 'companies',
|
14
|
+
// inputProps: [],
|
15
|
+
// properties: {},
|
16
|
+
},
|
17
|
+
};
|
18
|
+
|
19
|
+
export const createAPI = (url, state) => createModels(url, state, {
|
20
|
+
...schema,
|
21
|
+
definitions: extendSchemaDefinitions(schema, extended),
|
22
|
+
});
|
package/lib/model.js
CHANGED
@@ -55,7 +55,7 @@ const createValidator = (schema) => {
|
|
55
55
|
};
|
56
56
|
|
57
57
|
|
58
|
-
const qToQs = q => q ? `?q=${JSON.stringify(q)}` : '';
|
58
|
+
const qToQs = (q = {}) => Object.keys(q).length ? `?q=${JSON.stringify(q)}` : '';
|
59
59
|
|
60
60
|
|
61
61
|
const createBuildURL = collectionName => (id, q) => {
|
@@ -63,44 +63,78 @@ const createBuildURL = collectionName => (id, q) => {
|
|
63
63
|
};
|
64
64
|
|
65
65
|
|
66
|
+
const createBuildQuery = defaultInclude => (q = {}) => ({
|
67
|
+
...(!q.select && Object.keys(defaultInclude).length && { include: defaultInclude }),
|
68
|
+
...q,
|
69
|
+
});
|
70
|
+
|
71
|
+
|
72
|
+
const buildDefaultInclude = schema => Object.keys(schema.properties || {}).reduce(
|
73
|
+
(memo, key) => (
|
74
|
+
(
|
75
|
+
schema.properties[key].$ref
|
76
|
+
|| (
|
77
|
+
Array.isArray(schema.properties[key].anyOf)
|
78
|
+
&& schema.properties[key].anyOf[0].$ref
|
79
|
+
)
|
80
|
+
)
|
81
|
+
? { ...memo, [key]: true }
|
82
|
+
: memo
|
83
|
+
),
|
84
|
+
{},
|
85
|
+
);
|
86
|
+
|
87
|
+
|
66
88
|
const createModel = (baseUrl, state, collectionName, schema = {}) => {
|
67
89
|
const validator = createValidator(schema);
|
68
90
|
const buildURL = createBuildURL(collectionName);
|
91
|
+
const defaultInclude = buildDefaultInclude(schema);
|
92
|
+
const buildQuery = createBuildQuery(defaultInclude);
|
69
93
|
const req = (...args) => createClient(baseUrl, state.authUser)(...args);
|
70
94
|
const create = q => req(buildURL(), {
|
71
95
|
method: 'POST',
|
72
|
-
body: q,
|
96
|
+
body: buildQuery(q),
|
73
97
|
});
|
74
98
|
|
75
99
|
const put = q => req(buildURL(q.where.id), {
|
76
100
|
method: 'PUT',
|
77
|
-
body: q,
|
101
|
+
body: buildQuery(q),
|
78
102
|
});
|
79
103
|
|
80
|
-
const parse = data =>
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
104
|
+
const parse = data => {
|
105
|
+
const parsed = Object.keys(data).reduce(
|
106
|
+
(memo, key) => {
|
107
|
+
const { type, format } = schema.properties[key] || {};
|
108
|
+
return {
|
109
|
+
...memo,
|
110
|
+
[key]: (
|
111
|
+
format === 'date-time' && data[key]
|
112
|
+
? new Date(data[key])
|
113
|
+
: data[key]
|
114
|
+
),
|
115
|
+
};
|
116
|
+
},
|
117
|
+
{},
|
118
|
+
);
|
119
|
+
return (
|
120
|
+
typeof schema.parse === 'function'
|
121
|
+
? schema.parse(parsed)
|
122
|
+
: parsed
|
123
|
+
);
|
124
|
+
};
|
94
125
|
|
95
126
|
return {
|
96
127
|
get schema() {
|
97
128
|
return schema;
|
98
129
|
},
|
130
|
+
get include() {
|
131
|
+
return defaultInclude;
|
132
|
+
},
|
99
133
|
validateAttr: validator.validateAttr,
|
100
134
|
validate: validator.validate,
|
101
|
-
findMany: q => req(buildURL(null, q))
|
135
|
+
findMany: q => req(buildURL(null, buildQuery(q)))
|
102
136
|
.then(results => results.map(parse)),
|
103
|
-
findById: (id, q) => req(buildURL(id, q))
|
137
|
+
findById: (id, q) => req(buildURL(id, buildQuery(q)))
|
104
138
|
.then(raw => !!raw ? parse(raw) : raw),
|
105
139
|
create,
|
106
140
|
update: put,
|
@@ -117,17 +151,19 @@ const createModel = (baseUrl, state, collectionName, schema = {}) => {
|
|
117
151
|
export default createModel;
|
118
152
|
|
119
153
|
export const createModels = (url, state, schema) => {
|
120
|
-
// ...
|
121
154
|
return Object.keys(schema.properties).reduce(
|
122
|
-
(prev, key) =>
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
155
|
+
(prev, key) => {
|
156
|
+
const name = schema.properties[key].$ref.split('/').pop();
|
157
|
+
return {
|
158
|
+
...prev,
|
159
|
+
[key]: createModel(
|
160
|
+
url,
|
161
|
+
state,
|
162
|
+
schema.definitions[name].plural || `${key}s`,
|
163
|
+
schema.definitions[name],
|
164
|
+
),
|
165
|
+
};
|
166
|
+
},
|
131
167
|
{},
|
132
168
|
);
|
133
169
|
};
|
package/lib/team.js
CHANGED
@@ -1,14 +1,16 @@
|
|
1
1
|
import { createModels, extendSchemaDefinitions } from './model';
|
2
|
-
import campuses from './campuses';
|
3
2
|
import currencies from './currencies';
|
4
3
|
import roles from './roles';
|
5
4
|
import schema from '../schemas/team.json';
|
6
5
|
|
7
6
|
const extended = {
|
7
|
+
Country: {
|
8
|
+
plural: 'countries',
|
9
|
+
},
|
8
10
|
Contract: {
|
9
11
|
inputProps: [
|
10
12
|
'uid',
|
11
|
-
'
|
13
|
+
'countryCode',
|
12
14
|
'currency',
|
13
15
|
'isEmployment',
|
14
16
|
'feeBasis',
|
@@ -18,8 +20,8 @@ const extended = {
|
|
18
20
|
'end',
|
19
21
|
],
|
20
22
|
properties: {
|
21
|
-
|
22
|
-
enum:
|
23
|
+
countryCode: {
|
24
|
+
enum: ['BR', 'CL', 'CO', 'MX', 'PE'],
|
23
25
|
},
|
24
26
|
currency: {
|
25
27
|
enum: currencies,
|
package/package.json
CHANGED
@@ -1,20 +1,20 @@
|
|
1
1
|
{
|
2
2
|
"name": "@laboratoria/sdk-js",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.1.0",
|
4
4
|
"description": "Laboratoria JavaScript (browser) SDK",
|
5
5
|
"scripts": {
|
6
6
|
"test": "jest --verbose --coverage"
|
7
7
|
},
|
8
8
|
"license": "MIT",
|
9
9
|
"dependencies": {
|
10
|
-
"firebase": "^9.
|
10
|
+
"firebase": "^9.5.0"
|
11
11
|
},
|
12
12
|
"devDependencies": {
|
13
13
|
"@babel/core": "^7.16.0",
|
14
14
|
"@babel/plugin-transform-modules-commonjs": "^7.16.0",
|
15
|
-
"babel-jest": "^27.
|
16
|
-
"jest": "^27.3
|
17
|
-
"webpack": "^5.64.
|
15
|
+
"babel-jest": "^27.4.2",
|
16
|
+
"jest": "^27.4.3",
|
17
|
+
"webpack": "^5.64.4",
|
18
18
|
"webpack-cli": "^4.9.1"
|
19
19
|
},
|
20
20
|
"jest": {
|