@zola_do/crud 0.2.3 → 0.2.5
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/README.md +104 -1
- package/dist/controller/entity-crud.controller.d.ts +2 -2
- package/dist/controller/entity-crud.controller.js +60 -10
- package/dist/controller/entity-crud.controller.js.map +1 -1
- package/dist/controller/extra-crud.controller.d.ts +2 -2
- package/dist/controller/extra-crud.controller.js +59 -9
- package/dist/controller/extra-crud.controller.js.map +1 -1
- package/dist/controller/relation-crud.controller.d.ts +2 -2
- package/dist/controller/relation-crud.controller.js +58 -8
- package/dist/controller/relation-crud.controller.js.map +1 -1
- package/dist/crud-operation/repository/entity-crud.repository.js +1 -2
- package/dist/crud-operation/repository/entity-crud.repository.js.map +1 -1
- package/dist/crud-operation/repository/extra-crud.repository.js +1 -2
- package/dist/crud-operation/repository/extra-crud.repository.js.map +1 -1
- package/dist/optional/rpc.d.ts +1 -0
- package/dist/optional/rpc.js +18 -0
- package/dist/optional/rpc.js.map +1 -0
- package/dist/repository/index.d.ts +1 -0
- package/dist/repository/index.js +18 -0
- package/dist/repository/index.js.map +1 -0
- package/dist/request-context/index.d.ts +1 -0
- package/dist/request-context/index.js +18 -0
- package/dist/request-context/index.js.map +1 -0
- package/dist/service/entity-crud.service.d.ts +3 -3
- package/dist/service/entity-crud.service.js +111 -33
- package/dist/service/entity-crud.service.js.map +1 -1
- package/dist/service/extra-crud.service.d.ts +2 -2
- package/dist/service/extra-crud.service.js +111 -38
- package/dist/service/extra-crud.service.js.map +1 -1
- package/dist/service/relation-crud.service.js +15 -1
- package/dist/service/relation-crud.service.js.map +1 -1
- package/dist/shared/api-data/api-paginated-response.js +24 -0
- package/dist/shared/api-data/api-paginated-response.js.map +1 -1
- package/dist/shared/api-data/data-response-format.d.ts +6 -0
- package/dist/shared/api-data/data-response-format.js +24 -0
- package/dist/shared/api-data/data-response-format.js.map +1 -1
- package/dist/shared/exceptions/index.d.ts +0 -1
- package/dist/shared/exceptions/index.js +0 -1
- package/dist/shared/exceptions/index.js.map +1 -1
- package/dist/shared/request-context/apply-create-context.helper.js +17 -4
- package/dist/shared/request-context/apply-create-context.helper.js.map +1 -1
- package/dist/shared/types/crud-option.type.d.ts +69 -12
- package/dist/shared/utils/crud-hooks.helper.d.ts +31 -2
- package/dist/shared/utils/crud-hooks.helper.js +172 -1
- package/dist/shared/utils/crud-hooks.helper.js.map +1 -1
- package/dist/shared/utils/cursor-query.helper.d.ts +6 -0
- package/dist/shared/utils/cursor-query.helper.js +49 -0
- package/dist/shared/utils/cursor-query.helper.js.map +1 -0
- package/dist/shared/utils/index.d.ts +1 -0
- package/dist/shared/utils/index.js +1 -0
- package/dist/shared/utils/index.js.map +1 -1
- package/package.json +30 -1
|
@@ -28,13 +28,12 @@ let ExtraCrudRepository = class ExtraCrudRepository {
|
|
|
28
28
|
async create(itemData, req, options) {
|
|
29
29
|
var _a, _b;
|
|
30
30
|
const payload = (0, shared_1.sanitizeWritePayload)(itemData, options);
|
|
31
|
-
await (0, shared_1.
|
|
31
|
+
await (0, shared_1.runBeforeCreatePipeline)({
|
|
32
32
|
itemData: payload,
|
|
33
33
|
req,
|
|
34
34
|
options,
|
|
35
35
|
resolver: this.requestContextResolver,
|
|
36
36
|
});
|
|
37
|
-
await (0, shared_1.runCrudHook)(options, "beforeCreate", { itemData: payload, req });
|
|
38
37
|
const manager = this.request[shared_1.ENTITY_MANAGER_KEY];
|
|
39
38
|
manager.getRepository(this.entity);
|
|
40
39
|
const item = this.repository.create(payload);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extra-crud.repository.js","sourceRoot":"","sources":["../../../src/crud-operation/repository/extra-crud.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qCAAgF;AAChF,2CAMwB;AACxB,gEAImC;AACnC,yCASsB;AACtB,uCAAuC;AAIhC,IAAM,mBAAmB,GAAzB,MAAM,mBAAmB;IAC9B,YACmB,UAAyB,EACzB,MAAY,EACJ,OAAiB,EAGzB,sBAAmD;QALnD,eAAU,GAAV,UAAU,CAAe;QACzB,WAAM,GAAN,MAAM,CAAM;QACJ,YAAO,GAAP,OAAO,CAAU;QAGzB,2BAAsB,GAAtB,sBAAsB,CAA6B;IACnE,CAAC;IAEJ,KAAK,CAAC,MAAM,CACV,QAA0B,EAC1B,GAAS,EACT,OAA0B;;QAE1B,MAAM,OAAO,GAAG,IAAA,6BAAoB,EAAC,QAAe,EAAE,OAAO,CAAC,CAAC;QAC/D,MAAM,IAAA,
|
|
1
|
+
{"version":3,"file":"extra-crud.repository.js","sourceRoot":"","sources":["../../../src/crud-operation/repository/extra-crud.repository.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../shared/exceptions/rpc-exception.filter';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("../shared/exceptions/rpc-exception.filter"), exports);
|
|
18
|
+
//# sourceMappingURL=rpc.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rpc.js","sourceRoot":"","sources":["../../src/optional/rpc.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4EAA0D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../crud-operation/repository';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("../crud-operation/repository"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/repository/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+DAA6C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../shared/request-context';
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("../shared/request-context"), exports);
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/request-context/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4DAA0C"}
|
|
@@ -6,12 +6,12 @@ export declare class EntityCrudService<T extends ObjectLiteral> {
|
|
|
6
6
|
private readonly requestContextResolver?;
|
|
7
7
|
constructor(repository: Repository<T>, requestContextResolver?: CrudRequestContextResolver);
|
|
8
8
|
create(itemData: DeepPartial<any>, req?: any, options?: EntityCrudOptions): Promise<any>;
|
|
9
|
-
findAll(query: CollectionQuery, req?: any): Promise<
|
|
10
|
-
findOne(id: any, req?: any): Promise<T | undefined>;
|
|
9
|
+
findAll(query: CollectionQuery, req?: any, options?: EntityCrudOptions): Promise<any>;
|
|
10
|
+
findOne(id: any, req?: any, options?: EntityCrudOptions): Promise<T | undefined>;
|
|
11
11
|
update(id: string, itemData: any, req?: any, options?: EntityCrudOptions): Promise<T | undefined>;
|
|
12
12
|
softDelete(id: string, req?: any, options?: EntityCrudOptions): Promise<void>;
|
|
13
13
|
restore(id: string, req?: any, options?: EntityCrudOptions): Promise<void>;
|
|
14
|
-
findAllArchived(query: CollectionQuery, req?: any): Promise<DataResponseFormat<T>>;
|
|
14
|
+
findAllArchived(query: CollectionQuery, req?: any, options?: EntityCrudOptions): Promise<DataResponseFormat<T>>;
|
|
15
15
|
private findOneOrFail;
|
|
16
16
|
private findOneOrFailWithDeleted;
|
|
17
17
|
giveQueryResponse<T>(query: CollectionQuery, dataQuery: SelectQueryBuilder<T>): Promise<DataResponseFormat<T>>;
|
|
@@ -23,28 +23,62 @@ let EntityCrudService = class EntityCrudService {
|
|
|
23
23
|
this.requestContextResolver = requestContextResolver;
|
|
24
24
|
}
|
|
25
25
|
async create(itemData, req, options) {
|
|
26
|
-
var _a, _b;
|
|
26
|
+
var _a, _b, _c;
|
|
27
27
|
const payload = (0, shared_1.sanitizeWritePayload)(itemData, options);
|
|
28
|
-
|
|
28
|
+
const context = (0, shared_1.createCrudHookContext)({
|
|
29
|
+
operation: "create",
|
|
30
|
+
req,
|
|
31
|
+
itemData: payload,
|
|
32
|
+
service: this,
|
|
33
|
+
repository: this.repository,
|
|
34
|
+
});
|
|
35
|
+
await (0, shared_1.runOperationAuthorization)(options, context);
|
|
36
|
+
await (0, shared_1.runBeforeCreatePipeline)({
|
|
29
37
|
itemData: payload,
|
|
30
38
|
req,
|
|
31
39
|
options,
|
|
32
40
|
resolver: this.requestContextResolver,
|
|
41
|
+
service: this,
|
|
42
|
+
repository: this.repository,
|
|
33
43
|
});
|
|
34
|
-
await (0, shared_1.runCrudHook)(options, "beforeCreate", { itemData: payload, req });
|
|
35
44
|
const item = this.repository.create(payload);
|
|
36
45
|
await this.repository.insert(item);
|
|
37
46
|
const createdItem = item;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
47
|
+
context.id = (_b = (_a = createdItem === null || createdItem === void 0 ? void 0 : createdItem.id) === null || _a === void 0 ? void 0 : _a.toString) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
48
|
+
context.entity = createdItem;
|
|
49
|
+
context.result = createdItem;
|
|
50
|
+
await (0, shared_1.runAfterOperationHooks)(options, context);
|
|
51
|
+
return ((_c = context.result) !== null && _c !== void 0 ? _c : createdItem);
|
|
52
|
+
}
|
|
53
|
+
async findAll(query, req, options) {
|
|
54
|
+
var _a, _b;
|
|
55
|
+
const context = (0, shared_1.createCrudHookContext)({
|
|
56
|
+
operation: "findAll",
|
|
41
57
|
req,
|
|
58
|
+
query: query,
|
|
59
|
+
where: {},
|
|
60
|
+
service: this,
|
|
61
|
+
repository: this.repository,
|
|
42
62
|
});
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const dataQuery = collection_query_1.QueryConstructor.constructQuery(this.repository, query);
|
|
63
|
+
await (0, shared_1.runOperationAuthorization)(options, context);
|
|
64
|
+
await (0, shared_1.runBeforeOperationHooks)(options, context);
|
|
65
|
+
(0, shared_1.applyWhereToCollectionQuery)(query, context.where);
|
|
47
66
|
const response = new shared_1.DataResponseFormat();
|
|
67
|
+
if (collection_query_1.QueryConstructor.isCursorQuery(query)) {
|
|
68
|
+
const cursorResult = await collection_query_1.QueryConstructor.runCursorQuery(this.repository, query);
|
|
69
|
+
response.total = cursorResult.total;
|
|
70
|
+
response.items = cursorResult.items;
|
|
71
|
+
response.nextCursor = cursorResult.nextCursor;
|
|
72
|
+
response.prevCursor = cursorResult.prevCursor;
|
|
73
|
+
response.hasNextPage = cursorResult.hasNextPage;
|
|
74
|
+
response.nc = cursorResult.nextCursor;
|
|
75
|
+
response.pc = cursorResult.prevCursor;
|
|
76
|
+
response.hn = cursorResult.hasNextPage;
|
|
77
|
+
context.result = response;
|
|
78
|
+
await (0, shared_1.runAfterOperationHooks)(options, context);
|
|
79
|
+
return (_a = context.result) !== null && _a !== void 0 ? _a : response;
|
|
80
|
+
}
|
|
81
|
+
const dataQuery = collection_query_1.QueryConstructor.constructQuery(this.repository, query);
|
|
48
82
|
if (query.count) {
|
|
49
83
|
response.total = await dataQuery.getCount();
|
|
50
84
|
}
|
|
@@ -53,37 +87,63 @@ let EntityCrudService = class EntityCrudService {
|
|
|
53
87
|
response.total = total;
|
|
54
88
|
response.items = result;
|
|
55
89
|
}
|
|
56
|
-
|
|
90
|
+
context.result = response;
|
|
91
|
+
await (0, shared_1.runAfterOperationHooks)(options, context);
|
|
92
|
+
return (_b = context.result) !== null && _b !== void 0 ? _b : response;
|
|
57
93
|
}
|
|
58
|
-
async findOne(id, req) {
|
|
59
|
-
|
|
94
|
+
async findOne(id, req, options) {
|
|
95
|
+
var _a, _b, _c;
|
|
96
|
+
const context = (0, shared_1.createCrudHookContext)({
|
|
97
|
+
operation: "findOne",
|
|
98
|
+
id: (_b = (_a = id === null || id === void 0 ? void 0 : id.toString) === null || _a === void 0 ? void 0 : _a.call(id)) !== null && _b !== void 0 ? _b : id,
|
|
99
|
+
req,
|
|
100
|
+
where: {},
|
|
101
|
+
service: this,
|
|
102
|
+
repository: this.repository,
|
|
103
|
+
});
|
|
104
|
+
await (0, shared_1.runOperationAuthorization)(options, context);
|
|
105
|
+
await (0, shared_1.runBeforeOperationHooks)(options, context);
|
|
106
|
+
const item = await this.repository.findOneBy({ id });
|
|
107
|
+
context.entity = item;
|
|
108
|
+
context.result = item;
|
|
109
|
+
await (0, shared_1.runAfterOperationHooks)(options, context);
|
|
110
|
+
return (_c = context.result) !== null && _c !== void 0 ? _c : item;
|
|
60
111
|
}
|
|
61
112
|
async update(id, itemData, req, options) {
|
|
113
|
+
var _a;
|
|
62
114
|
const item = await this.findOneOrFail(id);
|
|
63
115
|
const payload = (0, shared_1.sanitizeWritePayload)(itemData, options);
|
|
64
|
-
|
|
116
|
+
const context = (0, shared_1.createCrudHookContext)({
|
|
117
|
+
operation: "update",
|
|
65
118
|
id,
|
|
119
|
+
req,
|
|
66
120
|
itemData: payload,
|
|
67
121
|
entity: item,
|
|
68
|
-
|
|
122
|
+
service: this,
|
|
123
|
+
repository: this.repository,
|
|
69
124
|
});
|
|
125
|
+
await (0, shared_1.runOperationAuthorization)(options, context);
|
|
126
|
+
await (0, shared_1.runBeforeOperationHooks)(options, context);
|
|
70
127
|
await this.repository.update(item.id, payload);
|
|
71
128
|
const updatedItem = Object.assign(Object.assign({}, item), payload);
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
});
|
|
77
|
-
return updatedItem;
|
|
129
|
+
context.entity = updatedItem;
|
|
130
|
+
context.result = updatedItem;
|
|
131
|
+
await (0, shared_1.runAfterOperationHooks)(options, context);
|
|
132
|
+
return (_a = context.result) !== null && _a !== void 0 ? _a : updatedItem;
|
|
78
133
|
}
|
|
79
134
|
async softDelete(id, req, options) {
|
|
80
135
|
var _a, _b, _c;
|
|
81
136
|
const item = await this.findOneOrFail(id);
|
|
82
|
-
|
|
137
|
+
const context = (0, shared_1.createCrudHookContext)({
|
|
138
|
+
operation: "delete",
|
|
83
139
|
id,
|
|
84
|
-
entity: item,
|
|
85
140
|
req,
|
|
141
|
+
entity: item,
|
|
142
|
+
service: this,
|
|
143
|
+
repository: this.repository,
|
|
86
144
|
});
|
|
145
|
+
await (0, shared_1.runOperationAuthorization)(options, context);
|
|
146
|
+
await (0, shared_1.runBeforeOperationHooks)(options, context);
|
|
87
147
|
const deleteMode = (_a = options === null || options === void 0 ? void 0 : options.deleteMode) !== null && _a !== void 0 ? _a : "hard";
|
|
88
148
|
const hasSoftDelete = !!((_c = (_b = this.repository) === null || _b === void 0 ? void 0 : _b.metadata) === null || _c === void 0 ? void 0 : _c.deleteDateColumn);
|
|
89
149
|
if (deleteMode === "soft") {
|
|
@@ -103,23 +163,29 @@ let EntityCrudService = class EntityCrudService {
|
|
|
103
163
|
else {
|
|
104
164
|
await this.repository.remove(item);
|
|
105
165
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
entity: item,
|
|
109
|
-
req,
|
|
110
|
-
});
|
|
166
|
+
context.result = undefined;
|
|
167
|
+
await (0, shared_1.runAfterOperationHooks)(options, context);
|
|
111
168
|
}
|
|
112
169
|
async restore(id, req, options) {
|
|
113
170
|
var _a, _b;
|
|
171
|
+
const context = (0, shared_1.createCrudHookContext)({
|
|
172
|
+
operation: "restore",
|
|
173
|
+
id,
|
|
174
|
+
req,
|
|
175
|
+
service: this,
|
|
176
|
+
repository: this.repository,
|
|
177
|
+
});
|
|
178
|
+
await (0, shared_1.runOperationAuthorization)(options, context);
|
|
179
|
+
await (0, shared_1.runBeforeOperationHooks)(options, context);
|
|
114
180
|
if (!((_b = (_a = this.repository) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.deleteDateColumn)) {
|
|
115
181
|
throw new common_1.BadRequestException("restore_not_supported");
|
|
116
182
|
}
|
|
117
|
-
await
|
|
118
|
-
|
|
183
|
+
const item = await this.findOneOrFailWithDeleted(id);
|
|
184
|
+
context.entity = item;
|
|
119
185
|
await this.repository.restore(id);
|
|
120
|
-
await (0, shared_1.
|
|
186
|
+
await (0, shared_1.runAfterOperationHooks)(options, context);
|
|
121
187
|
}
|
|
122
|
-
async findAllArchived(query, req) {
|
|
188
|
+
async findAllArchived(query, req, options) {
|
|
123
189
|
var _a, _b;
|
|
124
190
|
if (!((_b = (_a = this.repository) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.deleteDateColumn)) {
|
|
125
191
|
throw new common_1.BadRequestException("archived_items_not_supported");
|
|
@@ -128,9 +194,21 @@ let EntityCrudService = class EntityCrudService {
|
|
|
128
194
|
query.where.push([
|
|
129
195
|
{ column: "deletedAt", value: "", operator: collection_query_1.FilterOperators.IsNotNull },
|
|
130
196
|
]);
|
|
197
|
+
const response = new shared_1.DataResponseFormat();
|
|
198
|
+
if (collection_query_1.QueryConstructor.isCursorQuery(query)) {
|
|
199
|
+
const cursorResult = await collection_query_1.QueryConstructor.runCursorQuery(this.repository, query, true);
|
|
200
|
+
response.total = cursorResult.total;
|
|
201
|
+
response.items = cursorResult.items;
|
|
202
|
+
response.nextCursor = cursorResult.nextCursor;
|
|
203
|
+
response.prevCursor = cursorResult.prevCursor;
|
|
204
|
+
response.hasNextPage = cursorResult.hasNextPage;
|
|
205
|
+
response.nc = cursorResult.nextCursor;
|
|
206
|
+
response.pc = cursorResult.prevCursor;
|
|
207
|
+
response.hn = cursorResult.hasNextPage;
|
|
208
|
+
return response;
|
|
209
|
+
}
|
|
131
210
|
const dataQuery = collection_query_1.QueryConstructor.constructQuery(this.repository, query);
|
|
132
211
|
dataQuery.withDeleted();
|
|
133
|
-
const response = new shared_1.DataResponseFormat();
|
|
134
212
|
if (query.count) {
|
|
135
213
|
response.total = await dataQuery.getCount();
|
|
136
214
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-crud.service.js","sourceRoot":"","sources":["../../src/service/entity-crud.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qCAKiB;AACjB,2CAMwB;AACxB,gEAImC;AACnC,
|
|
1
|
+
{"version":3,"file":"entity-crud.service.js","sourceRoot":"","sources":["../../src/service/entity-crud.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,8 +6,8 @@ export declare class ExtraCrudService<T extends ObjectLiteral> {
|
|
|
6
6
|
private readonly requestContextResolver?;
|
|
7
7
|
constructor(repository: Repository<T>, requestContextResolver?: CrudRequestContextResolver);
|
|
8
8
|
create(itemData: DeepPartial<any>, req?: any, options?: ExtraCrudOptions): Promise<any>;
|
|
9
|
-
findAll(entityId: string, query: CollectionQuery, extraCrudOptions: ExtraCrudOptions, req?: any): Promise<
|
|
10
|
-
findOne(id: any, req?: any): Promise<T | undefined>;
|
|
9
|
+
findAll(entityId: string, query: CollectionQuery, extraCrudOptions: ExtraCrudOptions, req?: any): Promise<any>;
|
|
10
|
+
findOne(id: any, req?: any, options?: ExtraCrudOptions): Promise<T | undefined>;
|
|
11
11
|
update(id: string, itemData: any, req?: any, options?: ExtraCrudOptions): Promise<T | undefined>;
|
|
12
12
|
softDelete(id: string, req?: any, options?: ExtraCrudOptions): Promise<void>;
|
|
13
13
|
restore(id: string, req?: any, options?: ExtraCrudOptions): Promise<void>;
|
|
@@ -23,36 +23,65 @@ let ExtraCrudService = class ExtraCrudService {
|
|
|
23
23
|
this.requestContextResolver = requestContextResolver;
|
|
24
24
|
}
|
|
25
25
|
async create(itemData, req, options) {
|
|
26
|
-
var _a, _b;
|
|
26
|
+
var _a, _b, _c;
|
|
27
27
|
const payload = (0, shared_1.sanitizeWritePayload)(itemData, options);
|
|
28
|
-
|
|
28
|
+
const context = (0, shared_1.createCrudHookContext)({
|
|
29
|
+
operation: "create",
|
|
30
|
+
req,
|
|
31
|
+
itemData: payload,
|
|
32
|
+
service: this,
|
|
33
|
+
repository: this.repository,
|
|
34
|
+
});
|
|
35
|
+
await (0, shared_1.runOperationAuthorization)(options, context);
|
|
36
|
+
await (0, shared_1.runBeforeCreatePipeline)({
|
|
29
37
|
itemData: payload,
|
|
30
38
|
req,
|
|
31
39
|
options,
|
|
32
40
|
resolver: this.requestContextResolver,
|
|
41
|
+
service: this,
|
|
42
|
+
repository: this.repository,
|
|
33
43
|
});
|
|
34
|
-
await (0, shared_1.runCrudHook)(options, "beforeCreate", { itemData: payload, req });
|
|
35
44
|
const item = this.repository.create(payload);
|
|
36
45
|
await this.repository.insert(item);
|
|
37
46
|
const createdItem = item;
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
return createdItem;
|
|
47
|
+
context.id = (_b = (_a = createdItem === null || createdItem === void 0 ? void 0 : createdItem.id) === null || _a === void 0 ? void 0 : _a.toString) === null || _b === void 0 ? void 0 : _b.call(_a);
|
|
48
|
+
context.entity = createdItem;
|
|
49
|
+
context.result = createdItem;
|
|
50
|
+
await (0, shared_1.runAfterOperationHooks)(options, context);
|
|
51
|
+
return (_c = context.result) !== null && _c !== void 0 ? _c : createdItem;
|
|
44
52
|
}
|
|
45
53
|
async findAll(entityId, query, extraCrudOptions, req) {
|
|
54
|
+
var _a, _b;
|
|
46
55
|
const entityIdName = extraCrudOptions.entityIdName;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
56
|
+
const context = (0, shared_1.createCrudHookContext)({
|
|
57
|
+
operation: "findAll",
|
|
58
|
+
req,
|
|
59
|
+
query: query,
|
|
60
|
+
where: {
|
|
61
|
+
[entityIdName]: entityId,
|
|
52
62
|
},
|
|
53
|
-
|
|
54
|
-
|
|
63
|
+
service: this,
|
|
64
|
+
repository: this.repository,
|
|
65
|
+
});
|
|
66
|
+
await (0, shared_1.runOperationAuthorization)(extraCrudOptions, context);
|
|
67
|
+
await (0, shared_1.runBeforeOperationHooks)(extraCrudOptions, context);
|
|
68
|
+
(0, shared_1.applyWhereToCollectionQuery)(query, context.where);
|
|
55
69
|
const response = new shared_1.DataResponseFormat();
|
|
70
|
+
if (collection_query_1.QueryConstructor.isCursorQuery(query)) {
|
|
71
|
+
const cursorResult = await collection_query_1.QueryConstructor.runCursorQuery(this.repository, query);
|
|
72
|
+
response.total = cursorResult.total;
|
|
73
|
+
response.items = cursorResult.items;
|
|
74
|
+
response.nextCursor = cursorResult.nextCursor;
|
|
75
|
+
response.prevCursor = cursorResult.prevCursor;
|
|
76
|
+
response.hasNextPage = cursorResult.hasNextPage;
|
|
77
|
+
response.nc = cursorResult.nextCursor;
|
|
78
|
+
response.pc = cursorResult.prevCursor;
|
|
79
|
+
response.hn = cursorResult.hasNextPage;
|
|
80
|
+
context.result = response;
|
|
81
|
+
await (0, shared_1.runAfterOperationHooks)(extraCrudOptions, context);
|
|
82
|
+
return (_a = context.result) !== null && _a !== void 0 ? _a : response;
|
|
83
|
+
}
|
|
84
|
+
const dataQuery = collection_query_1.QueryConstructor.constructQuery(this.repository, query);
|
|
56
85
|
if (query.count) {
|
|
57
86
|
response.total = await dataQuery.getCount();
|
|
58
87
|
}
|
|
@@ -61,37 +90,63 @@ let ExtraCrudService = class ExtraCrudService {
|
|
|
61
90
|
response.total = total;
|
|
62
91
|
response.items = result;
|
|
63
92
|
}
|
|
64
|
-
|
|
93
|
+
context.result = response;
|
|
94
|
+
await (0, shared_1.runAfterOperationHooks)(extraCrudOptions, context);
|
|
95
|
+
return (_b = context.result) !== null && _b !== void 0 ? _b : response;
|
|
65
96
|
}
|
|
66
|
-
async findOne(id, req) {
|
|
67
|
-
|
|
97
|
+
async findOne(id, req, options) {
|
|
98
|
+
var _a, _b, _c;
|
|
99
|
+
const context = (0, shared_1.createCrudHookContext)({
|
|
100
|
+
operation: "findOne",
|
|
101
|
+
id: (_b = (_a = id === null || id === void 0 ? void 0 : id.toString) === null || _a === void 0 ? void 0 : _a.call(id)) !== null && _b !== void 0 ? _b : id,
|
|
102
|
+
req,
|
|
103
|
+
where: {},
|
|
104
|
+
service: this,
|
|
105
|
+
repository: this.repository,
|
|
106
|
+
});
|
|
107
|
+
await (0, shared_1.runOperationAuthorization)(options, context);
|
|
108
|
+
await (0, shared_1.runBeforeOperationHooks)(options, context);
|
|
109
|
+
const item = await this.repository.findOneBy({ id });
|
|
110
|
+
context.entity = item;
|
|
111
|
+
context.result = item;
|
|
112
|
+
await (0, shared_1.runAfterOperationHooks)(options, context);
|
|
113
|
+
return (_c = context.result) !== null && _c !== void 0 ? _c : item;
|
|
68
114
|
}
|
|
69
115
|
async update(id, itemData, req, options) {
|
|
116
|
+
var _a;
|
|
70
117
|
const item = await this.findOneOrFail(id);
|
|
71
118
|
const payload = (0, shared_1.sanitizeWritePayload)(itemData, options);
|
|
72
|
-
|
|
119
|
+
const context = (0, shared_1.createCrudHookContext)({
|
|
120
|
+
operation: "update",
|
|
73
121
|
id,
|
|
122
|
+
req,
|
|
74
123
|
itemData: payload,
|
|
75
124
|
entity: item,
|
|
76
|
-
|
|
125
|
+
service: this,
|
|
126
|
+
repository: this.repository,
|
|
77
127
|
});
|
|
128
|
+
await (0, shared_1.runOperationAuthorization)(options, context);
|
|
129
|
+
await (0, shared_1.runBeforeOperationHooks)(options, context);
|
|
78
130
|
await this.repository.update(item.id, payload);
|
|
79
131
|
const updatedItem = Object.assign(Object.assign({}, item), payload);
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
});
|
|
85
|
-
return updatedItem;
|
|
132
|
+
context.entity = updatedItem;
|
|
133
|
+
context.result = updatedItem;
|
|
134
|
+
await (0, shared_1.runAfterOperationHooks)(options, context);
|
|
135
|
+
return (_a = context.result) !== null && _a !== void 0 ? _a : updatedItem;
|
|
86
136
|
}
|
|
87
137
|
async softDelete(id, req, options) {
|
|
88
138
|
var _a, _b, _c;
|
|
89
139
|
const item = await this.findOneOrFail(id);
|
|
90
|
-
|
|
140
|
+
const context = (0, shared_1.createCrudHookContext)({
|
|
141
|
+
operation: "delete",
|
|
91
142
|
id,
|
|
92
|
-
entity: item,
|
|
93
143
|
req,
|
|
144
|
+
entity: item,
|
|
145
|
+
service: this,
|
|
146
|
+
repository: this.repository,
|
|
94
147
|
});
|
|
148
|
+
await (0, shared_1.runOperationAuthorization)(options, context);
|
|
149
|
+
await (0, shared_1.runBeforeOperationHooks)(options, context);
|
|
95
150
|
const deleteMode = (_a = options === null || options === void 0 ? void 0 : options.deleteMode) !== null && _a !== void 0 ? _a : "hard";
|
|
96
151
|
const hasSoftDelete = !!((_c = (_b = this.repository) === null || _b === void 0 ? void 0 : _b.metadata) === null || _c === void 0 ? void 0 : _c.deleteDateColumn);
|
|
97
152
|
if (deleteMode === "soft") {
|
|
@@ -111,21 +166,27 @@ let ExtraCrudService = class ExtraCrudService {
|
|
|
111
166
|
else {
|
|
112
167
|
await this.repository.remove(item);
|
|
113
168
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
entity: item,
|
|
117
|
-
req,
|
|
118
|
-
});
|
|
169
|
+
context.result = undefined;
|
|
170
|
+
await (0, shared_1.runAfterOperationHooks)(options, context);
|
|
119
171
|
}
|
|
120
172
|
async restore(id, req, options) {
|
|
121
173
|
var _a, _b;
|
|
174
|
+
const context = (0, shared_1.createCrudHookContext)({
|
|
175
|
+
operation: "restore",
|
|
176
|
+
id,
|
|
177
|
+
req,
|
|
178
|
+
service: this,
|
|
179
|
+
repository: this.repository,
|
|
180
|
+
});
|
|
181
|
+
await (0, shared_1.runOperationAuthorization)(options, context);
|
|
182
|
+
await (0, shared_1.runBeforeOperationHooks)(options, context);
|
|
122
183
|
if (!((_b = (_a = this.repository) === null || _a === void 0 ? void 0 : _a.metadata) === null || _b === void 0 ? void 0 : _b.deleteDateColumn)) {
|
|
123
184
|
throw new common_1.BadRequestException("restore_not_supported");
|
|
124
185
|
}
|
|
125
|
-
await
|
|
126
|
-
|
|
186
|
+
const item = await this.findOneOrFailWithDeleted(id);
|
|
187
|
+
context.entity = item;
|
|
127
188
|
await this.repository.restore(id);
|
|
128
|
-
await (0, shared_1.
|
|
189
|
+
await (0, shared_1.runAfterOperationHooks)(options, context);
|
|
129
190
|
}
|
|
130
191
|
async findAllArchived(entityId, query, extraCrudOptions, req) {
|
|
131
192
|
var _a, _b;
|
|
@@ -141,9 +202,21 @@ let ExtraCrudService = class ExtraCrudService {
|
|
|
141
202
|
operator: collection_query_1.FilterOperators.EqualTo,
|
|
142
203
|
},
|
|
143
204
|
]);
|
|
205
|
+
const response = new shared_1.DataResponseFormat();
|
|
206
|
+
if (collection_query_1.QueryConstructor.isCursorQuery(query)) {
|
|
207
|
+
const cursorResult = await collection_query_1.QueryConstructor.runCursorQuery(this.repository, query, true);
|
|
208
|
+
response.total = cursorResult.total;
|
|
209
|
+
response.items = cursorResult.items;
|
|
210
|
+
response.nextCursor = cursorResult.nextCursor;
|
|
211
|
+
response.prevCursor = cursorResult.prevCursor;
|
|
212
|
+
response.hasNextPage = cursorResult.hasNextPage;
|
|
213
|
+
response.nc = cursorResult.nextCursor;
|
|
214
|
+
response.pc = cursorResult.prevCursor;
|
|
215
|
+
response.hn = cursorResult.hasNextPage;
|
|
216
|
+
return response;
|
|
217
|
+
}
|
|
144
218
|
const dataQuery = collection_query_1.QueryConstructor.constructQuery(this.repository, query);
|
|
145
219
|
dataQuery.withDeleted();
|
|
146
|
-
const response = new shared_1.DataResponseFormat();
|
|
147
220
|
if (query.count) {
|
|
148
221
|
response.total = await dataQuery.getCount();
|
|
149
222
|
}
|