@zola_do/crud 0.2.2 → 0.2.4
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 +130 -1
- package/dist/controller/entity-crud.controller.d.ts +3 -3
- package/dist/controller/entity-crud.controller.js +154 -38
- package/dist/controller/entity-crud.controller.js.map +1 -1
- package/dist/controller/extra-crud.controller.d.ts +3 -3
- package/dist/controller/extra-crud.controller.js +152 -37
- 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 +126 -28
- package/dist/controller/relation-crud.controller.js.map +1 -1
- package/dist/crud-operation/repository/entity-crud.repository.js +16 -4
- package/dist/crud-operation/repository/entity-crud.repository.js.map +1 -1
- package/dist/crud-operation/repository/extra-crud.repository.js +16 -4
- 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 +126 -35
- 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 +126 -40
- 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/guards/crud-operation-disabled.guard.d.ts +7 -0
- package/dist/shared/guards/crud-operation-disabled.guard.js +16 -0
- package/dist/shared/guards/crud-operation-disabled.guard.js.map +1 -0
- package/dist/shared/index.d.ts +1 -0
- package/dist/shared/index.js +1 -0
- package/dist/shared/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 +83 -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
|
@@ -19,11 +19,27 @@ const service_1 = require("../service");
|
|
|
19
19
|
const swagger_1 = require("@nestjs/swagger");
|
|
20
20
|
const collection_query_1 = require("@zola_do/collection-query");
|
|
21
21
|
const authorization_1 = require("@zola_do/authorization");
|
|
22
|
+
const shared_1 = require("../shared");
|
|
22
23
|
class BaseAPIDto {
|
|
23
24
|
}
|
|
24
25
|
exports.BaseAPIDto = BaseAPIDto;
|
|
25
26
|
function ExtraCrudController(options) {
|
|
27
|
+
var _a;
|
|
26
28
|
const { createDto, updateDto } = options;
|
|
29
|
+
const operations = (_a = options.operations) !== null && _a !== void 0 ? _a : {};
|
|
30
|
+
const normalizeDisableConfig = (config) => {
|
|
31
|
+
if (!config)
|
|
32
|
+
return {};
|
|
33
|
+
if (typeof config === 'string')
|
|
34
|
+
return { mode: config };
|
|
35
|
+
return { mode: config.mode, reason: config.reason };
|
|
36
|
+
};
|
|
37
|
+
const applyMethodDecorators = (host, methodName, decorators) => {
|
|
38
|
+
const descriptor = Object.getOwnPropertyDescriptor(host.prototype, methodName);
|
|
39
|
+
for (let i = decorators.length - 1; i >= 0; i--) {
|
|
40
|
+
decorators[i](host.prototype, methodName, descriptor);
|
|
41
|
+
}
|
|
42
|
+
};
|
|
27
43
|
let ExtraCrudControllerHost = class ExtraCrudControllerHost {
|
|
28
44
|
constructor(service) {
|
|
29
45
|
this.service = service;
|
|
@@ -31,12 +47,16 @@ function ExtraCrudController(options) {
|
|
|
31
47
|
async create(itemData, req) {
|
|
32
48
|
return await this.service.create(itemData, req, options);
|
|
33
49
|
}
|
|
34
|
-
async findAll(id, q, req) {
|
|
35
|
-
const query = (0, collection_query_1.decodeCollectionQuery)(q)
|
|
50
|
+
async findAll(id, q, cursor, limit, direction, req) {
|
|
51
|
+
const query = (0, shared_1.mergeCursorQueryParams)((0, collection_query_1.decodeCollectionQuery)(q), {
|
|
52
|
+
cursor,
|
|
53
|
+
limit,
|
|
54
|
+
direction,
|
|
55
|
+
});
|
|
36
56
|
return await this.service.findAll(id, query, options, req);
|
|
37
57
|
}
|
|
38
58
|
async findOne(id, req) {
|
|
39
|
-
return await this.service.findOne(id, req);
|
|
59
|
+
return await this.service.findOne(id, req, options);
|
|
40
60
|
}
|
|
41
61
|
async update(id, itemData, req) {
|
|
42
62
|
return await this.service.update(id, itemData, req, options);
|
|
@@ -47,15 +67,16 @@ function ExtraCrudController(options) {
|
|
|
47
67
|
async restore(id, req) {
|
|
48
68
|
return await this.service.restore(id, req, options);
|
|
49
69
|
}
|
|
50
|
-
async findAllArchived(id, q, req) {
|
|
51
|
-
const query = (0, collection_query_1.decodeCollectionQuery)(q)
|
|
70
|
+
async findAllArchived(id, q, cursor, limit, direction, req) {
|
|
71
|
+
const query = (0, shared_1.mergeCursorQueryParams)((0, collection_query_1.decodeCollectionQuery)(q), {
|
|
72
|
+
cursor,
|
|
73
|
+
limit,
|
|
74
|
+
direction,
|
|
75
|
+
});
|
|
52
76
|
return await this.service.findAllArchived(id, query, options, req);
|
|
53
77
|
}
|
|
54
78
|
};
|
|
55
79
|
__decorate([
|
|
56
|
-
(0, common_1.Post)(),
|
|
57
|
-
(0, swagger_1.ApiBody)({ type: createDto || BaseAPIDto }),
|
|
58
|
-
(0, common_1.UseGuards)((0, authorization_1.PermissionsGuard)(options.createPermission)),
|
|
59
80
|
__param(0, (0, common_1.Body)()),
|
|
60
81
|
__param(1, (0, common_1.Req)()),
|
|
61
82
|
__metadata("design:type", Function),
|
|
@@ -63,24 +84,17 @@ function ExtraCrudController(options) {
|
|
|
63
84
|
__metadata("design:returntype", Promise)
|
|
64
85
|
], ExtraCrudControllerHost.prototype, "create", null);
|
|
65
86
|
__decorate([
|
|
66
|
-
(0, common_1.Get)('list/:id'),
|
|
67
|
-
(0, swagger_1.ApiQuery)({
|
|
68
|
-
name: 'q',
|
|
69
|
-
type: String,
|
|
70
|
-
description: 'Collection Query Parameter. Optional',
|
|
71
|
-
required: false,
|
|
72
|
-
}),
|
|
73
|
-
(0, common_1.UseGuards)((0, authorization_1.PermissionsGuard)(options.viewPermission)),
|
|
74
87
|
__param(0, (0, common_1.Param)('id')),
|
|
75
88
|
__param(1, (0, common_1.Query)('q')),
|
|
76
|
-
__param(2, (0, common_1.
|
|
89
|
+
__param(2, (0, common_1.Query)('cursor')),
|
|
90
|
+
__param(3, (0, common_1.Query)('limit')),
|
|
91
|
+
__param(4, (0, common_1.Query)('direction')),
|
|
92
|
+
__param(5, (0, common_1.Req)()),
|
|
77
93
|
__metadata("design:type", Function),
|
|
78
|
-
__metadata("design:paramtypes", [String, String, Object]),
|
|
94
|
+
__metadata("design:paramtypes", [String, String, String, String, String, Object]),
|
|
79
95
|
__metadata("design:returntype", Promise)
|
|
80
96
|
], ExtraCrudControllerHost.prototype, "findAll", null);
|
|
81
97
|
__decorate([
|
|
82
|
-
(0, common_1.Get)(':id'),
|
|
83
|
-
(0, common_1.UseGuards)((0, authorization_1.PermissionsGuard)(options.viewPermission)),
|
|
84
98
|
__param(0, (0, common_1.Param)('id')),
|
|
85
99
|
__param(1, (0, common_1.Req)()),
|
|
86
100
|
__metadata("design:type", Function),
|
|
@@ -88,9 +102,6 @@ function ExtraCrudController(options) {
|
|
|
88
102
|
__metadata("design:returntype", Promise)
|
|
89
103
|
], ExtraCrudControllerHost.prototype, "findOne", null);
|
|
90
104
|
__decorate([
|
|
91
|
-
(0, common_1.Put)(':id'),
|
|
92
|
-
(0, common_1.UseGuards)((0, authorization_1.PermissionsGuard)(options.updatePermission)),
|
|
93
|
-
(0, swagger_1.ApiBody)({ type: updateDto || BaseAPIDto }),
|
|
94
105
|
__param(0, (0, common_1.Param)('id')),
|
|
95
106
|
__param(1, (0, common_1.Body)()),
|
|
96
107
|
__param(2, (0, common_1.Req)()),
|
|
@@ -99,8 +110,6 @@ function ExtraCrudController(options) {
|
|
|
99
110
|
__metadata("design:returntype", Promise)
|
|
100
111
|
], ExtraCrudControllerHost.prototype, "update", null);
|
|
101
112
|
__decorate([
|
|
102
|
-
(0, common_1.Delete)(':id'),
|
|
103
|
-
(0, common_1.UseGuards)((0, authorization_1.PermissionsGuard)(options.deletePermission)),
|
|
104
113
|
__param(0, (0, common_1.Param)('id')),
|
|
105
114
|
__param(1, (0, common_1.Req)()),
|
|
106
115
|
__metadata("design:type", Function),
|
|
@@ -108,8 +117,6 @@ function ExtraCrudController(options) {
|
|
|
108
117
|
__metadata("design:returntype", Promise)
|
|
109
118
|
], ExtraCrudControllerHost.prototype, "softDelete", null);
|
|
110
119
|
__decorate([
|
|
111
|
-
(0, common_1.Patch)('restore/:id'),
|
|
112
|
-
(0, common_1.UseGuards)((0, authorization_1.PermissionsGuard)(options.restorePermission)),
|
|
113
120
|
__param(0, (0, common_1.Param)('id')),
|
|
114
121
|
__param(1, (0, common_1.Req)()),
|
|
115
122
|
__metadata("design:type", Function),
|
|
@@ -117,19 +124,14 @@ function ExtraCrudController(options) {
|
|
|
117
124
|
__metadata("design:returntype", Promise)
|
|
118
125
|
], ExtraCrudControllerHost.prototype, "restore", null);
|
|
119
126
|
__decorate([
|
|
120
|
-
(0, common_1.Get)('list/archived/items/:id'),
|
|
121
|
-
(0, common_1.UseGuards)((0, authorization_1.PermissionsGuard)(options.viewArchivedPermission)),
|
|
122
|
-
(0, swagger_1.ApiQuery)({
|
|
123
|
-
name: 'q',
|
|
124
|
-
type: String,
|
|
125
|
-
description: 'Collection Query Parameter. Optional',
|
|
126
|
-
required: false,
|
|
127
|
-
}),
|
|
128
127
|
__param(0, (0, common_1.Param)('id')),
|
|
129
128
|
__param(1, (0, common_1.Query)('q')),
|
|
130
|
-
__param(2, (0, common_1.
|
|
129
|
+
__param(2, (0, common_1.Query)('cursor')),
|
|
130
|
+
__param(3, (0, common_1.Query)('limit')),
|
|
131
|
+
__param(4, (0, common_1.Query)('direction')),
|
|
132
|
+
__param(5, (0, common_1.Req)()),
|
|
131
133
|
__metadata("design:type", Function),
|
|
132
|
-
__metadata("design:paramtypes", [String, String, Object]),
|
|
134
|
+
__metadata("design:paramtypes", [String, String, String, String, String, Object]),
|
|
133
135
|
__metadata("design:returntype", Promise)
|
|
134
136
|
], ExtraCrudControllerHost.prototype, "findAllArchived", null);
|
|
135
137
|
ExtraCrudControllerHost = __decorate([
|
|
@@ -138,6 +140,119 @@ function ExtraCrudController(options) {
|
|
|
138
140
|
(0, swagger_1.ApiBearerAuth)(),
|
|
139
141
|
__metadata("design:paramtypes", [service_1.ExtraCrudService])
|
|
140
142
|
], ExtraCrudControllerHost);
|
|
143
|
+
const createDisable = normalizeDisableConfig(operations.create);
|
|
144
|
+
if (createDisable.mode !== 'hide') {
|
|
145
|
+
applyMethodDecorators(ExtraCrudControllerHost, 'create', [
|
|
146
|
+
(0, common_1.Post)(),
|
|
147
|
+
(0, swagger_1.ApiBody)({ type: createDto || BaseAPIDto }),
|
|
148
|
+
(0, common_1.UseGuards)(createDisable.mode === 'block'
|
|
149
|
+
? new shared_1.CrudOperationDisabledGuard('create', createDisable.reason)
|
|
150
|
+
: (0, authorization_1.PermissionsGuard)(options.createPermission)),
|
|
151
|
+
]);
|
|
152
|
+
}
|
|
153
|
+
const findAllDisable = normalizeDisableConfig(operations.findAll);
|
|
154
|
+
if (findAllDisable.mode !== 'hide') {
|
|
155
|
+
applyMethodDecorators(ExtraCrudControllerHost, 'findAll', [
|
|
156
|
+
(0, common_1.Get)('list/:id'),
|
|
157
|
+
(0, swagger_1.ApiQuery)({
|
|
158
|
+
name: 'q',
|
|
159
|
+
type: String,
|
|
160
|
+
description: 'Collection Query Parameter. Optional',
|
|
161
|
+
required: false,
|
|
162
|
+
}),
|
|
163
|
+
(0, swagger_1.ApiQuery)({
|
|
164
|
+
name: 'cursor',
|
|
165
|
+
type: String,
|
|
166
|
+
description: 'Cursor token for seek pagination. Optional',
|
|
167
|
+
required: false,
|
|
168
|
+
}),
|
|
169
|
+
(0, swagger_1.ApiQuery)({
|
|
170
|
+
name: 'limit',
|
|
171
|
+
type: Number,
|
|
172
|
+
description: 'Cursor page size. Optional',
|
|
173
|
+
required: false,
|
|
174
|
+
}),
|
|
175
|
+
(0, swagger_1.ApiQuery)({
|
|
176
|
+
name: 'direction',
|
|
177
|
+
type: String,
|
|
178
|
+
description: 'Cursor direction (n|p, also accepts next|prev). Optional',
|
|
179
|
+
required: false,
|
|
180
|
+
}),
|
|
181
|
+
(0, common_1.UseGuards)(findAllDisable.mode === 'block'
|
|
182
|
+
? new shared_1.CrudOperationDisabledGuard('findAll')
|
|
183
|
+
: (0, authorization_1.PermissionsGuard)(options.viewPermission)),
|
|
184
|
+
]);
|
|
185
|
+
}
|
|
186
|
+
const findOneDisable = normalizeDisableConfig(operations.findOne);
|
|
187
|
+
if (findOneDisable.mode !== 'hide') {
|
|
188
|
+
applyMethodDecorators(ExtraCrudControllerHost, 'findOne', [
|
|
189
|
+
(0, common_1.Get)(':id'),
|
|
190
|
+
(0, common_1.UseGuards)(findOneDisable.mode === 'block'
|
|
191
|
+
? new shared_1.CrudOperationDisabledGuard('findOne')
|
|
192
|
+
: (0, authorization_1.PermissionsGuard)(options.viewPermission)),
|
|
193
|
+
]);
|
|
194
|
+
}
|
|
195
|
+
const updateDisable = normalizeDisableConfig(operations.update);
|
|
196
|
+
if (updateDisable.mode !== 'hide') {
|
|
197
|
+
applyMethodDecorators(ExtraCrudControllerHost, 'update', [
|
|
198
|
+
(0, common_1.Put)(':id'),
|
|
199
|
+
(0, common_1.UseGuards)(updateDisable.mode === 'block'
|
|
200
|
+
? new shared_1.CrudOperationDisabledGuard('update')
|
|
201
|
+
: (0, authorization_1.PermissionsGuard)(options.updatePermission)),
|
|
202
|
+
(0, swagger_1.ApiBody)({ type: updateDto || BaseAPIDto }),
|
|
203
|
+
]);
|
|
204
|
+
}
|
|
205
|
+
const deleteDisable = normalizeDisableConfig(operations.delete);
|
|
206
|
+
if (deleteDisable.mode !== 'hide') {
|
|
207
|
+
applyMethodDecorators(ExtraCrudControllerHost, 'softDelete', [
|
|
208
|
+
(0, common_1.Delete)(':id'),
|
|
209
|
+
(0, common_1.UseGuards)(deleteDisable.mode === 'block'
|
|
210
|
+
? new shared_1.CrudOperationDisabledGuard('delete', deleteDisable.reason)
|
|
211
|
+
: (0, authorization_1.PermissionsGuard)(options.deletePermission)),
|
|
212
|
+
]);
|
|
213
|
+
}
|
|
214
|
+
const restoreDisable = normalizeDisableConfig(operations.restore);
|
|
215
|
+
if (restoreDisable.mode !== 'hide') {
|
|
216
|
+
applyMethodDecorators(ExtraCrudControllerHost, 'restore', [
|
|
217
|
+
(0, common_1.Patch)('restore/:id'),
|
|
218
|
+
(0, common_1.UseGuards)(restoreDisable.mode === 'block'
|
|
219
|
+
? new shared_1.CrudOperationDisabledGuard('restore', restoreDisable.reason)
|
|
220
|
+
: (0, authorization_1.PermissionsGuard)(options.restorePermission)),
|
|
221
|
+
]);
|
|
222
|
+
}
|
|
223
|
+
const archivedDisable = normalizeDisableConfig(operations.findAllArchived);
|
|
224
|
+
if (archivedDisable.mode !== 'hide') {
|
|
225
|
+
applyMethodDecorators(ExtraCrudControllerHost, 'findAllArchived', [
|
|
226
|
+
(0, common_1.Get)('list/archived/items/:id'),
|
|
227
|
+
(0, common_1.UseGuards)(archivedDisable.mode === 'block'
|
|
228
|
+
? new shared_1.CrudOperationDisabledGuard('findAllArchived', archivedDisable.reason)
|
|
229
|
+
: (0, authorization_1.PermissionsGuard)(options.viewArchivedPermission)),
|
|
230
|
+
(0, swagger_1.ApiQuery)({
|
|
231
|
+
name: 'q',
|
|
232
|
+
type: String,
|
|
233
|
+
description: 'Collection Query Parameter. Optional',
|
|
234
|
+
required: false,
|
|
235
|
+
}),
|
|
236
|
+
(0, swagger_1.ApiQuery)({
|
|
237
|
+
name: 'cursor',
|
|
238
|
+
type: String,
|
|
239
|
+
description: 'Cursor token for seek pagination. Optional',
|
|
240
|
+
required: false,
|
|
241
|
+
}),
|
|
242
|
+
(0, swagger_1.ApiQuery)({
|
|
243
|
+
name: 'limit',
|
|
244
|
+
type: Number,
|
|
245
|
+
description: 'Cursor page size. Optional',
|
|
246
|
+
required: false,
|
|
247
|
+
}),
|
|
248
|
+
(0, swagger_1.ApiQuery)({
|
|
249
|
+
name: 'direction',
|
|
250
|
+
type: String,
|
|
251
|
+
description: 'Cursor direction (n|p, also accepts next|prev). Optional',
|
|
252
|
+
required: false,
|
|
253
|
+
}),
|
|
254
|
+
]);
|
|
255
|
+
}
|
|
141
256
|
return ExtraCrudControllerHost;
|
|
142
257
|
}
|
|
143
258
|
//# sourceMappingURL=extra-crud.controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"extra-crud.controller.js","sourceRoot":"","sources":["../../src/controller/extra-crud.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"extra-crud.controller.js","sourceRoot":"","sources":["../../src/controller/extra-crud.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ export declare function RelationCrudController<TEntity extends ObjectLiteral>(op
|
|
|
6
6
|
readonly service: RelationCrudService<TEntity>;
|
|
7
7
|
bulkSaveFirst(itemData: any, req?: any): Promise<any>;
|
|
8
8
|
bulkSaveSecond(itemData: any, req?: any): Promise<any>;
|
|
9
|
-
findAllFirst(id: string, q: string, req?: any): Promise<DataResponseFormat<TEntity>>;
|
|
10
|
-
findAllSecond(id: string, q: string, req?: any): Promise<DataResponseFormat<TEntity>>;
|
|
9
|
+
findAllFirst(id: string, q: string, cursor?: string, limit?: string, direction?: string, req?: any): Promise<DataResponseFormat<TEntity>>;
|
|
10
|
+
findAllSecond(id: string, q: string, cursor?: string, limit?: string, direction?: string, req?: any): Promise<DataResponseFormat<TEntity>>;
|
|
11
11
|
};
|
|
12
12
|
};
|
|
@@ -19,8 +19,24 @@ const extra_crud_controller_1 = require("./extra-crud.controller");
|
|
|
19
19
|
const swagger_1 = require("@nestjs/swagger");
|
|
20
20
|
const collection_query_1 = require("@zola_do/collection-query");
|
|
21
21
|
const authorization_1 = require("@zola_do/authorization");
|
|
22
|
+
const shared_1 = require("../shared");
|
|
22
23
|
function RelationCrudController(options) {
|
|
24
|
+
var _a;
|
|
23
25
|
const { firstEntityIdName, firstInclude = 'first', secondEntityIdName, secondInclude = 'second', assignFirstDto, assignSecondDto, } = options;
|
|
26
|
+
const operations = (_a = options.operations) !== null && _a !== void 0 ? _a : {};
|
|
27
|
+
const normalizeDisableConfig = (config) => {
|
|
28
|
+
if (!config)
|
|
29
|
+
return {};
|
|
30
|
+
if (typeof config === 'string')
|
|
31
|
+
return { mode: config };
|
|
32
|
+
return { mode: config.mode, reason: config.reason };
|
|
33
|
+
};
|
|
34
|
+
const applyMethodDecorators = (host, methodName, decorators) => {
|
|
35
|
+
const descriptor = Object.getOwnPropertyDescriptor(host.prototype, methodName);
|
|
36
|
+
for (let i = decorators.length - 1; i >= 0; i--) {
|
|
37
|
+
decorators[i](host.prototype, methodName, descriptor);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
24
40
|
let RelationCrudControllerHost = class RelationCrudControllerHost {
|
|
25
41
|
constructor(service) {
|
|
26
42
|
this.service = service;
|
|
@@ -31,18 +47,24 @@ function RelationCrudController(options) {
|
|
|
31
47
|
async bulkSaveSecond(itemData, req) {
|
|
32
48
|
return await this.service.bulkSaveSecond(itemData, options, req);
|
|
33
49
|
}
|
|
34
|
-
async findAllFirst(id, q, req) {
|
|
35
|
-
const query = (0, collection_query_1.decodeCollectionQuery)(q)
|
|
50
|
+
async findAllFirst(id, q, cursor, limit, direction, req) {
|
|
51
|
+
const query = (0, shared_1.mergeCursorQueryParams)((0, collection_query_1.decodeCollectionQuery)(q), {
|
|
52
|
+
cursor,
|
|
53
|
+
limit,
|
|
54
|
+
direction,
|
|
55
|
+
});
|
|
36
56
|
return await this.service.findAllFirst(id, query, options);
|
|
37
57
|
}
|
|
38
|
-
async findAllSecond(id, q, req) {
|
|
39
|
-
const query = (0, collection_query_1.decodeCollectionQuery)(q)
|
|
58
|
+
async findAllSecond(id, q, cursor, limit, direction, req) {
|
|
59
|
+
const query = (0, shared_1.mergeCursorQueryParams)((0, collection_query_1.decodeCollectionQuery)(q), {
|
|
60
|
+
cursor,
|
|
61
|
+
limit,
|
|
62
|
+
direction,
|
|
63
|
+
});
|
|
40
64
|
return await this.service.findAllSecond(id, query, options);
|
|
41
65
|
}
|
|
42
66
|
};
|
|
43
67
|
__decorate([
|
|
44
|
-
(0, common_1.Post)(`assign-${firstInclude}`),
|
|
45
|
-
(0, swagger_1.ApiBody)({ type: assignFirstDto || extra_crud_controller_1.BaseAPIDto }),
|
|
46
68
|
__param(0, (0, common_1.Body)()),
|
|
47
69
|
__param(1, (0, common_1.Req)()),
|
|
48
70
|
__metadata("design:type", Function),
|
|
@@ -50,8 +72,6 @@ function RelationCrudController(options) {
|
|
|
50
72
|
__metadata("design:returntype", Promise)
|
|
51
73
|
], RelationCrudControllerHost.prototype, "bulkSaveFirst", null);
|
|
52
74
|
__decorate([
|
|
53
|
-
(0, common_1.Post)(`assign-${secondInclude}`),
|
|
54
|
-
(0, swagger_1.ApiBody)({ type: assignSecondDto || extra_crud_controller_1.BaseAPIDto }),
|
|
55
75
|
__param(0, (0, common_1.Body)()),
|
|
56
76
|
__param(1, (0, common_1.Req)()),
|
|
57
77
|
__metadata("design:type", Function),
|
|
@@ -59,35 +79,25 @@ function RelationCrudController(options) {
|
|
|
59
79
|
__metadata("design:returntype", Promise)
|
|
60
80
|
], RelationCrudControllerHost.prototype, "bulkSaveSecond", null);
|
|
61
81
|
__decorate([
|
|
62
|
-
(0, common_1.Get)(`:id/${firstInclude}`),
|
|
63
|
-
(0, common_1.UseGuards)((0, authorization_1.PermissionsGuard)(options.viewPermission)),
|
|
64
|
-
(0, swagger_1.ApiQuery)({
|
|
65
|
-
name: 'q',
|
|
66
|
-
type: String,
|
|
67
|
-
description: 'Collection Query Parameter. Optional',
|
|
68
|
-
required: false,
|
|
69
|
-
}),
|
|
70
82
|
__param(0, (0, common_1.Param)('id')),
|
|
71
83
|
__param(1, (0, common_1.Query)('q')),
|
|
72
|
-
__param(2, (0, common_1.
|
|
84
|
+
__param(2, (0, common_1.Query)('cursor')),
|
|
85
|
+
__param(3, (0, common_1.Query)('limit')),
|
|
86
|
+
__param(4, (0, common_1.Query)('direction')),
|
|
87
|
+
__param(5, (0, common_1.Req)()),
|
|
73
88
|
__metadata("design:type", Function),
|
|
74
|
-
__metadata("design:paramtypes", [String, String, Object]),
|
|
89
|
+
__metadata("design:paramtypes", [String, String, String, String, String, Object]),
|
|
75
90
|
__metadata("design:returntype", Promise)
|
|
76
91
|
], RelationCrudControllerHost.prototype, "findAllFirst", null);
|
|
77
92
|
__decorate([
|
|
78
|
-
(0, common_1.Get)(`:id/${secondInclude}`),
|
|
79
|
-
(0, common_1.UseGuards)((0, authorization_1.PermissionsGuard)(options.viewPermission)),
|
|
80
|
-
(0, swagger_1.ApiQuery)({
|
|
81
|
-
name: 'q',
|
|
82
|
-
type: String,
|
|
83
|
-
description: 'Collection Query Parameter. Optional',
|
|
84
|
-
required: false,
|
|
85
|
-
}),
|
|
86
93
|
__param(0, (0, common_1.Param)('id')),
|
|
87
94
|
__param(1, (0, common_1.Query)('q')),
|
|
88
|
-
__param(2, (0, common_1.
|
|
95
|
+
__param(2, (0, common_1.Query)('cursor')),
|
|
96
|
+
__param(3, (0, common_1.Query)('limit')),
|
|
97
|
+
__param(4, (0, common_1.Query)('direction')),
|
|
98
|
+
__param(5, (0, common_1.Req)()),
|
|
89
99
|
__metadata("design:type", Function),
|
|
90
|
-
__metadata("design:paramtypes", [String, String, Object]),
|
|
100
|
+
__metadata("design:paramtypes", [String, String, String, String, String, Object]),
|
|
91
101
|
__metadata("design:returntype", Promise)
|
|
92
102
|
], RelationCrudControllerHost.prototype, "findAllSecond", null);
|
|
93
103
|
RelationCrudControllerHost = __decorate([
|
|
@@ -96,6 +106,94 @@ function RelationCrudController(options) {
|
|
|
96
106
|
(0, swagger_1.ApiBearerAuth)(),
|
|
97
107
|
__metadata("design:paramtypes", [service_1.RelationCrudService])
|
|
98
108
|
], RelationCrudControllerHost);
|
|
109
|
+
const bulkSaveFirstDisable = normalizeDisableConfig(operations.bulkSaveFirst);
|
|
110
|
+
if (bulkSaveFirstDisable.mode !== 'hide') {
|
|
111
|
+
const decorators = [
|
|
112
|
+
(0, common_1.Post)(`assign-${firstInclude}`),
|
|
113
|
+
(0, swagger_1.ApiBody)({ type: assignFirstDto || extra_crud_controller_1.BaseAPIDto }),
|
|
114
|
+
];
|
|
115
|
+
if (bulkSaveFirstDisable.mode === 'block') {
|
|
116
|
+
decorators.push((0, common_1.UseGuards)(new shared_1.CrudOperationDisabledGuard('bulkSaveFirst', bulkSaveFirstDisable.reason)));
|
|
117
|
+
}
|
|
118
|
+
applyMethodDecorators(RelationCrudControllerHost, 'bulkSaveFirst', decorators);
|
|
119
|
+
}
|
|
120
|
+
const bulkSaveSecondDisable = normalizeDisableConfig(operations.bulkSaveSecond);
|
|
121
|
+
if (bulkSaveSecondDisable.mode !== 'hide') {
|
|
122
|
+
const decorators = [
|
|
123
|
+
(0, common_1.Post)(`assign-${secondInclude}`),
|
|
124
|
+
(0, swagger_1.ApiBody)({ type: assignSecondDto || extra_crud_controller_1.BaseAPIDto }),
|
|
125
|
+
];
|
|
126
|
+
if (bulkSaveSecondDisable.mode === 'block') {
|
|
127
|
+
decorators.push((0, common_1.UseGuards)(new shared_1.CrudOperationDisabledGuard('bulkSaveSecond', bulkSaveSecondDisable.reason)));
|
|
128
|
+
}
|
|
129
|
+
applyMethodDecorators(RelationCrudControllerHost, 'bulkSaveSecond', decorators);
|
|
130
|
+
}
|
|
131
|
+
const findAllFirstDisable = normalizeDisableConfig(operations.findAllFirst);
|
|
132
|
+
if (findAllFirstDisable.mode !== 'hide') {
|
|
133
|
+
applyMethodDecorators(RelationCrudControllerHost, 'findAllFirst', [
|
|
134
|
+
(0, common_1.Get)(`:id/${firstInclude}`),
|
|
135
|
+
(0, common_1.UseGuards)(findAllFirstDisable.mode === 'block'
|
|
136
|
+
? new shared_1.CrudOperationDisabledGuard('findAllFirst', findAllFirstDisable.reason)
|
|
137
|
+
: (0, authorization_1.PermissionsGuard)(options.viewPermission)),
|
|
138
|
+
(0, swagger_1.ApiQuery)({
|
|
139
|
+
name: 'q',
|
|
140
|
+
type: String,
|
|
141
|
+
description: 'Collection Query Parameter. Optional',
|
|
142
|
+
required: false,
|
|
143
|
+
}),
|
|
144
|
+
(0, swagger_1.ApiQuery)({
|
|
145
|
+
name: 'cursor',
|
|
146
|
+
type: String,
|
|
147
|
+
description: 'Cursor token for seek pagination. Optional',
|
|
148
|
+
required: false,
|
|
149
|
+
}),
|
|
150
|
+
(0, swagger_1.ApiQuery)({
|
|
151
|
+
name: 'limit',
|
|
152
|
+
type: Number,
|
|
153
|
+
description: 'Cursor page size. Optional',
|
|
154
|
+
required: false,
|
|
155
|
+
}),
|
|
156
|
+
(0, swagger_1.ApiQuery)({
|
|
157
|
+
name: 'direction',
|
|
158
|
+
type: String,
|
|
159
|
+
description: 'Cursor direction (n|p, also accepts next|prev). Optional',
|
|
160
|
+
required: false,
|
|
161
|
+
}),
|
|
162
|
+
]);
|
|
163
|
+
}
|
|
164
|
+
const findAllSecondDisable = normalizeDisableConfig(operations.findAllSecond);
|
|
165
|
+
if (findAllSecondDisable.mode !== 'hide') {
|
|
166
|
+
applyMethodDecorators(RelationCrudControllerHost, 'findAllSecond', [
|
|
167
|
+
(0, common_1.Get)(`:id/${secondInclude}`),
|
|
168
|
+
(0, common_1.UseGuards)(findAllSecondDisable.mode === 'block'
|
|
169
|
+
? new shared_1.CrudOperationDisabledGuard('findAllSecond', findAllSecondDisable.reason)
|
|
170
|
+
: (0, authorization_1.PermissionsGuard)(options.viewPermission)),
|
|
171
|
+
(0, swagger_1.ApiQuery)({
|
|
172
|
+
name: 'q',
|
|
173
|
+
type: String,
|
|
174
|
+
description: 'Collection Query Parameter. Optional',
|
|
175
|
+
required: false,
|
|
176
|
+
}),
|
|
177
|
+
(0, swagger_1.ApiQuery)({
|
|
178
|
+
name: 'cursor',
|
|
179
|
+
type: String,
|
|
180
|
+
description: 'Cursor token for seek pagination. Optional',
|
|
181
|
+
required: false,
|
|
182
|
+
}),
|
|
183
|
+
(0, swagger_1.ApiQuery)({
|
|
184
|
+
name: 'limit',
|
|
185
|
+
type: Number,
|
|
186
|
+
description: 'Cursor page size. Optional',
|
|
187
|
+
required: false,
|
|
188
|
+
}),
|
|
189
|
+
(0, swagger_1.ApiQuery)({
|
|
190
|
+
name: 'direction',
|
|
191
|
+
type: String,
|
|
192
|
+
description: 'Cursor direction (n|p, also accepts next|prev). Optional',
|
|
193
|
+
required: false,
|
|
194
|
+
}),
|
|
195
|
+
]);
|
|
196
|
+
}
|
|
99
197
|
return RelationCrudControllerHost;
|
|
100
198
|
}
|
|
101
199
|
//# sourceMappingURL=relation-crud.controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"relation-crud.controller.js","sourceRoot":"","sources":["../../src/controller/relation-crud.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"relation-crud.controller.js","sourceRoot":"","sources":["../../src/controller/relation-crud.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,14 +33,13 @@ let EntityCrudRepository = class EntityCrudRepository {
|
|
|
33
33
|
async create(itemData, req, options) {
|
|
34
34
|
var _a, _b;
|
|
35
35
|
const payload = (0, shared_1.sanitizeWritePayload)(itemData, options);
|
|
36
|
-
await (0, shared_1.
|
|
36
|
+
await (0, shared_1.runBeforeCreatePipeline)({
|
|
37
37
|
itemData: payload,
|
|
38
38
|
req,
|
|
39
39
|
options,
|
|
40
40
|
resolver: this.requestContextResolver,
|
|
41
41
|
});
|
|
42
42
|
const repo = this.getRepository();
|
|
43
|
-
await (0, shared_1.runCrudHook)(options, "beforeCreate", { itemData: payload, req });
|
|
44
43
|
const item = repo.create(payload);
|
|
45
44
|
await repo.insert(item);
|
|
46
45
|
const createdItem = item;
|
|
@@ -89,7 +88,7 @@ let EntityCrudRepository = class EntityCrudRepository {
|
|
|
89
88
|
return updatedItem;
|
|
90
89
|
}
|
|
91
90
|
async softDelete(id, req, options) {
|
|
92
|
-
var _a;
|
|
91
|
+
var _a, _b;
|
|
93
92
|
const repo = this.getRepository();
|
|
94
93
|
const item = await this.findOneOrFail(id);
|
|
95
94
|
await (0, shared_1.runCrudHook)(options, "beforeSoftDelete", {
|
|
@@ -97,9 +96,22 @@ let EntityCrudRepository = class EntityCrudRepository {
|
|
|
97
96
|
entity: item,
|
|
98
97
|
req,
|
|
99
98
|
});
|
|
100
|
-
|
|
99
|
+
const deleteMode = (_a = options === null || options === void 0 ? void 0 : options.deleteMode) !== null && _a !== void 0 ? _a : "hard";
|
|
100
|
+
const hasSoftDelete = !!((_b = repo === null || repo === void 0 ? void 0 : repo.metadata) === null || _b === void 0 ? void 0 : _b.deleteDateColumn);
|
|
101
|
+
if (deleteMode === "soft") {
|
|
102
|
+
if (!hasSoftDelete) {
|
|
103
|
+
throw new common_1.BadRequestException("soft_delete_not_supported");
|
|
104
|
+
}
|
|
101
105
|
await repo.softRemove(item);
|
|
102
106
|
}
|
|
107
|
+
else if (deleteMode === "auto") {
|
|
108
|
+
if (hasSoftDelete) {
|
|
109
|
+
await repo.softRemove(item);
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
await repo.remove(item);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
103
115
|
else {
|
|
104
116
|
await repo.remove(item);
|
|
105
117
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entity-crud.repository.js","sourceRoot":"","sources":["../../../src/crud-operation/repository/entity-crud.repository.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,qCAAgF;AAChF,2CAMwB;AACxB,gEAA8E;AAC9E,yCASsB;AACtB,uCAAuC;AAIhC,IAAM,oBAAoB,GAA1B,MAAM,oBAAoB;IAC/B,YACmB,UAAyB,EACjB,QAAkB,EAG1B,sBAAmD;QAJnD,eAAU,GAAV,UAAU,CAAe;QACjB,aAAQ,GAAR,QAAQ,CAAU;QAG1B,2BAAsB,GAAtB,sBAAsB,CAA6B;IACnE,CAAC;IACJ,aAAa;;QACX,MAAM,OAAO,GAAkB,IAAI,CAAC,QAAQ,CAAC,2BAAkB,CAAC,CAAC;QACjE,MAAM,IAAI,GACR,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,mCAC1D,IAAI,CAAC,UAAU,CAAC;QAClB,OAAO,IAAW,CAAC;IACrB,CAAC;IACD,KAAK,CAAC,MAAM,CACV,QAA0B,EAC1B,GAAS,EACT,OAA2B;;QAE3B,MAAM,OAAO,GAAG,IAAA,6BAAoB,EAAC,QAAe,EAAE,OAAO,CAAC,CAAC;QAC/D,MAAM,IAAA,
|
|
1
|
+
{"version":3,"file":"entity-crud.repository.js","sourceRoot":"","sources":["../../../src/crud-operation/repository/entity-crud.repository.ts"],"names":[],"mappings":"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"}
|