@node-c/core 1.0.0-alpha11 → 1.0.0-alpha13
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.
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { GenericObject } from '../../common/definitions';
|
|
2
2
|
import { PersistanceDeleteOptions, PersistanceDeleteResult, PersistanceFindOneOptions, PersistanceFindOptions, PersistanceFindResults, PersistanceUpdateOptions, PersistanceUpdateResult } from '../../persistance/entityService';
|
|
3
3
|
export interface DomainBaseAdditionalServiceOptionsOverrides {
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
filterByFirstServiceResultFields?: GenericObject<string>;
|
|
5
|
+
runOnNoFirstServiceResultOnly?: boolean | string;
|
|
6
6
|
}
|
|
7
7
|
export type DomainBaseOptions<Options> = Options & DomainBaseOptionsForAdditionalServices<Options>;
|
|
8
8
|
export interface DomainBaseOptionsForAdditionalServices<Options> {
|
|
@@ -11,10 +11,10 @@ export interface DomainBaseOptionsForAdditionalServices<Options> {
|
|
|
11
11
|
}
|
|
12
12
|
export type DomainBaseOptionsForAdditionalServicesFull<Options extends object | undefined = undefined, SaveAdditionalResultsOptions extends object | undefined = undefined> = DomainBaseOptionsForAdditionalServices<Options> & DomainBaseOptionsWithSearchPersistance<SaveAdditionalResultsOptions>;
|
|
13
13
|
export interface DomainBaseOptionsWithSearchPersistance<SaveAdditionalResultsOptions extends object | undefined = undefined> {
|
|
14
|
-
|
|
14
|
+
saveAdditionalResultsInFirstService?: {
|
|
15
15
|
saveOptions?: SaveAdditionalResultsOptions;
|
|
16
16
|
serviceName: string;
|
|
17
|
-
|
|
17
|
+
useResultsForFirstService?: boolean;
|
|
18
18
|
};
|
|
19
19
|
}
|
|
20
20
|
export interface DomainBaseResult<Result> {
|
|
@@ -53,8 +53,8 @@ export declare enum DomainPersistanceEntityServiceType {
|
|
|
53
53
|
}
|
|
54
54
|
export type DomainPersistanceServicesKey = DomainPersistanceEntityServiceType | string;
|
|
55
55
|
export type DomainRunMethodInAdditionalServicesOptions<Options> = {
|
|
56
|
-
|
|
57
|
-
|
|
56
|
+
firstServiceResult?: unknown;
|
|
57
|
+
hasFirstServiceResult: boolean;
|
|
58
58
|
methodArgs?: unknown[];
|
|
59
59
|
methodName: string;
|
|
60
60
|
optionsArgIndex?: number;
|
|
@@ -46,8 +46,8 @@ class DomainEntityService {
|
|
|
46
46
|
return {
|
|
47
47
|
result,
|
|
48
48
|
resultsByService: yield this.runMethodInAdditionalServices(otherServiceNames || [], {
|
|
49
|
-
|
|
50
|
-
|
|
49
|
+
firstServiceResult: result,
|
|
50
|
+
hasFirstServiceResult: result.length > 0,
|
|
51
51
|
methodArgs: [result, privateOptions],
|
|
52
52
|
methodName: 'bulkCreate',
|
|
53
53
|
optionsArgIndex: 1,
|
|
@@ -68,8 +68,8 @@ class DomainEntityService {
|
|
|
68
68
|
return {
|
|
69
69
|
result,
|
|
70
70
|
resultsByService: yield this.runMethodInAdditionalServices(otherServiceNames || [], {
|
|
71
|
-
|
|
72
|
-
|
|
71
|
+
firstServiceResult: result,
|
|
72
|
+
hasFirstServiceResult: typeof result !== 'undefined' && result !== null,
|
|
73
73
|
methodArgs: [result, privateOptions],
|
|
74
74
|
methodName: 'create',
|
|
75
75
|
optionsArgIndex: 1,
|
|
@@ -90,8 +90,8 @@ class DomainEntityService {
|
|
|
90
90
|
return {
|
|
91
91
|
result,
|
|
92
92
|
resultsByService: yield this.runMethodInAdditionalServices(otherServiceNames || [], {
|
|
93
|
-
|
|
94
|
-
|
|
93
|
+
firstServiceResult: result,
|
|
94
|
+
hasFirstServiceResult: !!result.count,
|
|
95
95
|
methodArgs: [otherOptions, privateOptions],
|
|
96
96
|
methodName: 'delete',
|
|
97
97
|
optionsArgIndex: 0,
|
|
@@ -102,28 +102,28 @@ class DomainEntityService {
|
|
|
102
102
|
}
|
|
103
103
|
find(options, privateOptions) {
|
|
104
104
|
return __awaiter(this, void 0, void 0, function* () {
|
|
105
|
-
var _a;
|
|
105
|
+
var _a, _b;
|
|
106
106
|
if (!((_a = this.defaultMethods) === null || _a === void 0 ? void 0 : _a.includes(domain_entity_service_definitions_1.DomainMethod.Find))) {
|
|
107
107
|
throw new definitions_1.ApplicationError(`Method find not implemented for class ${typeof this}.`);
|
|
108
108
|
}
|
|
109
|
-
const
|
|
109
|
+
const _c = options || {}, { optionsOverridesByService, persistanceServices = [domain_entity_service_definitions_1.DomainPersistanceEntityServiceType.Main], saveAdditionalResultsInFirstService } = _c, otherOptions = __rest(_c, ["optionsOverridesByService", "persistanceServices", "saveAdditionalResultsInFirstService"]);
|
|
110
110
|
const [firstServiceName, ...otherServiceNames] = persistanceServices;
|
|
111
111
|
let result = yield this.getPersistanceService(firstServiceName).find(otherOptions, privateOptions);
|
|
112
|
-
const
|
|
112
|
+
const hasFirstServiceResult = result.items.length > 0;
|
|
113
113
|
const resultsByService = yield this.runMethodInAdditionalServices(otherServiceNames || [], {
|
|
114
|
-
|
|
115
|
-
|
|
114
|
+
firstServiceResult: result,
|
|
115
|
+
hasFirstServiceResult,
|
|
116
116
|
methodArgs: [otherOptions, privateOptions],
|
|
117
117
|
methodName: 'find',
|
|
118
118
|
optionsArgIndex: 0,
|
|
119
119
|
optionsOverridesByService
|
|
120
120
|
});
|
|
121
|
-
if (
|
|
122
|
-
const { saveOptions, serviceName,
|
|
121
|
+
if (saveAdditionalResultsInFirstService && resultsByService) {
|
|
122
|
+
const { saveOptions, serviceName, useResultsForFirstService } = saveAdditionalResultsInFirstService;
|
|
123
123
|
const dataFromAdditionalService = resultsByService[serviceName];
|
|
124
|
-
if (dataFromAdditionalService
|
|
124
|
+
if ((_b = dataFromAdditionalService === null || dataFromAdditionalService === void 0 ? void 0 : dataFromAdditionalService.items) === null || _b === void 0 ? void 0 : _b.length) {
|
|
125
125
|
yield this.persistanceEntityService.bulkCreate(dataFromAdditionalService.items, saveOptions);
|
|
126
|
-
if (
|
|
126
|
+
if (useResultsForFirstService && !hasFirstServiceResult) {
|
|
127
127
|
result = dataFromAdditionalService;
|
|
128
128
|
}
|
|
129
129
|
}
|
|
@@ -140,24 +140,24 @@ class DomainEntityService {
|
|
|
140
140
|
if (!((_a = this.defaultMethods) === null || _a === void 0 ? void 0 : _a.includes(domain_entity_service_definitions_1.DomainMethod.FindOne))) {
|
|
141
141
|
throw new definitions_1.ApplicationError(`Method findOne not implemented for class ${typeof this}.`);
|
|
142
142
|
}
|
|
143
|
-
const _b = options || {}, { optionsOverridesByService, persistanceServices = [domain_entity_service_definitions_1.DomainPersistanceEntityServiceType.Main],
|
|
143
|
+
const _b = options || {}, { optionsOverridesByService, persistanceServices = [domain_entity_service_definitions_1.DomainPersistanceEntityServiceType.Main], saveAdditionalResultsInFirstService } = _b, otherOptions = __rest(_b, ["optionsOverridesByService", "persistanceServices", "saveAdditionalResultsInFirstService"]);
|
|
144
144
|
const [firstServiceName, ...otherServiceNames] = persistanceServices;
|
|
145
145
|
let result = yield this.getPersistanceService(firstServiceName).findOne(otherOptions, privateOptions);
|
|
146
|
-
const
|
|
146
|
+
const hasFirstServiceResult = typeof result !== 'undefined' && result !== null;
|
|
147
147
|
const resultsByService = yield this.runMethodInAdditionalServices(otherServiceNames || [], {
|
|
148
|
-
|
|
149
|
-
|
|
148
|
+
firstServiceResult: result,
|
|
149
|
+
hasFirstServiceResult,
|
|
150
150
|
methodArgs: [otherOptions, privateOptions],
|
|
151
151
|
methodName: 'findOne',
|
|
152
152
|
optionsArgIndex: 0,
|
|
153
153
|
optionsOverridesByService
|
|
154
154
|
});
|
|
155
|
-
if (
|
|
156
|
-
const { saveOptions, serviceName,
|
|
155
|
+
if (saveAdditionalResultsInFirstService && resultsByService) {
|
|
156
|
+
const { saveOptions, serviceName, useResultsForFirstService } = saveAdditionalResultsInFirstService;
|
|
157
157
|
const dataFromAdditionalService = resultsByService[serviceName];
|
|
158
158
|
if (dataFromAdditionalService) {
|
|
159
159
|
yield this.persistanceEntityService.create(dataFromAdditionalService, saveOptions);
|
|
160
|
-
if (
|
|
160
|
+
if (useResultsForFirstService && !hasFirstServiceResult) {
|
|
161
161
|
result = dataFromAdditionalService;
|
|
162
162
|
}
|
|
163
163
|
}
|
|
@@ -184,7 +184,7 @@ class DomainEntityService {
|
|
|
184
184
|
if (!serviceNames.length) {
|
|
185
185
|
return undefined;
|
|
186
186
|
}
|
|
187
|
-
const {
|
|
187
|
+
const { firstServiceResult, hasFirstServiceResult, methodArgs = [], methodName, optionsArgIndex, optionsOverridesByService = {} } = options;
|
|
188
188
|
const returnDataByService = {};
|
|
189
189
|
if (!this.additionalPersistanceEntityServices) {
|
|
190
190
|
throw new definitions_1.ApplicationError(`No additional PersistanceEntityServices exist for DomainEntityService ${this.persistanceEntityService.getEntityName(true) || '(no entity name)'}.`);
|
|
@@ -195,13 +195,14 @@ class DomainEntityService {
|
|
|
195
195
|
}
|
|
196
196
|
for (const i in serviceNames) {
|
|
197
197
|
const serviceName = serviceNames[i];
|
|
198
|
-
const service = this.
|
|
198
|
+
const service = this.getPersistanceService(serviceName);
|
|
199
199
|
if (!service) {
|
|
200
200
|
throw new definitions_1.ApplicationError(`PersistanceEntityService ${serviceName} does not exist for DomainEntityService ${this.persistanceEntityService.getEntityName(true) || '(no entity name)'}.`);
|
|
201
201
|
}
|
|
202
202
|
const serviceMethodOptionsOverrides = optionsOverridesByService[serviceName] || {};
|
|
203
|
-
const {
|
|
204
|
-
if ((
|
|
203
|
+
const { filterByFirstServiceResultFields, runOnNoFirstServiceResultOnly = true } = serviceMethodOptionsOverrides, actualMethodOptionsOverrides = __rest(serviceMethodOptionsOverrides, ["filterByFirstServiceResultFields", "runOnNoFirstServiceResultOnly"]);
|
|
204
|
+
if ((runOnNoFirstServiceResultOnly === true || runOnNoFirstServiceResultOnly === 'true') &&
|
|
205
|
+
hasFirstServiceResult) {
|
|
205
206
|
continue;
|
|
206
207
|
}
|
|
207
208
|
const serviceMethodArgs = immutable_1.default.fromJS(methodArgs).toJS();
|
|
@@ -216,21 +217,21 @@ class DomainEntityService {
|
|
|
216
217
|
else {
|
|
217
218
|
serviceMethodArgs[optionsArgIndex] = Object.assign(Object.assign({}, serviceMethodArgs[optionsArgIndex]), actualMethodOptionsOverrides);
|
|
218
219
|
}
|
|
219
|
-
if (
|
|
220
|
-
if (!
|
|
220
|
+
if (filterByFirstServiceResultFields && Object.keys(filterByFirstServiceResultFields).length) {
|
|
221
|
+
if (!hasFirstServiceResult) {
|
|
221
222
|
continue;
|
|
222
223
|
}
|
|
223
224
|
const filters = {};
|
|
224
|
-
const resultItems =
|
|
225
|
-
|
|
225
|
+
const resultItems = firstServiceResult.items || [
|
|
226
|
+
firstServiceResult
|
|
226
227
|
];
|
|
227
228
|
resultItems.forEach(resultItem => {
|
|
228
229
|
if (!resultItem) {
|
|
229
230
|
return;
|
|
230
231
|
}
|
|
231
|
-
for (const sourceFieldName in
|
|
232
|
+
for (const sourceFieldName in filterByFirstServiceResultFields) {
|
|
232
233
|
const fieldValue = resultItem[sourceFieldName];
|
|
233
|
-
const targetFieldName =
|
|
234
|
+
const targetFieldName = filterByFirstServiceResultFields[sourceFieldName];
|
|
234
235
|
if (typeof fieldValue === 'undefined') {
|
|
235
236
|
return;
|
|
236
237
|
}
|
|
@@ -262,8 +263,8 @@ class DomainEntityService {
|
|
|
262
263
|
return {
|
|
263
264
|
result,
|
|
264
265
|
resultsByService: yield this.runMethodInAdditionalServices(otherServiceNames || [], {
|
|
265
|
-
|
|
266
|
-
|
|
266
|
+
firstServiceResult: result,
|
|
267
|
+
hasFirstServiceResult: !!result.count,
|
|
267
268
|
methodArgs: [data, otherOptions, privateOptions],
|
|
268
269
|
methodName: 'update',
|
|
269
270
|
optionsArgIndex: 1,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain.entity.service.js","sourceRoot":"","sources":["../../../src/domain/entityService/domain.entity.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,0DAAkC;AAClC,iCAA6B;AAE7B,2FAkB6C;AAE7C,0DAA2E;AAK3E,MAAa,mBAAmB;IAM9B,YAEY,wBAAuC,EAEvC,iBAA2B,yEAAqC,EAEhE,mCAA8D;QAJ9D,6BAAwB,GAAxB,wBAAwB,CAAe;QAEvC,mBAAc,GAAd,cAAc,CAAkD;QAEhE,wCAAmC,GAAnC,mCAAmC,CAA2B;IACvE,CAAC;IAUE,UAAU,CACd,IAAwB,EACxB,OAAiC,EACjC,cAAwB;;;YAExB,IAAI,CAAC,CAAA,MAAA,IAAI,CAAC,cAAc,0CAAE,QAAQ,CAAC,gDAAY,CAAC,UAAU,CAAC,CAAA,EAAE,CAAC;gBAC5D,MAAM,IAAI,8BAAgB,CAAC,+CAA+C,OAAO,IAAI,GAAG,CAAC,CAAC;YAC5F,CAAC;YACD,MAAM,EAAE,yBAAyB,EAAE,mBAAmB,GAAG,CAAC,sEAAkC,CAAC,IAAI,CAAC,EAAE,GAClG,OAAO,IAAI,EAAE,CAAC;YAChB,MAAM,CAAC,gBAAgB,EAAE,GAAG,iBAAiB,CAAC,GAAG,mBAAmB,CAAC;YACrE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;YACnG,OAAO;gBACL,MAAM;gBACN,gBAAgB,EAAE,MAAM,IAAI,CAAC,6BAA6B,CAAC,iBAAiB,IAAI,EAAE,EAAE;oBAClF,
|
|
1
|
+
{"version":3,"file":"domain.entity.service.js","sourceRoot":"","sources":["../../../src/domain/entityService/domain.entity.service.ts"],"names":[],"mappings":"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"}
|