prostgles-server 4.2.53 → 4.2.55

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.
Files changed (53) hide show
  1. package/dist/DboBuilder/TableHandler/TableHandler.js +1 -1
  2. package/dist/DboBuilder/TableHandler/TableHandler.js.map +1 -1
  3. package/dist/DboBuilder/TableHandler/delete.js +1 -0
  4. package/dist/DboBuilder/TableHandler/delete.js.map +1 -1
  5. package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.d.ts.map +1 -1
  6. package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.js +1 -0
  7. package/dist/DboBuilder/TableHandler/runInsertUpdateQuery.js.map +1 -1
  8. package/dist/DboBuilder/TableHandler/update.d.ts.map +1 -1
  9. package/dist/DboBuilder/TableHandler/update.js +1 -0
  10. package/dist/DboBuilder/TableHandler/update.js.map +1 -1
  11. package/dist/DboBuilder/ViewHandler/ViewHandler.d.ts +1 -1
  12. package/dist/DboBuilder/ViewHandler/count.d.ts.map +1 -1
  13. package/dist/DboBuilder/ViewHandler/count.js +3 -2
  14. package/dist/DboBuilder/ViewHandler/count.js.map +1 -1
  15. package/dist/DboBuilder/ViewHandler/getExistsCondition.d.ts.map +1 -1
  16. package/dist/DboBuilder/ViewHandler/getExistsCondition.js +1 -0
  17. package/dist/DboBuilder/ViewHandler/getExistsCondition.js.map +1 -1
  18. package/dist/DboBuilder/ViewHandler/parseComplexFilter.d.ts +12 -0
  19. package/dist/DboBuilder/ViewHandler/parseComplexFilter.d.ts.map +1 -0
  20. package/dist/DboBuilder/ViewHandler/parseComplexFilter.js +66 -0
  21. package/dist/DboBuilder/ViewHandler/parseComplexFilter.js.map +1 -0
  22. package/dist/DboBuilder/ViewHandler/prepareWhere.d.ts +1 -1
  23. package/dist/DboBuilder/ViewHandler/prepareWhere.d.ts.map +1 -1
  24. package/dist/DboBuilder/ViewHandler/prepareWhere.js.map +1 -1
  25. package/dist/DboBuilder/getCondition.d.ts +1 -1
  26. package/dist/DboBuilder/getCondition.d.ts.map +1 -1
  27. package/dist/DboBuilder/getCondition.js +9 -52
  28. package/dist/DboBuilder/getCondition.js.map +1 -1
  29. package/dist/DboBuilder/getSubscribeRelatedTables.d.ts +1 -1
  30. package/dist/DboBuilder/getSubscribeRelatedTables.d.ts.map +1 -1
  31. package/dist/DboBuilder/getSubscribeRelatedTables.js +3 -1
  32. package/dist/DboBuilder/getSubscribeRelatedTables.js.map +1 -1
  33. package/dist/DboBuilder/parseUpdateRules.d.ts.map +1 -1
  34. package/dist/DboBuilder/parseUpdateRules.js +25 -4
  35. package/dist/DboBuilder/parseUpdateRules.js.map +1 -1
  36. package/dist/Filtering.d.ts +6 -0
  37. package/dist/Filtering.d.ts.map +1 -1
  38. package/dist/Filtering.js +36 -25
  39. package/dist/Filtering.js.map +1 -1
  40. package/lib/DboBuilder/TableHandler/TableHandler.ts +1 -1
  41. package/lib/DboBuilder/TableHandler/delete.ts +1 -1
  42. package/lib/DboBuilder/TableHandler/runInsertUpdateQuery.ts +1 -0
  43. package/lib/DboBuilder/TableHandler/update.ts +1 -0
  44. package/lib/DboBuilder/ViewHandler/count.ts +3 -2
  45. package/lib/DboBuilder/ViewHandler/getExistsCondition.ts +1 -0
  46. package/lib/DboBuilder/ViewHandler/parseComplexFilter.ts +82 -0
  47. package/lib/DboBuilder/ViewHandler/prepareWhere.ts +1 -3
  48. package/lib/DboBuilder/getCondition.ts +11 -57
  49. package/lib/DboBuilder/getSubscribeRelatedTables.ts +3 -1
  50. package/lib/DboBuilder/parseUpdateRules.ts +26 -4
  51. package/lib/Filtering.ts +40 -25
  52. package/package.json +1 -1
  53. package/tests/server/package-lock.json +1 -1
