@budibase/server 2.6.19-alpha.50 → 2.6.19-alpha.52
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.6ebb99b3.css → index.a86e2071.css} +1 -1
- package/builder/assets/{index.a7585108.js → index.e9310876.js} +177 -177
- package/builder/index.html +2 -2
- package/dist/automation.js +44 -7
- package/dist/automation.js.map +3 -3
- package/dist/index.js +44 -8
- package/dist/index.js.map +3 -3
- package/dist/query.js +43 -6
- package/dist/query.js.map +3 -3
- package/package.json +8 -8
- package/src/integrations/googlesheets.ts +33 -9
- package/src/websockets/websocket.ts +0 -1
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@budibase/server",
|
|
3
3
|
"email": "hi@budibase.com",
|
|
4
|
-
"version": "2.6.19-alpha.
|
|
4
|
+
"version": "2.6.19-alpha.52",
|
|
5
5
|
"description": "Budibase Web Server",
|
|
6
6
|
"main": "src/index.ts",
|
|
7
7
|
"repository": {
|
|
@@ -46,12 +46,12 @@
|
|
|
46
46
|
"license": "GPL-3.0",
|
|
47
47
|
"dependencies": {
|
|
48
48
|
"@apidevtools/swagger-parser": "10.0.3",
|
|
49
|
-
"@budibase/backend-core": "2.6.19-alpha.
|
|
50
|
-
"@budibase/client": "2.6.19-alpha.
|
|
51
|
-
"@budibase/pro": "2.6.19-alpha.
|
|
52
|
-
"@budibase/shared-core": "2.6.19-alpha.
|
|
53
|
-
"@budibase/string-templates": "2.6.19-alpha.
|
|
54
|
-
"@budibase/types": "2.6.19-alpha.
|
|
49
|
+
"@budibase/backend-core": "2.6.19-alpha.52",
|
|
50
|
+
"@budibase/client": "2.6.19-alpha.52",
|
|
51
|
+
"@budibase/pro": "2.6.19-alpha.52",
|
|
52
|
+
"@budibase/shared-core": "2.6.19-alpha.52",
|
|
53
|
+
"@budibase/string-templates": "2.6.19-alpha.52",
|
|
54
|
+
"@budibase/types": "2.6.19-alpha.52",
|
|
55
55
|
"@bull-board/api": "3.7.0",
|
|
56
56
|
"@bull-board/koa": "3.9.4",
|
|
57
57
|
"@elastic/elasticsearch": "7.10.0",
|
|
@@ -195,5 +195,5 @@
|
|
|
195
195
|
}
|
|
196
196
|
}
|
|
197
197
|
},
|
|
198
|
-
"gitHead": "
|
|
198
|
+
"gitHead": "77a332e4cedddef2472c9aa5aa28e206ae560090"
|
|
199
199
|
}
|
|
@@ -457,22 +457,41 @@ class GoogleSheetsIntegration implements DatasourcePlus {
|
|
|
457
457
|
}) {
|
|
458
458
|
try {
|
|
459
459
|
await this.connect()
|
|
460
|
+
const hasFilters = dataFilters.hasFilters(query.filters)
|
|
461
|
+
const limit = query.paginate?.limit || 100
|
|
462
|
+
const page: number =
|
|
463
|
+
typeof query.paginate?.page === "number"
|
|
464
|
+
? query.paginate.page
|
|
465
|
+
: parseInt(query.paginate?.page || "1")
|
|
466
|
+
const offset = (page - 1) * limit
|
|
460
467
|
const sheet = this.client.sheetsByTitle[query.sheet]
|
|
461
468
|
let rows: GoogleSpreadsheetRow[] = []
|
|
462
|
-
if (query.paginate) {
|
|
463
|
-
const limit = query.paginate.limit || 100
|
|
464
|
-
let page: number =
|
|
465
|
-
typeof query.paginate.page === "number"
|
|
466
|
-
? query.paginate.page
|
|
467
|
-
: parseInt(query.paginate.page || "1")
|
|
469
|
+
if (query.paginate && !hasFilters) {
|
|
468
470
|
rows = await sheet.getRows({
|
|
469
471
|
limit,
|
|
470
|
-
offset
|
|
472
|
+
offset,
|
|
471
473
|
})
|
|
472
474
|
} else {
|
|
473
475
|
rows = await sheet.getRows()
|
|
474
476
|
}
|
|
475
|
-
|
|
477
|
+
// this is a special case - need to handle the _id, it doesn't exist
|
|
478
|
+
// we cannot edit the returned structure from google, it does not have
|
|
479
|
+
// setter functions and is immutable, easier to update the filters
|
|
480
|
+
// to look for the _rowNumber property rather than rowNumber
|
|
481
|
+
if (query.filters?.equal) {
|
|
482
|
+
const idFilterKeys = Object.keys(query.filters.equal).filter(filter =>
|
|
483
|
+
filter.includes(GOOGLE_SHEETS_PRIMARY_KEY)
|
|
484
|
+
)
|
|
485
|
+
for (let idFilterKey of idFilterKeys) {
|
|
486
|
+
const id = query.filters.equal[idFilterKey]
|
|
487
|
+
delete query.filters.equal[idFilterKey]
|
|
488
|
+
query.filters.equal[`_${GOOGLE_SHEETS_PRIMARY_KEY}`] = id
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
let filtered = dataFilters.runLuceneQuery(rows, query.filters)
|
|
492
|
+
if (hasFilters && query.paginate) {
|
|
493
|
+
filtered = filtered.slice(offset, offset + limit)
|
|
494
|
+
}
|
|
476
495
|
const headerValues = sheet.headerValues
|
|
477
496
|
let response = []
|
|
478
497
|
for (let row of filtered) {
|
|
@@ -535,7 +554,12 @@ class GoogleSheetsIntegration implements DatasourcePlus {
|
|
|
535
554
|
const row = rows[query.rowIndex]
|
|
536
555
|
if (row) {
|
|
537
556
|
await row.delete()
|
|
538
|
-
return [
|
|
557
|
+
return [
|
|
558
|
+
{
|
|
559
|
+
deleted: query.rowIndex,
|
|
560
|
+
[GOOGLE_SHEETS_PRIMARY_KEY]: query.rowIndex,
|
|
561
|
+
},
|
|
562
|
+
]
|
|
539
563
|
} else {
|
|
540
564
|
throw new Error("Row does not exist.")
|
|
541
565
|
}
|
|
@@ -92,7 +92,6 @@ export class BaseSocket {
|
|
|
92
92
|
this.io.on("connection", async socket => {
|
|
93
93
|
// Add built in handler for heartbeats
|
|
94
94
|
socket.on(SocketEvent.Heartbeat, async () => {
|
|
95
|
-
console.log(socket.data.email, "heartbeat received")
|
|
96
95
|
await this.extendSessionTTL(socket.data.sessionId)
|
|
97
96
|
})
|
|
98
97
|
|