@chevre/domain 20.2.0-alpha.37 → 20.2.0-alpha.39
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/lib/chevre/repo/order.d.ts +1 -1
- package/lib/chevre/repo/order.js +2 -6
- package/lib/chevre/service/assetTransaction/reserve.js +2 -1
- package/lib/chevre/service/event.js +1 -1
- package/lib/chevre/service/offer.d.ts +5 -1
- package/lib/chevre/service/offer.js +31 -26
- package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.js +2 -1
- package/lib/chevre/service/reserve/potentialActions/onReservationCheckedIn.js +2 -1
- package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +2 -1
- package/lib/chevre/service/reserve/potentialActions/onReservationUsed.js +2 -1
- package/package.json +1 -1
package/lib/chevre/repo/order.js
CHANGED
|
@@ -769,13 +769,9 @@ class MongoRepository {
|
|
|
769
769
|
/**
|
|
770
770
|
* 注文番号から注文を取得する
|
|
771
771
|
*/
|
|
772
|
-
findByOrderNumber(params) {
|
|
772
|
+
findByOrderNumber(params, projection) {
|
|
773
773
|
return __awaiter(this, void 0, void 0, function* () {
|
|
774
|
-
const doc = yield this.orderModel.findOne({ orderNumber: params.orderNumber }, {
|
|
775
|
-
__v: 0,
|
|
776
|
-
createdAt: 0,
|
|
777
|
-
updatedAt: 0
|
|
778
|
-
})
|
|
774
|
+
const doc = yield this.orderModel.findOne({ orderNumber: params.orderNumber }, Object.assign({ __v: 0, createdAt: 0, updatedAt: 0 }, projection))
|
|
779
775
|
.exec();
|
|
780
776
|
if (doc === null) {
|
|
781
777
|
throw new factory.errors.NotFound(this.orderModel.modelName);
|
|
@@ -580,7 +580,8 @@ function onReservationsCreated(params) {
|
|
|
580
580
|
// 集計タスク
|
|
581
581
|
yield OfferService.createAggregateScreeningEventIfNotExist({
|
|
582
582
|
project: params.event.project,
|
|
583
|
-
reservationFor: { id: params.event.id }
|
|
583
|
+
reservationFor: { id: params.event.id },
|
|
584
|
+
force: false
|
|
584
585
|
})({ task: repos.task });
|
|
585
586
|
});
|
|
586
587
|
}
|
|
@@ -769,7 +769,7 @@ function updateEvent4ttts(params) {
|
|
|
769
769
|
}
|
|
770
770
|
// アクション完了
|
|
771
771
|
yield repos.action.complete({ typeOf: action.typeOf, id: action.id, result: {} });
|
|
772
|
-
yield (0, offer_1.onEventChanged)(event)({
|
|
772
|
+
yield (0, offer_1.onEventChanged)({ event, isNew: false })({
|
|
773
773
|
event: repos.event,
|
|
774
774
|
project: repos.project,
|
|
775
775
|
task: repos.task
|
|
@@ -63,7 +63,10 @@ export declare function searchEventSeatOffersWithPaging(params: {
|
|
|
63
63
|
/**
|
|
64
64
|
* イベント変更時処理
|
|
65
65
|
*/
|
|
66
|
-
export declare function onEventChanged(params:
|
|
66
|
+
export declare function onEventChanged(params: {
|
|
67
|
+
event: factory.event.IEvent<factory.eventType>;
|
|
68
|
+
isNew: boolean;
|
|
69
|
+
}): (repos: {
|
|
67
70
|
event: EventRepo;
|
|
68
71
|
project: ProjectRepo;
|
|
69
72
|
task: TaskRepo;
|
|
@@ -75,6 +78,7 @@ export declare function createAggregateScreeningEventIfNotExist(params: {
|
|
|
75
78
|
reservationFor: {
|
|
76
79
|
id: string;
|
|
77
80
|
};
|
|
81
|
+
force: boolean;
|
|
78
82
|
}): (repos: {
|
|
79
83
|
task: TaskRepo;
|
|
80
84
|
}) => Promise<void>;
|
|
@@ -212,43 +212,22 @@ exports.searchEventSeatOffersWithPaging = searchEventSeatOffersWithPaging;
|
|
|
212
212
|
*/
|
|
213
213
|
function onEventChanged(params) {
|
|
214
214
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
215
|
-
const changedEvent = params;
|
|
215
|
+
const changedEvent = params.event;
|
|
216
216
|
// ScreeningEventであれば集計タスク
|
|
217
217
|
if (changedEvent.typeOf === factory.eventType.ScreeningEvent) {
|
|
218
218
|
yield createAggregateScreeningEventIfNotExist({
|
|
219
219
|
project: changedEvent.project,
|
|
220
|
-
reservationFor: { id: changedEvent.id }
|
|
220
|
+
reservationFor: { id: changedEvent.id },
|
|
221
|
+
// 新規作成の場合は強制的に集計
|
|
222
|
+
force: params.isNew
|
|
221
223
|
})(repos);
|
|
222
|
-
// const aggregateTask: factory.task.aggregateScreeningEvent.IAttributes = {
|
|
223
|
-
// project: event.project,
|
|
224
|
-
// name: factory.taskName.AggregateScreeningEvent,
|
|
225
|
-
// status: factory.taskStatus.Ready,
|
|
226
|
-
// runsAt: new Date(),
|
|
227
|
-
// remainingNumberOfTries: 3,
|
|
228
|
-
// numberOfTried: 0,
|
|
229
|
-
// executionResults: [],
|
|
230
|
-
// data: { id: event.id, typeOf: event.typeOf }
|
|
231
|
-
// };
|
|
232
|
-
// await repos.task.save(aggregateTask);
|
|
233
|
-
}
|
|
234
|
-
else {
|
|
235
|
-
// イベント通知タスク
|
|
236
|
-
// const project = await repos.project.findById({ id: event.project.id });
|
|
237
224
|
}
|
|
238
225
|
});
|
|
239
226
|
}
|
|
240
227
|
exports.onEventChanged = onEventChanged;
|
|
241
228
|
function createAggregateScreeningEventIfNotExist(params) {
|
|
242
229
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
243
|
-
|
|
244
|
-
const readyAggregateScreeningEventTaskDoc = yield repos.task.taskModel.findOne({
|
|
245
|
-
'project.id': { $eq: params.project.id },
|
|
246
|
-
name: { $eq: factory.taskName.AggregateScreeningEvent },
|
|
247
|
-
status: { $eq: factory.taskStatus.Ready },
|
|
248
|
-
'data.id': { $exists: true, $eq: params.reservationFor.id }
|
|
249
|
-
}, { _id: 1 })
|
|
250
|
-
.exec();
|
|
251
|
-
if (readyAggregateScreeningEventTaskDoc === null) {
|
|
230
|
+
if (params.force) {
|
|
252
231
|
const aggregateTask = {
|
|
253
232
|
project: { id: params.project.id, typeOf: factory.organizationType.Project },
|
|
254
233
|
name: factory.taskName.AggregateScreeningEvent,
|
|
@@ -264,6 +243,32 @@ function createAggregateScreeningEventIfNotExist(params) {
|
|
|
264
243
|
};
|
|
265
244
|
yield repos.task.save(aggregateTask);
|
|
266
245
|
}
|
|
246
|
+
else {
|
|
247
|
+
// 冗長な作成を避ける
|
|
248
|
+
const readyAggregateScreeningEventTaskDoc = yield repos.task.taskModel.findOne({
|
|
249
|
+
'project.id': { $eq: params.project.id },
|
|
250
|
+
name: { $eq: factory.taskName.AggregateScreeningEvent },
|
|
251
|
+
status: { $eq: factory.taskStatus.Ready },
|
|
252
|
+
'data.id': { $exists: true, $eq: params.reservationFor.id }
|
|
253
|
+
}, { _id: 1 })
|
|
254
|
+
.exec();
|
|
255
|
+
if (readyAggregateScreeningEventTaskDoc === null) {
|
|
256
|
+
const aggregateTask = {
|
|
257
|
+
project: { id: params.project.id, typeOf: factory.organizationType.Project },
|
|
258
|
+
name: factory.taskName.AggregateScreeningEvent,
|
|
259
|
+
status: factory.taskStatus.Ready,
|
|
260
|
+
runsAt: new Date(),
|
|
261
|
+
remainingNumberOfTries: 3,
|
|
262
|
+
numberOfTried: 0,
|
|
263
|
+
executionResults: [],
|
|
264
|
+
data: {
|
|
265
|
+
typeOf: factory.eventType.ScreeningEvent,
|
|
266
|
+
id: params.reservationFor.id
|
|
267
|
+
}
|
|
268
|
+
};
|
|
269
|
+
yield repos.task.save(aggregateTask);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
267
272
|
});
|
|
268
273
|
}
|
|
269
274
|
exports.createAggregateScreeningEventIfNotExist = createAggregateScreeningEventIfNotExist;
|
|
@@ -96,7 +96,8 @@ function onReservationCanceled(canceledReservations, useInformReservation) {
|
|
|
96
96
|
// 冗長な作成を避ける
|
|
97
97
|
yield (0, offer_1.createAggregateScreeningEventIfNotExist)({
|
|
98
98
|
project,
|
|
99
|
-
reservationFor: { id: canceledReservations[0].reservationFor.id }
|
|
99
|
+
reservationFor: { id: canceledReservations[0].reservationFor.id },
|
|
100
|
+
force: false
|
|
100
101
|
})({ task: repos.task });
|
|
101
102
|
}
|
|
102
103
|
});
|
|
@@ -116,7 +116,8 @@ function onReservationCheckedIn(params) {
|
|
|
116
116
|
yield Promise.all(reservationForIds.map((reservationForId) => __awaiter(this, void 0, void 0, function* () {
|
|
117
117
|
yield (0, offer_1.createAggregateScreeningEventIfNotExist)({
|
|
118
118
|
project: { id: params.project.id },
|
|
119
|
-
reservationFor: { id: reservationForId }
|
|
119
|
+
reservationFor: { id: reservationForId },
|
|
120
|
+
force: false
|
|
120
121
|
})({ task: repos.task });
|
|
121
122
|
})));
|
|
122
123
|
}
|
|
@@ -98,7 +98,8 @@ function onReservationConfirmed(confirmedReservations) {
|
|
|
98
98
|
if (Array.isArray(confirmedReservations) && confirmedReservations.length > 0) {
|
|
99
99
|
yield (0, offer_1.createAggregateScreeningEventIfNotExist)({
|
|
100
100
|
project: confirmedReservations[0].project,
|
|
101
|
-
reservationFor: { id: confirmedReservations[0].reservationFor.id }
|
|
101
|
+
reservationFor: { id: confirmedReservations[0].reservationFor.id },
|
|
102
|
+
force: false
|
|
102
103
|
})({ task: repos.task });
|
|
103
104
|
const now = new Date();
|
|
104
105
|
const taskAttributes = [];
|
|
@@ -134,7 +134,8 @@ function onReservationUsed(action, attendedReservation) {
|
|
|
134
134
|
// 冗長な作成を避ける
|
|
135
135
|
yield (0, offer_1.createAggregateScreeningEventIfNotExist)({
|
|
136
136
|
project: attendedReservation.project,
|
|
137
|
-
reservationFor: { id: attendedReservation.reservationFor.id }
|
|
137
|
+
reservationFor: { id: attendedReservation.reservationFor.id },
|
|
138
|
+
force: false
|
|
138
139
|
})({ task: repos.task });
|
|
139
140
|
});
|
|
140
141
|
}
|
package/package.json
CHANGED