From fb0c998d87a8b3c06c302af4b593ad3694bc9e32 Mon Sep 17 00:00:00 2001 From: Simon Hofer Date: Tue, 10 Mar 2026 12:29:22 +0100 Subject: [PATCH 1/2] chore: adjust sdk for using POST request Use "orderBy" instead of "sort" for POST query requests --- .../01-base/static/queriesWithFilter.ts.txt | 16 ++++++++++++---- .../static/queriesWithQueryLanguage.ts.txt | 16 ++++++++++------ src/generator/01-base/static/utils.ts.txt | 19 +++++++++++++++---- 3 files changed, 37 insertions(+), 14 deletions(-) diff --git a/src/generator/01-base/static/queriesWithFilter.ts.txt b/src/generator/01-base/static/queriesWithFilter.ts.txt index cfbdea3..263c086 100644 --- a/src/generator/01-base/static/queriesWithFilter.ts.txt +++ b/src/generator/01-base/static/queriesWithFilter.ts.txt @@ -169,12 +169,20 @@ const _some = ( const usePost = cfg?.usePost ?? globalConfig?.usePost const payload = { serializeNulls: query?.serializeNulls, - additionalProperties: query?.properties?.join(','), - properties: query?.select ? flattenSelect(query.select).join(',') : undefined, - includeReferencedEntities: query?.include ? Object.keys(query.include).join(',') : undefined, + additionalProperties: usePost ? query?.properties : query?.properties?.join(','), + properties: query?.select + ? usePost + ? flattenSelect(query.select) + : flattenSelect(query.select).join(',') + : undefined, + includeReferencedEntities: query?.include + ? usePost + ? Object.keys(query.include) + : Object.keys(query.include).join(',') + : undefined, ...flattenOrFilter(query?.or), ...flattenFilter(query?.filter), - ...flattenSort(query?.sort), + ...flattenSort(query?.sort, usePost), ...query?.params, ...query?.pagination } diff --git a/src/generator/01-base/static/queriesWithQueryLanguage.ts.txt b/src/generator/01-base/static/queriesWithQueryLanguage.ts.txt index eeaee53..95fee43 100644 --- a/src/generator/01-base/static/queriesWithQueryLanguage.ts.txt +++ b/src/generator/01-base/static/queriesWithQueryLanguage.ts.txt @@ -404,15 +404,19 @@ const _some = ( const usePost = cfg?.usePost ?? globalConfig?.usePost; const payload = { serializeNulls: query?.serializeNulls, - additionalProperties: query?.properties?.join(','), - properties: query?.select - ? flattenSelect(query.select).join(',') + additionalProperties: usePost ? query?.properties : query?.properties?.join(','), + properties: query?.select + ? usePost + ? flattenSelect(query.select) + : flattenSelect(query.select).join(',') : undefined, includeReferencedEntities: query?.include - ? Object.keys(query.include).join(',') - : undefined, + ? usePost + ? Object.keys(query.include) + : Object.keys(query.include).join(',') + : undefined, ...assembleFilterParam(query?.where), - ...flattenSort(query?.sort), + ...flattenSort(query?.sort, usePost), ...assembleOrderBy(query?.orderBy), ...query?.params, ...query?.pagination diff --git a/src/generator/01-base/static/utils.ts.txt b/src/generator/01-base/static/utils.ts.txt index 42b9a75..9cdba28 100644 --- a/src/generator/01-base/static/utils.ts.txt +++ b/src/generator/01-base/static/utils.ts.txt @@ -12,7 +12,8 @@ const flattenSelect = (obj: Select = {}): string[] => { return entries; }; -export const flattenSort = (obj: Sort[] = []): { sort?: string } => { +export const flattenSort = (obj: Sort[] = [], usePost?: boolean): +{ sort?: string } | { orderBy?: string[] } | Record => { const flatten = (obj: Sort, base = ''): string | undefined => { const [key, value] = Object.entries(obj ?? {})[0] ?? []; @@ -22,13 +23,23 @@ export const flattenSort = (obj: Sort[] = []): { sort?: string } => { if (typeof value === 'object') { return flatten(value, path ? `${path}.` : ''); } else if (['asc', 'desc'].includes(value)) { - return `${value === 'desc' ? '-' : ''}${path}`; + return `${!usePost && value === 'desc' ? '-' : ''}${path}${usePost && value === 'desc' ? ' desc' : ''}`; } } return undefined; }; - const sorts = obj.map((v) => flatten(v)).filter(Boolean); - return sorts.length ? { sort: sorts.join(',') } : {}; + + const sorts = obj.map((v) => flatten(v)).filter((x): x is string => typeof x === 'string'); + + if (!sorts.length) { + return {}; + } + + if (usePost) { + return { orderBy: sorts }; + } else { + return { sort: sorts.join(',') }; + } }; From fd95acdef767b526af24f3fa0dbe6ee64b14e131 Mon Sep 17 00:00:00 2001 From: Simon Hofer Date: Tue, 31 Mar 2026 15:24:04 +0200 Subject: [PATCH 2/2] chore: adjust sdk for using POST request Adapt new assembleOrderBy --- .../static/queriesWithQueryLanguage.ts.txt | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/src/generator/01-base/static/queriesWithQueryLanguage.ts.txt b/src/generator/01-base/static/queriesWithQueryLanguage.ts.txt index 95fee43..008d6a7 100644 --- a/src/generator/01-base/static/queriesWithQueryLanguage.ts.txt +++ b/src/generator/01-base/static/queriesWithQueryLanguage.ts.txt @@ -1,4 +1,4 @@ -const flattenOrderBy = (orderBy: OrderBy[] = []): string => { +const flattenOrderBy = (orderBy: OrderBy[] = []): string[] => { const applyModifiers = (property: string, modifier: { TRIM?: boolean; LOWER?: boolean; LENGTH?: boolean }) => { let result = property; @@ -48,7 +48,7 @@ const flattenOrderBy = (orderBy: OrderBy[] = []): string => { return `${property} ${sort}`; }; - return orderBy.map(flattenSingle).join(', '); + return orderBy.map(flattenSingle); } export type ComparisonOperator = @@ -345,12 +345,22 @@ const evaluateCaseExpression = ( : evaluateCaseExpression((exp.ELSE as CaseNode).CASE, setModifiers, nestedPaths) })`; -const assembleOrderBy = (orderBy: OrderBy[] = []): Record => { +const assembleOrderBy = (orderBy: OrderBy[] = [], usePost?: boolean): Record => { if(!orderBy.length) { return {} } - const flattedOrderBy = flattenOrderBy(orderBy); - return flattedOrderBy.length ? { orderBy: flattedOrderBy } : {}; + const flattedOrderByList = flattenOrderBy(orderBy); + + if(!flattedOrderByList.length) { + return {}; + } + + if(usePost) { + return { orderBy: flattedOrderByList }; + } + + const flattedOrderBy = flattedOrderByList.join(','); + return { orderBy: flattedOrderBy }; } const assembleFilterParam = ( @@ -417,7 +427,7 @@ const _some = ( : undefined, ...assembleFilterParam(query?.where), ...flattenSort(query?.sort, usePost), - ...assembleOrderBy(query?.orderBy), + ...assembleOrderBy(query?.orderBy, usePost), ...query?.params, ...query?.pagination };