@qrvey/data-persistence 0.2.0 → 0.2.2
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/dist/cjs/helpers/errorHelper.js +8 -5
- package/dist/cjs/helpers/errorHelper.js.map +1 -1
- package/dist/cjs/services/cruds/postgresql/postgreSqlClient.service.js +2 -2
- package/dist/cjs/services/cruds/postgresql/postgreSqlClient.service.js.map +1 -1
- package/dist/cjs/services/cruds/postgresql/postgreSqlCrud.service.js +5 -9
- package/dist/cjs/services/cruds/postgresql/postgreSqlCrud.service.js.map +1 -1
- package/dist/esm/{chunk-JJPS7Q3Y.mjs → chunk-DHIGNHXS.mjs} +7 -4
- package/dist/esm/chunk-DHIGNHXS.mjs.map +1 -0
- package/dist/esm/{dynamoDbCrud.service-CS264IQJ.mjs → dynamoDbCrud.service-EFYPBZKN.mjs} +2 -2
- package/dist/esm/index.mjs +2 -2
- package/dist/esm/{postgreSqlCrud.service-B5SQLDWO.mjs → postgreSqlCrud.service-A4RYVJX3.mjs} +9 -9
- package/dist/esm/postgreSqlCrud.service-A4RYVJX3.mjs.map +1 -0
- package/package.json +1 -1
- package/dist/esm/chunk-JJPS7Q3Y.mjs.map +0 -1
- package/dist/esm/postgreSqlCrud.service-B5SQLDWO.mjs.map +0 -1
- /package/dist/esm/{dynamoDbCrud.service-CS264IQJ.mjs.map → dynamoDbCrud.service-EFYPBZKN.mjs.map} +0 -0
|
@@ -6,11 +6,7 @@ function PersistenceErrorWrapper(queryResult) {
|
|
|
6
6
|
const dynamoNoRecordsAffectedExceptions = [
|
|
7
7
|
'ConditionalCheckFailedException',
|
|
8
8
|
];
|
|
9
|
-
|
|
10
|
-
if (queryResult.rowCount == 0) {
|
|
11
|
-
throw new NoRecordsAffectedException_1.NoRecordsAffectedException();
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
9
|
+
if (queryResult instanceof Error) {
|
|
14
10
|
//Checks for dynamodb errors also the ones that is included in NoRecordsAffectedExceptions list
|
|
15
11
|
if (queryResult.name &&
|
|
16
12
|
dynamoNoRecordsAffectedExceptions.includes(queryResult.name)) {
|
|
@@ -20,6 +16,13 @@ function PersistenceErrorWrapper(queryResult) {
|
|
|
20
16
|
throw queryResult;
|
|
21
17
|
}
|
|
22
18
|
}
|
|
19
|
+
else {
|
|
20
|
+
//This is for Postgres scenario, where there is not error launched by updates
|
|
21
|
+
if (queryResult.rowCount === 0) {
|
|
22
|
+
throw new NoRecordsAffectedException_1.NoRecordsAffectedException();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return queryResult;
|
|
23
26
|
}
|
|
24
27
|
exports.PersistenceErrorWrapper = PersistenceErrorWrapper;
|
|
25
28
|
//# sourceMappingURL=errorHelper.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errorHelper.js","sourceRoot":"","sources":["../../../src/helpers/errorHelper.ts"],"names":[],"mappings":";;;AAAA,oFAAiF;AAEjF,SAAgB,uBAAuB,CAAC,WAAgB;IACpD,MAAM,iCAAiC,GAAG;QACtC,iCAAiC;KACpC,CAAC;IAEF,
|
|
1
|
+
{"version":3,"file":"errorHelper.js","sourceRoot":"","sources":["../../../src/helpers/errorHelper.ts"],"names":[],"mappings":";;;AAAA,oFAAiF;AAEjF,SAAgB,uBAAuB,CAAC,WAAgB;IACpD,MAAM,iCAAiC,GAAG;QACtC,iCAAiC;KACpC,CAAC;IAEF,IAAI,WAAW,YAAY,KAAK,EAAE;QAC9B,+FAA+F;QAC/F,IACI,WAAW,CAAC,IAAI;YAChB,iCAAiC,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,EAC9D;YACE,MAAM,IAAI,uDAA0B,EAAE,CAAC;SAC1C;aAAM;YACH,MAAM,WAAW,CAAC;SACrB;KACJ;SAAM;QACH,6EAA6E;QAC7E,IAAI,WAAW,CAAC,QAAQ,KAAK,CAAC,EAAE;YAC5B,MAAM,IAAI,uDAA0B,EAAE,CAAC;SAC1C;KACJ;IAED,OAAO,WAAW,CAAC;AACvB,CAAC;AAvBD,0DAuBC"}
|
|
@@ -288,8 +288,9 @@ class PostgresqlClientService extends query_service_1.default {
|
|
|
288
288
|
const pathSplitted = path.split('.');
|
|
289
289
|
const parentPath = pathSplitted[0];
|
|
290
290
|
const pathSerialized = pathSplitted.slice(1).join(',');
|
|
291
|
+
const valueSerialized = typeof value == 'string' ? `"${value}"` : value;
|
|
291
292
|
return {
|
|
292
|
-
jsonExpr: `'{${pathSerialized}}','${
|
|
293
|
+
jsonExpr: `'{${pathSerialized}}','${valueSerialized}',${createNewColumn}`,
|
|
293
294
|
columnName: `"${parentPath}"`,
|
|
294
295
|
};
|
|
295
296
|
}
|
|
@@ -315,7 +316,6 @@ class PostgresqlClientService extends query_service_1.default {
|
|
|
315
316
|
Object.keys(expressionAttributeValues).forEach((attributeName) => {
|
|
316
317
|
const attributeNameValue = expressionAttributeValues[attributeName];
|
|
317
318
|
value = value.replace(attributeName, attributeNameValue);
|
|
318
|
-
value = typeof value == 'string' ? `\"${value}\"` : value;
|
|
319
319
|
});
|
|
320
320
|
return value;
|
|
321
321
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgreSqlClient.service.js","sourceRoot":"","sources":["../../../../../src/services/cruds/postgresql/postgreSqlClient.service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"postgreSqlClient.service.js","sourceRoot":"","sources":["../../../../../src/services/cruds/postgresql/postgreSqlClient.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -62,17 +62,14 @@ class PostgreSqlCrudService extends postgreSqlClient_service_1.default {
|
|
|
62
62
|
});
|
|
63
63
|
}
|
|
64
64
|
async processQueryResult(findOptions, omitPagination = false) {
|
|
65
|
-
const { pagination } = findOptions;
|
|
66
65
|
const rows = await this.findCommand(findOptions);
|
|
67
66
|
const items = rows.map((row) => this.getItem(row));
|
|
68
|
-
const from = (
|
|
69
|
-
|
|
70
|
-
|
|
67
|
+
const { limit, from } = (findOptions === null || findOptions === void 0 ? void 0 : findOptions.pagination) || {};
|
|
68
|
+
const hasMoreRecords = items.length && items.length === limit;
|
|
69
|
+
const newFrom = limit && hasMoreRecords ? limit + (from || 0) : null;
|
|
71
70
|
const result = {
|
|
72
71
|
items,
|
|
73
|
-
pagination: omitPagination
|
|
74
|
-
? null
|
|
75
|
-
: { limit: pagination === null || pagination === void 0 ? void 0 : pagination.limit, from },
|
|
72
|
+
pagination: omitPagination ? null : { limit: limit, from: newFrom },
|
|
76
73
|
count: items.length,
|
|
77
74
|
};
|
|
78
75
|
return result;
|
|
@@ -104,8 +101,7 @@ class PostgreSqlCrudService extends postgreSqlClient_service_1.default {
|
|
|
104
101
|
}
|
|
105
102
|
async updateExpressions(filters, actions, options) {
|
|
106
103
|
const result = await this.updateExpressionCommand(filters, actions, options);
|
|
107
|
-
(0, errorHelper_1.PersistenceErrorWrapper)(result);
|
|
108
|
-
return result;
|
|
104
|
+
return (0, errorHelper_1.PersistenceErrorWrapper)(result);
|
|
109
105
|
}
|
|
110
106
|
}
|
|
111
107
|
exports.PostgreSqlCrudService = PostgreSqlCrudService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"postgreSqlCrud.service.js","sourceRoot":"","sources":["../../../../../src/services/cruds/postgresql/postgreSqlCrud.service.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"postgreSqlCrud.service.js","sourceRoot":"","sources":["../../../../../src/services/cruds/postgresql/postgreSqlCrud.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,17 +39,20 @@ function PersistenceErrorWrapper(queryResult) {
|
|
|
39
39
|
const dynamoNoRecordsAffectedExceptions = [
|
|
40
40
|
"ConditionalCheckFailedException"
|
|
41
41
|
];
|
|
42
|
-
if (queryResult
|
|
43
|
-
throw new NoRecordsAffectedException();
|
|
44
|
-
} else {
|
|
42
|
+
if (queryResult instanceof Error) {
|
|
45
43
|
if (queryResult.name && dynamoNoRecordsAffectedExceptions.includes(queryResult.name)) {
|
|
46
44
|
throw new NoRecordsAffectedException();
|
|
47
45
|
} else {
|
|
48
46
|
throw queryResult;
|
|
49
47
|
}
|
|
48
|
+
} else {
|
|
49
|
+
if (queryResult.rowCount === 0) {
|
|
50
|
+
throw new NoRecordsAffectedException();
|
|
51
|
+
}
|
|
50
52
|
}
|
|
53
|
+
return queryResult;
|
|
51
54
|
}
|
|
52
55
|
|
|
53
56
|
export { PersistenceErrorWrapper, buildAggFunctionAlias, findIdColumnName, getPrimaryKeyColumns, getTableName };
|
|
54
57
|
//# sourceMappingURL=out.js.map
|
|
55
|
-
//# sourceMappingURL=chunk-
|
|
58
|
+
//# sourceMappingURL=chunk-DHIGNHXS.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/helpers/tableHelper.ts","../../src/helpers/queryHelpers.ts","../../src/error/NoRecordsAffectedException.ts","../../src/helpers/errorHelper.ts"],"names":[],"mappings":";AAEO,SAAS,oBAAoB,SAAkC;AAClE,SAAO,OAAO,KAAK,OAAO;AAC9B;AAEO,SAAS,iBAAiB,SAA4C;AACzE,SAAO,oBAAoB,OAAO,EAAE;AAAA,IAChC,CAAC,eAAe,QAAQ,UAAU,EAAE,aAAa;AAAA,EACrD;AACJ;AAEO,SAAS,aACZ,OACA,WAAW,QACL;AACN,MAAI,CAAC;AAAO,UAAM,IAAI,MAAM,wBAAwB;AAEpD,MAAI,OAAO,UAAU;AAAU,WAAO;AAEtC,QAAM,EAAE,MAAM,MAAM,IAAI;AACxB,SAAO,aAAa,WAAW,QAAQ,QAAQ;AACnD;AAEO,SAAS,qBAAqB,SAAkC;AACnE,SAAO,oBAAoB,OAAO,EAAE;AAAA,IAChC,CAAC,eAAe,QAAQ,UAAU,EAAE,YAAY;AAAA,EACpD;AACJ;;;ACpBO,SAAS,sBACZ,mBACM;AACN,SAAO,UAAU,iBAAiB;AACtC;;;ACZO,IAAM,6BAAN,cAAyC,MAAM;AAAA,EAClD,cAAc;AACV,UAAM,+BAA+B;AACrC,SAAK,OAAO;AAAA,EAChB;AACJ;;;ACHO,SAAS,wBAAwB,aAAkB;AACtD,QAAM,oCAAoC;AAAA,IACtC;AAAA,EACJ;AAEA,MAAI,uBAAuB,OAAO;AAE9B,QACI,YAAY,QACZ,kCAAkC,SAAS,YAAY,IAAI,GAC7D;AACE,YAAM,IAAI,2BAA2B;AAAA,IACzC,OAAO;AACH,YAAM;AAAA,IACV;AAAA,EACJ,OAAO;AAEH,QAAI,YAAY,aAAa,GAAG;AAC5B,YAAM,IAAI,2BAA2B;AAAA,IACzC;AAAA,EACJ;AAEA,SAAO;AACX","sourcesContent":["import { ITableColumns, ITableName } from '../interfaces';\n\nexport function getTableColumnNames(columns: ITableColumns): string[] {\n return Object.keys(columns);\n}\n\nexport function findIdColumnName(columns: ITableColumns): string | undefined {\n return getTableColumnNames(columns).find(\n (columnName) => columns[columnName].columnId === true,\n );\n}\n\nexport function getTableName(\n table: string | ITableName,\n property = 'name',\n): string {\n if (!table) throw new Error('missing table property');\n\n if (typeof table === 'string') return table;\n\n const { name, alias } = table;\n return property === 'alias' && alias ? alias : name;\n}\n\nexport function getPrimaryKeyColumns(columns: ITableColumns): string[] {\n return getTableColumnNames(columns).filter(\n (columnName) => columns[columnName].primary === true,\n );\n}\n","import { AggregateFunction } from '../types';\n\nexport enum METHOD_TO_QUERY {\n where = 'where',\n filter = 'filter',\n update = 'update',\n}\n\nexport function buildAggFunctionAlias(\n aggregateFunction: AggregateFunction,\n): string {\n return `AGG_FN_${aggregateFunction}`;\n}\n","export class NoRecordsAffectedException extends Error {\n constructor() {\n super('No records affected by update');\n this.name = 'NoRecordsAffectedException';\n }\n}\n","import { NoRecordsAffectedException } from '../error/NoRecordsAffectedException';\n\nexport function PersistenceErrorWrapper(queryResult: any) {\n const dynamoNoRecordsAffectedExceptions = [\n 'ConditionalCheckFailedException',\n ];\n\n if (queryResult instanceof Error) {\n //Checks for dynamodb errors also the ones that is included in NoRecordsAffectedExceptions list\n if (\n queryResult.name &&\n dynamoNoRecordsAffectedExceptions.includes(queryResult.name)\n ) {\n throw new NoRecordsAffectedException();\n } else {\n throw queryResult;\n }\n } else {\n //This is for Postgres scenario, where there is not error launched by updates\n if (queryResult.rowCount === 0) {\n throw new NoRecordsAffectedException();\n }\n }\n\n return queryResult;\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getTableName, findIdColumnName, getPrimaryKeyColumns, PersistenceErrorWrapper } from './chunk-
|
|
1
|
+
import { getTableName, findIdColumnName, getPrimaryKeyColumns, PersistenceErrorWrapper } from './chunk-DHIGNHXS.mjs';
|
|
2
2
|
import { __privateAdd, __spreadProps, __spreadValues, FILTER_OPERATOR_MAP, DYNAMODB_OPERATORS, __privateMethod, DYNAMO_DB_UPDATE_ACTIONS } from './chunk-6MOAJFFY.mjs';
|
|
3
3
|
import { DynamoDBClient } from '@aws-sdk/client-dynamodb';
|
|
4
4
|
import { DynamoDBDocumentClient, GetCommand, QueryCommand, ScanCommand, PutCommand, UpdateCommand, DeleteCommand, BatchWriteCommand } from '@aws-sdk/lib-dynamodb';
|
|
@@ -815,4 +815,4 @@ extractUpdateExpressionAttributesAndNames_fn = function(actions, actionType) {
|
|
|
815
815
|
|
|
816
816
|
export { DynamoDbCrudService };
|
|
817
817
|
//# sourceMappingURL=out.js.map
|
|
818
|
-
//# sourceMappingURL=dynamoDbCrud.service-
|
|
818
|
+
//# sourceMappingURL=dynamoDbCrud.service-EFYPBZKN.mjs.map
|
package/dist/esm/index.mjs
CHANGED
|
@@ -29,10 +29,10 @@ var CrudFactory = class {
|
|
|
29
29
|
const isMultiPlatformMode2 = ((_a = process.env.PLATFORM_TYPE) == null ? void 0 : _a.toLowerCase()) === "container";
|
|
30
30
|
let DatabaseCrudService;
|
|
31
31
|
if (isMultiPlatformMode2) {
|
|
32
|
-
const module = await import('./postgreSqlCrud.service-
|
|
32
|
+
const module = await import('./postgreSqlCrud.service-A4RYVJX3.mjs');
|
|
33
33
|
DatabaseCrudService = module.PostgreSqlCrudService;
|
|
34
34
|
} else {
|
|
35
|
-
const module = await import('./dynamoDbCrud.service-
|
|
35
|
+
const module = await import('./dynamoDbCrud.service-EFYPBZKN.mjs');
|
|
36
36
|
DatabaseCrudService = module.DynamoDbCrudService;
|
|
37
37
|
}
|
|
38
38
|
return new DatabaseCrudService(crudSchema, poolClient);
|
package/dist/esm/{postgreSqlCrud.service-B5SQLDWO.mjs → postgreSqlCrud.service-A4RYVJX3.mjs}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { findIdColumnName, buildAggFunctionAlias, PersistenceErrorWrapper, getTableName } from './chunk-
|
|
1
|
+
import { findIdColumnName, buildAggFunctionAlias, PersistenceErrorWrapper, getTableName } from './chunk-DHIGNHXS.mjs';
|
|
2
2
|
import { __spreadValues, __spreadProps, DEFAULT_PG_SCHEMA, POSTGRES_FILTER_OPERATOR_MAP } from './chunk-6MOAJFFY.mjs';
|
|
3
3
|
import format from 'pg-format';
|
|
4
4
|
import { Client } from 'pg';
|
|
@@ -355,8 +355,9 @@ var PostgresqlClientService = class extends QueryService {
|
|
|
355
355
|
const pathSplitted = path.split(".");
|
|
356
356
|
const parentPath = pathSplitted[0];
|
|
357
357
|
const pathSerialized = pathSplitted.slice(1).join(",");
|
|
358
|
+
const valueSerialized = typeof value == "string" ? `"${value}"` : value;
|
|
358
359
|
return {
|
|
359
|
-
jsonExpr: `'{${pathSerialized}}','${
|
|
360
|
+
jsonExpr: `'{${pathSerialized}}','${valueSerialized}',${createNewColumn}`,
|
|
360
361
|
columnName: `"${parentPath}"`
|
|
361
362
|
};
|
|
362
363
|
}
|
|
@@ -391,7 +392,6 @@ var PostgresqlClientService = class extends QueryService {
|
|
|
391
392
|
(attributeName) => {
|
|
392
393
|
const attributeNameValue = expressionAttributeValues[attributeName];
|
|
393
394
|
value = value.replace(attributeName, attributeNameValue);
|
|
394
|
-
value = typeof value == "string" ? `"${value}"` : value;
|
|
395
395
|
}
|
|
396
396
|
);
|
|
397
397
|
return value;
|
|
@@ -447,15 +447,16 @@ var PostgreSqlCrudService = class extends PostgresqlClientService {
|
|
|
447
447
|
});
|
|
448
448
|
}
|
|
449
449
|
async processQueryResult(findOptions, omitPagination = false) {
|
|
450
|
-
const { pagination } = findOptions;
|
|
451
450
|
const rows = await this.findCommand(findOptions);
|
|
452
451
|
const items = rows.map(
|
|
453
452
|
(row) => this.getItem(row)
|
|
454
453
|
);
|
|
455
|
-
const from = (
|
|
454
|
+
const { limit, from } = (findOptions == null ? void 0 : findOptions.pagination) || {};
|
|
455
|
+
const hasMoreRecords = items.length && items.length === limit;
|
|
456
|
+
const newFrom = limit && hasMoreRecords ? limit + (from || 0) : null;
|
|
456
457
|
const result = {
|
|
457
458
|
items,
|
|
458
|
-
pagination: omitPagination ? null : { limit
|
|
459
|
+
pagination: omitPagination ? null : { limit, from: newFrom },
|
|
459
460
|
count: items.length
|
|
460
461
|
};
|
|
461
462
|
return result;
|
|
@@ -495,11 +496,10 @@ var PostgreSqlCrudService = class extends PostgresqlClientService {
|
|
|
495
496
|
actions,
|
|
496
497
|
options
|
|
497
498
|
);
|
|
498
|
-
PersistenceErrorWrapper(result);
|
|
499
|
-
return result;
|
|
499
|
+
return PersistenceErrorWrapper(result);
|
|
500
500
|
}
|
|
501
501
|
};
|
|
502
502
|
|
|
503
503
|
export { PostgreSqlCrudService };
|
|
504
504
|
//# sourceMappingURL=out.js.map
|
|
505
|
-
//# sourceMappingURL=postgreSqlCrud.service-
|
|
505
|
+
//# sourceMappingURL=postgreSqlCrud.service-A4RYVJX3.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/services/cruds/postgresql/postgreSqlClient.service.ts","../../src/services/cruds/postgresql/connection.service.ts","../../src/services/cruds/postgresql/query.service.ts","../../src/services/cruds/postgresql/postgreSqlCrud.service.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable no-console */\n\nimport format from 'pg-format';\nimport { QueryResult } from 'pg';\nimport {\n AggregateFunction,\n DbPoolClient,\n FilterLogicOperator,\n} from '../../../types';\nimport {\n ICompositeFilter,\n IFilter,\n IFindOptions,\n IFindPagination,\n ISorting,\n IUpdateExpressions,\n IUpdateExpressionsOptions,\n} from '../../../interfaces';\nimport QueryService from './query.service';\nimport {\n FILTER_LOGIC_OPERATORS,\n SORT_DIRECTIONS,\n POSTGRES_FILTER_OPERATOR_MAP,\n DEFAULT_PG_SCHEMA,\n FilterOperator,\n} from '../../../utils/constants';\nimport { CrudSchema } from '../../../schemas';\nimport { getTableName } from '../../../helpers/tableHelper';\nimport { buildAggFunctionAlias } from '../../../helpers/queryHelpers';\n\nexport default class PostgresqlClientService<T> extends QueryService {\n private crudSchema: typeof CrudSchema;\n constructor(tableSchema: typeof CrudSchema, poolClient?: DbPoolClient) {\n super(poolClient);\n this.crudSchema = tableSchema;\n }\n\n get dbSchema() {\n return this.crudSchema.schema || DEFAULT_PG_SCHEMA;\n }\n\n get tableName() {\n return (\n getTableName(this.crudSchema.table, 'alias') ||\n getTableName(this.crudSchema.table)\n );\n }\n\n getWildcardValue(operator: FilterOperator, value: string): string {\n if (\n operator === FilterOperator.CONTAINS ||\n operator === FilterOperator.NOT_CONTAINS\n ) {\n return '%' + value + '%';\n } else if (operator === FilterOperator.STARTS_WITH) {\n return value + '%';\n } else {\n return value;\n }\n }\n\n private buildClause(\n operator: FilterOperator,\n attribute: string,\n value: any,\n ): string {\n const formattedValue = format.literal(value);\n operator = operator\n ? (operator.toUpperCase() as FilterOperator)\n : FilterOperator.EQUAL;\n const postgresOperator = POSTGRES_FILTER_OPERATOR_MAP[operator];\n\n if (!postgresOperator)\n throw new Error(`Unsupported filter operator: ${operator}`);\n\n const filterProperty = format.ident(attribute);\n const columnExists = !!this.crudSchema.columns[attribute];\n const property = columnExists\n ? filterProperty\n : `(\"qvAttributes\" ->> '${attribute}')`;\n\n if (operator === FilterOperator.IN) {\n const formattedValues = Array.isArray(value)\n ? value.map(format.literal)\n : [formattedValue];\n return `${property} ${postgresOperator} (${formattedValues.join(\n ', ',\n )})`;\n }\n\n if (operator === FilterOperator.BETWEEN) {\n return `${property} ${postgresOperator} ${value[0]} AND ${value[1]}`;\n }\n\n /**\n * ? Additional filter to avoid error when column accepts null values.\n */\n if (operator === FilterOperator.NOT_EQUAL && value !== null) {\n return `(${property} ${postgresOperator} ${format.literal(\n value,\n )} OR ${property} IS NULL)`;\n }\n\n if (\n operator === FilterOperator.NOT_EXIST ||\n operator === FilterOperator.EXIST\n ) {\n return `${property} ${postgresOperator}`;\n }\n\n const wildcardValue = this.getWildcardValue(operator, value);\n return `${property} ${postgresOperator} ${format.literal(\n wildcardValue,\n )}`;\n }\n\n private buildFilterClause(\n filters: IFilter[] | ICompositeFilter,\n logicOperator?: FilterLogicOperator,\n ): string {\n if (Array.isArray(filters)) {\n const filterClauses = filters.map((filter) => {\n return this.buildClause(\n filter.operator as FilterOperator,\n filter.attribute,\n filter.value,\n );\n });\n return filterClauses.join(\n ` ${logicOperator ?? FILTER_LOGIC_OPERATORS.AND} `,\n );\n } else {\n return this.buildQueryByClause(filters);\n }\n }\n\n private isCompositeFilter = function (value: any) {\n return 'OR' in value || 'AND' in value;\n };\n\n buildQueryByClause(filters: IFilter[] | ICompositeFilter): string {\n let filterClauses: string = '';\n let isFirstFilter = true;\n\n for (const [key, value] of Object.entries(filters)) {\n if (!isFirstFilter) {\n filterClauses += key === 'AND' ? ' AND ' : ' OR ';\n }\n\n if (this.isCompositeFilter(value)) {\n filterClauses += '(';\n filterClauses += this.buildQueryByClause(\n value as ICompositeFilter,\n );\n filterClauses += ')';\n } else {\n (value as IFilter[]).forEach((filter: IFilter) => {\n let clause = '';\n if (this.isCompositeFilter(filter)) {\n clause = `(${this.buildQueryByClause(\n filter as ICompositeFilter,\n )})`;\n } else {\n clause = this.buildClause(\n filter.operator as FilterOperator,\n filter.attribute,\n filter.value,\n );\n }\n filterClauses += `${clause} ${key} `;\n });\n }\n\n isFirstFilter = false;\n }\n\n filterClauses = filterClauses.replace(/\\s+(AND|OR)\\s*$/, '');\n return filterClauses;\n }\n\n private formatOrderByItem(sort: ISorting): string {\n return `${format.ident(sort.column)} ${\n sort.direction || SORT_DIRECTIONS.ASC\n }`;\n }\n\n private buildOrderByClause(querySorting: ISorting[]): string {\n try {\n return querySorting.map(this.formatOrderByItem).join(', ');\n } catch (error) {\n return '';\n }\n }\n\n async createCommand(data: any[]): Promise<any> {\n const keys = Object.keys(data[0]); // Assuming all objects have the same keys\n const values = data.map((item) => Object.values(item));\n\n const query = format(\n `INSERT INTO ${format.ident(this.dbSchema)}.${format.ident(\n this.tableName,\n )} (%I) VALUES %L RETURNING *;`,\n keys,\n values,\n );\n\n return this.runQuery(query);\n }\n\n private addFiltersToQuery(\n query: string,\n filters?: IFilter[] | ICompositeFilter,\n ): string {\n if (filters) query += ` WHERE ${this.buildFilterClause(filters)}`;\n return query;\n }\n\n addOrderByToQuery(query: string, orderBy?: ISorting[]): string {\n if (orderBy) query += ` ORDER BY ${this.buildOrderByClause(orderBy)}`;\n return query;\n }\n\n private addPaginationToQuery(\n query: string,\n pagination?: IFindPagination,\n ): string {\n if (pagination) {\n const { limit, from } = pagination;\n if (limit) query += ` LIMIT ${limit}`;\n if (from) query += ` OFFSET ${from}`;\n }\n return query;\n }\n\n private getSelectClause(\n aggregateFunction: AggregateFunction | undefined,\n fields: string[] = [],\n ) {\n if (aggregateFunction)\n return `CAST(${aggregateFunction}(1) AS INTEGER) AS \"${buildAggFunctionAlias(\n aggregateFunction,\n )}\"`;\n if (!fields?.length) return '*';\n\n return this.parseFields(fields).join(', ');\n }\n\n private parseFields(fields: String[]): String[] {\n const columnsFromSchema: String[] = Object.keys(\n this.crudSchema.columns,\n );\n const attributes: String[] = fields\n .filter((field) => columnsFromSchema.indexOf(field) !== -1)\n .map((field) => `\"${field}\"`);\n\n fields\n .filter((field) => columnsFromSchema.indexOf(field) === -1)\n .forEach((field) => {\n attributes.push(`\"qvAttributes\" ->> '${field}' as \"${field}\"`);\n });\n return attributes;\n }\n\n async findCommand(options: IFindOptions = {}): Promise<T[]> {\n let query = `SELECT ${this.getSelectClause(\n options.aggregateFunction,\n options.fields,\n )} FROM ${format.ident(this.dbSchema)}.${format.ident(this.tableName)}`;\n query = this.addFiltersToQuery(query, options.filters);\n if (!options.aggregateFunction) {\n query = this.addOrderByToQuery(query, options.sorting);\n query = this.addPaginationToQuery(query, options.pagination);\n }\n return (await this.runQuery(query)).rows;\n }\n\n sanitizeValue(value: any): string {\n if (Array.isArray(value)) {\n const formattedArray = value\n .map((item) => {\n if (typeof item === 'string') {\n return `'${item}'`;\n } else if (typeof item === 'object') {\n return JSON.stringify(item);\n } else {\n return item;\n }\n })\n .join(',');\n\n return JSON.stringify(formattedArray);\n } else {\n return format.literal(value);\n }\n }\n\n async updateCommand(\n filters: ICompositeFilter,\n data: Partial<any>,\n ): Promise<QueryResult<any>> {\n let query = `UPDATE ${format.ident(this.dbSchema)}.${format.ident(\n this.tableName,\n )} SET`;\n\n const updateClauses = Object.entries(data).map(([key, value]) => {\n const dbValue = this.sanitizeValue(value);\n return `${format.ident(key)} = ${dbValue}`;\n });\n query += ` ${updateClauses.join(', ')}`;\n\n query += ' WHERE ';\n query += this.buildFilterClause(filters);\n\n return this.runQuery(query);\n }\n\n private buildFilterClauseForFilterGroups(\n filterGroups: IFilter[][],\n ): string {\n const filterClauses = filterGroups.map((filterGroup) => {\n return `(${this.buildFilterClause(filterGroup)})`;\n });\n return filterClauses.join(' OR ');\n }\n\n async deleteCommand(\n filters?: ICompositeFilter | IFilter[] | IFilter[][],\n useFilterGroups: boolean = false,\n ): Promise<QueryResult<any>> {\n let query = `DELETE FROM ${format.ident(this.dbSchema)}.${format.ident(\n this.tableName,\n )}`;\n if (filters) {\n query += ' WHERE ';\n\n if (useFilterGroups) {\n query += this.buildFilterClauseForFilterGroups(\n filters as IFilter[][],\n );\n } else {\n query += this.buildFilterClause(\n filters as ICompositeFilter | IFilter[],\n );\n }\n }\n\n return this.runQuery(query);\n }\n\n query(queryText: string, values?: any[]) {\n return this.runQuery(queryText, values);\n }\n\n public async updateExpressionCommand(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n filters: IFilter[] | ICompositeFilter,\n actions: IUpdateExpressions,\n options: Partial<IUpdateExpressionsOptions> = {},\n ) {\n let query = `UPDATE ${format.ident(this.dbSchema)}.${format.ident(\n this.tableName,\n )} SET`;\n\n const set = actions.SET || [];\n const add = actions.ADD || [];\n const setValues = this.replacePathAndValueByAttributeNames(\n set,\n options,\n false,\n );\n const addValues = this.replacePathAndValueByAttributeNames(\n add,\n options,\n true,\n );\n\n const setValuesAndAddValues: any = setValues.concat(addValues);\n\n const updateClauses: any = [];\n const jsonSetExpressionGroup: any = {};\n\n setValuesAndAddValues.forEach((expression: any) => {\n const { path, value, createNewColumn } = expression;\n\n if (path.includes('.')) {\n const jsonExpr = this.getJSONBSetExpressionByAction(\n path,\n value,\n true,\n );\n const columnName: string = jsonExpr.columnName;\n if (!jsonSetExpressionGroup[columnName]) {\n jsonSetExpressionGroup[columnName] = [jsonExpr];\n } else {\n jsonSetExpressionGroup[columnName].push(jsonExpr);\n }\n } else {\n if (createNewColumn)\n throw 'Set Expressions are not supported for non JSON-JSONB';\n updateClauses.push(\n `${format.ident(path)} = ${this.sanitizeValue(value)}`,\n );\n }\n });\n\n if (Object.keys(jsonSetExpressionGroup).length > 0) {\n Object.keys(jsonSetExpressionGroup).forEach((groupIndex) => {\n const jsonSetExpression = this.buildJSONBExpression(\n jsonSetExpressionGroup[groupIndex],\n );\n\n updateClauses.push(`${groupIndex} = ${jsonSetExpression}`);\n });\n }\n\n query += ` ${updateClauses.join(', ')}`;\n\n query += ' WHERE ';\n query += this.buildFilterClause(filters);\n\n return this.runQuery(query);\n }\n\n private buildJSONBExpression(jsonSetExpressions: any) {\n let jsonSetStringExpr = '';\n jsonSetExpressions.forEach((expression: any, index: number) => {\n const { columnName, jsonExpr } = expression;\n if (index === 0) {\n jsonSetStringExpr = `jsonb_set(${columnName},${jsonExpr})`;\n } else {\n jsonSetStringExpr = `jsonb_set(${jsonSetStringExpr},${jsonExpr})`;\n }\n });\n return jsonSetStringExpr;\n }\n\n private getJSONBSetExpressionByAction(\n path: string,\n value: any,\n createNewColumn: boolean,\n ) {\n const pathSplitted = path.split('.');\n const parentPath = pathSplitted[0];\n\n const pathSerialized = pathSplitted.slice(1).join(',');\n const valueSerialized = typeof value == 'string' ? `\"${value}\"` : value;\n\n return {\n jsonExpr: `'{${pathSerialized}}','${valueSerialized}',${createNewColumn}`,\n columnName: `\"${parentPath}\"`,\n };\n }\n\n private replacePathAndValueByAttributeNames(\n actions: any[],\n options: IUpdateExpressionsOptions,\n createNewColumn: boolean,\n ) {\n return actions.map((action) => {\n action.path = this.replaceExpressionAttributeNames(\n action.path,\n options,\n );\n if (action.value)\n action.value = this.replaceExpressionAttributeValues(\n action.value,\n options,\n );\n action.createNewColumn = createNewColumn;\n return action;\n });\n }\n\n private replaceExpressionAttributeNames(\n path: string,\n options: IUpdateExpressionsOptions,\n ) {\n const { expressionAttributeNames } = options;\n\n Object.keys(expressionAttributeNames).forEach(\n (attributeName: string) => {\n const attributeNameValue: string =\n expressionAttributeNames[attributeName];\n path = path.replace(attributeName, attributeNameValue);\n },\n );\n return path;\n }\n\n private replaceExpressionAttributeValues(\n value: string,\n options: IUpdateExpressionsOptions,\n ) {\n const { expressionAttributeValues } = options;\n\n Object.keys(expressionAttributeValues).forEach(\n (attributeName: string) => {\n const attributeNameValue: string =\n expressionAttributeValues[attributeName];\n value = value.replace(attributeName, attributeNameValue);\n },\n );\n return value;\n }\n}\n","import { Client } from 'pg';\n\nexport default class ConnectionService {\n get connectionString() {\n const connectionString =\n process.env.MULTIPLATFORM_PG_CONNECTION_STRING || '';\n if (!connectionString) {\n throw new Error(\n 'MULTIPLATFORM_PG_CONNECTION_STRING environment variable must be configured',\n );\n }\n return connectionString;\n }\n\n async getClient(): Promise<Client> {\n const client: Client = new Client({\n connectionString: this.connectionString,\n });\n await client.connect();\n return client;\n }\n\n releaseClient(client: Client): void {\n try {\n client.end();\n } catch {\n // eslint-disable-next-line no-console\n console.log('Error releasing client');\n }\n }\n}\n","/* eslint-disable no-console */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Client, QueryResult } from 'pg';\nimport ConnectionService from './connection.service';\nimport { DbPoolClient } from '../../../types';\n\nexport default class QueryService {\n private connectionService: ConnectionService;\n\n constructor(private poolClient?: DbPoolClient) {\n this.connectionService = new ConnectionService();\n }\n\n async runQuery(\n queryText: string,\n values?: any[],\n ): Promise<QueryResult<any>> {\n const client = await (this.poolClient\n ? this.poolClient\n : this.connectionService.getClient());\n\n try {\n const result = await client.query(queryText, values);\n return result;\n } catch (error) {\n console.log('[Postgresql-Client] Query Execution Failed:', error);\n throw error;\n } finally {\n if (!this.poolClient)\n this.connectionService.releaseClient(client as Client);\n }\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport PostgresqlClientService from './postgreSqlClient.service';\nimport {\n ICompositeFilter,\n ICreateMultipleResponse,\n ICrudService,\n IFilter,\n IFindOptions,\n IFindResult,\n IRemoveOptions,\n IUpdateExpressions,\n IUpdateExpressionsOptions,\n} from '../../../interfaces';\nimport { CrudSchema } from '../../../schemas';\nimport { findIdColumnName } from '../../../helpers/tableHelper';\nimport { AGGREGATE_FUNCTIONS } from '../../../utils/constants';\nimport { buildAggFunctionAlias } from '../../../helpers/queryHelpers';\nimport { PersistenceErrorWrapper } from '../../../helpers/errorHelper';\nexport class PostgreSqlCrudService<T>\n extends PostgresqlClientService<T>\n implements ICrudService<T>\n{\n constructor(private tableSchema: typeof CrudSchema) {\n super(tableSchema);\n }\n\n private get idColumnName(): string | undefined {\n return findIdColumnName(this.tableSchema.columns);\n }\n\n normalizeInputData(inputData: any) {\n inputData.qvAttributes = {};\n for (const key in inputData) {\n if (!this.tableSchema.columns[key] && key !== 'qvAttributes') {\n inputData.qvAttributes[key] = inputData[key];\n delete inputData[key];\n } else if (Array.isArray(inputData[key])) {\n inputData[key] = JSON.stringify(inputData[key]);\n }\n }\n }\n\n getItem(data: { [key: string]: any }): any {\n const resultItem = { ...data, ...data.qvAttributes };\n delete resultItem['qvAttributes'];\n return resultItem;\n }\n\n prepareData(data: T): any {\n const inputData = { ...data } as { [key: string]: any };\n this.normalizeInputData(inputData);\n return inputData;\n }\n\n create(data: T | T[]): Promise<T | ICreateMultipleResponse> {\n if (Array.isArray(data)) {\n const inputDataArray = data.map((item) => this.prepareData(item));\n return this.createCommand(inputDataArray).then((result) => ({\n unprocessedItems: result\n .filter((r: any) => !r.success)\n .map((r: any) => r.inputData),\n }));\n } else {\n const inputData = this.prepareData(data);\n return this.createCommand([inputData]).then((result) =>\n result.rowCount ? this.getItem(result.rows[0]) : null,\n );\n }\n }\n\n findItem(findOptions: IFindOptions): Promise<T | null> {\n return this.findCommand(findOptions).then((data) => {\n return data?.length\n ? this.getItem(data[0] as { [key: string]: any })\n : null;\n });\n }\n\n private async processQueryResult(\n findOptions: IFindOptions,\n omitPagination: boolean = false,\n ): Promise<IFindResult<T>> {\n const rows = await this.findCommand(findOptions);\n const items = rows.map((row) =>\n this.getItem(row as { [key: string]: any }),\n );\n\n const { limit, from } = findOptions?.pagination || {};\n const hasMoreRecords = items.length && items.length === limit;\n const newFrom = limit && hasMoreRecords ? limit + (from || 0) : null;\n\n const result: IFindResult<T> = {\n items,\n pagination: omitPagination ? null : { limit: limit, from: newFrom },\n count: items.length,\n };\n return result;\n }\n\n async find(findOptions: IFindOptions): Promise<IFindResult<T>> {\n return this.processQueryResult(findOptions);\n }\n\n async findAll(findOptions: IFindOptions): Promise<IFindResult<T>> {\n return this.processQueryResult(findOptions, true);\n }\n\n async findCount(findOptions: IFindOptions): Promise<number> {\n const items = await this.findCommand({\n ...findOptions,\n aggregateFunction: AGGREGATE_FUNCTIONS.COUNT,\n });\n\n const aggFunctionProperty = buildAggFunctionAlias(\n AGGREGATE_FUNCTIONS.COUNT,\n );\n const item: any = items.length ? items[0] : {};\n return item[aggFunctionProperty] || 0;\n }\n\n async update(\n filters: IFilter[] | ICompositeFilter,\n data: Partial<T>,\n ): Promise<any> {\n const savedRecord = await this.findItem({ filters });\n\n const inputData: { [key: string]: any } = {\n ...savedRecord,\n ...data,\n } as {\n [key: string]: any;\n };\n\n this.normalizeInputData(inputData);\n await this.updateCommand(filters as ICompositeFilter, inputData);\n return this.getItem(inputData);\n }\n\n async remove(\n filters: IFilter[] | ICompositeFilter | IFilter[][],\n options: IRemoveOptions,\n ): Promise<void> {\n await this.deleteCommand(filters, options?.filterGroups);\n }\n\n runQuery(querySentence: string, values?: any[]) {\n return super.runQuery(querySentence, values);\n }\n\n async updateExpressions(\n filters: IFilter[] | ICompositeFilter,\n actions: IUpdateExpressions,\n options: IUpdateExpressionsOptions,\n ): Promise<any> {\n const result = await this.updateExpressionCommand(\n filters,\n actions,\n options,\n );\n return PersistenceErrorWrapper(result);\n }\n}\n"]}
|
package/package.json
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/helpers/tableHelper.ts","../../src/helpers/queryHelpers.ts","../../src/error/NoRecordsAffectedException.ts","../../src/helpers/errorHelper.ts"],"names":[],"mappings":";AAEO,SAAS,oBAAoB,SAAkC;AAClE,SAAO,OAAO,KAAK,OAAO;AAC9B;AAEO,SAAS,iBAAiB,SAA4C;AACzE,SAAO,oBAAoB,OAAO,EAAE;AAAA,IAChC,CAAC,eAAe,QAAQ,UAAU,EAAE,aAAa;AAAA,EACrD;AACJ;AAEO,SAAS,aACZ,OACA,WAAW,QACL;AACN,MAAI,CAAC;AAAO,UAAM,IAAI,MAAM,wBAAwB;AAEpD,MAAI,OAAO,UAAU;AAAU,WAAO;AAEtC,QAAM,EAAE,MAAM,MAAM,IAAI;AACxB,SAAO,aAAa,WAAW,QAAQ,QAAQ;AACnD;AAEO,SAAS,qBAAqB,SAAkC;AACnE,SAAO,oBAAoB,OAAO,EAAE;AAAA,IAChC,CAAC,eAAe,QAAQ,UAAU,EAAE,YAAY;AAAA,EACpD;AACJ;;;ACpBO,SAAS,sBACZ,mBACM;AACN,SAAO,UAAU,iBAAiB;AACtC;;;ACZO,IAAM,6BAAN,cAAyC,MAAM;AAAA,EAClD,cAAc;AACV,UAAM,+BAA+B;AACrC,SAAK,OAAO;AAAA,EAChB;AACJ;;;ACHO,SAAS,wBAAwB,aAAkB;AACtD,QAAM,oCAAoC;AAAA,IACtC;AAAA,EACJ;AAGA,MAAI,YAAY,YAAY,GAAG;AAC3B,UAAM,IAAI,2BAA2B;AAAA,EACzC,OAAO;AAEH,QACI,YAAY,QACZ,kCAAkC,SAAS,YAAY,IAAI,GAC7D;AACE,YAAM,IAAI,2BAA2B;AAAA,IACzC,OAAO;AACH,YAAM;AAAA,IACV;AAAA,EACJ;AACJ","sourcesContent":["import { ITableColumns, ITableName } from '../interfaces';\n\nexport function getTableColumnNames(columns: ITableColumns): string[] {\n return Object.keys(columns);\n}\n\nexport function findIdColumnName(columns: ITableColumns): string | undefined {\n return getTableColumnNames(columns).find(\n (columnName) => columns[columnName].columnId === true,\n );\n}\n\nexport function getTableName(\n table: string | ITableName,\n property = 'name',\n): string {\n if (!table) throw new Error('missing table property');\n\n if (typeof table === 'string') return table;\n\n const { name, alias } = table;\n return property === 'alias' && alias ? alias : name;\n}\n\nexport function getPrimaryKeyColumns(columns: ITableColumns): string[] {\n return getTableColumnNames(columns).filter(\n (columnName) => columns[columnName].primary === true,\n );\n}\n","import { AggregateFunction } from '../types';\n\nexport enum METHOD_TO_QUERY {\n where = 'where',\n filter = 'filter',\n update = 'update',\n}\n\nexport function buildAggFunctionAlias(\n aggregateFunction: AggregateFunction,\n): string {\n return `AGG_FN_${aggregateFunction}`;\n}\n","export class NoRecordsAffectedException extends Error {\n constructor() {\n super('No records affected by update');\n this.name = 'NoRecordsAffectedException';\n }\n}\n","import { NoRecordsAffectedException } from '../error/NoRecordsAffectedException';\n\nexport function PersistenceErrorWrapper(queryResult: any) {\n const dynamoNoRecordsAffectedExceptions = [\n 'ConditionalCheckFailedException',\n ];\n\n //This is for Postgres scenario, where there is not error launched by updates\n if (queryResult.rowCount == 0) {\n throw new NoRecordsAffectedException();\n } else {\n //Checks for dynamodb errors also the ones that is included in NoRecordsAffectedExceptions list\n if (\n queryResult.name &&\n dynamoNoRecordsAffectedExceptions.includes(queryResult.name)\n ) {\n throw new NoRecordsAffectedException();\n } else {\n throw queryResult;\n }\n }\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/services/cruds/postgresql/postgreSqlClient.service.ts","../../src/services/cruds/postgresql/connection.service.ts","../../src/services/cruds/postgresql/query.service.ts","../../src/services/cruds/postgresql/postgreSqlCrud.service.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable no-console */\n\nimport format from 'pg-format';\nimport { QueryResult } from 'pg';\nimport {\n AggregateFunction,\n DbPoolClient,\n FilterLogicOperator,\n} from '../../../types';\nimport {\n ICompositeFilter,\n IFilter,\n IFindOptions,\n IFindPagination,\n ISorting,\n IUpdateExpressions,\n IUpdateExpressionsOptions,\n} from '../../../interfaces';\nimport QueryService from './query.service';\nimport {\n FILTER_LOGIC_OPERATORS,\n SORT_DIRECTIONS,\n POSTGRES_FILTER_OPERATOR_MAP,\n DEFAULT_PG_SCHEMA,\n FilterOperator,\n} from '../../../utils/constants';\nimport { CrudSchema } from '../../../schemas';\nimport { getTableName } from '../../../helpers/tableHelper';\nimport { buildAggFunctionAlias } from '../../../helpers/queryHelpers';\n\nexport default class PostgresqlClientService<T> extends QueryService {\n private crudSchema: typeof CrudSchema;\n constructor(tableSchema: typeof CrudSchema, poolClient?: DbPoolClient) {\n super(poolClient);\n this.crudSchema = tableSchema;\n }\n\n get dbSchema() {\n return this.crudSchema.schema || DEFAULT_PG_SCHEMA;\n }\n\n get tableName() {\n return (\n getTableName(this.crudSchema.table, 'alias') ||\n getTableName(this.crudSchema.table)\n );\n }\n\n getWildcardValue(operator: FilterOperator, value: string): string {\n if (\n operator === FilterOperator.CONTAINS ||\n operator === FilterOperator.NOT_CONTAINS\n ) {\n return '%' + value + '%';\n } else if (operator === FilterOperator.STARTS_WITH) {\n return value + '%';\n } else {\n return value;\n }\n }\n\n private buildClause(\n operator: FilterOperator,\n attribute: string,\n value: any,\n ): string {\n const formattedValue = format.literal(value);\n operator = operator\n ? (operator.toUpperCase() as FilterOperator)\n : FilterOperator.EQUAL;\n const postgresOperator = POSTGRES_FILTER_OPERATOR_MAP[operator];\n\n if (!postgresOperator)\n throw new Error(`Unsupported filter operator: ${operator}`);\n\n const filterProperty = format.ident(attribute);\n const columnExists = !!this.crudSchema.columns[attribute];\n const property = columnExists\n ? filterProperty\n : `(\"qvAttributes\" ->> '${attribute}')`;\n\n if (operator === FilterOperator.IN) {\n const formattedValues = Array.isArray(value)\n ? value.map(format.literal)\n : [formattedValue];\n return `${property} ${postgresOperator} (${formattedValues.join(\n ', ',\n )})`;\n }\n\n if (operator === FilterOperator.BETWEEN) {\n return `${property} ${postgresOperator} ${value[0]} AND ${value[1]}`;\n }\n\n /**\n * ? Additional filter to avoid error when column accepts null values.\n */\n if (operator === FilterOperator.NOT_EQUAL && value !== null) {\n return `(${property} ${postgresOperator} ${format.literal(\n value,\n )} OR ${property} IS NULL)`;\n }\n\n if (\n operator === FilterOperator.NOT_EXIST ||\n operator === FilterOperator.EXIST\n ) {\n return `${property} ${postgresOperator}`;\n }\n\n const wildcardValue = this.getWildcardValue(operator, value);\n return `${property} ${postgresOperator} ${format.literal(\n wildcardValue,\n )}`;\n }\n\n private buildFilterClause(\n filters: IFilter[] | ICompositeFilter,\n logicOperator?: FilterLogicOperator,\n ): string {\n if (Array.isArray(filters)) {\n const filterClauses = filters.map((filter) => {\n return this.buildClause(\n filter.operator as FilterOperator,\n filter.attribute,\n filter.value,\n );\n });\n return filterClauses.join(\n ` ${logicOperator ?? FILTER_LOGIC_OPERATORS.AND} `,\n );\n } else {\n return this.buildQueryByClause(filters);\n }\n }\n\n private isCompositeFilter = function (value: any) {\n return 'OR' in value || 'AND' in value;\n };\n\n buildQueryByClause(filters: IFilter[] | ICompositeFilter): string {\n let filterClauses: string = '';\n let isFirstFilter = true;\n\n for (const [key, value] of Object.entries(filters)) {\n if (!isFirstFilter) {\n filterClauses += key === 'AND' ? ' AND ' : ' OR ';\n }\n\n if (this.isCompositeFilter(value)) {\n filterClauses += '(';\n filterClauses += this.buildQueryByClause(\n value as ICompositeFilter,\n );\n filterClauses += ')';\n } else {\n (value as IFilter[]).forEach((filter: IFilter) => {\n let clause = '';\n if (this.isCompositeFilter(filter)) {\n clause = `(${this.buildQueryByClause(\n filter as ICompositeFilter,\n )})`;\n } else {\n clause = this.buildClause(\n filter.operator as FilterOperator,\n filter.attribute,\n filter.value,\n );\n }\n filterClauses += `${clause} ${key} `;\n });\n }\n\n isFirstFilter = false;\n }\n\n filterClauses = filterClauses.replace(/\\s+(AND|OR)\\s*$/, '');\n return filterClauses;\n }\n\n private formatOrderByItem(sort: ISorting): string {\n return `${format.ident(sort.column)} ${\n sort.direction || SORT_DIRECTIONS.ASC\n }`;\n }\n\n private buildOrderByClause(querySorting: ISorting[]): string {\n try {\n return querySorting.map(this.formatOrderByItem).join(', ');\n } catch (error) {\n return '';\n }\n }\n\n async createCommand(data: any[]): Promise<any> {\n const keys = Object.keys(data[0]); // Assuming all objects have the same keys\n const values = data.map((item) => Object.values(item));\n\n const query = format(\n `INSERT INTO ${format.ident(this.dbSchema)}.${format.ident(\n this.tableName,\n )} (%I) VALUES %L RETURNING *;`,\n keys,\n values,\n );\n\n return this.runQuery(query);\n }\n\n private addFiltersToQuery(\n query: string,\n filters?: IFilter[] | ICompositeFilter,\n ): string {\n if (filters) query += ` WHERE ${this.buildFilterClause(filters)}`;\n return query;\n }\n\n addOrderByToQuery(query: string, orderBy?: ISorting[]): string {\n if (orderBy) query += ` ORDER BY ${this.buildOrderByClause(orderBy)}`;\n return query;\n }\n\n private addPaginationToQuery(\n query: string,\n pagination?: IFindPagination,\n ): string {\n if (pagination) {\n const { limit, from } = pagination;\n if (limit) query += ` LIMIT ${limit}`;\n if (from) query += ` OFFSET ${from}`;\n }\n return query;\n }\n\n private getSelectClause(\n aggregateFunction: AggregateFunction | undefined,\n fields: string[] = [],\n ) {\n if (aggregateFunction)\n return `CAST(${aggregateFunction}(1) AS INTEGER) AS \"${buildAggFunctionAlias(\n aggregateFunction,\n )}\"`;\n if (!fields?.length) return '*';\n\n return this.parseFields(fields).join(', ');\n }\n\n private parseFields(fields: String[]): String[] {\n const columnsFromSchema: String[] = Object.keys(\n this.crudSchema.columns,\n );\n const attributes: String[] = fields\n .filter((field) => columnsFromSchema.indexOf(field) !== -1)\n .map((field) => `\"${field}\"`);\n\n fields\n .filter((field) => columnsFromSchema.indexOf(field) === -1)\n .forEach((field) => {\n attributes.push(`\"qvAttributes\" ->> '${field}' as \"${field}\"`);\n });\n return attributes;\n }\n\n async findCommand(options: IFindOptions = {}): Promise<T[]> {\n let query = `SELECT ${this.getSelectClause(\n options.aggregateFunction,\n options.fields,\n )} FROM ${format.ident(this.dbSchema)}.${format.ident(this.tableName)}`;\n query = this.addFiltersToQuery(query, options.filters);\n if (!options.aggregateFunction) {\n query = this.addOrderByToQuery(query, options.sorting);\n query = this.addPaginationToQuery(query, options.pagination);\n }\n return (await this.runQuery(query)).rows;\n }\n\n sanitizeValue(value: any): string {\n if (Array.isArray(value)) {\n const formattedArray = value\n .map((item) => {\n if (typeof item === 'string') {\n return `'${item}'`;\n } else if (typeof item === 'object') {\n return JSON.stringify(item);\n } else {\n return item;\n }\n })\n .join(',');\n\n return JSON.stringify(formattedArray);\n } else {\n return format.literal(value);\n }\n }\n\n async updateCommand(\n filters: ICompositeFilter,\n data: Partial<any>,\n ): Promise<QueryResult<any>> {\n let query = `UPDATE ${format.ident(this.dbSchema)}.${format.ident(\n this.tableName,\n )} SET`;\n\n const updateClauses = Object.entries(data).map(([key, value]) => {\n const dbValue = this.sanitizeValue(value);\n return `${format.ident(key)} = ${dbValue}`;\n });\n query += ` ${updateClauses.join(', ')}`;\n\n query += ' WHERE ';\n query += this.buildFilterClause(filters);\n\n return this.runQuery(query);\n }\n\n private buildFilterClauseForFilterGroups(\n filterGroups: IFilter[][],\n ): string {\n const filterClauses = filterGroups.map((filterGroup) => {\n return `(${this.buildFilterClause(filterGroup)})`;\n });\n return filterClauses.join(' OR ');\n }\n\n async deleteCommand(\n filters?: ICompositeFilter | IFilter[] | IFilter[][],\n useFilterGroups: boolean = false,\n ): Promise<QueryResult<any>> {\n let query = `DELETE FROM ${format.ident(this.dbSchema)}.${format.ident(\n this.tableName,\n )}`;\n if (filters) {\n query += ' WHERE ';\n\n if (useFilterGroups) {\n query += this.buildFilterClauseForFilterGroups(\n filters as IFilter[][],\n );\n } else {\n query += this.buildFilterClause(\n filters as ICompositeFilter | IFilter[],\n );\n }\n }\n\n return this.runQuery(query);\n }\n\n query(queryText: string, values?: any[]) {\n return this.runQuery(queryText, values);\n }\n\n public async updateExpressionCommand(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n filters: IFilter[] | ICompositeFilter,\n actions: IUpdateExpressions,\n options: Partial<IUpdateExpressionsOptions> = {},\n ) {\n let query = `UPDATE ${format.ident(this.dbSchema)}.${format.ident(\n this.tableName,\n )} SET`;\n\n const set = actions.SET || [];\n const add = actions.ADD || [];\n const setValues = this.replacePathAndValueByAttributeNames(\n set,\n options,\n false,\n );\n const addValues = this.replacePathAndValueByAttributeNames(\n add,\n options,\n true,\n );\n\n const setValuesAndAddValues: any = setValues.concat(addValues);\n\n const updateClauses: any = [];\n const jsonSetExpressionGroup: any = {};\n\n setValuesAndAddValues.forEach((expression: any) => {\n const { path, value, createNewColumn } = expression;\n\n if (path.includes('.')) {\n const jsonExpr = this.getJSONBSetExpressionByAction(\n path,\n value,\n true,\n );\n const columnName: string = jsonExpr.columnName;\n if (!jsonSetExpressionGroup[columnName]) {\n jsonSetExpressionGroup[columnName] = [jsonExpr];\n } else {\n jsonSetExpressionGroup[columnName].push(jsonExpr);\n }\n } else {\n if (createNewColumn)\n throw 'Set Expressions are not supported for non JSON-JSONB';\n updateClauses.push(\n `${format.ident(path)} = ${this.sanitizeValue(value)}`,\n );\n }\n });\n\n if (Object.keys(jsonSetExpressionGroup).length > 0) {\n Object.keys(jsonSetExpressionGroup).forEach((groupIndex) => {\n const jsonSetExpression = this.buildJSONBExpression(\n jsonSetExpressionGroup[groupIndex],\n );\n\n updateClauses.push(`${groupIndex} = ${jsonSetExpression}`);\n });\n }\n\n query += ` ${updateClauses.join(', ')}`;\n\n query += ' WHERE ';\n query += this.buildFilterClause(filters);\n\n return this.runQuery(query);\n }\n\n private buildJSONBExpression(jsonSetExpressions: any) {\n let jsonSetStringExpr = '';\n jsonSetExpressions.forEach((expression: any, index: number) => {\n const { columnName, jsonExpr } = expression;\n if (index === 0) {\n jsonSetStringExpr = `jsonb_set(${columnName},${jsonExpr})`;\n } else {\n jsonSetStringExpr = `jsonb_set(${jsonSetStringExpr},${jsonExpr})`;\n }\n });\n return jsonSetStringExpr;\n }\n\n private getJSONBSetExpressionByAction(\n path: string,\n value: any,\n createNewColumn: boolean,\n ) {\n const pathSplitted = path.split('.');\n const parentPath = pathSplitted[0];\n\n const pathSerialized = pathSplitted.slice(1).join(',');\n return {\n jsonExpr: `'{${pathSerialized}}','${value}',${createNewColumn}`,\n columnName: `\"${parentPath}\"`,\n };\n }\n\n private replacePathAndValueByAttributeNames(\n actions: any[],\n options: IUpdateExpressionsOptions,\n createNewColumn: boolean,\n ) {\n return actions.map((action) => {\n action.path = this.replaceExpressionAttributeNames(\n action.path,\n options,\n );\n if (action.value)\n action.value = this.replaceExpressionAttributeValues(\n action.value,\n options,\n );\n action.createNewColumn = createNewColumn;\n return action;\n });\n }\n\n private replaceExpressionAttributeNames(\n path: string,\n options: IUpdateExpressionsOptions,\n ) {\n const { expressionAttributeNames } = options;\n\n Object.keys(expressionAttributeNames).forEach(\n (attributeName: string) => {\n const attributeNameValue: string =\n expressionAttributeNames[attributeName];\n path = path.replace(attributeName, attributeNameValue);\n },\n );\n return path;\n }\n\n private replaceExpressionAttributeValues(\n value: string,\n options: IUpdateExpressionsOptions,\n ) {\n const { expressionAttributeValues } = options;\n\n Object.keys(expressionAttributeValues).forEach(\n (attributeName: string) => {\n const attributeNameValue: string =\n expressionAttributeValues[attributeName];\n value = value.replace(attributeName, attributeNameValue);\n value = typeof value == 'string' ? `\\\"${value}\\\"` : value;\n },\n );\n return value;\n }\n}\n","import { Client } from 'pg';\n\nexport default class ConnectionService {\n get connectionString() {\n const connectionString =\n process.env.MULTIPLATFORM_PG_CONNECTION_STRING || '';\n if (!connectionString) {\n throw new Error(\n 'MULTIPLATFORM_PG_CONNECTION_STRING environment variable must be configured',\n );\n }\n return connectionString;\n }\n\n async getClient(): Promise<Client> {\n const client: Client = new Client({\n connectionString: this.connectionString,\n });\n await client.connect();\n return client;\n }\n\n releaseClient(client: Client): void {\n try {\n client.end();\n } catch {\n // eslint-disable-next-line no-console\n console.log('Error releasing client');\n }\n }\n}\n","/* eslint-disable no-console */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Client, QueryResult } from 'pg';\nimport ConnectionService from './connection.service';\nimport { DbPoolClient } from '../../../types';\n\nexport default class QueryService {\n private connectionService: ConnectionService;\n\n constructor(private poolClient?: DbPoolClient) {\n this.connectionService = new ConnectionService();\n }\n\n async runQuery(\n queryText: string,\n values?: any[],\n ): Promise<QueryResult<any>> {\n const client = await (this.poolClient\n ? this.poolClient\n : this.connectionService.getClient());\n\n try {\n const result = await client.query(queryText, values);\n return result;\n } catch (error) {\n console.log('[Postgresql-Client] Query Execution Failed:', error);\n throw error;\n } finally {\n if (!this.poolClient)\n this.connectionService.releaseClient(client as Client);\n }\n }\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport PostgresqlClientService from './postgreSqlClient.service';\nimport {\n ICompositeFilter,\n ICreateMultipleResponse,\n ICrudService,\n IFilter,\n IFindOptions,\n IFindResult,\n IRemoveOptions,\n IUpdateExpressions,\n IUpdateExpressionsOptions,\n} from '../../../interfaces';\nimport { CrudSchema } from '../../../schemas';\nimport { findIdColumnName } from '../../../helpers/tableHelper';\nimport { AGGREGATE_FUNCTIONS } from '../../../utils/constants';\nimport { buildAggFunctionAlias } from '../../../helpers/queryHelpers';\nimport { PersistenceErrorWrapper } from '../../../helpers/errorHelper';\nexport class PostgreSqlCrudService<T>\n extends PostgresqlClientService<T>\n implements ICrudService<T>\n{\n constructor(private tableSchema: typeof CrudSchema) {\n super(tableSchema);\n }\n\n private get idColumnName(): string | undefined {\n return findIdColumnName(this.tableSchema.columns);\n }\n\n normalizeInputData(inputData: any) {\n inputData.qvAttributes = {};\n for (const key in inputData) {\n if (!this.tableSchema.columns[key] && key !== 'qvAttributes') {\n inputData.qvAttributes[key] = inputData[key];\n delete inputData[key];\n } else if (Array.isArray(inputData[key])) {\n inputData[key] = JSON.stringify(inputData[key]);\n }\n }\n }\n\n getItem(data: { [key: string]: any }): any {\n const resultItem = { ...data, ...data.qvAttributes };\n delete resultItem['qvAttributes'];\n return resultItem;\n }\n\n prepareData(data: T): any {\n const inputData = { ...data } as { [key: string]: any };\n this.normalizeInputData(inputData);\n return inputData;\n }\n\n create(data: T | T[]): Promise<T | ICreateMultipleResponse> {\n if (Array.isArray(data)) {\n const inputDataArray = data.map((item) => this.prepareData(item));\n return this.createCommand(inputDataArray).then((result) => ({\n unprocessedItems: result\n .filter((r: any) => !r.success)\n .map((r: any) => r.inputData),\n }));\n } else {\n const inputData = this.prepareData(data);\n return this.createCommand([inputData]).then((result) =>\n result.rowCount ? this.getItem(result.rows[0]) : null,\n );\n }\n }\n\n findItem(findOptions: IFindOptions): Promise<T | null> {\n return this.findCommand(findOptions).then((data) => {\n return data?.length\n ? this.getItem(data[0] as { [key: string]: any })\n : null;\n });\n }\n\n private async processQueryResult(\n findOptions: IFindOptions,\n omitPagination: boolean = false,\n ): Promise<IFindResult<T>> {\n const { pagination } = findOptions;\n const rows = await this.findCommand(findOptions);\n const items = rows.map((row) =>\n this.getItem(row as { [key: string]: any }),\n );\n\n const from =\n pagination?.limit && items.length\n ? pagination.limit + (pagination.from || 0)\n : null;\n\n const result: IFindResult<T> = {\n items,\n pagination: omitPagination\n ? null\n : { limit: pagination?.limit, from },\n count: items.length,\n };\n return result;\n }\n\n async find(findOptions: IFindOptions): Promise<IFindResult<T>> {\n return this.processQueryResult(findOptions);\n }\n\n async findAll(findOptions: IFindOptions): Promise<IFindResult<T>> {\n return this.processQueryResult(findOptions, true);\n }\n\n async findCount(findOptions: IFindOptions): Promise<number> {\n const items = await this.findCommand({\n ...findOptions,\n aggregateFunction: AGGREGATE_FUNCTIONS.COUNT,\n });\n\n const aggFunctionProperty = buildAggFunctionAlias(\n AGGREGATE_FUNCTIONS.COUNT,\n );\n const item: any = items.length ? items[0] : {};\n return item[aggFunctionProperty] || 0;\n }\n\n async update(\n filters: IFilter[] | ICompositeFilter,\n data: Partial<T>,\n ): Promise<any> {\n const savedRecord = await this.findItem({ filters });\n\n const inputData: { [key: string]: any } = {\n ...savedRecord,\n ...data,\n } as {\n [key: string]: any;\n };\n\n this.normalizeInputData(inputData);\n await this.updateCommand(filters as ICompositeFilter, inputData);\n return this.getItem(inputData);\n }\n\n async remove(\n filters: IFilter[] | ICompositeFilter | IFilter[][],\n options: IRemoveOptions,\n ): Promise<void> {\n await this.deleteCommand(filters, options?.filterGroups);\n }\n\n runQuery(querySentence: string, values?: any[]) {\n return super.runQuery(querySentence, values);\n }\n\n async updateExpressions(\n filters: IFilter[] | ICompositeFilter,\n actions: IUpdateExpressions,\n options: IUpdateExpressionsOptions,\n ): Promise<any> {\n const result = await this.updateExpressionCommand(\n filters,\n actions,\n options,\n );\n PersistenceErrorWrapper(result);\n return result;\n }\n}\n"]}
|
/package/dist/esm/{dynamoDbCrud.service-CS264IQJ.mjs.map → dynamoDbCrud.service-EFYPBZKN.mjs.map}
RENAMED
|
File without changes
|