@budibase/server 0.9.185-alpha.0 → 0.9.185-alpha.12
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/Dockerfile +1 -1
- package/builder/assets/bb-space-man.5be51a45.svg +290 -0
- package/builder/assets/index.4a7c5636.css +1 -0
- package/builder/assets/index.708945dd.js +1316 -0
- package/builder/assets/vendor.470042a4.js +152 -0
- package/builder/assets/vendor.5e1fe644.css +1 -0
- package/builder/index.html +4 -4
- package/coverage/clover.xml +1060 -928
- package/coverage/coverage-final.json +90 -88
- package/coverage/lcov-report/api/controllers/analytics.js.html +2 -2
- package/coverage/lcov-report/api/controllers/apikeys.js.html +2 -2
- package/coverage/lcov-report/api/controllers/application.js.html +43 -13
- package/coverage/lcov-report/api/controllers/auth.js.html +7 -7
- package/coverage/lcov-report/api/controllers/automation.js.html +3 -3
- package/coverage/lcov-report/api/controllers/backup.js.html +1 -1
- package/coverage/lcov-report/api/controllers/cloud.js.html +1 -1
- package/coverage/lcov-report/api/controllers/component.js.html +4 -4
- package/coverage/lcov-report/api/controllers/datasource.js.html +31 -7
- package/coverage/lcov-report/api/controllers/dev.js.html +16 -7
- package/coverage/lcov-report/api/controllers/hosting.js.html +10 -10
- package/coverage/lcov-report/api/controllers/index.html +75 -75
- package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
- package/coverage/lcov-report/api/controllers/layout.js.html +3 -3
- package/coverage/lcov-report/api/controllers/metadata.js.html +3 -3
- package/coverage/lcov-report/api/controllers/permission.js.html +3 -3
- package/coverage/lcov-report/api/controllers/query.js.html +48 -210
- package/coverage/lcov-report/api/controllers/role.js.html +9 -9
- package/coverage/lcov-report/api/controllers/routing.js.html +3 -3
- package/coverage/lcov-report/api/controllers/row/external.js.html +12 -6
- package/coverage/lcov-report/api/controllers/row/index.html +18 -18
- package/coverage/lcov-report/api/controllers/row/index.js.html +2 -2
- package/coverage/lcov-report/api/controllers/row/internal.js.html +9 -9
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +2 -2
- package/coverage/lcov-report/api/controllers/row/utils.js.html +2 -2
- package/coverage/lcov-report/api/controllers/screen.js.html +2 -2
- package/coverage/lcov-report/api/controllers/script.js.html +3 -3
- package/coverage/lcov-report/api/controllers/table/external.js.html +65 -8
- package/coverage/lcov-report/api/controllers/table/index.html +42 -42
- package/coverage/lcov-report/api/controllers/table/index.js.html +66 -12
- package/coverage/lcov-report/api/controllers/table/internal.js.html +49 -10
- package/coverage/lcov-report/api/controllers/table/utils.js.html +57 -45
- package/coverage/lcov-report/api/controllers/templates.js.html +4 -4
- package/coverage/lcov-report/api/controllers/user.js.html +33 -18
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.html +9 -9
- package/coverage/lcov-report/api/controllers/view/index.js.html +5 -5
- package/coverage/lcov-report/api/controllers/view/utils.js.html +11 -11
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +3 -3
- package/coverage/lcov-report/api/controllers/webhook.js.html +4 -4
- package/coverage/lcov-report/api/index.html +1 -1
- package/coverage/lcov-report/api/index.js.html +1 -1
- package/coverage/lcov-report/api/routes/analytics.js.html +1 -1
- package/coverage/lcov-report/api/routes/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/routes/application.js.html +1 -1
- package/coverage/lcov-report/api/routes/auth.js.html +1 -1
- package/coverage/lcov-report/api/routes/automation.js.html +1 -1
- package/coverage/lcov-report/api/routes/backup.js.html +1 -1
- package/coverage/lcov-report/api/routes/cloud.js.html +1 -1
- package/coverage/lcov-report/api/routes/component.js.html +1 -1
- package/coverage/lcov-report/api/routes/datasource.js.html +1 -1
- package/coverage/lcov-report/api/routes/deploy.js.html +1 -1
- package/coverage/lcov-report/api/routes/dev.js.html +2 -2
- package/coverage/lcov-report/api/routes/hosting.js.html +1 -1
- package/coverage/lcov-report/api/routes/index.html +4 -4
- package/coverage/lcov-report/api/routes/index.js.html +1 -1
- package/coverage/lcov-report/api/routes/integration.js.html +1 -1
- package/coverage/lcov-report/api/routes/layout.js.html +1 -1
- package/coverage/lcov-report/api/routes/metadata.js.html +1 -1
- package/coverage/lcov-report/api/routes/permission.js.html +1 -1
- package/coverage/lcov-report/api/routes/query.js.html +5 -2
- package/coverage/lcov-report/api/routes/role.js.html +1 -1
- package/coverage/lcov-report/api/routes/routing.js.html +1 -1
- package/coverage/lcov-report/api/routes/row.js.html +1 -1
- package/coverage/lcov-report/api/routes/screen.js.html +1 -1
- package/coverage/lcov-report/api/routes/script.js.html +1 -1
- package/coverage/lcov-report/api/routes/static.js.html +2 -2
- package/coverage/lcov-report/api/routes/table.js.html +35 -2
- package/coverage/lcov-report/api/routes/templates.js.html +1 -1
- package/coverage/lcov-report/api/routes/user.js.html +1 -1
- package/coverage/lcov-report/api/routes/view.js.html +1 -1
- package/coverage/lcov-report/api/routes/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/actions.js.html +2 -2
- package/coverage/lcov-report/automations/automationUtils.js.html +3 -3
- package/coverage/lcov-report/automations/bullboard.js.html +71 -20
- package/coverage/lcov-report/automations/index.html +33 -48
- package/coverage/lcov-report/automations/index.js.html +2 -2
- package/coverage/lcov-report/automations/steps/bash.js.html +1 -1
- package/coverage/lcov-report/automations/steps/createRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/delay.js.html +1 -1
- package/coverage/lcov-report/automations/steps/deleteRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/discord.js.html +3 -3
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeScript.js.html +3 -3
- package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
- package/coverage/lcov-report/automations/steps/index.html +14 -14
- package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +3 -3
- package/coverage/lcov-report/automations/steps/queryRows.js.html +3 -3
- package/coverage/lcov-report/automations/steps/sendSmtpEmail.js.html +1 -1
- package/coverage/lcov-report/automations/steps/serverLog.js.html +1 -1
- package/coverage/lcov-report/automations/steps/slack.js.html +1 -1
- package/coverage/lcov-report/automations/steps/updateRow.js.html +1 -1
- package/coverage/lcov-report/automations/steps/utils.js.html +7 -7
- package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/app.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/cron.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.js.html +8 -8
- package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +2 -2
- package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +2 -2
- package/coverage/lcov-report/automations/triggers.js.html +22 -10
- package/coverage/lcov-report/automations/utils.js.html +42 -12
- package/coverage/lcov-report/constants/index.html +1 -1
- package/coverage/lcov-report/constants/index.js.html +5 -2
- package/coverage/lcov-report/constants/layouts.js.html +1 -1
- package/coverage/lcov-report/constants/screens.js.html +1 -1
- package/coverage/lcov-report/db/client.js.html +2 -2
- package/coverage/lcov-report/db/inMemoryView.js.html +2 -2
- package/coverage/lcov-report/db/index.html +2 -2
- package/coverage/lcov-report/db/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +6 -6
- package/coverage/lcov-report/db/linkedRows/index.html +10 -10
- package/coverage/lcov-report/db/linkedRows/index.js.html +5 -5
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +6 -6
- package/coverage/lcov-report/db/newid.js.html +1 -1
- package/coverage/lcov-report/db/utils.js.html +1 -1
- package/coverage/lcov-report/events/AutomationEmitter.js.html +6 -6
- package/coverage/lcov-report/events/index.html +6 -6
- package/coverage/lcov-report/events/index.js.html +1 -1
- package/coverage/lcov-report/events/utils.js.html +5 -5
- package/coverage/lcov-report/index.html +94 -79
- package/coverage/lcov-report/integrations/tests/TestConfiguration.js.html +1 -1
- package/coverage/lcov-report/integrations/tests/index.html +1 -1
- package/coverage/lcov-report/middleware/appInfo.js.html +2 -2
- package/coverage/lcov-report/middleware/authorized.js.html +5 -5
- package/coverage/lcov-report/middleware/builder.js.html +16 -7
- package/coverage/lcov-report/middleware/currentapp.js.html +6 -6
- package/coverage/lcov-report/middleware/index.html +21 -21
- package/coverage/lcov-report/middleware/joi-validator.js.html +2 -2
- package/coverage/lcov-report/middleware/resourceId.js.html +18 -18
- package/coverage/lcov-report/middleware/selfhost.js.html +2 -2
- package/coverage/lcov-report/middleware/usageQuota.js.html +4 -4
- package/coverage/lcov-report/middleware/utils.js.html +1 -1
- package/coverage/lcov-report/{automations/thread.js.html → threads/automation.js.html} +83 -32
- package/coverage/lcov-report/threads/index.html +141 -0
- package/coverage/lcov-report/threads/index.js.html +260 -0
- package/coverage/lcov-report/threads/query.js.html +269 -0
- package/coverage/lcov-report/utilities/bcrypt.js.html +1 -1
- package/coverage/lcov-report/utilities/budibaseDir.js.html +1 -1
- package/coverage/lcov-report/utilities/centralPath.js.html +1 -1
- package/coverage/lcov-report/utilities/csvParser.js.html +144 -15
- package/coverage/lcov-report/utilities/global.js.html +2 -2
- package/coverage/lcov-report/utilities/index.html +34 -34
- package/coverage/lcov-report/utilities/index.js.html +12 -9
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +30 -9
- package/coverage/lcov-report/utilities/queue/index.html +14 -14
- package/coverage/lcov-report/utilities/routing/index.html +1 -1
- package/coverage/lcov-report/utilities/routing/index.js.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.html +4 -4
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +2 -2
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +3 -3
- package/coverage/lcov-report/utilities/scriptRunner.js.html +16 -7
- package/coverage/lcov-report/utilities/security.js.html +3 -3
- package/coverage/lcov-report/utilities/statusCodes.js.html +1 -1
- package/coverage/lcov-report/utilities/users.js.html +1 -1
- package/coverage/lcov-report/utilities/workerRequests.js.html +5 -5
- package/coverage/lcov.info +1753 -1527
- package/dist/api/controllers/application.js +11 -1
- package/dist/api/controllers/datasource.js +6 -2
- package/dist/api/controllers/deploy/index.js +2 -0
- package/dist/api/controllers/dev.js +4 -1
- package/dist/api/controllers/query.js +27 -57
- package/dist/api/controllers/row/ExternalRequest.js +2 -2
- package/dist/api/controllers/row/external.js +1 -0
- package/dist/api/controllers/table/external.js +17 -0
- package/dist/api/controllers/table/index.js +21 -2
- package/dist/api/controllers/table/internal.js +10 -1
- package/dist/api/controllers/table/utils.js +28 -27
- package/dist/api/controllers/user.js +10 -6
- package/dist/api/routes/query.js +1 -1
- package/dist/api/routes/table.js +7 -1
- package/dist/app.js +2 -11
- package/dist/automations/bullboard.js +37 -10
- package/dist/automations/triggers.js +7 -3
- package/dist/automations/utils.js +11 -2
- package/dist/constants/index.js +1 -0
- package/dist/definitions/datasource.js +1 -0
- package/dist/integrations/base/IntegrationBase.js +2 -0
- package/dist/integrations/base/sql.js +48 -8
- package/dist/integrations/base/sqlTable.js +1 -2
- package/dist/integrations/mysql.js +3 -1
- package/dist/integrations/postgres.js +2 -2
- package/dist/middleware/builder.js +4 -1
- package/dist/package.json +7 -6
- package/dist/{automations/thread.js → threads/automation.js} +23 -7
- package/dist/threads/index.js +58 -0
- package/dist/threads/query.js +61 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/utilities/csvParser.js +46 -5
- package/dist/utilities/index.js +1 -0
- package/dist/utilities/queue/inMemoryQueue.js +8 -0
- package/dist/utilities/scriptRunner.js +4 -1
- package/package.json +8 -7
- package/scripts/likeCypress.ts +33 -0
- package/src/api/controllers/application.js +11 -1
- package/src/api/controllers/datasource.js +10 -2
- package/src/api/controllers/deploy/index.js +2 -0
- package/src/api/controllers/dev.js +4 -1
- package/src/api/controllers/query.js +26 -80
- package/src/api/controllers/row/ExternalRequest.ts +6 -2
- package/src/api/controllers/row/external.js +2 -0
- package/src/api/controllers/table/external.js +19 -0
- package/src/api/controllers/table/index.js +20 -2
- package/src/api/controllers/table/internal.js +14 -1
- package/src/api/controllers/table/utils.js +36 -32
- package/src/api/controllers/user.js +15 -10
- package/src/api/routes/query.js +1 -0
- package/src/api/routes/table.js +11 -0
- package/src/api/routes/tests/misc.spec.js +5 -1
- package/src/app.ts +2 -10
- package/src/automations/bullboard.js +28 -11
- package/src/automations/tests/automation.spec.js +3 -4
- package/src/automations/triggers.js +7 -3
- package/src/automations/utils.js +12 -2
- package/src/constants/index.js +1 -0
- package/src/definitions/datasource.ts +3 -2
- package/src/integrations/airtable.ts +2 -1
- package/src/integrations/arangodb.ts +2 -1
- package/src/integrations/base/IntegrationBase.ts +6 -0
- package/src/integrations/base/datasourcePlus.ts +2 -1
- package/src/integrations/base/sql.ts +51 -9
- package/src/integrations/base/sqlTable.ts +1 -4
- package/src/integrations/couchdb.ts +2 -1
- package/src/integrations/dynamodb.ts +2 -1
- package/src/integrations/elasticsearch.ts +2 -1
- package/src/integrations/mongodb.ts +2 -1
- package/src/integrations/mysql.ts +1 -1
- package/src/integrations/postgres.ts +5 -5
- package/src/integrations/rest.ts +2 -1
- package/src/integrations/s3.ts +2 -1
- package/src/middleware/builder.js +4 -1
- package/src/{automations/thread.js → threads/automation.js} +24 -7
- package/src/threads/index.js +60 -0
- package/src/threads/query.js +63 -0
- package/src/utilities/csvParser.js +48 -5
- package/src/utilities/index.js +1 -0
- package/src/utilities/queue/inMemoryQueue.js +7 -0
- package/src/utilities/scriptRunner.js +4 -1
- package/src/utilities/tests/__snapshots__/csvParser.spec.js.snap +0 -6
- package/src/utilities/tests/csvParser.spec.js +3 -0
- package/tsconfig.json +1 -1
- package/builder/assets/index.0e6a5c20.js +0 -201
- package/builder/assets/index.cf21e4d2.css +0 -29
- package/builder/assets/vendor.278a305c.js +0 -9
- package/builder/assets/vendor.d75d5eb7.css +0 -1
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">81.81% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>45/55</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">73.91% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>17/23</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">70% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>7/
|
|
42
|
+
<span class='fraction'>7/10</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">83.01% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>44/53</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -145,7 +145,25 @@
|
|
|
145
145
|
<a name='L86'></a><a href='#L86'>86</a>
|
|
146
146
|
<a name='L87'></a><a href='#L87'>87</a>
|
|
147
147
|
<a name='L88'></a><a href='#L88'>88</a>
|
|
148
|
-
<a name='L89'></a><a href='#L89'>89</a
|
|
148
|
+
<a name='L89'></a><a href='#L89'>89</a>
|
|
149
|
+
<a name='L90'></a><a href='#L90'>90</a>
|
|
150
|
+
<a name='L91'></a><a href='#L91'>91</a>
|
|
151
|
+
<a name='L92'></a><a href='#L92'>92</a>
|
|
152
|
+
<a name='L93'></a><a href='#L93'>93</a>
|
|
153
|
+
<a name='L94'></a><a href='#L94'>94</a>
|
|
154
|
+
<a name='L95'></a><a href='#L95'>95</a>
|
|
155
|
+
<a name='L96'></a><a href='#L96'>96</a>
|
|
156
|
+
<a name='L97'></a><a href='#L97'>97</a>
|
|
157
|
+
<a name='L98'></a><a href='#L98'>98</a>
|
|
158
|
+
<a name='L99'></a><a href='#L99'>99</a>
|
|
159
|
+
<a name='L100'></a><a href='#L100'>100</a>
|
|
160
|
+
<a name='L101'></a><a href='#L101'>101</a>
|
|
161
|
+
<a name='L102'></a><a href='#L102'>102</a>
|
|
162
|
+
<a name='L103'></a><a href='#L103'>103</a>
|
|
163
|
+
<a name='L104'></a><a href='#L104'>104</a>
|
|
164
|
+
<a name='L105'></a><a href='#L105'>105</a>
|
|
165
|
+
<a name='L106'></a><a href='#L106'>106</a>
|
|
166
|
+
<a name='L107'></a><a href='#L107'>107</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
|
|
149
167
|
<span class="cline-any cline-yes">34x</span>
|
|
150
168
|
<span class="cline-any cline-yes">34x</span>
|
|
151
169
|
<span class="cline-any cline-yes">34x</span>
|
|
@@ -229,9 +247,27 @@
|
|
|
229
247
|
<span class="cline-any cline-neutral"> </span>
|
|
230
248
|
<span class="cline-any cline-neutral"> </span>
|
|
231
249
|
<span class="cline-any cline-yes">34x</span>
|
|
250
|
+
<span class="cline-any cline-no"> </span>
|
|
251
|
+
<span class="cline-any cline-no"> </span>
|
|
252
|
+
<span class="cline-any cline-neutral"> </span>
|
|
253
|
+
<span class="cline-any cline-neutral"> </span>
|
|
254
|
+
<span class="cline-any cline-neutral"> </span>
|
|
255
|
+
<span class="cline-any cline-no"> </span>
|
|
256
|
+
<span class="cline-any cline-no"> </span>
|
|
257
|
+
<span class="cline-any cline-neutral"> </span>
|
|
258
|
+
<span class="cline-any cline-neutral"> </span>
|
|
259
|
+
<span class="cline-any cline-yes">34x</span>
|
|
260
|
+
<span class="cline-any cline-neutral"> </span>
|
|
232
261
|
<span class="cline-any cline-yes">1x</span>
|
|
262
|
+
<span class="cline-any cline-neutral"> </span>
|
|
263
|
+
<span class="cline-any cline-yes">1x</span>
|
|
264
|
+
<span class="cline-any cline-no"> </span>
|
|
265
|
+
<span class="cline-any cline-neutral"> </span>
|
|
233
266
|
<span class="cline-any cline-yes">1x</span>
|
|
234
267
|
<span class="cline-any cline-yes">1x</span>
|
|
268
|
+
<span class="cline-any cline-no"> </span>
|
|
269
|
+
<span class="cline-any cline-neutral"> </span>
|
|
270
|
+
<span class="cline-any cline-yes">1x</span>
|
|
235
271
|
<span class="cline-any cline-neutral"> </span>
|
|
236
272
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../../db")
|
|
237
273
|
const internal = require("./internal")
|
|
@@ -316,9 +352,27 @@ exports.destroy = async function (ctx) {
|
|
|
316
352
|
ctx.body = { message: `Table ${tableId} deleted.` }
|
|
317
353
|
}
|
|
318
354
|
|
|
355
|
+
exports.bulkImport = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
|
|
356
|
+
const tableId = <span class="cstat-no" title="statement not covered" >ctx.params.tableId</span>
|
|
357
|
+
<span class="cstat-no" title="statement not covered" > await pickApi({ tableId }).bulkImport(ctx)</span>
|
|
358
|
+
// right now we don't trigger anything for bulk import because it
|
|
359
|
+
// can only be done in the builder, but in the future we may need to
|
|
360
|
+
// think about events for bulk items
|
|
361
|
+
<span class="cstat-no" title="statement not covered" > ctx.status = 200</span>
|
|
362
|
+
<span class="cstat-no" title="statement not covered" > ctx.body = { message: `Bulk rows created.` }</span>
|
|
363
|
+
}
|
|
364
|
+
|
|
319
365
|
exports.validateCSVSchema = async function (ctx) {
|
|
320
|
-
|
|
321
|
-
const
|
|
366
|
+
// tableId being specified means its an import to an existing table
|
|
367
|
+
const { csvString, schema = {}, tableId } = ctx.request.body
|
|
368
|
+
let existingTable
|
|
369
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (tableId) {
|
|
370
|
+
<span class="cstat-no" title="statement not covered" > existingTable = await getTable(ctx.appId, tableId)</span>
|
|
371
|
+
}
|
|
372
|
+
let result = await csvParser.parse(csvString, schema)
|
|
373
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (existingTable) {
|
|
374
|
+
<span class="cstat-no" title="statement not covered" > result = csvParser.updateSchema({ schema: result, existingTable })</span>
|
|
375
|
+
}
|
|
322
376
|
ctx.body = { schema: result }
|
|
323
377
|
}
|
|
324
378
|
</pre></td></tr></table></pre>
|
|
@@ -328,7 +382,7 @@ exports.validateCSVSchema = async function (ctx) {
|
|
|
328
382
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
329
383
|
Code coverage generated by
|
|
330
384
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
331
|
-
at
|
|
385
|
+
at Mon Nov 22 2021 10:51:12 GMT+0000 (Coordinated Universal Time)
|
|
332
386
|
</div>
|
|
333
387
|
</div>
|
|
334
388
|
<script src="../../../prettify.js"></script>
|
|
@@ -23,9 +23,9 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">74.24% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>49/66</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
@@ -37,16 +37,16 @@
|
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">60% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>3/
|
|
42
|
+
<span class='fraction'>3/5</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">77.77% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>49/63</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
Press <em>n</em> or <em>j</em> to go to the next uncovered block, <em>b</em>, <em>p</em> or <em>k</em> for the previous block.
|
|
56
56
|
</p>
|
|
57
57
|
</div>
|
|
58
|
-
<div class='status-line
|
|
58
|
+
<div class='status-line medium'></div>
|
|
59
59
|
<pre><table class="coverage">
|
|
60
60
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
61
61
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -199,10 +199,28 @@
|
|
|
199
199
|
<a name='L140'></a><a href='#L140'>140</a>
|
|
200
200
|
<a name='L141'></a><a href='#L141'>141</a>
|
|
201
201
|
<a name='L142'></a><a href='#L142'>142</a>
|
|
202
|
-
<a name='L143'></a><a href='#L143'>143</a
|
|
202
|
+
<a name='L143'></a><a href='#L143'>143</a>
|
|
203
|
+
<a name='L144'></a><a href='#L144'>144</a>
|
|
204
|
+
<a name='L145'></a><a href='#L145'>145</a>
|
|
205
|
+
<a name='L146'></a><a href='#L146'>146</a>
|
|
206
|
+
<a name='L147'></a><a href='#L147'>147</a>
|
|
207
|
+
<a name='L148'></a><a href='#L148'>148</a>
|
|
208
|
+
<a name='L149'></a><a href='#L149'>149</a>
|
|
209
|
+
<a name='L150'></a><a href='#L150'>150</a>
|
|
210
|
+
<a name='L151'></a><a href='#L151'>151</a>
|
|
211
|
+
<a name='L152'></a><a href='#L152'>152</a>
|
|
212
|
+
<a name='L153'></a><a href='#L153'>153</a>
|
|
213
|
+
<a name='L154'></a><a href='#L154'>154</a>
|
|
214
|
+
<a name='L155'></a><a href='#L155'>155</a>
|
|
215
|
+
<a name='L156'></a><a href='#L156'>156</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
|
|
203
216
|
<span class="cline-any cline-yes">34x</span>
|
|
204
217
|
<span class="cline-any cline-yes">34x</span>
|
|
205
218
|
<span class="cline-any cline-yes">34x</span>
|
|
219
|
+
<span class="cline-any cline-neutral"> </span>
|
|
220
|
+
<span class="cline-any cline-neutral"> </span>
|
|
221
|
+
<span class="cline-any cline-neutral"> </span>
|
|
222
|
+
<span class="cline-any cline-neutral"> </span>
|
|
223
|
+
<span class="cline-any cline-neutral"> </span>
|
|
206
224
|
<span class="cline-any cline-yes">34x</span>
|
|
207
225
|
<span class="cline-any cline-neutral"> </span>
|
|
208
226
|
<span class="cline-any cline-yes">34x</span>
|
|
@@ -341,11 +359,24 @@
|
|
|
341
359
|
<span class="cline-any cline-neutral"> </span>
|
|
342
360
|
<span class="cline-any cline-yes">2x</span>
|
|
343
361
|
<span class="cline-any cline-neutral"> </span>
|
|
362
|
+
<span class="cline-any cline-neutral"> </span>
|
|
363
|
+
<span class="cline-any cline-yes">34x</span>
|
|
364
|
+
<span class="cline-any cline-no"> </span>
|
|
365
|
+
<span class="cline-any cline-no"> </span>
|
|
366
|
+
<span class="cline-any cline-no"> </span>
|
|
367
|
+
<span class="cline-any cline-no"> </span>
|
|
368
|
+
<span class="cline-any cline-no"> </span>
|
|
369
|
+
<span class="cline-any cline-neutral"> </span>
|
|
344
370
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../../db")
|
|
345
371
|
const linkRows = require("../../../db/linkedRows")
|
|
346
372
|
const { getRowParams, generateTableID } = require("../../../db/utils")
|
|
347
373
|
const { FieldTypes } = require("../../../constants")
|
|
348
|
-
const {
|
|
374
|
+
const {
|
|
375
|
+
TableSaveFunctions,
|
|
376
|
+
hasTypeChanged,
|
|
377
|
+
getTable,
|
|
378
|
+
handleDataImport,
|
|
379
|
+
} = require("./utils")
|
|
349
380
|
|
|
350
381
|
exports.save = async function (ctx) {
|
|
351
382
|
const appId = ctx.appId
|
|
@@ -483,6 +514,14 @@ exports.destroy = async function (ctx) {
|
|
|
483
514
|
|
|
484
515
|
return tableToDelete
|
|
485
516
|
}
|
|
517
|
+
|
|
518
|
+
exports.bulkImport = <span class="fstat-no" title="function not covered" >as</span>ync function (ctx) {
|
|
519
|
+
const appId = <span class="cstat-no" title="statement not covered" >ctx.appId</span>
|
|
520
|
+
const table = <span class="cstat-no" title="statement not covered" >await getTable(appId, ctx.params.tableId)</span>
|
|
521
|
+
const { dataImport } = <span class="cstat-no" title="statement not covered" >ctx.request.body</span>
|
|
522
|
+
<span class="cstat-no" title="statement not covered" > await handleDataImport(appId, ctx.user, table, dataImport)</span>
|
|
523
|
+
<span class="cstat-no" title="statement not covered" > return table</span>
|
|
524
|
+
}
|
|
486
525
|
</pre></td></tr></table></pre>
|
|
487
526
|
|
|
488
527
|
<div class='push'></div><!-- for sticky footer -->
|
|
@@ -490,7 +529,7 @@ exports.destroy = async function (ctx) {
|
|
|
490
529
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
491
530
|
Code coverage generated by
|
|
492
531
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
493
|
-
at
|
|
532
|
+
at Mon Nov 22 2021 10:51:12 GMT+0000 (Coordinated Universal Time)
|
|
494
533
|
</div>
|
|
495
534
|
</div>
|
|
496
535
|
<script src="../../../prettify.js"></script>
|
|
@@ -23,14 +23,14 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">66.
|
|
26
|
+
<span class="strong">66.85% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>117/175</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">45.
|
|
33
|
+
<span class="strong">45.55% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
35
|
<span class='fraction'>41/90</span>
|
|
36
36
|
</div>
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">67.
|
|
47
|
+
<span class="strong">67.44% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>116/172</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -412,7 +412,11 @@
|
|
|
412
412
|
<a name='L353'></a><a href='#L353'>353</a>
|
|
413
413
|
<a name='L354'></a><a href='#L354'>354</a>
|
|
414
414
|
<a name='L355'></a><a href='#L355'>355</a>
|
|
415
|
-
<a name='L356'></a><a href='#L356'>356</a
|
|
415
|
+
<a name='L356'></a><a href='#L356'>356</a>
|
|
416
|
+
<a name='L357'></a><a href='#L357'>357</a>
|
|
417
|
+
<a name='L358'></a><a href='#L358'>358</a>
|
|
418
|
+
<a name='L359'></a><a href='#L359'>359</a>
|
|
419
|
+
<a name='L360'></a><a href='#L360'>360</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
|
|
416
420
|
<span class="cline-any cline-yes">34x</span>
|
|
417
421
|
<span class="cline-any cline-neutral"> </span>
|
|
418
422
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -487,11 +491,16 @@
|
|
|
487
491
|
<span class="cline-any cline-neutral"> </span>
|
|
488
492
|
<span class="cline-any cline-yes">34x</span>
|
|
489
493
|
<span class="cline-any cline-yes">100x</span>
|
|
490
|
-
<span class="cline-any cline-yes">
|
|
494
|
+
<span class="cline-any cline-yes">99x</span>
|
|
491
495
|
<span class="cline-any cline-neutral"> </span>
|
|
492
496
|
<span class="cline-any cline-yes">1x</span>
|
|
493
497
|
<span class="cline-any cline-neutral"> </span>
|
|
494
498
|
<span class="cline-any cline-yes">1x</span>
|
|
499
|
+
<span class="cline-any cline-neutral"> </span>
|
|
500
|
+
<span class="cline-any cline-neutral"> </span>
|
|
501
|
+
<span class="cline-any cline-neutral"> </span>
|
|
502
|
+
<span class="cline-any cline-neutral"> </span>
|
|
503
|
+
<span class="cline-any cline-yes">1x</span>
|
|
495
504
|
<span class="cline-any cline-yes">1x</span>
|
|
496
505
|
<span class="cline-any cline-yes">1x</span>
|
|
497
506
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -522,8 +531,7 @@
|
|
|
522
531
|
<span class="cline-any cline-yes">1x</span>
|
|
523
532
|
<span class="cline-any cline-yes">1x</span>
|
|
524
533
|
<span class="cline-any cline-yes">1x</span>
|
|
525
|
-
<span class="cline-any cline-
|
|
526
|
-
<span class="cline-any cline-yes">100x</span>
|
|
534
|
+
<span class="cline-any cline-yes">1x</span>
|
|
527
535
|
<span class="cline-any cline-neutral"> </span>
|
|
528
536
|
<span class="cline-any cline-neutral"> </span>
|
|
529
537
|
<span class="cline-any cline-yes">34x</span>
|
|
@@ -803,10 +811,10 @@ exports.checkForColumnUpdates = async (db, oldTable, updatedTable) => {
|
|
|
803
811
|
})
|
|
804
812
|
)
|
|
805
813
|
updatedRows = rows.rows.map(({ doc }) => {
|
|
806
|
-
|
|
814
|
+
if (rename) {
|
|
807
815
|
doc[rename.updated] = doc[rename.old]
|
|
808
816
|
delete doc[rename.old]
|
|
809
|
-
} else <span class="cstat-no" title="statement not covered" >if (deletedColumns.length !== 0) {</span>
|
|
817
|
+
} else <span class="cstat-no" title="statement not covered" ><span class="missing-if-branch" title="else path not taken" >E</span>if (deletedColumns.length !== 0) {</span>
|
|
810
818
|
<span class="cstat-no" title="statement not covered" > deletedColumns.forEach(<span class="fstat-no" title="function not covered" >co</span>lName => <span class="cstat-no" title="statement not covered" >delete doc[colName])</span></span>
|
|
811
819
|
}
|
|
812
820
|
return doc
|
|
@@ -841,43 +849,47 @@ exports.makeSureTableUpToDate = (table, tableToSave) => {
|
|
|
841
849
|
}
|
|
842
850
|
|
|
843
851
|
exports.handleDataImport = async (appId, user, table, dataImport) => {
|
|
852
|
+
if (!dataImport || !dataImport.csvString) {
|
|
853
|
+
return table
|
|
854
|
+
}
|
|
844
855
|
const db = new CouchDB(appId)
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
856
|
+
// Populate the table with rows imported from CSV in a bulk update
|
|
857
|
+
const data = await csvParser.transform({
|
|
858
|
+
...dataImport,
|
|
859
|
+
existingTable: table,
|
|
860
|
+
})
|
|
848
861
|
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
|
|
862
|
+
let finalData = []
|
|
863
|
+
for (let i = 0; i < data.length; i++) {
|
|
864
|
+
let row = data[i]
|
|
865
|
+
row._id = generateRowID(table._id)
|
|
866
|
+
row.tableId = table._id
|
|
867
|
+
const processed = inputProcessing(user, table, row, {
|
|
868
|
+
noAutoRelationships: true,
|
|
869
|
+
})
|
|
870
|
+
table = processed.table
|
|
871
|
+
row = processed.row
|
|
859
872
|
|
|
860
|
-
|
|
861
|
-
|
|
862
|
-
|
|
863
|
-
|
|
864
|
-
|
|
865
|
-
<span class="branch-2 cbranch-no" title="branch not covered" >
|
|
866
|
-
|
|
867
|
-
<span class="cstat-no" title="statement not covered" >
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
}
|
|
873
|
+
for (let [fieldName, schema] of Object.entries(table.schema)) {
|
|
874
|
+
// check whether the options need to be updated for inclusion as part of the data import
|
|
875
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (
|
|
876
|
+
schema.type === FieldTypes.OPTIONS &&
|
|
877
|
+
(<span class="branch-1 cbranch-no" title="branch not covered" >!schema.constraints.inclusion </span>||
|
|
878
|
+
<span class="branch-2 cbranch-no" title="branch not covered" > schema.constraints.inclusion.indexOf(row[fieldName]) === -1)</span>
|
|
879
|
+
) {
|
|
880
|
+
<span class="cstat-no" title="statement not covered" > schema.constraints.inclusion = [</span>
|
|
881
|
+
...schema.constraints.inclusion,
|
|
882
|
+
row[fieldName],
|
|
883
|
+
]
|
|
872
884
|
}
|
|
873
|
-
|
|
874
|
-
finalData.push(row)
|
|
875
885
|
}
|
|
876
886
|
|
|
877
|
-
|
|
878
|
-
let response = await db.put(table)
|
|
879
|
-
table._rev = response._rev
|
|
887
|
+
finalData.push(row)
|
|
880
888
|
}
|
|
889
|
+
|
|
890
|
+
await db.bulkDocs(finalData)
|
|
891
|
+
let response = await db.put(table)
|
|
892
|
+
table._rev = response._rev
|
|
881
893
|
return table
|
|
882
894
|
}
|
|
883
895
|
|
|
@@ -898,7 +910,7 @@ exports.handleSearchIndexes = async (appId, table) => {
|
|
|
898
910
|
)
|
|
899
911
|
|
|
900
912
|
// if index fields have changed, delete the original index
|
|
901
|
-
|
|
913
|
+
if (!isEqual(currentFields, table.indexes)) {
|
|
902
914
|
await db.deleteIndex(existingIndex)
|
|
903
915
|
// create/recreate the index with fields
|
|
904
916
|
await db.createIndex({
|
|
@@ -930,7 +942,7 @@ exports.checkStaticTables = table => {
|
|
|
930
942
|
if (table._id === InternalTables.USER_METADATA) {
|
|
931
943
|
for (let [key, schema] of Object.entries(USERS_TABLE_SCHEMA.schema)) {
|
|
932
944
|
// check if the schema exists on the table to be created/updated
|
|
933
|
-
|
|
945
|
+
if (table.schema[key] == null) {
|
|
934
946
|
table.schema[key] = schema
|
|
935
947
|
}
|
|
936
948
|
}
|
|
@@ -942,7 +954,7 @@ class TableSaveFunctions {
|
|
|
942
954
|
constructor({ db, ctx, oldTable, dataImport }) {
|
|
943
955
|
this.db = db
|
|
944
956
|
this.ctx = ctx
|
|
945
|
-
|
|
957
|
+
if (this.ctx && this.ctx.user) {
|
|
946
958
|
this.appId = this.ctx.appId
|
|
947
959
|
}
|
|
948
960
|
this.oldTable = oldTable
|
|
@@ -1129,7 +1141,7 @@ exports.TableSaveFunctions = TableSaveFunctions
|
|
|
1129
1141
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1130
1142
|
Code coverage generated by
|
|
1131
1143
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
1132
|
-
at
|
|
1144
|
+
at Mon Nov 22 2021 10:51:12 GMT+0000 (Coordinated Universal Time)
|
|
1133
1145
|
</div>
|
|
1134
1146
|
</div>
|
|
1135
1147
|
<script src="../../../prettify.js"></script>
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">71.
|
|
33
|
+
<span class="strong">71.42% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
35
|
<span class='fraction'>5/7</span>
|
|
36
36
|
</div>
|
|
@@ -155,10 +155,10 @@ exports.fetch = async function (ctx) {
|
|
|
155
155
|
<span class="cstat-no" title="statement not covered" > error = true</span>
|
|
156
156
|
}
|
|
157
157
|
// if there is an error, simply return no templates
|
|
158
|
-
|
|
158
|
+
if (!error && response) {
|
|
159
159
|
const json = await response.json()
|
|
160
160
|
ctx.body = Object.values(json.templates[type])
|
|
161
|
-
} else {
|
|
161
|
+
} else <span class="missing-if-branch" title="else path not taken" >E</span>{
|
|
162
162
|
<span class="cstat-no" title="statement not covered" > ctx.body = []</span>
|
|
163
163
|
}
|
|
164
164
|
}
|
|
@@ -181,7 +181,7 @@ exports.downloadTemplate = async function (ctx) {
|
|
|
181
181
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
182
182
|
Code coverage generated by
|
|
183
183
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
184
|
-
at
|
|
184
|
+
at Mon Nov 22 2021 10:51:12 GMT+0000 (Coordinated Universal Time)
|
|
185
185
|
</div>
|
|
186
186
|
</div>
|
|
187
187
|
<script src="../../prettify.js"></script>
|
|
@@ -23,16 +23,16 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">37.37% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>37/
|
|
28
|
+
<span class='fraction'>37/99</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
33
|
<span class="strong">0% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>0/
|
|
35
|
+
<span class='fraction'>0/31</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">37.75% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>37/
|
|
49
|
+
<span class='fraction'>37/98</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -249,7 +249,12 @@
|
|
|
249
249
|
<a name='L190'></a><a href='#L190'>190</a>
|
|
250
250
|
<a name='L191'></a><a href='#L191'>191</a>
|
|
251
251
|
<a name='L192'></a><a href='#L192'>192</a>
|
|
252
|
-
<a name='L193'></a><a href='#L193'>193</a
|
|
252
|
+
<a name='L193'></a><a href='#L193'>193</a>
|
|
253
|
+
<a name='L194'></a><a href='#L194'>194</a>
|
|
254
|
+
<a name='L195'></a><a href='#L195'>195</a>
|
|
255
|
+
<a name='L196'></a><a href='#L196'>196</a>
|
|
256
|
+
<a name='L197'></a><a href='#L197'>197</a>
|
|
257
|
+
<a name='L198'></a><a href='#L198'>198</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
|
|
253
258
|
<span class="cline-any cline-neutral"> </span>
|
|
254
259
|
<span class="cline-any cline-neutral"> </span>
|
|
255
260
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -352,6 +357,7 @@
|
|
|
352
357
|
<span class="cline-any cline-no"> </span>
|
|
353
358
|
<span class="cline-any cline-no"> </span>
|
|
354
359
|
<span class="cline-any cline-no"> </span>
|
|
360
|
+
<span class="cline-any cline-no"> </span>
|
|
355
361
|
<span class="cline-any cline-neutral"> </span>
|
|
356
362
|
<span class="cline-any cline-no"> </span>
|
|
357
363
|
<span class="cline-any cline-no"> </span>
|
|
@@ -370,13 +376,17 @@
|
|
|
370
376
|
<span class="cline-any cline-no"> </span>
|
|
371
377
|
<span class="cline-any cline-no"> </span>
|
|
372
378
|
<span class="cline-any cline-neutral"> </span>
|
|
379
|
+
<span class="cline-any cline-no"> </span>
|
|
380
|
+
<span class="cline-any cline-neutral"> </span>
|
|
381
|
+
<span class="cline-any cline-neutral"> </span>
|
|
373
382
|
<span class="cline-any cline-neutral"> </span>
|
|
374
383
|
<span class="cline-any cline-neutral"> </span>
|
|
375
384
|
<span class="cline-any cline-neutral"> </span>
|
|
376
385
|
<span class="cline-any cline-neutral"> </span>
|
|
377
|
-
<span class="cline-any cline-no"> </span>
|
|
378
386
|
<span class="cline-any cline-neutral"> </span>
|
|
379
387
|
<span class="cline-any cline-no"> </span>
|
|
388
|
+
<span class="cline-any cline-no"> </span>
|
|
389
|
+
<span class="cline-any cline-neutral"> </span>
|
|
380
390
|
<span class="cline-any cline-neutral"> </span>
|
|
381
391
|
<span class="cline-any cline-neutral"> </span>
|
|
382
392
|
<span class="cline-any cline-no"> </span>
|
|
@@ -540,6 +550,7 @@ exports.syncUser = <span class="fstat-no" title="function not covered" >as</span
|
|
|
540
550
|
.map(<span class="fstat-no" title="function not covered" >([</span>appId]) => <span class="cstat-no" title="statement not covered" >appId)</span>
|
|
541
551
|
}
|
|
542
552
|
<span class="cstat-no" title="statement not covered" > for (let prodAppId of prodAppIds) {</span>
|
|
553
|
+
const roleId = <span class="cstat-no" title="statement not covered" >roles[prodAppId]</span>
|
|
543
554
|
const devAppId = <span class="cstat-no" title="statement not covered" >getDevelopmentAppID(prodAppId)</span>
|
|
544
555
|
<span class="cstat-no" title="statement not covered" > for (let appId of [prodAppId, devAppId]) {</span>
|
|
545
556
|
<span class="cstat-no" title="statement not covered" > if (!(await doesDatabaseExist(appId))) {</span>
|
|
@@ -558,17 +569,21 @@ exports.syncUser = <span class="fstat-no" title="function not covered" >as</span
|
|
|
558
569
|
tableId: InternalTables.USER_METADATA,
|
|
559
570
|
}
|
|
560
571
|
}
|
|
561
|
-
|
|
562
|
-
<span class="cstat-no" title="statement not covered" > if (
|
|
563
|
-
<span class="cstat-no" title="statement not covered" >
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
|
|
568
|
-
|
|
569
|
-
|
|
572
|
+
// assign the roleId for the metadata doc
|
|
573
|
+
<span class="cstat-no" title="statement not covered" > if (roleId) {</span>
|
|
574
|
+
<span class="cstat-no" title="statement not covered" > metadata.roleId = roleId</span>
|
|
575
|
+
}
|
|
576
|
+
let combined = <span class="cstat-no" title="statement not covered" >!deleting</span>
|
|
577
|
+
? combineMetadataAndUser(user, metadata)
|
|
578
|
+
: {
|
|
579
|
+
...metadata,
|
|
580
|
+
status: UserStatus.INACTIVE,
|
|
581
|
+
metadata: BUILTIN_ROLE_IDS.PUBLIC,
|
|
582
|
+
}
|
|
583
|
+
// if its null then there was no updates required
|
|
584
|
+
<span class="cstat-no" title="statement not covered" > if (combined) {</span>
|
|
585
|
+
<span class="cstat-no" title="statement not covered" > await db.put(combined)</span>
|
|
570
586
|
}
|
|
571
|
-
<span class="cstat-no" title="statement not covered" > await db.put(combined)</span>
|
|
572
587
|
}
|
|
573
588
|
}
|
|
574
589
|
<span class="cstat-no" title="statement not covered" > ctx.body = {</span>
|
|
@@ -640,7 +655,7 @@ exports.findMetadata = async function (ctx) {
|
|
|
640
655
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
641
656
|
Code coverage generated by
|
|
642
657
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
643
|
-
at
|
|
658
|
+
at Mon Nov 22 2021 10:51:12 GMT+0000 (Coordinated Universal Time)
|
|
644
659
|
</div>
|
|
645
660
|
</div>
|
|
646
661
|
<script src="../../prettify.js"></script>
|
|
@@ -118,7 +118,7 @@ exports.json = function (headers, rows) {
|
|
|
118
118
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
119
119
|
Code coverage generated by
|
|
120
120
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
121
|
-
at
|
|
121
|
+
at Mon Nov 22 2021 10:51:12 GMT+0000 (Coordinated Universal Time)
|
|
122
122
|
</div>
|
|
123
123
|
</div>
|
|
124
124
|
<script src="../../../prettify.js"></script>
|