@node-c/persistance-rdb 1.0.0-alpha2 → 1.0.0-alpha21

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 (65) hide show
  1. package/README.md +1 -1
  2. package/dist/common/definitions/common.constants.d.ts +4 -0
  3. package/dist/common/definitions/common.constants.js +5 -1
  4. package/dist/common/definitions/common.constants.js.map +1 -1
  5. package/dist/{entityService → entity}/index.d.ts +2 -1
  6. package/dist/{entityService → entity}/index.js +2 -1
  7. package/dist/entity/index.js.map +1 -0
  8. package/dist/entity/rdb.entity.schema.d.ts +10 -0
  9. package/dist/{module/rdb.module.definitions.js → entity/rdb.entity.schema.js} +1 -1
  10. package/dist/entity/rdb.entity.schema.js.map +1 -0
  11. package/dist/entity/rdb.entity.service.d.ts +40 -0
  12. package/dist/entity/rdb.entity.service.definitions.d.ts +28 -0
  13. package/dist/{entityService → entity}/rdb.entity.service.definitions.js +1 -1
  14. package/dist/entity/rdb.entity.service.definitions.js.map +1 -0
  15. package/dist/{entityService → entity}/rdb.entity.service.js +182 -73
  16. package/dist/entity/rdb.entity.service.js.map +1 -0
  17. package/dist/index.d.ts +2 -2
  18. package/dist/index.js +2 -2
  19. package/dist/index.js.map +1 -1
  20. package/dist/ormQueryBuilder/index.d.ts +1 -0
  21. package/dist/{module → ormQueryBuilder}/index.js +1 -2
  22. package/dist/ormQueryBuilder/index.js.map +1 -0
  23. package/dist/ormQueryBuilder/rdb.ormQueryBuilder.d.ts +38 -0
  24. package/dist/ormQueryBuilder/rdb.ormQueryBuilder.js +16 -0
  25. package/dist/ormQueryBuilder/rdb.ormQueryBuilder.js.map +1 -0
  26. package/dist/repository/index.d.ts +1 -2
  27. package/dist/repository/index.js +1 -2
  28. package/dist/repository/index.js.map +1 -1
  29. package/dist/repository/rdb.repository.d.ts +22 -0
  30. package/dist/repository/rdb.repository.js +10 -0
  31. package/dist/repository/rdb.repository.js.map +1 -0
  32. package/dist/sqlQueryBuilder/index.d.ts +3 -3
  33. package/dist/sqlQueryBuilder/index.js +3 -3
  34. package/dist/sqlQueryBuilder/index.js.map +1 -1
  35. package/dist/sqlQueryBuilder/{sqlQueryBuilder.definitions.d.ts → rdb.sqlQueryBuilder.definitions.d.ts} +2 -6
  36. package/dist/{repository/rdb.repository.definitions.js → sqlQueryBuilder/rdb.sqlQueryBuilder.definitions.js} +1 -1
  37. package/dist/sqlQueryBuilder/rdb.sqlQueryBuilder.definitions.js.map +1 -0
  38. package/dist/sqlQueryBuilder/{sqlQueryBuilder.module.d.ts → rdb.sqlQueryBuilder.module.d.ts} +1 -1
  39. package/dist/sqlQueryBuilder/{sqlQueryBuilder.module.js → rdb.sqlQueryBuilder.module.js} +11 -6
  40. package/dist/sqlQueryBuilder/rdb.sqlQueryBuilder.module.js.map +1 -0
  41. package/dist/sqlQueryBuilder/{sqlQueryBuilder.service.d.ts → rdb.sqlQueryBuilder.service.d.ts} +9 -9
  42. package/dist/sqlQueryBuilder/{sqlQueryBuilder.service.js → rdb.sqlQueryBuilder.service.js} +30 -21
  43. package/dist/sqlQueryBuilder/rdb.sqlQueryBuilder.service.js.map +1 -0
  44. package/package.json +6 -4
  45. package/dist/entityService/index.js.map +0 -1
  46. package/dist/entityService/rdb.entity.service.d.ts +0 -34
  47. package/dist/entityService/rdb.entity.service.definitions.d.ts +0 -21
  48. package/dist/entityService/rdb.entity.service.definitions.js.map +0 -1
  49. package/dist/entityService/rdb.entity.service.js.map +0 -1
  50. package/dist/module/index.d.ts +0 -2
  51. package/dist/module/index.js.map +0 -1
  52. package/dist/module/rdb.module.d.ts +0 -5
  53. package/dist/module/rdb.module.definitions.d.ts +0 -15
  54. package/dist/module/rdb.module.definitions.js.map +0 -1
  55. package/dist/module/rdb.module.js +0 -45
  56. package/dist/module/rdb.module.js.map +0 -1
  57. package/dist/repository/rdb.repository.definitions.d.ts +0 -5
  58. package/dist/repository/rdb.repository.definitions.js.map +0 -1
  59. package/dist/repository/rdb.repository.module.d.ts +0 -6
  60. package/dist/repository/rdb.repository.module.js +0 -38
  61. package/dist/repository/rdb.repository.module.js.map +0 -1
  62. package/dist/sqlQueryBuilder/sqlQueryBuilder.definitions.js +0 -3
  63. package/dist/sqlQueryBuilder/sqlQueryBuilder.definitions.js.map +0 -1
  64. package/dist/sqlQueryBuilder/sqlQueryBuilder.module.js.map +0 -1
  65. package/dist/sqlQueryBuilder/sqlQueryBuilder.service.js.map +0 -1
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
1
  # Node-C / Persistance: RDB
