@budibase/server 0.9.174 → 0.9.176-alpha.2
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/builder/assets/{index.7469e1e4.css → index.75ed4773.css} +1 -1
- package/builder/assets/{index.ba2741f9.js → index.d3780441.js} +34 -34
- package/builder/index.html +2 -2
- package/coverage/clover.xml +383 -207
- package/coverage/coverage-final.json +8 -6
- package/coverage/lcov-report/api/controllers/analytics.js.html +1 -1
- package/coverage/lcov-report/api/controllers/apikeys.js.html +1 -1
- package/coverage/lcov-report/api/controllers/application.js.html +1 -1
- package/coverage/lcov-report/api/controllers/auth.js.html +1 -1
- package/coverage/lcov-report/api/controllers/automation.js.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/api/controllers/datasource.js.html +120 -24
- package/coverage/lcov-report/api/controllers/dev.js.html +1 -1
- package/coverage/lcov-report/api/controllers/hosting.js.html +1 -1
- package/coverage/lcov-report/api/controllers/index.html +19 -19
- package/coverage/lcov-report/api/controllers/integration.js.html +1 -1
- package/coverage/lcov-report/api/controllers/layout.js.html +1 -1
- package/coverage/lcov-report/api/controllers/metadata.js.html +1 -1
- package/coverage/lcov-report/api/controllers/permission.js.html +1 -1
- package/coverage/lcov-report/api/controllers/query.js.html +9 -3
- package/coverage/lcov-report/api/controllers/role.js.html +1 -1
- package/coverage/lcov-report/api/controllers/routing.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/external.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/index.html +14 -14
- package/coverage/lcov-report/api/controllers/row/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/internal.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/internalSearch.js.html +1 -1
- package/coverage/lcov-report/api/controllers/row/utils.js.html +11 -32
- package/coverage/lcov-report/api/controllers/screen.js.html +1 -1
- package/coverage/lcov-report/api/controllers/script.js.html +1 -1
- package/coverage/lcov-report/api/controllers/table/external.js.html +908 -0
- package/coverage/lcov-report/api/controllers/table/index.html +59 -29
- package/coverage/lcov-report/api/controllers/table/index.js.html +52 -376
- package/coverage/lcov-report/api/controllers/table/internal.js.html +494 -0
- package/coverage/lcov-report/api/controllers/table/utils.js.html +70 -10
- package/coverage/lcov-report/api/controllers/templates.js.html +1 -1
- package/coverage/lcov-report/api/controllers/user.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/exporters.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.html +1 -1
- package/coverage/lcov-report/api/controllers/view/index.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/utils.js.html +1 -1
- package/coverage/lcov-report/api/controllers/view/viewBuilder.js.html +1 -1
- package/coverage/lcov-report/api/controllers/webhook.js.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/api/routes/hosting.js.html +1 -1
- package/coverage/lcov-report/api/routes/index.html +1 -1
- 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 +1 -1
- 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 +1 -1
- package/coverage/lcov-report/api/routes/table.js.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/automations/automationUtils.js.html +1 -1
- package/coverage/lcov-report/automations/bullboard.js.html +1 -1
- package/coverage/lcov-report/automations/index.html +1 -1
- package/coverage/lcov-report/automations/index.js.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/automations/steps/executeQuery.js.html +1 -1
- package/coverage/lcov-report/automations/steps/executeScript.js.html +1 -1
- package/coverage/lcov-report/automations/steps/filter.js.html +1 -1
- package/coverage/lcov-report/automations/steps/index.html +1 -1
- package/coverage/lcov-report/automations/steps/integromat.js.html +1 -1
- package/coverage/lcov-report/automations/steps/outgoingWebhook.js.html +1 -1
- package/coverage/lcov-report/automations/steps/queryRows.js.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/automations/steps/zapier.js.html +1 -1
- package/coverage/lcov-report/automations/thread.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/app.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/cron.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/index.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowDeleted.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowSaved.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/rowUpdated.js.html +1 -1
- package/coverage/lcov-report/automations/triggerInfo/webhook.js.html +1 -1
- package/coverage/lcov-report/automations/triggers.js.html +1 -1
- package/coverage/lcov-report/automations/utils.js.html +1 -1
- package/coverage/lcov-report/constants/index.html +5 -5
- package/coverage/lcov-report/constants/index.js.html +25 -4
- 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 +1 -1
- package/coverage/lcov-report/db/inMemoryView.js.html +1 -1
- package/coverage/lcov-report/db/index.html +1 -1
- package/coverage/lcov-report/db/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/LinkController.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.html +1 -1
- package/coverage/lcov-report/db/linkedRows/index.js.html +1 -1
- package/coverage/lcov-report/db/linkedRows/linkUtils.js.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/events/index.html +1 -1
- package/coverage/lcov-report/events/index.js.html +1 -1
- package/coverage/lcov-report/events/utils.js.html +1 -1
- package/coverage/lcov-report/index.html +38 -38
- 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 +1 -1
- package/coverage/lcov-report/middleware/authorized.js.html +1 -1
- package/coverage/lcov-report/middleware/builder.js.html +1 -1
- package/coverage/lcov-report/middleware/currentapp.js.html +1 -1
- package/coverage/lcov-report/middleware/index.html +1 -1
- package/coverage/lcov-report/middleware/joi-validator.js.html +1 -1
- package/coverage/lcov-report/middleware/resourceId.js.html +1 -1
- package/coverage/lcov-report/middleware/selfhost.js.html +1 -1
- package/coverage/lcov-report/middleware/usageQuota.js.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/utilities/global.js.html +1 -1
- package/coverage/lcov-report/utilities/index.html +1 -1
- package/coverage/lcov-report/utilities/index.js.html +1 -1
- package/coverage/lcov-report/utilities/queue/inMemoryQueue.js.html +1 -1
- package/coverage/lcov-report/utilities/queue/index.html +1 -1
- 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 +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/index.js.html +1 -1
- package/coverage/lcov-report/utilities/rowProcessor/utils.js.html +1 -1
- package/coverage/lcov-report/utilities/scriptRunner.js.html +1 -1
- package/coverage/lcov-report/utilities/security.js.html +1 -1
- 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 +1 -1
- package/coverage/lcov.info +652 -332
- package/dist/api/controllers/datasource.js +41 -14
- package/dist/api/controllers/query.js +3 -1
- package/dist/api/controllers/row/ExternalRequest.js +12 -10
- package/dist/api/controllers/row/utils.js +3 -11
- package/dist/api/controllers/table/external.js +222 -0
- package/dist/api/controllers/table/index.js +28 -121
- package/dist/api/controllers/table/internal.js +138 -0
- package/dist/api/controllers/table/utils.js +17 -0
- package/dist/constants/index.js +6 -0
- package/dist/definitions/datasource.js +3 -0
- package/dist/integrations/base/datasourcePlus.js +2 -0
- package/dist/integrations/base/sql.js +16 -11
- package/dist/integrations/base/sqlTable.js +141 -0
- package/dist/integrations/base/utils.js +30 -0
- package/dist/integrations/mysql.js +13 -7
- package/dist/integrations/postgres.js +18 -8
- package/dist/integrations/utils.js +21 -6
- package/dist/package.json +4 -4
- package/dist/tests/utilities/TestConfiguration.js +2 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/src/api/controllers/datasource.js +46 -14
- package/src/api/controllers/query.js +3 -1
- package/src/api/controllers/row/ExternalRequest.ts +12 -10
- package/src/api/controllers/row/utils.js +3 -10
- package/src/api/controllers/table/external.js +276 -0
- package/src/api/controllers/table/index.js +27 -135
- package/src/api/controllers/table/internal.js +138 -0
- package/src/api/controllers/table/utils.js +20 -0
- package/src/api/routes/tests/datasource.spec.js +2 -2
- package/src/api/routes/tests/query.spec.js +0 -1
- package/src/constants/index.js +7 -0
- package/src/definitions/common.ts +7 -1
- package/src/definitions/datasource.ts +5 -0
- package/src/integrations/base/datasourcePlus.ts +8 -0
- package/src/integrations/base/sql.ts +15 -16
- package/src/integrations/base/sqlTable.ts +167 -0
- package/src/integrations/base/utils.ts +19 -0
- package/src/integrations/mysql.ts +15 -9
- package/src/integrations/postgres.ts +19 -9
- package/src/integrations/utils.ts +22 -6
- package/src/tests/utilities/TestConfiguration.js +2 -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">91.3% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>42/46</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">78.95% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>15/19</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">77.78% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>7/
|
|
42
|
+
<span class='fraction'>7/9</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">93.18% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>41/44</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -145,264 +145,76 @@
|
|
|
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>
|
|
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>
|
|
167
|
-
<a name='L108'></a><a href='#L108'>108</a>
|
|
168
|
-
<a name='L109'></a><a href='#L109'>109</a>
|
|
169
|
-
<a name='L110'></a><a href='#L110'>110</a>
|
|
170
|
-
<a name='L111'></a><a href='#L111'>111</a>
|
|
171
|
-
<a name='L112'></a><a href='#L112'>112</a>
|
|
172
|
-
<a name='L113'></a><a href='#L113'>113</a>
|
|
173
|
-
<a name='L114'></a><a href='#L114'>114</a>
|
|
174
|
-
<a name='L115'></a><a href='#L115'>115</a>
|
|
175
|
-
<a name='L116'></a><a href='#L116'>116</a>
|
|
176
|
-
<a name='L117'></a><a href='#L117'>117</a>
|
|
177
|
-
<a name='L118'></a><a href='#L118'>118</a>
|
|
178
|
-
<a name='L119'></a><a href='#L119'>119</a>
|
|
179
|
-
<a name='L120'></a><a href='#L120'>120</a>
|
|
180
|
-
<a name='L121'></a><a href='#L121'>121</a>
|
|
181
|
-
<a name='L122'></a><a href='#L122'>122</a>
|
|
182
|
-
<a name='L123'></a><a href='#L123'>123</a>
|
|
183
|
-
<a name='L124'></a><a href='#L124'>124</a>
|
|
184
|
-
<a name='L125'></a><a href='#L125'>125</a>
|
|
185
|
-
<a name='L126'></a><a href='#L126'>126</a>
|
|
186
|
-
<a name='L127'></a><a href='#L127'>127</a>
|
|
187
|
-
<a name='L128'></a><a href='#L128'>128</a>
|
|
188
|
-
<a name='L129'></a><a href='#L129'>129</a>
|
|
189
|
-
<a name='L130'></a><a href='#L130'>130</a>
|
|
190
|
-
<a name='L131'></a><a href='#L131'>131</a>
|
|
191
|
-
<a name='L132'></a><a href='#L132'>132</a>
|
|
192
|
-
<a name='L133'></a><a href='#L133'>133</a>
|
|
193
|
-
<a name='L134'></a><a href='#L134'>134</a>
|
|
194
|
-
<a name='L135'></a><a href='#L135'>135</a>
|
|
195
|
-
<a name='L136'></a><a href='#L136'>136</a>
|
|
196
|
-
<a name='L137'></a><a href='#L137'>137</a>
|
|
197
|
-
<a name='L138'></a><a href='#L138'>138</a>
|
|
198
|
-
<a name='L139'></a><a href='#L139'>139</a>
|
|
199
|
-
<a name='L140'></a><a href='#L140'>140</a>
|
|
200
|
-
<a name='L141'></a><a href='#L141'>141</a>
|
|
201
|
-
<a name='L142'></a><a href='#L142'>142</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>
|
|
216
|
-
<a name='L157'></a><a href='#L157'>157</a>
|
|
217
|
-
<a name='L158'></a><a href='#L158'>158</a>
|
|
218
|
-
<a name='L159'></a><a href='#L159'>159</a>
|
|
219
|
-
<a name='L160'></a><a href='#L160'>160</a>
|
|
220
|
-
<a name='L161'></a><a href='#L161'>161</a>
|
|
221
|
-
<a name='L162'></a><a href='#L162'>162</a>
|
|
222
|
-
<a name='L163'></a><a href='#L163'>163</a>
|
|
223
|
-
<a name='L164'></a><a href='#L164'>164</a>
|
|
224
|
-
<a name='L165'></a><a href='#L165'>165</a>
|
|
225
|
-
<a name='L166'></a><a href='#L166'>166</a>
|
|
226
|
-
<a name='L167'></a><a href='#L167'>167</a>
|
|
227
|
-
<a name='L168'></a><a href='#L168'>168</a>
|
|
228
|
-
<a name='L169'></a><a href='#L169'>169</a>
|
|
229
|
-
<a name='L170'></a><a href='#L170'>170</a>
|
|
230
|
-
<a name='L171'></a><a href='#L171'>171</a>
|
|
231
|
-
<a name='L172'></a><a href='#L172'>172</a>
|
|
232
|
-
<a name='L173'></a><a href='#L173'>173</a>
|
|
233
|
-
<a name='L174'></a><a href='#L174'>174</a>
|
|
234
|
-
<a name='L175'></a><a href='#L175'>175</a>
|
|
235
|
-
<a name='L176'></a><a href='#L176'>176</a>
|
|
236
|
-
<a name='L177'></a><a href='#L177'>177</a>
|
|
237
|
-
<a name='L178'></a><a href='#L178'>178</a>
|
|
238
|
-
<a name='L179'></a><a href='#L179'>179</a>
|
|
239
|
-
<a name='L180'></a><a href='#L180'>180</a>
|
|
240
|
-
<a name='L181'></a><a href='#L181'>181</a>
|
|
241
|
-
<a name='L182'></a><a href='#L182'>182</a>
|
|
242
|
-
<a name='L183'></a><a href='#L183'>183</a>
|
|
243
|
-
<a name='L184'></a><a href='#L184'>184</a>
|
|
244
|
-
<a name='L185'></a><a href='#L185'>185</a>
|
|
245
|
-
<a name='L186'></a><a href='#L186'>186</a>
|
|
246
|
-
<a name='L187'></a><a href='#L187'>187</a>
|
|
247
|
-
<a name='L188'></a><a href='#L188'>188</a>
|
|
248
|
-
<a name='L189'></a><a href='#L189'>189</a>
|
|
249
|
-
<a name='L190'></a><a href='#L190'>190</a>
|
|
250
|
-
<a name='L191'></a><a href='#L191'>191</a>
|
|
251
|
-
<a name='L192'></a><a href='#L192'>192</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></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
|
|
148
|
+
<a name='L89'></a><a href='#L89'>89</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">34x</span>
|
|
257
149
|
<span class="cline-any cline-yes">34x</span>
|
|
258
150
|
<span class="cline-any cline-yes">34x</span>
|
|
259
|
-
<span class="cline-any cline-neutral"> </span>
|
|
260
|
-
<span class="cline-any cline-neutral"> </span>
|
|
261
|
-
<span class="cline-any cline-neutral"> </span>
|
|
262
|
-
<span class="cline-any cline-neutral"> </span>
|
|
263
|
-
<span class="cline-any cline-neutral"> </span>
|
|
264
|
-
<span class="cline-any cline-neutral"> </span>
|
|
265
151
|
<span class="cline-any cline-yes">34x</span>
|
|
266
152
|
<span class="cline-any cline-yes">34x</span>
|
|
267
|
-
<span class="cline-any cline-yes">34x</span>
|
|
268
|
-
<span class="cline-any cline-neutral"> </span>
|
|
269
|
-
<span class="cline-any cline-yes">34x</span>
|
|
270
|
-
<span class="cline-any cline-yes">1x</span>
|
|
271
|
-
<span class="cline-any cline-neutral"> </span>
|
|
272
|
-
<span class="cline-any cline-yes">1x</span>
|
|
273
|
-
<span class="cline-any cline-neutral"> </span>
|
|
274
|
-
<span class="cline-any cline-neutral"> </span>
|
|
275
|
-
<span class="cline-any cline-neutral"> </span>
|
|
276
|
-
<span class="cline-any cline-neutral"> </span>
|
|
277
|
-
<span class="cline-any cline-neutral"> </span>
|
|
278
|
-
<span class="cline-any cline-yes">2x</span>
|
|
279
|
-
<span class="cline-any cline-neutral"> </span>
|
|
280
|
-
<span class="cline-any cline-neutral"> </span>
|
|
281
|
-
<span class="cline-any cline-neutral"> </span>
|
|
282
|
-
<span class="cline-any cline-neutral"> </span>
|
|
283
|
-
<span class="cline-any cline-neutral"> </span>
|
|
284
|
-
<span class="cline-any cline-yes">1x</span>
|
|
285
|
-
<span class="cline-any cline-neutral"> </span>
|
|
286
|
-
<span class="cline-any cline-neutral"> </span>
|
|
287
|
-
<span class="cline-any cline-neutral"> </span>
|
|
288
|
-
<span class="cline-any cline-neutral"> </span>
|
|
289
|
-
<span class="cline-any cline-neutral"> </span>
|
|
290
|
-
<span class="cline-any cline-yes">1x</span>
|
|
291
|
-
<span class="cline-any cline-no"> </span>
|
|
292
|
-
<span class="cline-any cline-neutral"> </span>
|
|
293
153
|
<span class="cline-any cline-neutral"> </span>
|
|
294
154
|
<span class="cline-any cline-neutral"> </span>
|
|
295
155
|
<span class="cline-any cline-neutral"> </span>
|
|
296
156
|
<span class="cline-any cline-neutral"> </span>
|
|
297
|
-
<span class="cline-any cline-neutral"> </span>
|
|
298
|
-
<span class="cline-any cline-yes">1x</span>
|
|
299
|
-
<span class="cline-any cline-neutral"> </span>
|
|
300
|
-
<span class="cline-any cline-neutral"> </span>
|
|
301
157
|
<span class="cline-any cline-yes">34x</span>
|
|
302
|
-
<span class="cline-any cline-yes">19x</span>
|
|
303
|
-
<span class="cline-any cline-yes">19x</span>
|
|
304
|
-
<span class="cline-any cline-neutral"> </span>
|
|
305
|
-
<span class="cline-any cline-neutral"> </span>
|
|
306
158
|
<span class="cline-any cline-yes">34x</span>
|
|
307
|
-
<span class="cline-any cline-yes">99x</span>
|
|
308
|
-
<span class="cline-any cline-yes">99x</span>
|
|
309
|
-
<span class="cline-any cline-yes">99x</span>
|
|
310
|
-
<span class="cline-any cline-yes">99x</span>
|
|
311
|
-
<span class="cline-any cline-neutral"> </span>
|
|
312
|
-
<span class="cline-any cline-neutral"> </span>
|
|
313
|
-
<span class="cline-any cline-neutral"> </span>
|
|
314
|
-
<span class="cline-any cline-neutral"> </span>
|
|
315
|
-
<span class="cline-any cline-neutral"> </span>
|
|
316
|
-
<span class="cline-any cline-neutral"> </span>
|
|
317
159
|
<span class="cline-any cline-neutral"> </span>
|
|
318
160
|
<span class="cline-any cline-neutral"> </span>
|
|
161
|
+
<span class="cline-any cline-yes">101x</span>
|
|
319
162
|
<span class="cline-any cline-yes">99x</span>
|
|
320
|
-
<span class="cline-any cline-yes">4x</span>
|
|
321
|
-
<span class="cline-any cline-neutral"> </span>
|
|
322
|
-
<span class="cline-any cline-neutral"> </span>
|
|
323
|
-
<span class="cline-any cline-neutral"> </span>
|
|
324
|
-
<span class="cline-any cline-neutral"> </span>
|
|
325
|
-
<span class="cline-any cline-yes">99x</span>
|
|
326
|
-
<span class="cline-any cline-neutral"> </span>
|
|
327
|
-
<span class="cline-any cline-neutral"> </span>
|
|
328
|
-
<span class="cline-any cline-neutral"> </span>
|
|
329
|
-
<span class="cline-any cline-neutral"> </span>
|
|
330
|
-
<span class="cline-any cline-neutral"> </span>
|
|
331
|
-
<span class="cline-any cline-yes">99x</span>
|
|
332
|
-
<span class="cline-any cline-neutral"> </span>
|
|
333
|
-
<span class="cline-any cline-neutral"> </span>
|
|
334
163
|
<span class="cline-any cline-neutral"> </span>
|
|
335
|
-
<span class="cline-any cline-yes">
|
|
336
|
-
<span class="cline-any cline-yes">4x</span>
|
|
337
|
-
<span class="cline-any cline-yes">13x</span>
|
|
338
|
-
<span class="cline-any cline-yes">13x</span>
|
|
339
|
-
<span class="cline-any cline-yes">13x</span>
|
|
164
|
+
<span class="cline-any cline-yes">101x</span>
|
|
340
165
|
<span class="cline-any cline-no"> </span>
|
|
341
|
-
<span class="cline-any cline-
|
|
342
|
-
<span class="cline-any cline-yes">13x</span>
|
|
166
|
+
<span class="cline-any cline-yes">101x</span>
|
|
343
167
|
<span class="cline-any cline-no"> </span>
|
|
344
168
|
<span class="cline-any cline-neutral"> </span>
|
|
169
|
+
<span class="cline-any cline-yes">101x</span>
|
|
345
170
|
<span class="cline-any cline-neutral"> </span>
|
|
346
171
|
<span class="cline-any cline-neutral"> </span>
|
|
347
172
|
<span class="cline-any cline-neutral"> </span>
|
|
173
|
+
<span class="cline-any cline-yes">34x</span>
|
|
174
|
+
<span class="cline-any cline-yes">1x</span>
|
|
348
175
|
<span class="cline-any cline-neutral"> </span>
|
|
349
|
-
<span class="cline-any cline-yes">
|
|
176
|
+
<span class="cline-any cline-yes">1x</span>
|
|
350
177
|
<span class="cline-any cline-neutral"> </span>
|
|
351
178
|
<span class="cline-any cline-neutral"> </span>
|
|
352
179
|
<span class="cline-any cline-neutral"> </span>
|
|
353
180
|
<span class="cline-any cline-neutral"> </span>
|
|
354
181
|
<span class="cline-any cline-neutral"> </span>
|
|
182
|
+
<span class="cline-any cline-yes">2x</span>
|
|
355
183
|
<span class="cline-any cline-neutral"> </span>
|
|
356
184
|
<span class="cline-any cline-neutral"> </span>
|
|
357
185
|
<span class="cline-any cline-neutral"> </span>
|
|
358
186
|
<span class="cline-any cline-neutral"> </span>
|
|
359
187
|
<span class="cline-any cline-neutral"> </span>
|
|
188
|
+
<span class="cline-any cline-yes">1x</span>
|
|
360
189
|
<span class="cline-any cline-neutral"> </span>
|
|
361
190
|
<span class="cline-any cline-neutral"> </span>
|
|
362
|
-
<span class="cline-any cline-yes">99x</span>
|
|
363
191
|
<span class="cline-any cline-neutral"> </span>
|
|
364
192
|
<span class="cline-any cline-neutral"> </span>
|
|
365
|
-
<span class="cline-any cline-yes">99x</span>
|
|
366
|
-
<span class="cline-any cline-no"> </span>
|
|
367
|
-
<span class="cline-any cline-no"> </span>
|
|
368
193
|
<span class="cline-any cline-neutral"> </span>
|
|
194
|
+
<span class="cline-any cline-yes">1x</span>
|
|
369
195
|
<span class="cline-any cline-no"> </span>
|
|
370
|
-
<span class="cline-any cline-no"> </span>
|
|
371
|
-
<span class="cline-any cline-neutral"> </span>
|
|
372
|
-
<span class="cline-any cline-neutral"> </span>
|
|
373
|
-
<span class="cline-any cline-neutral"> </span>
|
|
374
|
-
<span class="cline-any cline-yes">99x</span>
|
|
375
|
-
<span class="cline-any cline-yes">99x</span>
|
|
376
196
|
<span class="cline-any cline-neutral"> </span>
|
|
377
197
|
<span class="cline-any cline-neutral"> </span>
|
|
378
198
|
<span class="cline-any cline-neutral"> </span>
|
|
379
199
|
<span class="cline-any cline-neutral"> </span>
|
|
380
200
|
<span class="cline-any cline-neutral"> </span>
|
|
381
201
|
<span class="cline-any cline-neutral"> </span>
|
|
382
|
-
<span class="cline-any cline-
|
|
383
|
-
<span class="cline-any cline-yes">99x</span>
|
|
384
|
-
<span class="cline-any cline-yes">4x</span>
|
|
385
|
-
<span class="cline-any cline-neutral"> </span>
|
|
386
|
-
<span class="cline-any cline-neutral"> </span>
|
|
387
|
-
<span class="cline-any cline-no"> </span>
|
|
202
|
+
<span class="cline-any cline-yes">1x</span>
|
|
388
203
|
<span class="cline-any cline-neutral"> </span>
|
|
389
204
|
<span class="cline-any cline-neutral"> </span>
|
|
205
|
+
<span class="cline-any cline-yes">34x</span>
|
|
206
|
+
<span class="cline-any cline-yes">19x</span>
|
|
207
|
+
<span class="cline-any cline-yes">19x</span>
|
|
390
208
|
<span class="cline-any cline-neutral"> </span>
|
|
391
209
|
<span class="cline-any cline-neutral"> </span>
|
|
210
|
+
<span class="cline-any cline-yes">34x</span>
|
|
392
211
|
<span class="cline-any cline-yes">99x</span>
|
|
393
212
|
<span class="cline-any cline-yes">99x</span>
|
|
394
|
-
<span class="cline-any cline-yes">1x</span>
|
|
395
|
-
<span class="cline-any cline-neutral"> </span>
|
|
396
213
|
<span class="cline-any cline-yes">99x</span>
|
|
397
214
|
<span class="cline-any cline-yes">99x</span>
|
|
398
|
-
<span class="cline-any cline-neutral"> </span>
|
|
399
215
|
<span class="cline-any cline-yes">99x</span>
|
|
400
|
-
<span class="cline-any cline-neutral"> </span>
|
|
401
216
|
<span class="cline-any cline-yes">99x</span>
|
|
402
217
|
<span class="cline-any cline-neutral"> </span>
|
|
403
|
-
<span class="cline-any cline-neutral"> </span>
|
|
404
|
-
<span class="cline-any cline-yes">99x</span>
|
|
405
|
-
<span class="cline-any cline-yes">99x</span>
|
|
406
218
|
<span class="cline-any cline-yes">99x</span>
|
|
407
219
|
<span class="cline-any cline-neutral"> </span>
|
|
408
220
|
<span class="cline-any cline-neutral"> </span>
|
|
@@ -410,34 +222,6 @@
|
|
|
410
222
|
<span class="cline-any cline-yes">2x</span>
|
|
411
223
|
<span class="cline-any cline-yes">2x</span>
|
|
412
224
|
<span class="cline-any cline-yes">2x</span>
|
|
413
|
-
<span class="cline-any cline-neutral"> </span>
|
|
414
|
-
<span class="cline-any cline-neutral"> </span>
|
|
415
|
-
<span class="cline-any cline-yes">2x</span>
|
|
416
|
-
<span class="cline-any cline-neutral"> </span>
|
|
417
|
-
<span class="cline-any cline-neutral"> </span>
|
|
418
|
-
<span class="cline-any cline-neutral"> </span>
|
|
419
|
-
<span class="cline-any cline-neutral"> </span>
|
|
420
|
-
<span class="cline-any cline-yes">2x</span>
|
|
421
|
-
<span class="cline-any cline-neutral"> </span>
|
|
422
|
-
<span class="cline-any cline-neutral"> </span>
|
|
423
|
-
<span class="cline-any cline-yes">2x</span>
|
|
424
|
-
<span class="cline-any cline-neutral"> </span>
|
|
425
|
-
<span class="cline-any cline-neutral"> </span>
|
|
426
|
-
<span class="cline-any cline-neutral"> </span>
|
|
427
|
-
<span class="cline-any cline-neutral"> </span>
|
|
428
|
-
<span class="cline-any cline-neutral"> </span>
|
|
429
|
-
<span class="cline-any cline-neutral"> </span>
|
|
430
|
-
<span class="cline-any cline-yes">2x</span>
|
|
431
|
-
<span class="cline-any cline-neutral"> </span>
|
|
432
|
-
<span class="cline-any cline-neutral"> </span>
|
|
433
|
-
<span class="cline-any cline-yes">2x</span>
|
|
434
|
-
<span class="cline-any cline-yes">2x</span>
|
|
435
|
-
<span class="cline-any cline-yes">2x</span>
|
|
436
|
-
<span class="cline-any cline-neutral"> </span>
|
|
437
|
-
<span class="cline-any cline-yes">2x</span>
|
|
438
|
-
<span class="cline-any cline-no"> </span>
|
|
439
|
-
<span class="cline-any cline-neutral"> </span>
|
|
440
|
-
<span class="cline-any cline-neutral"> </span>
|
|
441
225
|
<span class="cline-any cline-yes">2x</span>
|
|
442
226
|
<span class="cline-any cline-neutral"> </span>
|
|
443
227
|
<span class="cline-any cline-yes">2x</span>
|
|
@@ -450,18 +234,30 @@
|
|
|
450
234
|
<span class="cline-any cline-yes">1x</span>
|
|
451
235
|
<span class="cline-any cline-neutral"> </span>
|
|
452
236
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">const CouchDB = require("../../../db")
|
|
453
|
-
const
|
|
237
|
+
const internal = require("./internal")
|
|
238
|
+
const external = require("./external")
|
|
454
239
|
const csvParser = require("../../../utilities/csvParser")
|
|
240
|
+
const { isExternalTable } = require("../../../integrations/utils")
|
|
455
241
|
const {
|
|
456
|
-
getRowParams,
|
|
457
242
|
getTableParams,
|
|
458
|
-
generateTableID,
|
|
459
243
|
getDatasourceParams,
|
|
460
244
|
BudibaseInternalDB,
|
|
461
245
|
} = require("../../../db/utils")
|
|
462
|
-
const {
|
|
463
|
-
|
|
246
|
+
const { getTable } = require("./utils")
|
|
247
|
+
|
|
248
|
+
function pickApi({ tableId, table }) {
|
|
249
|
+
if (table && !tableId) {
|
|
250
|
+
tableId = table._id
|
|
251
|
+
}
|
|
252
|
+
<span class="missing-if-branch" title="if path not taken" >I</span>if (table && table.type === "external") {
|
|
253
|
+
<span class="cstat-no" title="statement not covered" > return external</span>
|
|
254
|
+
} else <span class="missing-if-branch" title="if path not taken" >I</span>if (tableId && isExternalTable(tableId)) {
|
|
255
|
+
<span class="cstat-no" title="statement not covered" > return external</span>
|
|
256
|
+
}
|
|
257
|
+
return internal
|
|
258
|
+
}
|
|
464
259
|
|
|
260
|
+
// covers both internal and external
|
|
465
261
|
exports.fetch = async function (ctx) {
|
|
466
262
|
const db = new CouchDB(ctx.appId)
|
|
467
263
|
|
|
@@ -501,143 +297,23 @@ exports.find = async function (ctx) {
|
|
|
501
297
|
|
|
502
298
|
exports.save = async function (ctx) {
|
|
503
299
|
const appId = ctx.appId
|
|
504
|
-
const
|
|
505
|
-
const
|
|
506
|
-
let tableToSave = {
|
|
507
|
-
type: "table",
|
|
508
|
-
_id: generateTableID(),
|
|
509
|
-
views: {},
|
|
510
|
-
...rest,
|
|
511
|
-
}
|
|
512
|
-
|
|
513
|
-
// if the table obj had an _id then it will have been retrieved
|
|
514
|
-
let oldTable
|
|
515
|
-
if (ctx.request.body && ctx.request.body._id) {
|
|
516
|
-
oldTable = await db.get(ctx.request.body._id)
|
|
517
|
-
}
|
|
518
|
-
|
|
519
|
-
// saving a table is a complex operation, involving many different steps, this
|
|
520
|
-
// has been broken out into a utility to make it more obvious/easier to manipulate
|
|
521
|
-
const tableSaveFunctions = new TableSaveFunctions({
|
|
522
|
-
db,
|
|
523
|
-
ctx,
|
|
524
|
-
oldTable,
|
|
525
|
-
dataImport,
|
|
526
|
-
})
|
|
527
|
-
tableToSave = await tableSaveFunctions.before(tableToSave)
|
|
528
|
-
|
|
529
|
-
// make sure that types don't change of a column, have to remove
|
|
530
|
-
// the column if you want to change the type
|
|
531
|
-
if (oldTable && oldTable.schema) {
|
|
532
|
-
for (let propKey of Object.keys(tableToSave.schema)) {
|
|
533
|
-
let column = tableToSave.schema[propKey]
|
|
534
|
-
let oldColumn = oldTable.schema[propKey]
|
|
535
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (oldColumn && oldColumn.type === "internal") {
|
|
536
|
-
<span class="cstat-no" title="statement not covered" > oldColumn.type = "auto"</span>
|
|
537
|
-
}
|
|
538
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (oldColumn && oldColumn.type !== column.type) {
|
|
539
|
-
<span class="cstat-no" title="statement not covered" > ctx.throw(400, "Cannot change the type of a column")</span>
|
|
540
|
-
}
|
|
541
|
-
}
|
|
542
|
-
}
|
|
543
|
-
|
|
544
|
-
// Don't rename if the name is the same
|
|
545
|
-
let { _rename } = tableToSave
|
|
546
|
-
/* istanbul ignore next */
|
|
547
|
-
if (_rename && _rename.old === _rename.updated) {
|
|
548
|
-
_rename = null
|
|
549
|
-
delete tableToSave._rename
|
|
550
|
-
}
|
|
551
|
-
|
|
552
|
-
// rename row fields when table column is renamed
|
|
553
|
-
/* istanbul ignore next */
|
|
554
|
-
if (_rename && tableToSave.schema[_rename.updated].type === FieldTypes.LINK) {
|
|
555
|
-
ctx.throw(400, "Cannot rename a linked column.")
|
|
556
|
-
}
|
|
557
|
-
|
|
558
|
-
tableToSave = await tableSaveFunctions.mid(tableToSave)
|
|
559
|
-
|
|
560
|
-
// update schema of non-statistics views when new columns are added
|
|
561
|
-
for (let view in tableToSave.views) {
|
|
562
|
-
const tableView = <span class="cstat-no" title="statement not covered" >tableToSave.views[view]</span>
|
|
563
|
-
<span class="cstat-no" title="statement not covered" > if (!tableView) <span class="cstat-no" title="statement not covered" >continue</span></span>
|
|
564
|
-
|
|
565
|
-
<span class="cstat-no" title="statement not covered" > if (tableView.schema.group || tableView.schema.field) <span class="cstat-no" title="statement not covered" >continue</span></span>
|
|
566
|
-
<span class="cstat-no" title="statement not covered" > tableView.schema = tableToSave.schema</span>
|
|
567
|
-
}
|
|
568
|
-
|
|
569
|
-
// update linked rows
|
|
570
|
-
try {
|
|
571
|
-
const linkResp = await linkRows.updateLinks({
|
|
572
|
-
appId,
|
|
573
|
-
eventType: oldTable
|
|
574
|
-
? linkRows.EventType.TABLE_UPDATED
|
|
575
|
-
: linkRows.EventType.TABLE_SAVE,
|
|
576
|
-
table: tableToSave,
|
|
577
|
-
oldTable: oldTable,
|
|
578
|
-
})
|
|
579
|
-
if (linkResp != null && linkResp._rev) {
|
|
580
|
-
tableToSave._rev = linkResp._rev
|
|
581
|
-
}
|
|
582
|
-
} catch (err) {
|
|
583
|
-
<span class="cstat-no" title="statement not covered" > ctx.throw(400, err)</span>
|
|
584
|
-
}
|
|
585
|
-
|
|
586
|
-
// don't perform any updates until relationships have been
|
|
587
|
-
// checked by the updateLinks function
|
|
588
|
-
const updatedRows = tableSaveFunctions.getUpdatedRows()
|
|
589
|
-
if (updatedRows && updatedRows.length !== 0) {
|
|
590
|
-
await db.bulkDocs(updatedRows)
|
|
591
|
-
}
|
|
592
|
-
const result = await db.put(tableToSave)
|
|
593
|
-
tableToSave._rev = result.rev
|
|
594
|
-
|
|
595
|
-
tableToSave = await tableSaveFunctions.after(tableToSave)
|
|
596
|
-
|
|
597
|
-
ctx.eventEmitter &&
|
|
598
|
-
ctx.eventEmitter.emitTable(`table:save`, appId, tableToSave)
|
|
599
|
-
|
|
300
|
+
const table = ctx.request.body
|
|
301
|
+
const savedTable = await pickApi({ table }).save(ctx)
|
|
600
302
|
ctx.status = 200
|
|
601
|
-
ctx.message = `Table ${
|
|
602
|
-
ctx.
|
|
303
|
+
ctx.message = `Table ${table.name} saved successfully.`
|
|
304
|
+
ctx.eventEmitter &&
|
|
305
|
+
ctx.eventEmitter.emitTable(`table:save`, appId, savedTable)
|
|
306
|
+
ctx.body = savedTable
|
|
603
307
|
}
|
|
604
308
|
|
|
605
309
|
exports.destroy = async function (ctx) {
|
|
606
310
|
const appId = ctx.appId
|
|
607
|
-
const
|
|
608
|
-
const
|
|
609
|
-
|
|
610
|
-
// Delete all rows for that table
|
|
611
|
-
const rows = await db.allDocs(
|
|
612
|
-
getRowParams(ctx.params.tableId, null, {
|
|
613
|
-
include_docs: true,
|
|
614
|
-
})
|
|
615
|
-
)
|
|
616
|
-
await db.bulkDocs(rows.rows.map(<span class="fstat-no" title="function not covered" >ro</span>w => (<span class="cstat-no" title="statement not covered" >{ ...row.doc, _deleted: true })</span>))
|
|
617
|
-
|
|
618
|
-
// update linked rows
|
|
619
|
-
await linkRows.updateLinks({
|
|
620
|
-
appId,
|
|
621
|
-
eventType: linkRows.EventType.TABLE_DELETE,
|
|
622
|
-
table: tableToDelete,
|
|
623
|
-
})
|
|
624
|
-
|
|
625
|
-
// don't remove the table itself until very end
|
|
626
|
-
await db.remove(tableToDelete)
|
|
627
|
-
|
|
628
|
-
// remove table search index
|
|
629
|
-
const currentIndexes = await db.getIndexes()
|
|
630
|
-
const existingIndex = currentIndexes.indexes.find(
|
|
631
|
-
existing => existing.name === `search:${ctx.params.tableId}`
|
|
632
|
-
)
|
|
633
|
-
<span class="missing-if-branch" title="if path not taken" >I</span>if (existingIndex) {
|
|
634
|
-
<span class="cstat-no" title="statement not covered" > await db.deleteIndex(existingIndex)</span>
|
|
635
|
-
}
|
|
636
|
-
|
|
311
|
+
const tableId = ctx.params.tableId
|
|
312
|
+
const deletedTable = await pickApi({ tableId }).destroy(ctx)
|
|
637
313
|
ctx.eventEmitter &&
|
|
638
|
-
ctx.eventEmitter.emitTable(`table:delete`, appId,
|
|
314
|
+
ctx.eventEmitter.emitTable(`table:delete`, appId, deletedTable)
|
|
639
315
|
ctx.status = 200
|
|
640
|
-
ctx.body = { message: `Table ${
|
|
316
|
+
ctx.body = { message: `Table ${tableId} deleted.` }
|
|
641
317
|
}
|
|
642
318
|
|
|
643
319
|
exports.validateCSVSchema = async function (ctx) {
|
|
@@ -652,7 +328,7 @@ exports.validateCSVSchema = async function (ctx) {
|
|
|
652
328
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
653
329
|
Code coverage generated by
|
|
654
330
|
<a href="https://istanbul.js.org/" target="_blank">istanbul</a>
|
|
655
|
-
at
|
|
331
|
+
at Thu Nov 04 2021 09:21:53 GMT+0000 (Coordinated Universal Time)
|
|
656
332
|
</div>
|
|
657
333
|
</div>
|
|
658
334
|
<script src="../../../prettify.js"></script>
|