@@ -25,7 +25,14 @@ async function parseUpdateRules(filter, params, tableRules, localParams) {
25
25
  if (!fields) {
26
26
  throw ` Invalid update rule fo r ${this.name}. fields missing `;
27
27
  }
28
- finalUpdateFilter = (await this.prepareWhere({ filter, forcedFilter, filterFields, localParams, tableRule: tableRules })).filter;
28
+ finalUpdateFilter = (await this.prepareWhere({
29
+ select: undefined,
30
+ filter,
31
+ forcedFilter,
32
+ filterFields,
33
+ localParams,
34
+ tableRule: tableRules
35
+ })).filter;
29
36
  if (tableRules.update.dynamicFields?.length) {
30
37
  /**
31
38
  * dynamicFields.fields used to allow a custom list of fields for specific records
@@ -37,10 +44,24 @@ async function parseUpdateRules(filter, params, tableRules, localParams) {
37
44
  /**
38
45
  * Validated filter and fields
39
46
  */
40
- const condition = await this.prepareWhere({ filterFields: this.column_names, filter: dfRule.filter, localParams, tableRule: tableRules });
41
- if (!condition.where)
47
+ const condition = await this.prepareWhere({
48
+ select: undefined,
49
+ filterFields: this.column_names,
50
+ filter: dfRule.filter,
51
+ localParams,
52
+ tableRule: tableRules
53
+ });
54
+ if (!condition.where) {
42
55
  throw "dynamicFields.filter cannot be empty: " + JSON.stringify(dfRule);
43
- await this.validateViewRules({ fields: dfRule.fields, filterFields, returningFields, forcedFilter, dynamicFields: tableRules.update.dynamicFields, rule: "update" });
56
+ }
57
+ await this.validateViewRules({
58
+ fields: dfRule.fields,
59
+ filterFields,
60
+ returningFields,
61
+ forcedFilter,
62
+ dynamicFields: tableRules.update.dynamicFields,
63
+ rule: "update"
64
+ });
44
65
  await this.find(dfRule.filter, { limit: 0 });
45
66
  /** Ensure dynamicFields filters do not overlap */
46
67
  for await (const [_dfIndex, _dfRule] of tableRules.update.dynamicFields.entries()) {
@@ -1 +1 @@
1
- {"version":3,"file":"parseUpdateRules.js","sourceRoot":"","sources":["../../lib/DboBuilder/parseUpdateRules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parseUpdateRules.js","sourceRoot":"","sources":["../../lib/DboBuilder/parseUpdateRules.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  import { FullFilter } from "prostgles-types";
2
2
  import { SelectItem } from "./DboBuilder/QueryBuilder/QueryBuilder";
3
+ export declare const FILTER_OPERANDS: readonly ["$ilike", "$like", "$nilike", "$nlike", ...("@@" | "@>" | "<@" | "?" | "?|" | "?&" | "||" | "-" | "#-" | "@?")[], "=", "$eq", "<>", ">", "<", ">=", "<=", "$eq", "$ne", "$gt", "$gte", "$lte", "$in", "$nin"];
3
4
  /**
4
5
  * Parse a single filter
5
6
  * Ensure only single key objects reach this point
@@ -11,5 +12,10 @@ type ParseFilterItemArgs = {
11
12
  allowedColumnNames: string[];
12
13
  };
13
14
  export declare const parseFilterItem: (args: ParseFilterItemArgs) => string;
15
+ type ParseRightValOpts = {
16
+ expect?: "csv" | "array" | "json" | "jsonb";
17
+ selectItem: SelectItem | undefined;
18
+ };
19
+ export declare const parseFilterRightValue: (val: any, { expect, selectItem }: ParseRightValOpts) => string;
14
20
  export {};
15
21
  //# sourceMappingURL=Filtering.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Filtering.d.ts","sourceRoot":"","sources":["../lib/Filtering.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,UAAU,EAQX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAGpE;;;EAGE;AACF,KAAK,mBAAmB,GAAG;IACzB,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/B,MAAM,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;IACjC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,eAAe,SAAU,mBAAmB,KAAG,MAsW3D,CAAA"}
1
+ {"version":3,"file":"Filtering.d.ts","sourceRoot":"","sources":["../lib/Filtering.ts"],"names":[],"mappings":"AAEA,OAAO,EAIL,UAAU,EAQX,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAIpE,eAAO,MAAM,eAAe,yNAKlB,CAAC;AAEX;;;EAGE;AACF,KAAK,mBAAmB,GAAG;IACzB,MAAM,EAAE,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IAC/B,MAAM,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;IACjC,UAAU,EAAE,MAAM,GAAG,SAAS,CAAC;IAC/B,kBAAkB,EAAE,MAAM,EAAE,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,eAAe,SAAU,mBAAmB,KAAG,MAsV3D,CAAA;AAED,KAAK,iBAAiB,GAAG;IACvB,MAAM,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,CAAC;IAC5C,UAAU,EAAE,UAAU,GAAG,SAAS,CAAC;CACpC,CAAA;AACD,eAAO,MAAM,qBAAqB,QAAS,GAAG,0BAA0B,iBAAiB,WAkBxF,CAAA"}
package/dist/Filtering.js CHANGED
@@ -1,8 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.parseFilterItem = void 0;
3
+ exports.parseFilterRightValue = exports.parseFilterItem = exports.FILTER_OPERANDS = void 0;
4
4
  const prostgles_types_1 = require("prostgles-types");
5
5
  const DboBuilderTypes_1 = require("./DboBuilder/DboBuilderTypes");
6
+ exports.FILTER_OPERANDS = [
7
+ ...prostgles_types_1.TextFilterKeys,
8
+ ...prostgles_types_1.JsonbFilterKeys,
9
+ ...prostgles_types_1.CompareFilterKeys,
10
+ ...prostgles_types_1.CompareInFilterKeys
11
+ ];
6
12
  const parseFilterItem = (args) => {
7
13
  const { filter: _f, select, tableAlias, allowedColumnNames } = args;
8
14
  if (!_f || (0, prostgles_types_1.isEmpty)(_f))
@@ -146,29 +152,16 @@ const parseFilterItem = (args) => {
146
152
  }
147
153
  if (!leftQ)
148
154
  mErr("Internal error: leftQ missing?!");
149
- const parseRightVal = (val, expect = null) => {
150
- const checkIfArr = () => {
151
- if (!Array.isArray(val))
152
- return mErr("This type of filter/column expects an Array of items");
153
- };
154
- if (expect === "csv" || expect?.startsWith("json")) {
155
- checkIfArr();
156
- return DboBuilderTypes_1.pgp.as.format(`($1:${expect})`, [val]);
157
- }
158
- else if (expect === "array" || selItem && selItem.columnPGDataType && selItem.columnPGDataType === "ARRAY") {
159
- checkIfArr();
160
- return DboBuilderTypes_1.pgp.as.format(" ARRAY[$1:csv]", [val]);
161
- }
162
- return asValue(val);
155
+ const parseRightVal = (val, expect) => {
156
+ try {
157
+ return (0, exports.parseFilterRightValue)(val, { selectItem: selItem, expect });
158
+ }
159
+ catch (e) {
160
+ return mErr(e);
161
+ }
163
162
  };
164
163
  /* Matching sel item */
165
164
  if ((0, prostgles_types_1.isObject)(rightF)) {
166
- const OPERANDS = [
167
- ...prostgles_types_1.TextFilterKeys,
168
- ...prostgles_types_1.JsonbFilterKeys,
169
- ...prostgles_types_1.CompareFilterKeys,
170
- ...prostgles_types_1.CompareInFilterKeys
171
- ];
172
165
  const filterKeys = Object.keys(rightF);
173
166
  let filterOperand = filterKeys[0];
174
167
  /** JSON cannot be compared so we'll cast it to TEXT */
@@ -176,7 +169,7 @@ const parseFilterItem = (args) => {
176
169
  leftQ += "::TEXT ";
177
170
  }
178
171
  /** It's an object key which means it's an equality comparison against a json object */
179
- if (selItem?.column_udt_type?.startsWith("json") && !OPERANDS.includes(filterOperand)) {
172
+ if (selItem?.column_udt_type?.startsWith("json") && !exports.FILTER_OPERANDS.includes(filterOperand)) {
180
173
  return leftQ + " = " + parseRightVal(rightF);
181
174
  }
182
175
  let filterValue = rightF[filterOperand];
@@ -252,10 +245,10 @@ const parseFilterItem = (args) => {
252
245
  if (!filterValue?.length) {
253
246
  return " TRUE ";
254
247
  }
255
- const _fVal = filterValue.filter((v) => v !== null);
248
+ const nonNullFilterValues = filterValue.filter((v) => v !== null);
256
249
  let c1 = "", c2 = "";
257
- if (_fVal.length)
258
- c1 = leftQ + " NOT IN " + parseRightVal(_fVal, "csv");
250
+ if (nonNullFilterValues.length)
251
+ c1 = leftQ + " NOT IN " + parseRightVal(nonNullFilterValues, "csv");
259
252
  if (filterValue.includes(null))
260
253
  c2 = ` ${leftQ} IS NOT NULL `;
261
254
  return [c1, c2].filter(c => c).join(" AND ");
@@ -322,6 +315,24 @@ const parseFilterItem = (args) => {
322
315
  }
323
316
  };
324
317
  exports.parseFilterItem = parseFilterItem;
318
+ const parseFilterRightValue = (val, { expect, selectItem }) => {
319
+ const asValue = (v) => DboBuilderTypes_1.pgp.as.format("$1", [v]);
320
+ const checkIfArr = () => {
321
+ if (!Array.isArray(val)) {
322
+ throw "This type of filter/column expects an Array of items";
323
+ }
324
+ };
325
+ if (expect === "csv" || expect?.startsWith("json")) {
326
+ checkIfArr();
327
+ return DboBuilderTypes_1.pgp.as.format(`($1:${expect})`, [val]);
328
+ }
329
+ else if (expect === "array" || selectItem?.columnPGDataType === "ARRAY") {
330
+ checkIfArr();
331
+ return DboBuilderTypes_1.pgp.as.format(" ARRAY[$1:csv]", [val]);
332
+ }
333
+ return asValue(val);
334
+ };
335
+ exports.parseFilterRightValue = parseFilterRightValue;
325
336
  // ensure pgp is not NULL!!!
326
337
  // const asValue = v => v;// pgp.as.value;
327
338
  // const filters: FilterSpec[] = [
@@ -1 +1 @@
1
- {"version":3,"file":"Filtering.js","sourceRoot":"","sources":["../lib/Filtering.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Filtering.js","sourceRoot":"","sources":["../lib/Filtering.ts"],"names":[],"mappings":"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"}
@@ -149,7 +149,7 @@ export class TableHandler extends ViewHandler {
149
149
  .then(async _isValid => {
150
150
 
151
151
  const { filterFields, forcedFilter } = table_rules?.select || {};
152
- const condition = (await this.prepareWhere({ filter, forcedFilter, filterFields, addWhere: false, localParams, tableRule: table_rules })).where;
152
+ const condition = (await this.prepareWhere({ select: undefined, filter, forcedFilter, filterFields, addWhere: false, localParams, tableRule: table_rules })).where;
153
153
 
154
154
  const pubSubManager = await this.dboBuilder.getPubSubManager();
155
155
  return pubSubManager.addSync({
@@ -38,7 +38,6 @@ export async function _delete(this: TableHandler, filter?: Filter, params?: Dele
38
38
  }
39
39
  }
40
40
 
41
-
42
41
  if (params) {
43
42
  const good_paramsObj: Record<keyof DeleteParams, 1> = { returning: 1, returnType: 1 };
44
43
  const good_params = Object.keys(good_paramsObj);
@@ -49,6 +48,7 @@ export async function _delete(this: TableHandler, filter?: Filter, params?: Dele
49
48
  let queryType: keyof pgPromise.ITask<{}> = 'none';
50
49
  let queryWithoutRLS = `DELETE FROM ${this.escapedName} `;
51
50
  const filterOpts = (await this.prepareWhere({
51
+ select: undefined,
52
52
  filter,
53
53
  forcedFilter,
54
54
  filterFields,
@@ -34,6 +34,7 @@ export const runInsertUpdateQuery = async (args: RunInsertUpdateQueryArgs) => {
34
34
  let checkCondition = "WHERE FALSE";
35
35
  if(checkFilter){
36
36
  const checkCond = await tableHandler.prepareWhere({
37
+ select: undefined,
37
38
  localParams: undefined,
38
39
  tableRule: undefined,
39
40
  filter: checkFilter,
@@ -55,6 +55,7 @@ export async function update(this: TableHandler, filter: Filter, _newData: AnyOb
55
55
  });
56
56
 
57
57
  const updateFilter = await this.prepareWhere({
58
+ select: undefined,
58
59
  filter,
59
60
  forcedFilter,
60
61
  filterFields,
@@ -6,13 +6,14 @@ import { TableRule } from "../../PublishParser/publishTypesAndUtils";
6
6
 
7
7
  export async function count(this: ViewHandler, _filter?: Filter, selectParams?: SelectParams, _param3_unused?: undefined, table_rules?: TableRule, localParams?: LocalParams): Promise<number> {
8
8
  const filter = _filter || {};
9
+ const { limit: _limit, ...selectParamsWithoutLimit } = selectParams ?? {};
9
10
  try {
10
11
  await this._log({ command: "count", localParams, data: { filter } });
11
- return await this.find(filter, { select: selectParams?.select ?? "", limit: 0 }, undefined, table_rules, localParams)
12
+ return await this.find(filter, { select: selectParamsWithoutLimit?.select ?? "", limit: 0 }, undefined, table_rules, localParams)
12
13
  .then(async _allowed => {
13
14
  const findQuery = await this.find(
14
15
  filter,
15
- selectParams,
16
+ selectParamsWithoutLimit,
16
17
  undefined,
17
18
  table_rules,
18
19
  { ...localParams, returnQuery: "noRLS", bypassLimit: true }
@@ -42,6 +42,7 @@ export async function getExistsCondition(this: ViewHandler, eConfig: ExistsFilte
42
42
 
43
43
  const tableHandler = this.dboBuilder.dbo[targetTable] as TableHandler
44
44
  const finalWhere = (await tableHandler.prepareWhere({
45
+ select: undefined,
45
46
  filter: targetTableFilter,
46
47
  forcedFilter,
47
48
  filterFields,
@@ -0,0 +1,82 @@
1
+ import { AnyObject, isObject } from "prostgles-types";
2
+ import { FILTER_OPERANDS, parseFilterRightValue } from "../../Filtering";
3
+ import { FUNCTIONS, parseFunction } from "../QueryBuilder/Functions";
4
+ import { asNameAlias, parseFunctionObject } from "../QueryBuilder/QueryBuilder";
5
+ import { TableSchemaColumn } from "../DboBuilderTypes";
6
+
7
+ const allowedComparators = FILTER_OPERANDS; //[">", "<", "=", "<=", ">=", "<>", "!="]
8
+ type Args = {
9
+ filter: AnyObject;
10
+ complexFilterKey: string;
11
+ tableAlias: string | undefined;
12
+ allowed_colnames: string[];
13
+ columns: TableSchemaColumn[];
14
+ }
15
+
16
+ /* Parse complex filters
17
+ {
18
+ $filter: [
19
+ { $func: [...] },
20
+ "=",
21
+ value | { $func: [..] }
22
+ ]
23
+ }
24
+ */
25
+ export const parseComplexFilter = ({
26
+ filter,
27
+ complexFilterKey,
28
+ tableAlias,
29
+ allowed_colnames,
30
+ columns,
31
+ }: Args) => {
32
+
33
+ /**
34
+ * { $funcName: [arg1, arg2] }
35
+ * { $column: "column_name" }
36
+ */
37
+ const getFuncQuery = (funcData: AnyObject): string => {
38
+ if(isObject(funcData) && "$column" in funcData){
39
+ const column = funcData["$column"]
40
+ if(typeof column !== "string"){
41
+ throw `expecting: \n { $column: "column_name" } received:\n ${JSON.stringify(funcData)}`;
42
+ }
43
+ if(!allowed_colnames.includes(column)){
44
+ throw `Dissallowed or Invalid column ${column}. Allowed columns: ${allowed_colnames}`;
45
+ }
46
+ return asNameAlias(column, tableAlias)
47
+ }
48
+ const { funcName, args } = parseFunctionObject(funcData);
49
+ const funcDef = parseFunction({ func: funcName, args, functions: FUNCTIONS, allowedFields: allowed_colnames });
50
+ return funcDef.getQuery({ args, tableAlias, allColumns: columns, allowedFields: allowed_colnames });
51
+ }
52
+
53
+ const complexFilter = filter[complexFilterKey];
54
+ if (!Array.isArray(complexFilter)) {
55
+ throw `Invalid $filter. Must contain an array of at least element but got: ${JSON.stringify(complexFilter)} `
56
+ }
57
+
58
+ const [leftFilter, comparator, rightFilterOrValue] = complexFilter;
59
+
60
+ const leftVal = getFuncQuery(leftFilter);
61
+ let result = leftVal;
62
+ if (comparator) {
63
+ if (!allowedComparators.includes(comparator)) {
64
+ throw `Invalid $filter. comparator ${JSON.stringify(comparator)} is not valid. Expecting one of: ${allowedComparators}`;
65
+ }
66
+ if (!rightFilterOrValue) {
67
+ throw "Invalid $filter. Expecting a value or function after the comparator";
68
+ }
69
+ const rightVal = isObject(rightFilterOrValue) ?
70
+ getFuncQuery(rightFilterOrValue) :
71
+ parseFilterRightValue(rightFilterOrValue, {
72
+ selectItem: undefined,
73
+ expect: ["$in", "$nin"].includes(comparator)? "array" : undefined
74
+ });
75
+ if (leftVal === rightVal){
76
+ throw "Invalid $filter. Cannot compare two identical function signatures: " + JSON.stringify(leftFilter);
77
+ }
78
+ result += ` ${comparator} ${rightVal}`;
79
+ }
80
+
81
+ return result;
82
+ }
@@ -7,7 +7,7 @@ import { getCondition } from "../getCondition";
7
7
 
8
8
  type PrepareWhereParams = {
9
9
  filter?: Filter;
10
- select?: SelectItem[];
10
+ select: SelectItem[] | undefined;
11
11
  forcedFilter?: AnyObject;
12
12
  filterFields?: FieldFilter;
13
13
  addWhere?: boolean;
@@ -69,8 +69,6 @@ export async function prepareWhere(this: ViewHandler, params: PrepareWhereParams
69
69
  return result;
70
70
  }
71
71
 
72
-
73
-
74
72
  /* A forced filter condition will not check if the existsJoined filter tables have been published */
75
73
  const forcedFilterCond = forcedFilter ? await parseFullFilter(forcedFilter, null, true) : undefined;
76
74
  const filterCond = await parseFullFilter(filter, null, false);
@@ -1,6 +1,6 @@
1
1
  import { AnyObject, isObject, pickKeys } from "prostgles-types";
2
2
  import { ExistsFilterConfig, LocalParams, pgp } from "./DboBuilder";
3
- import { parseFilterItem } from "../Filtering";
3
+ import { FILTER_OPERANDS, parseFilterItem } from "../Filtering";
4
4
  import { asValue } from "../PubSubManager/PubSubManager";
5
5
  import { TableRule } from "../PublishParser/PublishParser";
6
6
  import { FUNCTIONS, parseFunction } from "./QueryBuilder/Functions";
@@ -8,6 +8,7 @@ import { SelectItem, asNameAlias, parseFunctionObject } from "./QueryBuilder/Que
8
8
  import { ViewHandler } from "./ViewHandler/ViewHandler";
9
9
  import { getExistsCondition } from "./ViewHandler/getExistsCondition";
10
10
  import { getExistsFilters } from "./ViewHandler/getExistsFilters";
11
+ import { parseComplexFilter } from "./ViewHandler/parseComplexFilter";
11
12
 
12
13
  const FILTER_FUNCS = FUNCTIONS.filter(f => f.canBeUsedForFilter);
13
14
 
@@ -21,7 +22,7 @@ export async function getCondition(
21
22
  this: ViewHandler,
22
23
  params: {
23
24
  filter: any,
24
- select?: SelectItem[],
25
+ select: SelectItem[] | undefined,
25
26
  allowed_colnames: string[],
26
27
  tableAlias?: string,
27
28
  localParams?: LocalParams,
@@ -115,67 +116,20 @@ export async function getCondition(
115
116
  allowedSelect = allowedSelect.concat(
116
117
  remainingNonSelectedColumns
117
118
  );
118
-
119
- /* Parse complex filters
120
- {
121
- $filter: [
122
- { $func: [...] },
123
- "=",
124
- value | { $func: [..] }
125
- ]
126
- }
127
- */
128
119
  const complexFilters: string[] = [];
129
120
  const complexFilterKey = "$filter";
130
- const allowedComparators = [">", "<", "=", "<=", ">=", "<>", "!="]
131
121
  if (complexFilterKey in filter) {
132
122
 
133
- /**
134
- * { $funcName: [arg1, arg2] }
135
- * { $column: "column_name" }
136
- */
137
- const getFuncQuery = (funcData: AnyObject): string => {
138
- if(isObject(funcData) && "$column" in funcData){
139
- const column = funcData["$column"]
140
- if(typeof column !== "string"){
141
- throw `expecting: \n { $column: "column_name" } received:\n ${JSON.stringify(funcData)}`;
142
- }
143
- if(!allowed_colnames.includes(column)){
144
- throw `Dissallowed or Invalid column ${column}. Allowed columns: ${allowed_colnames}`;
145
- }
146
- return asNameAlias(column, tableAlias)
147
- }
148
- const { funcName, args } = parseFunctionObject(funcData);
149
- const funcDef = parseFunction({ func: funcName, args, functions: FUNCTIONS, allowedFields: allowed_colnames });
150
- return funcDef.getQuery({ args, tableAlias, allColumns: this.columns, allowedFields: allowed_colnames });
151
- }
152
-
153
- const complexFilter = filter[complexFilterKey];
154
- if (!Array.isArray(complexFilter)) {
155
- throw `Invalid $filter. Must contain an array of at least element but got: ${JSON.stringify(complexFilter)} `
156
- }
157
-
158
- const [leftFilter, comparator, rightFilterOrValue] = complexFilter;
159
-
160
- const leftVal = getFuncQuery(leftFilter);
161
- let result = leftVal;
162
- if (comparator) {
163
- if (!allowedComparators.includes(comparator)) {
164
- throw `Invalid $filter. comparator ${JSON.stringify(comparator)} is not valid. Expecting one of: ${allowedComparators}`;
165
- }
166
- if (!rightFilterOrValue) {
167
- throw "Invalid $filter. Expecting a value or function after the comparator";
168
- }
169
- const rightVal = isObject(rightFilterOrValue) ? getFuncQuery(rightFilterOrValue) : asValue(rightFilterOrValue);
170
- if (leftVal === rightVal){
171
- throw "Invalid $filter. Cannot compare two identical function signatures: " + JSON.stringify(leftFilter);
172
- }
173
- result += ` ${comparator} ${rightVal}`;
174
- }
175
- complexFilters.push(result);
123
+ const complexFilterCondition = parseComplexFilter({
124
+ filter,
125
+ complexFilterKey,
126
+ tableAlias,
127
+ allowed_colnames,
128
+ columns: this.columns,
129
+ });
130
+ complexFilters.push(complexFilterCondition);
176
131
  }
177
132
 
178
-
179
133
  /* Parse join filters
180
134
  { $joinFilter: { $ST_DWithin: [table.col, foreignTable.col, distance] }
181
135
  will make an exists filter
@@ -12,7 +12,7 @@ type Args = {
12
12
  localParams: LocalParams | undefined;
13
13
  newQuery: NewQuery;
14
14
  }
15
- export async function getSubscribeRelatedTables(this: ViewHandler, { selectParams, filter, localParams, table_rules, newQuery }: Args){
15
+ export async function getSubscribeRelatedTables(this: ViewHandler, { filter, localParams, newQuery }: Args){
16
16
 
17
17
  let viewOptions: ViewSubscriptionOptions | undefined = undefined;
18
18
  const { condition } = newQuery.whereOpts;
@@ -143,6 +143,7 @@ export async function getSubscribeRelatedTables(this: ViewHandler, { selectParam
143
143
  tableName: j.table,
144
144
  tableNameEscaped: asName(j.table),
145
145
  condition: (await this.dboBuilder.dbo[j.table]!.prepareWhere!({
146
+ select: undefined,
146
147
  filter: {
147
148
  $existsJoined: {
148
149
  path: reverseParsedPath(j.joinPath, this.name),
@@ -164,6 +165,7 @@ export async function getSubscribeRelatedTables(this: ViewHandler, { selectParam
164
165
  tableName: targetTable,
165
166
  tableNameEscaped: asName(targetTable),
166
167
  condition: (await this.dboBuilder.dbo[targetTable]!.prepareWhere!({
168
+ select: undefined,
167
169
  filter: {
168
170
  $existsJoined: {
169
171
  path: newPath,
@@ -50,7 +50,14 @@ export async function parseUpdateRules(
50
50
  if (!fields) {
51
51
  throw ` Invalid update rule fo r ${this.name}. fields missing `;
52
52
  }
53
- finalUpdateFilter = (await this.prepareWhere({ filter, forcedFilter, filterFields, localParams, tableRule: tableRules })).filter;
53
+ finalUpdateFilter = (await this.prepareWhere({
54
+ select: undefined,
55
+ filter,
56
+ forcedFilter,
57
+ filterFields,
58
+ localParams,
59
+ tableRule: tableRules
60
+ })).filter;
54
61
  if (tableRules.update.dynamicFields?.length) {
55
62
  /**
56
63
  * dynamicFields.fields used to allow a custom list of fields for specific records
@@ -63,9 +70,24 @@ export async function parseUpdateRules(
63
70
  /**
64
71
  * Validated filter and fields
65
72
  */
66
- const condition = await this.prepareWhere({ filterFields: this.column_names, filter: dfRule.filter, localParams, tableRule: tableRules });
67
- if (!condition.where) throw "dynamicFields.filter cannot be empty: " + JSON.stringify(dfRule);
68
- await this.validateViewRules({ fields: dfRule.fields, filterFields, returningFields, forcedFilter, dynamicFields: tableRules.update.dynamicFields, rule: "update" });
73
+ const condition = await this.prepareWhere({
74
+ select: undefined,
75
+ filterFields: this.column_names,
76
+ filter: dfRule.filter,
77
+ localParams,
78
+ tableRule: tableRules
79
+ });
80
+ if (!condition.where) {
81
+ throw "dynamicFields.filter cannot be empty: " + JSON.stringify(dfRule);
82
+ }
83
+ await this.validateViewRules({
84
+ fields: dfRule.fields,
85
+ filterFields,
86
+ returningFields,
87
+ forcedFilter,
88
+ dynamicFields: tableRules.update.dynamicFields,
89
+ rule: "update"
90
+ });
69
91
 
70
92
 
71
93
  await this.find(dfRule.filter, { limit: 0 });