From f3c82cbf389983ebdff6eda5f981993399b8191d Mon Sep 17 00:00:00 2001 From: Sam Rose Date: Fri, 14 Jun 2024 11:00:34 +0100 Subject: [PATCH] Ensure that sort order is always lowercased. --- .../server/src/automations/steps/queryRows.ts | 6 +----- packages/server/src/constants/index.ts | 5 ----- .../sqlQueryJson/basicFetchWithRelationships.json | 15 ++++----------- .../tests/sqlQueryJson/fetchManyToMany.json | 8 +++----- .../tests/sqlQueryJson/filterByRelationship.json | 8 +++----- .../sqlQueryJson/manyRelationshipFilters.json | 8 +++----- packages/server/src/sdk/app/rows/search.ts | 5 +++++ 7 files changed, 19 insertions(+), 36 deletions(-) diff --git a/packages/server/src/automations/steps/queryRows.ts b/packages/server/src/automations/steps/queryRows.ts index f3db410d8c..aa3efa5425 100644 --- a/packages/server/src/automations/steps/queryRows.ts +++ b/packages/server/src/automations/steps/queryRows.ts @@ -14,14 +14,10 @@ import { EmptyFilterOption, SearchFilters, Table, + SortOrder, } from "@budibase/types" import { db as dbCore } from "@budibase/backend-core" -enum SortOrder { - ASCENDING = "ascending", - DESCENDING = "descending", -} - const SortOrderPretty = { [SortOrder.ASCENDING]: "Ascending", [SortOrder.DESCENDING]: "Descending", diff --git a/packages/server/src/constants/index.ts b/packages/server/src/constants/index.ts index bc255ecb2a..60875b3daa 100644 --- a/packages/server/src/constants/index.ts +++ b/packages/server/src/constants/index.ts @@ -70,11 +70,6 @@ export enum DatasourceAuthTypes { GOOGLE = "google", } -export enum SortDirection { - ASCENDING = "ASCENDING", - DESCENDING = "DESCENDING", -} - export const USERS_TABLE_SCHEMA: Table = { _id: "ta_users", type: "table", diff --git a/packages/server/src/integrations/tests/sqlQueryJson/basicFetchWithRelationships.json b/packages/server/src/integrations/tests/sqlQueryJson/basicFetchWithRelationships.json index ba7fa4ef9b..aa2cab3afd 100644 --- a/packages/server/src/integrations/tests/sqlQueryJson/basicFetchWithRelationships.json +++ b/packages/server/src/integrations/tests/sqlQueryJson/basicFetchWithRelationships.json @@ -29,7 +29,7 @@ "filters": {}, "sort": { "firstname": { - "direction": "ASCENDING" + "direction": "ascending" } }, "paginate": { @@ -65,9 +65,7 @@ "table": { "type": "table", "_id": "datasource_plus_8066e56456784eb2a00129d31be5c3e7__persons", - "primary": [ - "personid" - ], + "primary": ["personid"], "name": "persons", "schema": { "year": { @@ -122,12 +120,7 @@ "name": "type", "constraints": { "presence": false, - "inclusion": [ - "support", - "designer", - "programmer", - "qa" - ] + "inclusion": ["support", "designer", "programmer", "qa"] } }, "city": { @@ -180,4 +173,4 @@ "persons": "a", "tasks": "b" } -} \ No newline at end of file +} diff --git a/packages/server/src/integrations/tests/sqlQueryJson/fetchManyToMany.json b/packages/server/src/integrations/tests/sqlQueryJson/fetchManyToMany.json index cec2fdb025..d81c8cf6d0 100644 --- a/packages/server/src/integrations/tests/sqlQueryJson/fetchManyToMany.json +++ b/packages/server/src/integrations/tests/sqlQueryJson/fetchManyToMany.json @@ -30,7 +30,7 @@ }, "sort": { "productname": { - "direction": "ASCENDING" + "direction": "ascending" } }, "paginate": { @@ -60,9 +60,7 @@ "table": { "type": "table", "_id": "datasource_plus_44a967caf37a435f84fe01cd6dfe8f81__products", - "primary": [ - "productid" - ], + "primary": ["productid"], "name": "products", "schema": { "productname": { @@ -106,4 +104,4 @@ "tasks": "b", "products_tasks": "c" } -} \ No newline at end of file +} diff --git a/packages/server/src/integrations/tests/sqlQueryJson/filterByRelationship.json b/packages/server/src/integrations/tests/sqlQueryJson/filterByRelationship.json index 399cb0f4d2..36010bf61d 100644 --- a/packages/server/src/integrations/tests/sqlQueryJson/filterByRelationship.json +++ b/packages/server/src/integrations/tests/sqlQueryJson/filterByRelationship.json @@ -23,7 +23,7 @@ }, "sort": { "productname": { - "direction": "ASCENDING" + "direction": "ascending" } }, "paginate": { @@ -50,9 +50,7 @@ "table": { "type": "table", "_id": "datasource_plus_8066e56456784eb2a00129d31be5c3e7__products", - "primary": [ - "productid" - ], + "primary": ["productid"], "name": "products", "schema": { "productname": { @@ -91,4 +89,4 @@ "primaryDisplay": "productname" } } -} \ No newline at end of file +} diff --git a/packages/server/src/integrations/tests/sqlQueryJson/manyRelationshipFilters.json b/packages/server/src/integrations/tests/sqlQueryJson/manyRelationshipFilters.json index 2b5d156546..01b85f433f 100644 --- a/packages/server/src/integrations/tests/sqlQueryJson/manyRelationshipFilters.json +++ b/packages/server/src/integrations/tests/sqlQueryJson/manyRelationshipFilters.json @@ -56,7 +56,7 @@ }, "sort": { "taskname": { - "direction": "ASCENDING" + "direction": "ascending" } }, "paginate": { @@ -106,9 +106,7 @@ "table": { "type": "table", "_id": "datasource_plus_44a967caf37a435f84fe01cd6dfe8f81__tasks", - "primary": [ - "taskid" - ], + "primary": ["taskid"], "name": "tasks", "schema": { "executorid": { @@ -199,4 +197,4 @@ "persons": "c", "products_tasks": "d" } -} \ No newline at end of file +} diff --git a/packages/server/src/sdk/app/rows/search.ts b/packages/server/src/sdk/app/rows/search.ts index e347a8657d..1dc0e37a0c 100644 --- a/packages/server/src/sdk/app/rows/search.ts +++ b/packages/server/src/sdk/app/rows/search.ts @@ -4,6 +4,7 @@ import { RowSearchParams, SearchFilters, SearchResponse, + SortOrder, } from "@budibase/types" import { isExternalTableID } from "../../../integrations/utils" import * as internal from "./search/internal" @@ -78,6 +79,10 @@ export async function search( } } + if (options.sortOrder) { + options.sortOrder = options.sortOrder.toLowerCase() as SortOrder + } + const table = await sdk.tables.getTable(options.tableId) options = searchInputMapping(table, options)