2
- This is Node-C's package providing the functionality for relational databases. Currently, PostgreSQL and MySQL are supported.
2
+ This is Node-C's package providing the functionality for relational databases that TypeORMDB can work with. Currently, PostgreSQL and MySQL are supported.
3
3
 
4
4
  The documentation can be found on the [Node-C Github repo homepage](https://github.com/RazorDude/node-c).
@@ -1,4 +1,8 @@
1
1
  export declare enum Constants {
2
+ RDB_ENTITY_REPOSITORY = "RDB_ENTITY_REPOSITORY",
3
+ RDB_REPOSITORY_CONNECTION_NAME = "RDB_REPOSITORY_CONNECTION_NAME",
4
+ RDB_REPOSITORY_DATASOURCE = "RDB_REPOSITORY_DATASOURCE",
5
+ RDB_REPOSITORY_ENTITY_CLASS = "RDB_REPOSITORY_ENTITY_CLASS",
2
6
  SQL_BUILDER_DB_CONFIG_PATH = "SQL_BUILDER_DB_CONFIG_PATH",
3
7
  SQL_BUILDER_SERVICE_TOKEN_SUFFIX = "_SQL_BUILDER_SERVICE"
4
8
  }
@@ -3,7 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.Constants = void 0;
4
4
  var Constants;
5
5
  (function (Constants) {
6
+ Constants["RDB_ENTITY_REPOSITORY"] = "RDB_ENTITY_REPOSITORY";
7
+ Constants["RDB_REPOSITORY_CONNECTION_NAME"] = "RDB_REPOSITORY_CONNECTION_NAME";
8
+ Constants["RDB_REPOSITORY_DATASOURCE"] = "RDB_REPOSITORY_DATASOURCE";
9
+ Constants["RDB_REPOSITORY_ENTITY_CLASS"] = "RDB_REPOSITORY_ENTITY_CLASS";
6
10
  Constants["SQL_BUILDER_DB_CONFIG_PATH"] = "SQL_BUILDER_DB_CONFIG_PATH";
7
11
  Constants["SQL_BUILDER_SERVICE_TOKEN_SUFFIX"] = "_SQL_BUILDER_SERVICE";
8
- })(Constants = exports.Constants || (exports.Constants = {}));
12
+ })(Constants || (exports.Constants = Constants = {}));
9
13
  //# sourceMappingURL=common.constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.constants.js","sourceRoot":"","sources":["../../../src/common/definitions/common.constants.ts"],"names":[],"mappings":";;;AAAA,IAAY,SAKX;AALD,WAAY,SAAS;IAEnB,sEAAyD,CAAA;IAEzD,sEAAyD,CAAA;AAC3D,CAAC,EALW,SAAS,GAAT,iBAAS,KAAT,iBAAS,QAKpB"}
1
+ {"version":3,"file":"common.constants.js","sourceRoot":"","sources":["../../../src/common/definitions/common.constants.ts"],"names":[],"mappings":";;;AAAA,IAAY,SAaX;AAbD,WAAY,SAAS;IAEnB,4DAA+C,CAAA;IAE/C,8EAAiE,CAAA;IAEjE,oEAAuD,CAAA;IAEvD,wEAA2D,CAAA;IAE3D,sEAAyD,CAAA;IAEzD,sEAAyD,CAAA;AAC3D,CAAC,EAbW,SAAS,yBAAT,SAAS,QAapB"}
@@ -1,2 +1,3 @@
1
- export * from './rdb.entity.service.definitions';
1
+ export * from './rdb.entity.schema';
2
2
  export * from './rdb.entity.service';
3
+ export * from './rdb.entity.service.definitions';
@@ -14,6 +14,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./rdb.entity.service.definitions"), exports);
17
+ __exportStar(require("./rdb.entity.schema"), exports);
18
18
  __exportStar(require("./rdb.entity.service"), exports);
19
+ __exportStar(require("./rdb.entity.service.definitions"), exports);
19
20
  //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/entity/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,sDAAoC;AACpC,uDAAqC;AACrC,mEAAiD"}
