@budibase/server 2.6.19-alpha.50 → 2.6.19-alpha.51

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/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.50",
4
+ "version": "2.6.19-alpha.51",
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",
50
- "@budibase/client": "2.6.19-alpha.50",
51
- "@budibase/pro": "2.6.19-alpha.50",
52
- "@budibase/shared-core": "2.6.19-alpha.50",
53
- "@budibase/string-templates": "2.6.19-alpha.50",
54
- "@budibase/types": "2.6.19-alpha.50",
49
+ "@budibase/backend-core": "2.6.19-alpha.51",
50
+ "@budibase/client": "2.6.19-alpha.51",
51
+ "@budibase/pro": "2.6.19-alpha.51",
52
+ "@budibase/shared-core": "2.6.19-alpha.51",
53
+ "@budibase/string-templates": "2.6.19-alpha.51",
54
+ "@budibase/types": "2.6.19-alpha.51",
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": "de26b630db38ac507efa157899271e91da34b18e"
198
+ "gitHead": "04fc1505cc0fd9102aeeeed1d3d98e34f470fec2"
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: (page - 1) * limit,
472
+ offset,
471
473
  })
472
474
  } else {
473
475
  rows = await sheet.getRows()
474
476
  }
475
- const filtered = dataFilters.runLuceneQuery(rows, query.filters)
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 [{ deleted: query.rowIndex }]
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
  }