@kominal/common-nestjs 0.0.10 → 0.0.11
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.
|
@@ -34,18 +34,20 @@ export declare function created<Entity extends BaseEntity>(changeContext: Change
|
|
|
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
|
-
|
|
43
|
-
|
|
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
|
-
|
|
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>;
|
|
@@ -51,17 +51,20 @@ class EntityService {
|
|
|
51
51
|
this.options = options;
|
|
52
52
|
}
|
|
53
53
|
async create(changeContext, pathParams, createRequest) {
|
|
54
|
+
for (const key of this.options.technicalKeys) {
|
|
55
|
+
delete createRequest[key];
|
|
56
|
+
}
|
|
54
57
|
return this.model.create(created(changeContext, { ...createRequest, ...pathParams }));
|
|
55
58
|
}
|
|
56
59
|
async list(pathParams, { active, direction, pageIndex, pageSize, filter, select }) {
|
|
57
60
|
const evaluatedFilter = { ...(filter ? JSON.parse(filter) : {}), ...pathParams };
|
|
58
61
|
const items = await this.model
|
|
59
62
|
.find(evaluatedFilter)
|
|
60
|
-
.select(this.options
|
|
61
|
-
.sort({ [active || this.options
|
|
63
|
+
.select(this.options.listSelect || select || '')
|
|
64
|
+
.sort({ [active || this.options.defaultSortKey || '_id']: (direction || this.options.defaultSortDirection || 'asc') })
|
|
62
65
|
.skip((pageIndex || 0) * (pageSize || 10))
|
|
63
66
|
.limit(pageSize || 10)
|
|
64
|
-
.populate(this.options
|
|
67
|
+
.populate(this.options.populate || [])
|
|
65
68
|
.lean();
|
|
66
69
|
const count = await this.model.countDocuments(evaluatedFilter);
|
|
67
70
|
return { items, count };
|
|
@@ -70,6 +73,9 @@ class EntityService {
|
|
|
70
73
|
return this.model.findOne(params).orFail(new common_1.HttpException('exception.notFound', 404));
|
|
71
74
|
}
|
|
72
75
|
async update(changeContext, entityPath, createRequest) {
|
|
76
|
+
for (const key of this.options.technicalKeys) {
|
|
77
|
+
delete createRequest[key];
|
|
78
|
+
}
|
|
73
79
|
await this.model.updateOne(entityPath, changed(changeContext, { ...createRequest, tenantId: entityPath.tenantId }));
|
|
74
80
|
}
|
|
75
81
|
async delete(params) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-service.helper.js","sourceRoot":"","sources":["../../src/helpers/entity-service.helper.ts"],"names":[],"mappings":";;;AAkDA,0BASC;AAED,0BAMC;AAnED,2CAAgE;AAChE,6CAA+E;AAE/E,+BAA0B;AAG1B,MAAa,kBAAkB;CAE9B;AAFD,gDAEC;AAED,MAAa,wBAAwB;CAGpC;AAHD,4DAGC;AAED,MAAa,gBAAgB;CAG5B;AAHD,4CAGC;AAED,MAAa,sBAAsB;CAElC;AAFD,wDAEC;AAED,MAAa,UAAU;CAOtB;AAPD,gCAOC;AAED,MAAa,YAAY;CAGxB;AAHD,oCAGC;AAEM,MAAM,yBAAyB,GAAG,CACvC,KAAU,EACqI,EAAE,CACjJ,IAAA,wBAAe,EACb,IAAA,uBAAa,EAAC,EAAE,MAAM,EAAE,EAAE,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,IAAA,uBAAa,EAAC,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,EACvK,IAAA,wBAAc,EAAC,KAAK,CAAC,CACtB,CAAC;AANS,QAAA,yBAAyB,6BAMlC;AAEJ,MAAM,aAAa;CAElB;AAED,SAAgB,OAAO,CAA4B,aAA4B,EAAE,MAAuB;IACtG,OAAO;QACL,GAAG,MAAM;QACT,IAAI,EAAE,IAAA,SAAE,GAAE;QACV,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,SAAS,EAAE,aAAa,CAAC,KAAK;QAC9B,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,SAAS,EAAE,aAAa,CAAC,KAAK;KAC/B,CAAC;AACJ,CAAC;AAED,SAAgB,OAAO,CAA4B,aAA4B,EAAE,MAAuB;IACtG,OAAO;QACL,GAAG,MAAM;QACT,SAAS,EAAE,IAAI,IAAI,EAAE;QACrB,SAAS,EAAE,aAAa,CAAC,KAAK;KAC/B,CAAC;AACJ,CAAC;AAED,MAAa,aAAa;IAMxB,YACU,KAAoB,EAClB,
|
|
1
|
+
{"version":3,"file":"entity-service.helper.js","sourceRoot":"","sources":["../../src/helpers/entity-service.helper.ts"],"names":[],"mappings":"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"}
|