@@ -0,0 +1,10 @@
1
+ export interface RDBEntitySchema {
2
+ options: {
3
+ columns: {
4
+ [columnName: string]: {
5
+ deleteDate?: boolean;
6
+ primary?: boolean;
7
+ } | undefined;
8
+ };
9
+ };
10
+ }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=rdb.module.definitions.js.map
3
+ //# sourceMappingURL=rdb.entity.schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rdb.entity.schema.js","sourceRoot":"","sources":["../../src/entity/rdb.entity.schema.ts"],"names":[],"mappings":""}
@@ -0,0 +1,40 @@
1
+ import { ConfigProviderService, GenericObject, PersistanceDeleteResult, PersistanceEntityService, PersistanceFindResults, PersistanceNumberItem, PersistanceUpdateResult } from '@node-c/core';
2
+ import { RDBEntitySchema } from './rdb.entity.schema';
3
+ import { BulkCreateOptions, BulkCreatePrivateOptions, CountOptions, CountPrivateOptions, CreateOptions, CreatePrivateOptions, DeleteOptions, DeletePrivateOptions, FindOneOptions, FindOnePrivateOptions, FindOptions, FindPrivateOptions, UpdateOptions, UpdatePrivateOptions } from './rdb.entity.service.definitions';
4
+ import { RDBEntityManager, RDBRepository } from '../repository';
5
+ import { ParsedFilter, SQLQueryBuilderService } from '../sqlQueryBuilder';
6
+ export declare class RDBEntityService<Entity extends GenericObject<unknown>> extends PersistanceEntityService<Entity> {
7
+ protected configProvider: ConfigProviderService;
8
+ protected qb: SQLQueryBuilderService;
9
+ protected repository: RDBRepository<Entity>;
10
+ protected schema: RDBEntitySchema;
11
+ protected columNames: string[];
12
+ protected deletedColumnName?: string;
13
+ protected primaryKeys: string[];
14
+ constructor(configProvider: ConfigProviderService, qb: SQLQueryBuilderService, repository: RDBRepository<Entity>, schema: RDBEntitySchema);
15
+ protected buildPrimaryKeyWhereClause(data: Entity[]): {
16
+ field: string;
17
+ value: ParsedFilter;
18
+ };
19
+ bulkCreate(data: Partial<Entity>[], options?: BulkCreateOptions, privateOptions?: BulkCreatePrivateOptions): Promise<Entity[]>;
20
+ count(options: CountOptions, privateOptions?: CountPrivateOptions): Promise<number | undefined>;
21
+ create(data: Partial<Entity>, options?: CreateOptions, privateOptions?: CreatePrivateOptions): Promise<Entity>;
22
+ delete(options: DeleteOptions, privateOptions?: DeletePrivateOptions): Promise<PersistanceDeleteResult<Entity>>;
23
+ find(options: FindOptions, privateOptions?: FindPrivateOptions): Promise<PersistanceFindResults<Entity>>;
24
+ findOne(options: FindOneOptions, privateOptions?: FindOnePrivateOptions): Promise<Entity | null>;
25
+ getEntityTarget(): unknown;
26
+ protected getRepository(transactionManager?: RDBEntityManager): RDBRepository<Entity>;
27
+ protected processManyToMany(data: {
28
+ counterpartColumn: string;
29
+ currentEntityColumn: string;
30
+ id: number;
31
+ items: PersistanceNumberItem[];
32
+ tableName: string;
33
+ }, options?: {
34
+ transactionManager?: RDBEntityManager;
35
+ }): Promise<void>;
36
+ protected save<Data = unknown, ReturnData = unknown>(data: Data, transactionManager?: RDBEntityManager, options?: {
37
+ processObjectAllowedFieldsEnabled?: boolean;
38
+ }): Promise<ReturnData>;
39
+ update(data: Entity, options: UpdateOptions, privateOptions?: UpdatePrivateOptions): Promise<PersistanceUpdateResult<Entity>>;
40
+ }
@@ -0,0 +1,28 @@
1
+ import { PersistanceBulkCreatePrivateOptions, PersistanceCountOptions, PersistanceCountPrivateOptions, PersistanceCreatePrivateOptions, PersistanceDeleteOptions, PersistanceDeletePrivateOptions, PersistanceFindOneOptions, PersistanceFindOnePrivateOptions, PersistanceFindOptions, PersistanceFindPrivateOptions, PersistanceUpdateOptions, PersistanceUpdatePrivateOptions } from '@node-c/core';
2
+ import { RDBEntityManager } from '../repository';
3
+ export interface BaseOptions {
4
+ forceTransaction?: boolean;
5
+ transactionManager?: RDBEntityManager;
6
+ }
7
+ export type BulkCreateOptions = BaseOptions;
8
+ export type BulkCreatePrivateOptions = PersistanceBulkCreatePrivateOptions;
9
+ export interface CountOptions extends BaseOptions, PersistanceCountOptions {
10
+ }
11
+ export type CountPrivateOptions = PersistanceCountPrivateOptions;
12
+ export type CreateOptions = BaseOptions;
13
+ export type CreatePrivateOptions = PersistanceCreatePrivateOptions;
14
+ export interface DeleteOptions extends BaseOptions, PersistanceDeleteOptions {
15
+ }
16
+ export type DeletePrivateOptions = PersistanceDeletePrivateOptions;
17
+ export interface FindOneOptions extends BaseOptions, PersistanceFindOneOptions {
18
+ }
19
+ export type FindOnePrivateOptions = PersistanceFindOnePrivateOptions;
20
+ export interface FindOptions extends BaseOptions, PersistanceFindOptions {
21
+ }
22
+ export type FindPrivateOptions = PersistanceFindPrivateOptions;
23
+ export declare enum PostgresErrorCode {
24
+ UniqueViolation = "23505"
25
+ }
26
+ export interface UpdateOptions extends BaseOptions, PersistanceUpdateOptions {
27
+ }
28
+ export type UpdatePrivateOptions = PersistanceUpdatePrivateOptions;
@@ -4,5 +4,5 @@ exports.PostgresErrorCode = void 0;
4
4
  var PostgresErrorCode;
