@kominal/common-nestjs 0.0.10 → 0.0.12

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.
@@ -27,25 +27,27 @@ export declare class ListResponse<T> {
27
27
  count: number;
28
28
  }
29
29
  export declare const OpenApiPaginationResponse: (model: any) => (<TFunction extends Function, Y>(target: object | TFunction, propertyKey?: string | symbol, descriptor?: TypedPropertyDescriptor<Y>) => void);
30
- declare class ChangeContext {
30
+ export declare class ChangeContext {
31
31
  email: string;
32
32
  }
33
33
  export declare function created<Entity extends BaseEntity>(changeContext: ChangeContext, entity: Partial<Entity>): Partial<Entity>;
34
34
  export declare function changed<Entity extends BaseEntity>(changeContext: ChangeContext, entity: Partial<Entity>): Partial<Entity>;
35
35
  export declare class EntityService<Entity extends BaseEntity, EntitiesPath extends FilterQuery<Entity> = EntitiesPathParams, EntityPath extends FilterQuery<Entity> = EntityPathParams, PopulatedEntity = Entity> {
36
36
  private model;
37
- protected options?: {
37
+ protected options: {
38
38
  listSelect?: string;
39
39
  populate?: PopulateOptions | PopulateOptions[];
40
40
  defaultSortKey?: string;
41
41
  defaultSortDirection?: string;
42
- } | undefined;
43
- constructor(model: Model<Entity>, options?: {
42
+ technicalKeys: (keyof Entity)[];
43
+ };
44
+ constructor(model: Model<Entity>, options: {
44
45
  listSelect?: string;
45
46
  populate?: PopulateOptions | PopulateOptions[];
46
47
  defaultSortKey?: string;
47
48
  defaultSortDirection?: string;
48
- } | undefined);
49
+ technicalKeys: (keyof Entity)[];
50
+ });
49
51
  create(changeContext: ChangeContext, pathParams: EntitiesPath, createRequest: Partial<Entity>): Promise<Entity>;
50
52
  list(pathParams: EntitiesPath, { active, direction, pageIndex, pageSize, filter, select }: ListParams): Promise<ListResponse<PopulatedEntity>>;
51
53
  read(params: EntityPath): Promise<Entity>;
@@ -53,4 +55,3 @@ export declare class EntityService<Entity extends BaseEntity, EntitiesPath exten
53
55
  delete(params: EntityPath): Promise<any>;
54
56
  inUse(params: EntityPath): Promise<boolean>;
55
57
  }
56
- export {};
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EntityService = exports.OpenApiPaginationResponse = exports.ListResponse = exports.ListParams = exports.GlobalEntityPathParams = exports.EntityPathParams = exports.OptionalEntityPathParams = exports.EntitiesPathParams = void 0;
3
+ exports.EntityService = exports.ChangeContext = exports.OpenApiPaginationResponse = exports.ListResponse = exports.ListParams = exports.GlobalEntityPathParams = exports.EntityPathParams = exports.OptionalEntityPathParams = exports.EntitiesPathParams = void 0;
4
4
  exports.created = created;
5
5
  exports.changed = changed;
6
6
  const common_1 = require("@nestjs/common");
@@ -28,6 +28,7 @@ const OpenApiPaginationResponse = (model) => (0, common_1.applyDecorators)((0, s
28
28
  exports.OpenApiPaginationResponse = OpenApiPaginationResponse;
29
29
  class ChangeContext {
30
30
  }
31
+ exports.ChangeContext = ChangeContext;
31
32
  function created(changeContext, entity) {
32
33
  return {
33
34
  ...entity,
@@ -51,17 +52,20 @@ class EntityService {
51
52
  this.options = options;
52
53
  }
53
54
  async create(changeContext, pathParams, createRequest) {
55
+ for (const key of this.options.technicalKeys) {
56
+ delete createRequest[key];
57
+ }
54
58
  return this.model.create(created(changeContext, { ...createRequest, ...pathParams }));
55
59
  }
56
60
  async list(pathParams, { active, direction, pageIndex, pageSize, filter, select }) {
57
61
  const evaluatedFilter = { ...(filter ? JSON.parse(filter) : {}), ...pathParams };
58
62
  const items = await this.model
59
63
  .find(evaluatedFilter)
60
- .select(this.options?.listSelect || select || '')
61
- .sort({ [active || this.options?.defaultSortKey || '_id']: (direction || this.options?.defaultSortDirection || 'asc') })
64
+ .select(this.options.listSelect || select || '')
65
+ .sort({ [active || this.options.defaultSortKey || '_id']: (direction || this.options.defaultSortDirection || 'asc') })
62
66
  .skip((pageIndex || 0) * (pageSize || 10))
63
67
  .limit(pageSize || 10)
64
- .populate(this.options?.populate || [])
68
+ .populate(this.options.populate || [])
65
69
  .lean();
66
70
  const count = await this.model.countDocuments(evaluatedFilter);
67
71
  return { items, count };
@@ -70,6 +74,9 @@ class EntityService {
70
74
  return this.model.findOne(params).orFail(new common_1.HttpException('exception.notFound', 404));
71
75
  }
72
76
  async update(changeContext, entityPath, createRequest) {
77
+ for (const key of this.options.technicalKeys) {
78
+ delete createRequest[key];
79
+ }
73
80
  await this.model.updateOne(entityPath, changed(changeContext, { ...createRequest, tenantId: entityPath.tenantId }));
74
81
  }
75
82
  async delete(params) {
@@ -1 +1 @@
1
- {"version":3,"file":"entity-service.helper.js","sourceRoot":"","sources":["../../src/helpers/entity-service.helper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"entity-service.helper.js","sourceRoot":"","sources":["../../src/helpers/entity-service.helper.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kominal/common-nestjs",
3
- "version": "0.0.10",
3
+ "version": "0.0.12",
4
4
  "description": "",
5
5
  "main": "index.js",
6
6
  "scripts": {