5
5
  (function (PostgresErrorCode) {
6
6
  PostgresErrorCode["UniqueViolation"] = "23505";
7
- })(PostgresErrorCode = exports.PostgresErrorCode || (exports.PostgresErrorCode = {}));
7
+ })(PostgresErrorCode || (exports.PostgresErrorCode = PostgresErrorCode = {}));
8
8
  //# sourceMappingURL=rdb.entity.service.definitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rdb.entity.service.definitions.js","sourceRoot":"","sources":["../../src/entity/rdb.entity.service.definitions.ts"],"names":[],"mappings":";;;AA8CA,IAAY,iBAGX;AAHD,WAAY,iBAAiB;IAE3B,8CAAyB,CAAA;AAC3B,CAAC,EAHW,iBAAiB,iCAAjB,iBAAiB,QAG5B"}
@@ -13,19 +13,27 @@ exports.RDBEntityService = void 0;
13
13
  const core_1 = require("@node-c/core");
14
14
  const rdb_entity_service_definitions_1 = require("./rdb.entity.service.definitions");
15
15
  class RDBEntityService extends core_1.PersistanceEntityService {
16
- constructor(qb, repository, schema) {
17
- var _a;
18
- super();
16
+ constructor(configProvider, qb, repository, schema) {
17
+ super(configProvider, qb.persistanceModuleName);
18
+ this.configProvider = configProvider;
19
19
  this.qb = qb;
20
20
  this.repository = repository;
21
21
  this.schema = schema;
22
22
  const { columns } = schema.options;
23
23
  const primaryKeys = [];
24
+ let deletedColumnName;
25
+ this.columNames = [];
24
26
  for (const columnName in columns) {
25
- if ((_a = columns[columnName]) === null || _a === void 0 ? void 0 : _a.primary) {
27
+ const { deleteDate, primary } = columns[columnName] || {};
28
+ this.columNames.push(columnName);
29
+ if (primary) {
26
30
  primaryKeys.push(columnName);
27
31
  }
32
+ if (!deletedColumnName && deleteDate) {
33
+ deletedColumnName = columnName;
34
+ }
28
35
  }
36
+ this.deletedColumnName = deletedColumnName;
29
37
  this.primaryKeys = primaryKeys;
30
38
  }
31
39
  buildPrimaryKeyWhereClause(data) {
@@ -55,91 +63,115 @@ class RDBEntityService extends core_1.PersistanceEntityService {
55
63
  });
56
64
  return { field: core_1.PersistanceSelectOperator.Or, value: { params, query: `(${query.join(' or ')})` } };
57
65
  }
58
- bulkCreate(data, options) {
66
+ bulkCreate(data, options, privateOptions) {
59
67
  return __awaiter(this, void 0, void 0, function* () {
60
- const actualOptions = Object.assign(options || {});
68
+ const actualOptions = options || {};
69
+ const actualPrivateOptions = privateOptions || {};
61
70
  const { forceTransaction, transactionManager } = actualOptions;
71
+ const { processInputAllowedFieldsEnabled } = actualPrivateOptions;
62
72
  if (!transactionManager && forceTransaction) {
63
73
  return this.repository.manager.transaction(tm => {
64
- return this.bulkCreate(data, Object.assign(Object.assign({}, actualOptions), { transactionManager: tm }));
74
+ return this.bulkCreate(data, Object.assign(Object.assign({}, actualOptions), { transactionManager: tm }), actualPrivateOptions);
65
75
  });
66
76
  }
67
- return yield this.save(data, transactionManager);
77
+ return yield this.save(data instanceof Array ? data : [data], transactionManager, {
78
+ processObjectAllowedFieldsEnabled: processInputAllowedFieldsEnabled
79
+ });
68
80
  });
69
81
  }
70
- create(data, options) {
82
+ count(options, privateOptions) {
71
83
  return __awaiter(this, void 0, void 0, function* () {
72
- const actualOptions = Object.assign(options || {});
73
- const { forceTransaction, transactionManager } = actualOptions;
84
+ const { filters, forceTransaction, transactionManager, withDeleted = false } = options;
85
+ const actualPrivateOptions = privateOptions || {};
74
86
  if (!transactionManager && forceTransaction) {
75
87
  return this.repository.manager.transaction(tm => {
76
- return this.create(data, Object.assign(Object.assign({}, actualOptions), { transactionManager: tm }));
88
+ return this.count(Object.assign(Object.assign({}, options), { transactionManager: tm }), actualPrivateOptions);
77
89
  });
78
90
  }
79
- try {
80
- return yield this.save(data, transactionManager);
81
- }
82
- catch (e) {
83
- const error = e;
84
- if (error.code === rdb_entity_service_definitions_1.PostgresErrorCode.UniqueViolation) {
85
- const extractVariableName = new RegExp(/^Key \((.*)\)\=(.*)$/g);
86
- const result = extractVariableName.exec(error.detail);
87
- throw new core_1.ApplicationError(`${error.table}: ${result ? result[1] : 'a column value you have provided'} needs to be unique`);
88
- }
89
- throw e;
91
+ const { processFiltersAllowedFieldsEnabled } = actualPrivateOptions;
92
+ const entityName = this.repository.metadata.name;
93
+ const tableName = this.repository.metadata.name;
94
+ const queryBuilder = this.getRepository(transactionManager).createQueryBuilder(entityName);
95
+ const parsedFilters = (yield this.processObjectAllowedFields(filters, {
96
+ allowedFields: this.columNames,
97
+ isEnabled: processFiltersAllowedFieldsEnabled,
98
+ objectType: core_1.ProcessObjectAllowedFieldsType.Filters
99
+ }));
100
+ if (!Object.keys(parsedFilters).length) {
101
+ throw new core_1.ApplicationError('At least one filter field for counting is required.');
90
102
  }
103
+ const { where, include: includeFromFilters } = this.qb.parseFilters(tableName, parsedFilters);
104
+ const include = this.qb.parseRelations(tableName, [], includeFromFilters);
105
+ this.qb.buildQuery(queryBuilder, {
106
+ deletedColumnName: this.deletedColumnName,
107
+ include,
108
+ where,
109
+ withDeleted
110
+ });
111
+ return yield queryBuilder.getCount();
91
112
  });
92
113
  }
93
- count(options) {
114
+ create(data, options, privateOptions) {
94
115
  return __awaiter(this, void 0, void 0, function* () {
95
- const { filters, forceTransaction, transactionManager, withDeleted = false } = options;
116
+ const actualOptions = options || {};
117
+ const actualPrivateOptions = privateOptions || {};
118
+ const { forceTransaction, transactionManager } = actualOptions;
96
119
  if (!transactionManager && forceTransaction) {
97
120
  return this.repository.manager.transaction(tm => {
98
- return this.count(Object.assign(Object.assign({}, options), { transactionManager: tm }));
121
+ return this.create(data, Object.assign(Object.assign({}, actualOptions), { transactionManager: tm }), actualPrivateOptions);
99
122
  });
100
123
  }
101
- const entityName = this.repository.metadata.name;
102
- const tableName = this.repository.metadata.name;
103
- const queryBuilder = this.getRepository(transactionManager).createQueryBuilder(entityName);
104
- const { where, include: includeFromFilters } = this.qb.parseFilters(tableName, filters);
105
- const include = this.qb.parseRelations(tableName, [], includeFromFilters);
106
- this.qb.buildQuery(queryBuilder, { where, include, withDeleted });
107
- return yield queryBuilder.getCount();
124
+ return yield this.save(data instanceof Array ? data[0] : data, transactionManager, {
125
+ processObjectAllowedFieldsEnabled: actualPrivateOptions.processInputAllowedFieldsEnabled
126
+ });
108
127
  });
109
128
  }
110
- delete(options) {
129
+ delete(options, privateOptions) {
111
130
  return __awaiter(this, void 0, void 0, function* () {
112
- const { filters, forceTransaction, transactionManager, softDelete = true } = options;
131
+ const { filters, forceTransaction, returnOriginalItems, transactionManager, softDelete = true } = options;
132
+ const actualPrivateOptions = privateOptions || {};
113
133
  if (!transactionManager && forceTransaction) {
114
134
  return this.repository.manager.transaction(tm => {
115
- return this.delete(Object.assign(Object.assign({}, options), { transactionManager: tm }));
135
+ return this.delete(Object.assign(Object.assign({}, options), { transactionManager: tm }), actualPrivateOptions);
116
136
  });
117
137
  }
138
+ const { processFiltersAllowedFieldsEnabled } = actualPrivateOptions;
118
139
  const entityName = this.repository.metadata.name;
119
- const tableName = this.repository.metadata.tableName;
140
+ const tableName = this.repository.metadata.name;
141
+ const dataToReturn = {};
120
142
  const deleteType = softDelete ? 'softDelete' : 'delete';
121
143
  const queryBuilder = this.getRepository(transactionManager).createQueryBuilder(entityName)[deleteType]();
122
- const { where: parsedWhere, include } = this.qb.parseFilters(tableName, filters);
144
+ const parsedFilters = (yield this.processObjectAllowedFields(filters, {
145
+ allowedFields: this.columNames,
146
+ isEnabled: processFiltersAllowedFieldsEnabled,
147
+ objectType: core_1.ProcessObjectAllowedFieldsType.Filters
148
+ }));
149
+ if (!Object.keys(parsedFilters).length) {
150
+ throw new core_1.ApplicationError('At least one filter field for deletion is required.');
151
+ }
152
+ const { where: parsedWhere, include } = this.qb.parseFilters(tableName, parsedFilters);
123
153
  let where = {};
124
- if (Object.keys(include).length) {
125
- const findData = yield this.find({ filters, transactionManager });
154
+ if (Object.keys(include).length || returnOriginalItems) {
155
+ const findData = yield this.find({ filters: parsedFilters, transactionManager });
126
156
  const { field, value } = this.buildPrimaryKeyWhereClause(findData.items);
127
157
  where[field] = value;
158
+ dataToReturn.originalItems = findData.items;
128
159
  }
129
160
  else {
130
161
  where = parsedWhere;
131
162
  }
132
- this.qb.buildQuery(queryBuilder, { where });
163
+ this.qb.buildQuery(queryBuilder, { deletedColumnName: this.deletedColumnName, where });
133
164
  const result = yield queryBuilder.execute();
134
- return { count: typeof result.affected === 'number' ? result.affected : undefined };
165
+ return Object.assign(Object.assign({}, dataToReturn), { count: typeof result.affected === 'number' ? result.affected : undefined });
135
166
  });
136
167
  }
137
- find(options) {
168
+ find(options, privateOptions) {
138
169
  return __awaiter(this, void 0, void 0, function* () {
139
- const { filters, forceTransaction, page: optPage, perPage: optPerPage, findAll: optFindAll, include: optRelations, orderBy: optOrderBy, transactionManager, withDeleted = false } = options;
170
+ const { filters, forceTransaction, getTotalCount = true, page: optPage, perPage: optPerPage, findAll: optFindAll, include: optRelations, orderBy: optOrderBy, transactionManager, withDeleted = false } = options;
171
+ const actualPrivateOptions = privateOptions || {};
140
172
  if (!transactionManager && forceTransaction) {
141
173
  return this.repository.manager.transaction(tm => {
142
- return this.find(Object.assign(Object.assign({}, options), { transactionManager: tm }));
174
+ return this.find(Object.assign(Object.assign({}, options), { transactionManager: tm }), actualPrivateOptions);
143
175
  });
144
176
  }
145
177
  const page = optPage ? parseInt(optPage, 10) : 1;
@@ -147,13 +179,18 @@ class RDBEntityService extends core_1.PersistanceEntityService {
147
179
  const findAll = optFindAll === true || optFindAll === 'true';
148
180
  const findResults = { page: 1, perPage: 0, items: [], more: false };
149
181
  const entityName = this.repository.metadata.name;
182
+ const processedFilters = (yield this.processObjectAllowedFields(filters || {}, {
183
+ allowedFields: this.columNames,
184
+ isEnabled: actualPrivateOptions.processFiltersAllowedFieldsEnabled,
185
+ objectType: core_1.ProcessObjectAllowedFieldsType.Filters
186
+ }));
150
187
  const tableName = this.repository.metadata.name;
151
188
  const queryBuilder = this.getRepository(transactionManager).createQueryBuilder(entityName);
152
189
  let where = {};
153
190
  let include = {};
154
191
  let orderBy = [];
155
- if (filters) {
156
- const parsedFiltersData = this.qb.parseFilters(tableName, filters);
192
+ if (Object.keys(processedFilters).length) {
193
+ const parsedFiltersData = this.qb.parseFilters(tableName, processedFilters);
157
194
  where = Object.assign({}, parsedFiltersData.where);
158
195
  include = Object.assign({}, parsedFiltersData.include);
159
196
  }
@@ -163,7 +200,13 @@ class RDBEntityService extends core_1.PersistanceEntityService {
163
200
  include = Object.assign(Object.assign({}, parsedOrderByData.include), include);
164
201
  orderBy = [...parsedOrderByData.orderBy];
165
202
  }
166
- this.qb.buildQuery(queryBuilder, { where, include, orderBy, withDeleted });
203
+ this.qb.buildQuery(queryBuilder, {
204
+ deletedColumnName: this.deletedColumnName,
205
+ where,
206
+ include,
207
+ orderBy,
208
+ withDeleted
209
+ });
167
210
  if (!findAll) {
168
211
  queryBuilder.skip((page - 1) * perPage).take(perPage + 1);
169
212
  findResults.page = page;
@@ -173,26 +216,40 @@ class RDBEntityService extends core_1.PersistanceEntityService {
173
216
  if (findAll) {
174
217
  findResults.perPage = items.length;
175
218
  }
176
- else if (items.length === perPage + 1) {
177
- items.pop();
178
- findResults.more = true;
219
+ else {
220
+ if (items.length === perPage + 1) {
221
+ items.pop();
222
+ findResults.more = true;
223
+ }
224
+ if (getTotalCount) {
225
+ findResults.totalCount = yield this.count(Object.assign(Object.assign({}, options), { filters: processedFilters }));
226
+ }
179
227
  }
180
228
  findResults.items = items;
181
229
  return findResults;
182
230
  });
183
231
  }
184
- findOne(options) {
232
+ findOne(options, privateOptions) {
185
233
  return __awaiter(this, void 0, void 0, function* () {
186
234
  const { filters, forceTransaction, transactionManager, selectOperator, include: optRelations, orderBy: optOrderBy, withDeleted = false } = options;
235
+ const actualPrivateOptions = privateOptions || {};
187
236
  if (!transactionManager && forceTransaction) {
188
237
  return this.repository.manager.transaction(tm => {
189
- return this.findOne(Object.assign(Object.assign({}, options), { transactionManager: tm }));
238
+ return this.findOne(Object.assign(Object.assign({}, options), { transactionManager: tm }), actualPrivateOptions);
190
239
  });
191
240
  }
192
241
  const entityName = this.repository.metadata.name;
193
242
  const tableName = this.repository.metadata.name;
194
243
  const queryBuilder = this.getRepository(transactionManager).createQueryBuilder(entityName);
195
- const { where, include: includeFromFilters } = this.qb.parseFilters(tableName, filters, {
244
+ const parsedFilters = (yield this.processObjectAllowedFields(filters, {
245
+ allowedFields: this.columNames,
246
+ isEnabled: actualPrivateOptions.processFiltersAllowedFieldsEnabled,
247
+ objectType: core_1.ProcessObjectAllowedFieldsType.Filters
248
+ }));
249
+ if (!Object.keys(parsedFilters).length) {
250
+ throw new core_1.ApplicationError('At least one filter field is required for the findOne method.');
251
+ }
252
+ const { where, include: includeFromFilters } = this.qb.parseFilters(tableName, parsedFilters, {
196
253
  operator: selectOperator,
197
254
  isTopLevel: true
198
255
  });
@@ -202,7 +259,13 @@ class RDBEntityService extends core_1.PersistanceEntityService {
202
259
  const parsedOrderByData = this.qb.parseOrderBy(tableName, optOrderBy);
203
260
  orderBy = [...parsedOrderByData.orderBy];
204
261
  }
205
- this.qb.buildQuery(queryBuilder, { where, include, orderBy, withDeleted });
262
+ this.qb.buildQuery(queryBuilder, {
263
+ deletedColumnName: this.deletedColumnName,
264
+ where,
265
+ include,
266
+ orderBy,
267
+ withDeleted
268
+ });
206
269
  return yield queryBuilder.getOne();
207
270
  });
208
271
  }
@@ -258,45 +321,91 @@ class RDBEntityService extends core_1.PersistanceEntityService {
258
321
  }
259
322
  });
260
323
  }
261
- save(data, transactionManager) {
324
+ save(data, transactionManager, options) {
262
325
  return __awaiter(this, void 0, void 0, function* () {
263
- if (transactionManager) {
264
- return (yield transactionManager.save(this.repository.target, data));
326
+ const { columNames, repository } = this;
327
+ const { processObjectAllowedFieldsEnabled } = options || {};
328
+ const dataToSave = yield this.processObjectAllowedFields(data, {
329
+ allowedFields: columNames,
330
+ isEnabled: processObjectAllowedFieldsEnabled,
331
+ objectType: core_1.ProcessObjectAllowedFieldsType.Input
332
+ });
333
+ try {
334
+ if (transactionManager) {
335
+ return (yield transactionManager.save(repository.target, dataToSave));
336
+ }
337
+ return repository.save(dataToSave);
338
+ }
339
+ catch (e) {
340
+ const error = e;
341
+ if (error.code === rdb_entity_service_definitions_1.PostgresErrorCode.UniqueViolation) {
342
+ const extractVariableName = new RegExp(/^Key \((.*)\)\=(.*)$/g);
343
+ const result = extractVariableName.exec(error.detail);
344
+ throw new core_1.ApplicationError(`${error.table}: ${result ? result[1] : 'a column value you have provided'} needs to be unique`);
345
+ }
346
+ throw e;
265
347
  }
266
- return this.repository.save(data);
267
348
  });
268
349
  }
269
- update(data, options) {
350
+ update(data, options, privateOptions) {
270
351
  return __awaiter(this, void 0, void 0, function* () {
271
- const { filters, forceTransaction, returnData, transactionManager } = options;
352
+ const { columNames, repository } = this;
353
+ const { filters, forceTransaction, returnData, returnOriginalItems, transactionManager } = options;
354
+ const { processFiltersAllowedFieldsEnabled, processInputAllowedFieldsEnabled } = privateOptions || {};
272
355
  if (!transactionManager && forceTransaction) {
273
- return this.repository.manager.transaction(tm => {
274
- return this.update(data, Object.assign(Object.assign({}, options), { transactionManager: tm }));
356
+ return repository.manager.transaction(tm => {
357
+ return this.update(data, Object.assign(Object.assign({}, options), { transactionManager: tm }), privateOptions);
275
358
  });
276
359
  }
277
- const entityName = this.repository.metadata.name;
278
- const tableName = this.repository.metadata.tableName;
360
+ const dataToUpdate = (yield this.processObjectAllowedFields(data instanceof Array ? data[0] : data, {
361
+ allowedFields: columNames,
362
+ isEnabled: processInputAllowedFieldsEnabled,
363
+ objectType: core_1.ProcessObjectAllowedFieldsType.Input
364
+ }));
365
+ if (!Object.keys(dataToUpdate).length) {
366
+ throw new core_1.ApplicationError('At least one field for update is required.');
367
+ }
368
+ const entityName = repository.metadata.name;
369
+ const tableName = repository.metadata.name;
370
+ const processedFilters = (yield this.processObjectAllowedFields(filters, {
371
+ allowedFields: this.columNames,
372
+ isEnabled: processFiltersAllowedFieldsEnabled,
373
+ objectType: core_1.ProcessObjectAllowedFieldsType.Filters
374
+ }));
375
+ if (!Object.keys(processedFilters).length) {
376
+ throw new core_1.ApplicationError('At least one filter field for update is required.');
377
+ }
279
378
  const queryBuilder = this.getRepository(transactionManager)
280
379
  .createQueryBuilder(entityName)
281
380
  .update()
282
- .set(data);
283
- const { where: parsedWhere, include } = this.qb.parseFilters(tableName, filters);
381
+ .set(dataToUpdate);
382
+ const { where: parsedWhere, include } = this.qb.parseFilters(tableName, processedFilters);
383
+ let originalItems = [];
284
384
  let where = {};
285
- if (Object.keys(include).length) {
286
- const findData = yield this.find({ filters, transactionManager });
385
+ if (Object.keys(include).length || returnOriginalItems) {
386
+ const findData = yield this.find({ filters: processedFilters, transactionManager });
287
387
  const { field, value } = this.buildPrimaryKeyWhereClause(findData.items);
388
+ originalItems = findData.items;
288
389
  where[field] = value;
289
390
  }
290
391
  else {
291
392
  where = parsedWhere;
292
393
  }
293
- this.qb.buildQuery(queryBuilder, { where });
394
+ this.qb.buildQuery(queryBuilder, { deletedColumnName: this.deletedColumnName, where });
395
+ const dataToReturn = {};
396
+ if (returnOriginalItems) {
397
+ dataToReturn.originalItems = originalItems;
398
+ }
294
399
  if (returnData) {
295
400
  const result = yield queryBuilder.returning('*').execute();
296
- return { items: result.raw };
401
+ dataToReturn.count = result.raw.length;
402
+ dataToReturn.items = result.raw;
297
403
  }
298
- const result = yield queryBuilder.execute();
299
- return { count: typeof result.affected === 'number' ? result.affected : undefined };
404
+ else {
405
+ const result = yield queryBuilder.execute();
406
+ dataToReturn.count = typeof result.affected === 'number' ? result.affected : undefined;
407
+ }
408
+ return dataToReturn;
300
409
  });
301
410
  }
302
411
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rdb.entity.service.js","sourceRoot":"","sources":["../../src/entity/rdb.entity.service.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export * from './common/definitions';
2
- export * from './entityService';
3
- export * from './module';
2
+ export * from './entity';
3
+ export * from './ormQueryBuilder';
4
4
  export * from './repository';
5
5
  export * from './sqlQueryBuilder';
package/dist/index.js CHANGED
@@ -15,8 +15,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./common/definitions"), exports);
18
- __exportStar(require("./entityService"), exports);
19
- __exportStar(require("./module"), exports);
18
+ __exportStar(require("./entity"), exports);
19
+ __exportStar(require("./ormQueryBuilder"), exports);
20
20
  __exportStar(require("./repository"), exports);
21
21
  __exportStar(require("./sqlQueryBuilder"), exports);
22
22
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,kDAAgC;AAChC,2CAAyB;AACzB,+CAA6B;AAC7B,oDAAkC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,uDAAqC;AACrC,2CAAyB;AACzB,oDAAkC;AAClC,+CAA6B;AAC7B,oDAAkC"}
@@ -0,0 +1 @@
1
+ export * from './rdb.ormQueryBuilder';