@chevre/domain 21.2.0-alpha.11 → 21.2.0-alpha.111
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/example/src/chevre/aggregation/aggregateSystem.ts +85 -27
- package/example/src/chevre/deleteTasksByName.ts +10 -2
- package/example/src/chevre/importEventsFromCOA.ts +3 -4
- package/example/src/chevre/migrateOrderAdditionalProperties.ts +85 -0
- package/example/src/chevre/processPay.ts +5 -1
- package/example/src/chevre/processRegisterMembership.ts +8 -4
- package/example/src/chevre/processRegisterPaymentCard.ts +8 -4
- package/example/src/chevre/processReserve.ts +4 -1
- package/example/src/chevre/saveTasks.ts +13 -10
- package/example/src/chevre/searchAbortedTasks.ts +36 -0
- package/example/src/chevre/searchActions.ts +33 -0
- package/example/src/chevre/searchReservationNumbersByOrderNumbers.ts +37 -1
- package/example/src/chevre/searchSendEmailActions.ts +44 -0
- package/example/src/chevre/task/executeTasks.ts +26 -0
- package/example/src/chevre/transaction/findCreditCard.ts +1 -1
- package/example/src/chevre/transaction/orderMembershipService.ts +1 -1
- package/example/src/chevre/transaction/processReturnOrder.ts +40 -0
- package/example/src/chevre/transaction/startExportTasks.ts +20 -0
- package/example/src/chevre/updateTransaction.ts +1 -1
- package/example/src/playOnMoment.ts +24 -0
- package/lib/chevre/credentials.d.ts +1 -0
- package/lib/chevre/credentials.js +2 -1
- package/lib/chevre/eventEmitter/assetTransaction.d.ts +21 -0
- package/lib/chevre/eventEmitter/assetTransaction.js +25 -0
- package/lib/chevre/eventEmitter/task.d.ts +18 -0
- package/lib/chevre/eventEmitter/task.js +25 -0
- package/lib/chevre/eventEmitter/transaction.d.ts +21 -0
- package/lib/chevre/eventEmitter/transaction.js +25 -0
- package/lib/chevre/eventEmitter.d.ts +4 -0
- package/lib/chevre/eventEmitter.js +9 -0
- package/lib/chevre/index.d.ts +3 -2
- package/lib/chevre/index.js +5 -3
- package/lib/chevre/repo/account.js +3 -2
- package/lib/chevre/repo/accountTransaction.d.ts +3 -11
- package/lib/chevre/repo/accountTransaction.js +3 -55
- package/lib/chevre/repo/action.d.ts +42 -2
- package/lib/chevre/repo/action.js +130 -57
- package/lib/chevre/repo/additionalProperty.js +2 -1
- package/lib/chevre/repo/aggregation.d.ts +3 -0
- package/lib/chevre/repo/aggregation.js +3 -0
- package/lib/chevre/repo/assetTransaction.d.ts +25 -9
- package/lib/chevre/repo/assetTransaction.js +259 -87
- package/lib/chevre/repo/categoryCode.d.ts +1 -1
- package/lib/chevre/repo/categoryCode.js +37 -25
- package/lib/chevre/repo/code.js +3 -2
- package/lib/chevre/repo/comment.d.ts +4 -1
- package/lib/chevre/repo/comment.js +22 -6
- package/lib/chevre/repo/confirmationNumber.d.ts +0 -1
- package/lib/chevre/repo/confirmationNumber.js +3 -15
- package/lib/chevre/repo/creativeWork.d.ts +2 -4
- package/lib/chevre/repo/creativeWork.js +35 -12
- package/lib/chevre/repo/customer.js +2 -1
- package/lib/chevre/repo/emailMessage.d.ts +1 -27
- package/lib/chevre/repo/emailMessage.js +2 -1
- package/lib/chevre/repo/event.d.ts +5 -1
- package/lib/chevre/repo/event.js +4 -3
- package/lib/chevre/repo/member.js +4 -3
- package/lib/chevre/repo/merchantReturnPolicy.d.ts +1 -3
- package/lib/chevre/repo/merchantReturnPolicy.js +2 -1
- package/lib/chevre/repo/mongoose/schemas/account.d.ts +4 -2
- package/lib/chevre/repo/mongoose/schemas/accountTitle.d.ts +29 -3
- package/lib/chevre/repo/mongoose/schemas/accountTransaction.d.ts +31 -3
- package/lib/chevre/repo/mongoose/schemas/accountTransaction.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/accountingReport.d.ts +13 -3
- package/lib/chevre/repo/mongoose/schemas/action.d.ts +43 -3
- package/lib/chevre/repo/mongoose/schemas/action.js +19 -1
- package/lib/chevre/repo/mongoose/schemas/additionalProperty.d.ts +17 -3
- package/lib/chevre/repo/mongoose/schemas/aggregation.d.ts +4 -2
- package/lib/chevre/repo/mongoose/schemas/assetTransaction.d.ts +44 -3
- package/lib/chevre/repo/mongoose/schemas/assetTransaction.js +32 -19
- package/lib/chevre/repo/mongoose/schemas/authorization.d.ts +19 -3
- package/lib/chevre/repo/mongoose/schemas/authorization.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/categoryCode.d.ts +25 -3
- package/lib/chevre/repo/mongoose/schemas/comments.d.ts +27 -3
- package/lib/chevre/repo/mongoose/schemas/comments.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/creativeWork.d.ts +43 -3
- package/lib/chevre/repo/mongoose/schemas/customer.d.ts +25 -3
- package/lib/chevre/repo/mongoose/schemas/emailMessages.d.ts +21 -3
- package/lib/chevre/repo/mongoose/schemas/event.d.ts +71 -3
- package/lib/chevre/repo/mongoose/schemas/member.d.ts +13 -3
- package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.d.ts +21 -3
- package/lib/chevre/repo/mongoose/schemas/offer.d.ts +65 -3
- package/lib/chevre/repo/mongoose/schemas/offerCatalog.d.ts +27 -3
- package/lib/chevre/repo/mongoose/schemas/offerItemCondition.d.ts +74 -0
- package/lib/chevre/repo/mongoose/schemas/offerItemCondition.js +45 -0
- package/lib/chevre/repo/mongoose/schemas/order.d.ts +51 -3
- package/lib/chevre/repo/mongoose/schemas/order.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/ownershipInfo.d.ts +25 -3
- package/lib/chevre/repo/mongoose/schemas/ownershipInfo.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/place.d.ts +49 -3
- package/lib/chevre/repo/mongoose/schemas/priceSpecification.d.ts +29 -3
- package/lib/chevre/repo/mongoose/schemas/product.d.ts +31 -3
- package/lib/chevre/repo/mongoose/schemas/project.d.ts +23 -3
- package/lib/chevre/repo/mongoose/schemas/reservation.d.ts +63 -5
- package/lib/chevre/repo/mongoose/schemas/reservation.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/role.d.ts +11 -3
- package/lib/chevre/repo/mongoose/schemas/seller.d.ts +31 -3
- package/lib/chevre/repo/mongoose/schemas/seller.js +6 -0
- package/lib/chevre/repo/mongoose/schemas/serviceOutput.d.ts +11 -3
- package/lib/chevre/repo/mongoose/schemas/serviceOutput.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/task.d.ts +30 -3
- package/lib/chevre/repo/mongoose/schemas/task.js +2 -1
- package/lib/chevre/repo/mongoose/schemas/telemetry.d.ts +21 -3
- package/lib/chevre/repo/mongoose/schemas/transaction.d.ts +40 -3
- package/lib/chevre/repo/mongoose/schemas/transaction.js +2 -1
- package/lib/chevre/repo/mongoose/schemas/trip.d.ts +11 -3
- package/lib/chevre/repo/offer.js +3 -2
- package/lib/chevre/repo/offerCatalog.js +0 -27
- package/lib/chevre/repo/offerItemCondition.d.ts +22 -0
- package/lib/chevre/repo/offerItemCondition.js +121 -0
- package/lib/chevre/repo/order.d.ts +55 -3
- package/lib/chevre/repo/order.js +62 -10
- package/lib/chevre/repo/ownershipInfo.js +2 -7
- package/lib/chevre/repo/place.js +3 -2
- package/lib/chevre/repo/priceSpecification.js +3 -2
- package/lib/chevre/repo/product.d.ts +1 -3
- package/lib/chevre/repo/product.js +25 -4
- package/lib/chevre/repo/project.js +2 -1
- package/lib/chevre/repo/reservation.d.ts +20 -4
- package/lib/chevre/repo/reservation.js +40 -59
- package/lib/chevre/repo/role.js +3 -2
- package/lib/chevre/repo/seller.d.ts +1 -1
- package/lib/chevre/repo/seller.js +44 -23
- package/lib/chevre/repo/serviceOutput.js +2 -1
- package/lib/chevre/repo/task.d.ts +42 -2
- package/lib/chevre/repo/task.js +93 -11
- package/lib/chevre/repo/transaction.d.ts +23 -4
- package/lib/chevre/repo/transaction.js +179 -60
- package/lib/chevre/repo/trip.js +2 -1
- package/lib/chevre/repository.d.ts +5 -2
- package/lib/chevre/repository.js +8 -4
- package/lib/chevre/service/aggregation/system.d.ts +110 -23
- package/lib/chevre/service/aggregation/system.js +213 -91
- package/lib/chevre/service/assetTransaction/cancelReservation.js +1 -28
- package/lib/chevre/service/assetTransaction/moneyTransfer.js +2 -24
- package/lib/chevre/service/assetTransaction/pay/account/validation.js +1 -1
- package/lib/chevre/service/assetTransaction/pay/potentialActions.js +17 -1
- package/lib/chevre/service/assetTransaction/pay.d.ts +5 -1
- package/lib/chevre/service/assetTransaction/pay.js +20 -34
- package/lib/chevre/service/assetTransaction/refund.js +2 -24
- package/lib/chevre/service/assetTransaction/registerService.js +1 -25
- package/lib/chevre/service/assetTransaction/reserve/factory.d.ts +15 -5
- package/lib/chevre/service/assetTransaction/reserve/factory.js +122 -58
- package/lib/chevre/service/assetTransaction/reserve.d.ts +10 -1
- package/lib/chevre/service/assetTransaction/reserve.js +85 -69
- package/lib/chevre/service/assetTransaction.d.ts +6 -2
- package/lib/chevre/service/assetTransaction.js +9 -5
- package/lib/chevre/service/event.js +16 -5
- package/lib/chevre/service/notification/factory.js +2 -2
- package/lib/chevre/service/notification.d.ts +3 -1
- package/lib/chevre/service/notification.js +41 -7
- package/lib/chevre/service/offer/event/authorize.d.ts +3 -0
- package/lib/chevre/service/offer/event/authorize.js +8 -2
- package/lib/chevre/service/offer/event/factory.d.ts +3 -0
- package/lib/chevre/service/offer/event/factory.js +16 -5
- package/lib/chevre/service/offer/event/importFromCOA.js +2 -2
- package/lib/chevre/service/offer/event/voidTransaction.d.ts +2 -0
- package/lib/chevre/service/offer/event/voidTransaction.js +17 -1
- package/lib/chevre/service/offer/eventServiceByCOA.js +7 -9
- package/lib/chevre/service/offer/product.js +2 -2
- package/lib/chevre/service/offer.d.ts +16 -8
- package/lib/chevre/service/offer.js +69 -8
- package/lib/chevre/service/order/deleteOrder.d.ts +3 -1
- package/lib/chevre/service/order/deleteOrder.js +8 -8
- package/lib/chevre/service/order/onOrderStatusChanged/factory.d.ts +5 -2
- package/lib/chevre/service/order/onOrderStatusChanged/factory.js +41 -81
- package/lib/chevre/service/order/onOrderStatusChanged.js +1 -3
- package/lib/chevre/service/order/onOrderUpdated.d.ts +16 -0
- package/lib/chevre/service/order/onOrderUpdated.js +22 -0
- package/lib/chevre/service/order/placeOrder.d.ts +1 -0
- package/lib/chevre/service/order/placeOrder.js +41 -24
- package/lib/chevre/service/order/returnOrder.d.ts +1 -0
- package/lib/chevre/service/order/returnOrder.js +7 -12
- package/lib/chevre/service/order/sendOrder.d.ts +1 -0
- package/lib/chevre/service/order/sendOrder.js +7 -10
- package/lib/chevre/service/order.d.ts +2 -1
- package/lib/chevre/service/order.js +3 -1
- package/lib/chevre/service/payment/any/onPaid.js +1 -1
- package/lib/chevre/service/payment/any/onRefund.js +1 -1
- package/lib/chevre/service/payment/any.d.ts +9 -5
- package/lib/chevre/service/payment/any.js +80 -18
- package/lib/chevre/service/payment/creditCard.d.ts +1 -1
- package/lib/chevre/service/payment/creditCard.js +23 -17
- package/lib/chevre/service/payment/movieTicket/checkByIdentifier.d.ts +8 -7
- package/lib/chevre/service/payment/movieTicket/factory.d.ts +1 -1
- package/lib/chevre/service/payment/movieTicket/getCredentials.d.ts +1 -1
- package/lib/chevre/service/payment/movieTicket/getCredentials.js +1 -1
- package/lib/chevre/service/payment/movieTicket/validation.d.ts +6 -6
- package/lib/chevre/service/payment/movieTicket/validation.js +55 -32
- package/lib/chevre/service/payment/movieTicket.d.ts +2 -2
- package/lib/chevre/service/payment/movieTicket.js +7 -6
- package/lib/chevre/service/product.js +1 -5
- package/lib/chevre/service/report/telemetry.d.ts +0 -11
- package/lib/chevre/service/report/telemetry.js +21 -24
- package/lib/chevre/service/reserve/cancelReservation.d.ts +5 -3
- package/lib/chevre/service/reserve/cancelReservation.js +147 -139
- package/lib/chevre/service/reserve/checkInReservation.d.ts +9 -4
- package/lib/chevre/service/reserve/checkInReservation.js +77 -3
- package/lib/chevre/service/reserve/confirmReservation.d.ts +7 -4
- package/lib/chevre/service/reserve/confirmReservation.js +133 -58
- package/lib/chevre/service/reserve/factory.d.ts +1 -1
- package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.d.ts +17 -5
- package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.js +26 -24
- package/lib/chevre/service/reserve/potentialActions/onReservationCheckedIn.js +2 -3
- package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +2 -31
- package/lib/chevre/service/reserve/potentialActions/onReservationUsed.js +2 -3
- package/lib/chevre/service/reserve/useReservation.d.ts +7 -3
- package/lib/chevre/service/reserve/useReservation.js +61 -71
- package/lib/chevre/service/reserve/verifyToken4reservation.d.ts +15 -0
- package/lib/chevre/service/reserve/verifyToken4reservation.js +56 -0
- package/lib/chevre/service/reserve.d.ts +3 -2
- package/lib/chevre/service/reserve.js +4 -2
- package/lib/chevre/service/task/cancelPendingReservation.js +5 -1
- package/lib/chevre/service/task/confirmRegisterServiceTransaction.js +1 -1
- package/lib/chevre/service/task/deleteTransaction.js +10 -8
- package/lib/chevre/service/task/importOffersFromCOA.js +4 -0
- package/lib/chevre/service/task/onAuthorizationCreated.d.ts +7 -0
- package/lib/chevre/service/task/onAuthorizationCreated.js +108 -0
- package/lib/chevre/service/task/onEventChanged.d.ts +7 -0
- package/lib/chevre/service/task/{deleteOrder.js → onEventChanged.js} +8 -14
- package/lib/chevre/service/task/onResourceUpdated.d.ts +7 -0
- package/lib/chevre/service/task/onResourceUpdated.js +199 -0
- package/lib/chevre/service/task/placeOrder.js +1 -1
- package/lib/chevre/service/task/reserve.js +10 -7
- package/lib/chevre/service/task/returnOrder.js +1 -1
- package/lib/chevre/service/task/returnPayTransaction.js +2 -12
- package/lib/chevre/service/task/sendOrder.js +1 -1
- package/lib/chevre/service/task/useReservation.d.ts +7 -0
- package/lib/chevre/service/task/useReservation.js +36 -0
- package/lib/chevre/service/task/voidReserveTransaction.js +3 -1
- package/lib/chevre/service/task.d.ts +9 -0
- package/lib/chevre/service/task.js +43 -4
- package/lib/chevre/service/transaction/deleteTransaction.d.ts +21 -0
- package/lib/chevre/service/transaction/deleteTransaction.js +232 -0
- package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.js +11 -1
- package/lib/chevre/service/transaction/moneyTransfer/factory.d.ts +1 -1
- package/lib/chevre/service/transaction/moneyTransfer/factory.js +3 -1
- package/lib/chevre/service/transaction/moneyTransfer/potentialActions.d.ts +1 -0
- package/lib/chevre/service/transaction/moneyTransfer/potentialActions.js +1 -1
- package/lib/chevre/service/transaction/moneyTransfer.js +10 -13
- package/lib/chevre/service/transaction/orderProgramMembership/findCreditCard.js +1 -1
- package/lib/chevre/service/transaction/orderProgramMembership/findPaymentCardPermit.js +1 -1
- package/lib/chevre/service/transaction/orderProgramMembership.js +7 -3
- package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +42 -30
- package/lib/chevre/service/transaction/placeOrder.js +1 -5
- package/lib/chevre/service/transaction/placeOrderInProgress/factory.js +1 -1
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.d.ts +1 -0
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.js +1 -1
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.d.ts +1 -0
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.js +1 -1
- package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions.d.ts +1 -0
- package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.d.ts +3 -0
- package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.js +7 -3
- package/lib/chevre/service/transaction/placeOrderInProgress/result.d.ts +1 -0
- package/lib/chevre/service/transaction/placeOrderInProgress/result.js +2 -2
- package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.d.ts +1 -1
- package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.js +2 -2
- package/lib/chevre/service/transaction/placeOrderInProgress/validation.d.ts +2 -1
- package/lib/chevre/service/transaction/placeOrderInProgress/validation.js +23 -17
- package/lib/chevre/service/transaction/placeOrderInProgress.d.ts +0 -3
- package/lib/chevre/service/transaction/placeOrderInProgress.js +28 -15
- package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +10 -1
- package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +25 -17
- package/lib/chevre/service/transaction/returnOrder.d.ts +4 -0
- package/lib/chevre/service/transaction/returnOrder.js +228 -36
- package/lib/chevre/service/transaction.d.ts +8 -13
- package/lib/chevre/service/transaction.js +12 -145
- package/lib/chevre/settings.d.ts +11 -1
- package/lib/chevre/settings.js +50 -6
- package/package.json +5 -5
- package/example/src/chevre/createManyEventsIfNotExist.ts +0 -205
- package/example/src/chevre/eventCatalog2eventService.ts +0 -123
- package/example/src/chevre/migrateMoneyTransferPendingTransactionIdentifier.ts +0 -96
- package/example/src/chevre/migrateMovieAdditionalProperties.ts +0 -98
- package/lib/chevre/service/task/deleteAssetTransaction.d.ts +0 -12
- package/lib/chevre/service/task/deleteAssetTransaction.js +0 -65
- package/lib/chevre/service/task/deleteOrder.d.ts +0 -6
package/lib/chevre/repo/task.js
CHANGED
|
@@ -13,6 +13,8 @@ exports.MongoRepository = void 0;
|
|
|
13
13
|
const moment = require("moment");
|
|
14
14
|
const factory = require("../factory");
|
|
15
15
|
const task_1 = require("./mongoose/schemas/task");
|
|
16
|
+
const task_2 = require("../eventEmitter/task");
|
|
17
|
+
const settings_1 = require("../settings");
|
|
16
18
|
/**
|
|
17
19
|
* タスク実行時のソート条件
|
|
18
20
|
*/
|
|
@@ -149,27 +151,43 @@ class MongoRepository {
|
|
|
149
151
|
}
|
|
150
152
|
return andConditions;
|
|
151
153
|
}
|
|
152
|
-
saveMany(taskAttributes) {
|
|
154
|
+
saveMany(taskAttributes, options) {
|
|
153
155
|
return __awaiter(this, void 0, void 0, function* () {
|
|
156
|
+
const emitImmediately = (options === null || options === void 0 ? void 0 : options.emitImmediately) === true;
|
|
154
157
|
if (taskAttributes.length > 0) {
|
|
155
158
|
const result = yield this.taskModel.insertMany(taskAttributes, { ordered: false, rawResult: true });
|
|
156
159
|
if (result.insertedCount !== taskAttributes.length) {
|
|
157
160
|
throw new factory.errors.ServiceUnavailable('all tasks not saved');
|
|
158
161
|
}
|
|
159
|
-
|
|
160
|
-
return Object.values(result.insertedIds)
|
|
162
|
+
const savedTasks = Object.values(result.insertedIds)
|
|
161
163
|
.map((objectId) => {
|
|
162
164
|
return { id: objectId.toHexString() };
|
|
163
165
|
});
|
|
166
|
+
if (emitImmediately) {
|
|
167
|
+
savedTasks.forEach((savedTask) => {
|
|
168
|
+
task_2.taskEventEmitter.emitTaskStatusChanged({
|
|
169
|
+
id: savedTask.id,
|
|
170
|
+
status: factory.taskStatus.Ready
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
// taskAttributes.forEach((savedTask) => {
|
|
174
|
+
// taskEventEmitter.emitTaskStatusChanged({
|
|
175
|
+
// name: savedTask.name,
|
|
176
|
+
// status: factory.taskStatus.Ready
|
|
177
|
+
// });
|
|
178
|
+
// });
|
|
179
|
+
}
|
|
180
|
+
// return result.ops;
|
|
181
|
+
return savedTasks;
|
|
164
182
|
}
|
|
165
183
|
else {
|
|
166
184
|
return [];
|
|
167
185
|
}
|
|
168
186
|
});
|
|
169
187
|
}
|
|
170
|
-
createInformTaskIfNotExist(params) {
|
|
188
|
+
createInformTaskIfNotExist(params, options) {
|
|
171
189
|
return __awaiter(this, void 0, void 0, function* () {
|
|
172
|
-
yield this.taskModel.findOneAndUpdate({
|
|
190
|
+
const createdTask = yield this.taskModel.findOneAndUpdate({
|
|
173
191
|
'project.id': { $eq: params.project.id },
|
|
174
192
|
name: params.name,
|
|
175
193
|
'data.object.id': {
|
|
@@ -177,7 +195,38 @@ class MongoRepository {
|
|
|
177
195
|
$eq: String(params.data.object.id)
|
|
178
196
|
}
|
|
179
197
|
}, { $setOnInsert: params }, { new: true, upsert: true })
|
|
198
|
+
.select({ _id: 1 })
|
|
199
|
+
.exec();
|
|
200
|
+
if (options.emitImmediately) {
|
|
201
|
+
task_2.taskEventEmitter.emitTaskStatusChanged({
|
|
202
|
+
id: createdTask.id,
|
|
203
|
+
name: params.name,
|
|
204
|
+
status: factory.taskStatus.Ready
|
|
205
|
+
});
|
|
206
|
+
}
|
|
207
|
+
});
|
|
208
|
+
}
|
|
209
|
+
executeById(params) {
|
|
210
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
211
|
+
const doc = yield this.taskModel.findOneAndUpdate({
|
|
212
|
+
status: factory.taskStatus.Ready,
|
|
213
|
+
runsAt: { $lt: new Date() },
|
|
214
|
+
_id: { $eq: params.id }
|
|
215
|
+
}, {
|
|
216
|
+
status: factory.taskStatus.Running,
|
|
217
|
+
lastTriedAt: new Date(),
|
|
218
|
+
$inc: {
|
|
219
|
+
remainingNumberOfTries: -1,
|
|
220
|
+
numberOfTried: 1 // トライ回数増やす
|
|
221
|
+
},
|
|
222
|
+
executor: params.executor
|
|
223
|
+
}, { new: true })
|
|
180
224
|
.exec();
|
|
225
|
+
if (doc === null) {
|
|
226
|
+
// tslint:disable-next-line:no-null-keyword
|
|
227
|
+
return null;
|
|
228
|
+
}
|
|
229
|
+
return doc.toObject();
|
|
181
230
|
});
|
|
182
231
|
}
|
|
183
232
|
executeOneByName(params) {
|
|
@@ -192,7 +241,8 @@ class MongoRepository {
|
|
|
192
241
|
$inc: {
|
|
193
242
|
remainingNumberOfTries: -1,
|
|
194
243
|
numberOfTried: 1 // トライ回数増やす
|
|
195
|
-
}
|
|
244
|
+
},
|
|
245
|
+
executor: params.executor
|
|
196
246
|
}, { new: true })
|
|
197
247
|
.sort(sortOrder4executionOfTasks)
|
|
198
248
|
.exec();
|
|
@@ -203,6 +253,35 @@ class MongoRepository {
|
|
|
203
253
|
return doc.toObject();
|
|
204
254
|
});
|
|
205
255
|
}
|
|
256
|
+
/**
|
|
257
|
+
* 一定期間遅延したタスクを実行する
|
|
258
|
+
*/
|
|
259
|
+
executeTasks(params) {
|
|
260
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
261
|
+
const runsAtLt = moment(params.now)
|
|
262
|
+
.add(-params.delayInSeconds, 'seconds')
|
|
263
|
+
.toDate();
|
|
264
|
+
const delayedTasks = yield this.taskModel.find(Object.assign(Object.assign({ status: { $eq: factory.taskStatus.Ready }, runsAt: { $lt: runsAtLt } }, (Array.isArray(params.name.$in)) ? { name: { $in: params.name.$in } } : undefined), (Array.isArray(params.name.$nin)) ? { name: { $nin: params.name.$nin } } : undefined))
|
|
265
|
+
.select({
|
|
266
|
+
_id: 1,
|
|
267
|
+
name: 1,
|
|
268
|
+
status: 1
|
|
269
|
+
})
|
|
270
|
+
.limit(params.limit)
|
|
271
|
+
.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
|
|
272
|
+
.exec();
|
|
273
|
+
if (delayedTasks.length > 0) {
|
|
274
|
+
delayedTasks.forEach((delayedTask) => {
|
|
275
|
+
task_2.taskEventEmitter.emitTaskStatusChanged({
|
|
276
|
+
id: delayedTask.id,
|
|
277
|
+
name: delayedTask.name,
|
|
278
|
+
status: delayedTask.status
|
|
279
|
+
});
|
|
280
|
+
});
|
|
281
|
+
}
|
|
282
|
+
return delayedTasks;
|
|
283
|
+
});
|
|
284
|
+
}
|
|
206
285
|
retry(params) {
|
|
207
286
|
return __awaiter(this, void 0, void 0, function* () {
|
|
208
287
|
const lastTriedAtShoudBeLessThan = moment()
|
|
@@ -297,7 +376,7 @@ class MongoRepository {
|
|
|
297
376
|
return __awaiter(this, void 0, void 0, function* () {
|
|
298
377
|
const conditions = MongoRepository.CREATE_MONGO_CONDITIONS(params);
|
|
299
378
|
return this.taskModel.countDocuments((conditions.length > 0) ? { $and: conditions } : {})
|
|
300
|
-
.setOptions({ maxTimeMS:
|
|
379
|
+
.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
|
|
301
380
|
.exec();
|
|
302
381
|
});
|
|
303
382
|
}
|
|
@@ -319,7 +398,7 @@ class MongoRepository {
|
|
|
319
398
|
if (((_a = params.sort) === null || _a === void 0 ? void 0 : _a.runsAt) !== undefined) {
|
|
320
399
|
query.sort({ runsAt: params.sort.runsAt });
|
|
321
400
|
}
|
|
322
|
-
return query.setOptions({ maxTimeMS:
|
|
401
|
+
return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
|
|
323
402
|
.exec()
|
|
324
403
|
.then((docs) => docs.map((doc) => doc.toObject()));
|
|
325
404
|
});
|
|
@@ -333,10 +412,13 @@ class MongoRepository {
|
|
|
333
412
|
});
|
|
334
413
|
}
|
|
335
414
|
deleteByName(params) {
|
|
415
|
+
var _a, _b;
|
|
336
416
|
return __awaiter(this, void 0, void 0, function* () {
|
|
337
|
-
return this.taskModel.deleteMany({
|
|
338
|
-
|
|
339
|
-
|
|
417
|
+
return this.taskModel.deleteMany(Object.assign(Object.assign({ name: { $eq: params.name } }, (typeof ((_a = params.status) === null || _a === void 0 ? void 0 : _a.$eq) === 'string') ? { status: { $eq: params.status.$eq } } : undefined), (((_b = params.runsAt) === null || _b === void 0 ? void 0 : _b.$gte) instanceof Date)
|
|
418
|
+
? {
|
|
419
|
+
runsAt: { $gte: params.runsAt.$gte, $lte: params.runsAt.$lte }
|
|
420
|
+
}
|
|
421
|
+
: undefined))
|
|
340
422
|
.exec();
|
|
341
423
|
});
|
|
342
424
|
}
|
|
@@ -40,6 +40,8 @@ export declare class MongoRepository {
|
|
|
40
40
|
findById<T extends factory.transactionType>(params: {
|
|
41
41
|
typeOf: T;
|
|
42
42
|
id: string;
|
|
43
|
+
inclusion?: string[];
|
|
44
|
+
exclusion?: string[];
|
|
43
45
|
}): Promise<factory.transaction.ITransaction<T>>;
|
|
44
46
|
/**
|
|
45
47
|
* 進行中の取引を取得する
|
|
@@ -88,7 +90,6 @@ export declare class MongoRepository {
|
|
|
88
90
|
id: string;
|
|
89
91
|
object?: {
|
|
90
92
|
name?: string;
|
|
91
|
-
dateOnTransactionStatusChangedEmitted?: Date;
|
|
92
93
|
};
|
|
93
94
|
}): Promise<void>;
|
|
94
95
|
/**
|
|
@@ -112,7 +113,13 @@ export declare class MongoRepository {
|
|
|
112
113
|
$in: T[];
|
|
113
114
|
};
|
|
114
115
|
status: factory.transactionStatusType;
|
|
115
|
-
|
|
116
|
+
id?: string;
|
|
117
|
+
tasksExportAction: {
|
|
118
|
+
agent: {
|
|
119
|
+
name: string;
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
}): Promise<Pick<factory.transaction.ITransaction<T>, 'id' | 'typeOf'> | null>;
|
|
116
123
|
/**
|
|
117
124
|
* タスクエクスポートリトライ
|
|
118
125
|
* TODO updatedAtを基準にしているが、タスクエクスポートトライ日時を持たせた方が安全か?
|
|
@@ -120,6 +127,16 @@ export declare class MongoRepository {
|
|
|
120
127
|
reexportTasks(params: {
|
|
121
128
|
intervalInMinutes: number;
|
|
122
129
|
}): Promise<void>;
|
|
130
|
+
/**
|
|
131
|
+
* タスクエクスポートの遅延している取引について明示的にemitTransactionStatusChangedを実行する
|
|
132
|
+
*/
|
|
133
|
+
exportTasks(params: {
|
|
134
|
+
now: Date;
|
|
135
|
+
delayInSeconds: number;
|
|
136
|
+
status: {
|
|
137
|
+
$in: factory.transactionStatusType[];
|
|
138
|
+
};
|
|
139
|
+
}): Promise<Pick<import("@chevre/factory/lib/transaction/moneyTransfer").ITransaction | import("@chevre/factory/lib/transaction/placeOrder").ITransaction | import("@chevre/factory/lib/transaction/returnOrder").ITransaction, "id" | "typeOf" | "status">[]>;
|
|
123
140
|
/**
|
|
124
141
|
* set task status exported by transaction id
|
|
125
142
|
* IDでタスクをエクスポート済に変更する
|
|
@@ -131,7 +148,9 @@ export declare class MongoRepository {
|
|
|
131
148
|
* 取引を期限切れにする
|
|
132
149
|
*/
|
|
133
150
|
makeExpired(params: {
|
|
134
|
-
expires:
|
|
151
|
+
expires: {
|
|
152
|
+
$lt: Date;
|
|
153
|
+
};
|
|
135
154
|
}): Promise<void>;
|
|
136
155
|
/**
|
|
137
156
|
* 取引を中止する
|
|
@@ -151,7 +170,7 @@ export declare class MongoRepository {
|
|
|
151
170
|
/**
|
|
152
171
|
* 特定の取引を更新する(汎用)
|
|
153
172
|
*/
|
|
154
|
-
|
|
173
|
+
findByIdAndUpdateInProgress(params: {
|
|
155
174
|
id: string;
|
|
156
175
|
update: {
|
|
157
176
|
$set?: any;
|
|
@@ -13,6 +13,8 @@ exports.MongoRepository = void 0;
|
|
|
13
13
|
const moment = require("moment");
|
|
14
14
|
const factory = require("../factory");
|
|
15
15
|
const transaction_1 = require("./mongoose/schemas/transaction");
|
|
16
|
+
const transaction_2 = require("../eventEmitter/transaction");
|
|
17
|
+
const settings_1 = require("../settings");
|
|
16
18
|
/**
|
|
17
19
|
* 取引リポジトリ
|
|
18
20
|
*/
|
|
@@ -263,7 +265,9 @@ class MongoRepository {
|
|
|
263
265
|
else {
|
|
264
266
|
expires = params.expires;
|
|
265
267
|
}
|
|
266
|
-
return this.transactionModel.create(Object.assign(Object.assign({}, params), { typeOf: params.typeOf, status: factory.transactionStatusType.InProgress, startDate, endDate: undefined, expires,
|
|
268
|
+
return this.transactionModel.create(Object.assign(Object.assign({}, params), { typeOf: params.typeOf, status: factory.transactionStatusType.InProgress, startDate, endDate: undefined, expires, tasksExportAction: {
|
|
269
|
+
actionStatus: factory.actionStatusType.PotentialActionStatus
|
|
270
|
+
}, tasksExportationStatus: factory.transactionTasksExportationStatus.Unexported }))
|
|
267
271
|
.then((doc) => doc.toObject());
|
|
268
272
|
});
|
|
269
273
|
}
|
|
@@ -272,10 +276,29 @@ class MongoRepository {
|
|
|
272
276
|
*/
|
|
273
277
|
findById(params) {
|
|
274
278
|
return __awaiter(this, void 0, void 0, function* () {
|
|
279
|
+
let projection = {};
|
|
280
|
+
if (Array.isArray(params.inclusion) && params.inclusion.length > 0) {
|
|
281
|
+
params.inclusion.forEach((field) => {
|
|
282
|
+
projection[field] = 1;
|
|
283
|
+
});
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
projection = {
|
|
287
|
+
__v: 0,
|
|
288
|
+
createdAt: 0,
|
|
289
|
+
updatedAt: 0
|
|
290
|
+
};
|
|
291
|
+
if (Array.isArray(params.exclusion) && params.exclusion.length > 0) {
|
|
292
|
+
params.exclusion.forEach((field) => {
|
|
293
|
+
projection[field] = 0;
|
|
294
|
+
});
|
|
295
|
+
}
|
|
296
|
+
}
|
|
275
297
|
const doc = yield this.transactionModel.findOne({
|
|
276
298
|
_id: { $eq: params.id },
|
|
277
299
|
typeOf: { $eq: params.typeOf }
|
|
278
300
|
})
|
|
301
|
+
.select(projection)
|
|
279
302
|
.exec();
|
|
280
303
|
if (doc === null) {
|
|
281
304
|
throw new factory.errors.NotFound(this.transactionModel.modelName);
|
|
@@ -291,7 +314,9 @@ class MongoRepository {
|
|
|
291
314
|
const doc = yield this.transactionModel.findOne({
|
|
292
315
|
_id: { $eq: params.id },
|
|
293
316
|
typeOf: { $eq: params.typeOf },
|
|
294
|
-
status: { $eq: factory.transactionStatusType.InProgress }
|
|
317
|
+
status: { $eq: factory.transactionStatusType.InProgress },
|
|
318
|
+
// expiresを条件に追加(2023-05-12~),
|
|
319
|
+
expires: { $gt: new Date() }
|
|
295
320
|
})
|
|
296
321
|
.exec();
|
|
297
322
|
if (doc === null) {
|
|
@@ -343,9 +368,9 @@ class MongoRepository {
|
|
|
343
368
|
var _a, _b;
|
|
344
369
|
return __awaiter(this, void 0, void 0, function* () {
|
|
345
370
|
const doc = yield this.transactionModel.findOneAndUpdate({
|
|
346
|
-
_id: params.id,
|
|
347
|
-
typeOf: params.typeOf,
|
|
348
|
-
status: factory.transactionStatusType.InProgress
|
|
371
|
+
_id: { $eq: params.id },
|
|
372
|
+
typeOf: { $eq: params.typeOf },
|
|
373
|
+
status: { $eq: factory.transactionStatusType.InProgress }
|
|
349
374
|
}, {
|
|
350
375
|
$set: Object.assign(Object.assign({ 'agent.id': params.agent.id }, (typeof params.agent.name === 'string') ? { 'agent.name': params.agent.name } : undefined), (typeof ((_b = (_a = params.object) === null || _a === void 0 ? void 0 : _a.customer) === null || _b === void 0 ? void 0 : _b.typeOf) === 'string') ? { 'object.customer': params.object.customer } : undefined)
|
|
351
376
|
}, {
|
|
@@ -363,9 +388,9 @@ class MongoRepository {
|
|
|
363
388
|
updateExpires(params) {
|
|
364
389
|
return __awaiter(this, void 0, void 0, function* () {
|
|
365
390
|
const doc = yield this.transactionModel.findOneAndUpdate({
|
|
366
|
-
_id: params.id,
|
|
367
|
-
typeOf: params.typeOf,
|
|
368
|
-
status: factory.transactionStatusType.InProgress
|
|
391
|
+
_id: { $eq: params.id },
|
|
392
|
+
typeOf: { $eq: params.typeOf },
|
|
393
|
+
status: { $eq: factory.transactionStatusType.InProgress }
|
|
369
394
|
}, {
|
|
370
395
|
$set: {
|
|
371
396
|
expires: params.expires
|
|
@@ -384,16 +409,14 @@ class MongoRepository {
|
|
|
384
409
|
* 注文名称など
|
|
385
410
|
*/
|
|
386
411
|
updateObject(params) {
|
|
387
|
-
var _a
|
|
412
|
+
var _a;
|
|
388
413
|
return __awaiter(this, void 0, void 0, function* () {
|
|
389
414
|
const doc = yield this.transactionModel.findOneAndUpdate({
|
|
390
|
-
_id: params.id,
|
|
391
|
-
typeOf: params.typeOf,
|
|
392
|
-
status: factory.transactionStatusType.InProgress
|
|
415
|
+
_id: { $eq: params.id },
|
|
416
|
+
typeOf: { $eq: params.typeOf },
|
|
417
|
+
status: { $eq: factory.transactionStatusType.InProgress }
|
|
393
418
|
}, {
|
|
394
|
-
$set: Object.assign(
|
|
395
|
-
? { 'object.dateOnTransactionStatusChangedEmitted': params.object.dateOnTransactionStatusChangedEmitted }
|
|
396
|
-
: undefined)
|
|
419
|
+
$set: Object.assign({}, (typeof ((_a = params.object) === null || _a === void 0 ? void 0 : _a.name) === 'string') ? { 'object.name': params.object.name } : undefined)
|
|
397
420
|
}, {
|
|
398
421
|
projection: { _id: 1 }
|
|
399
422
|
})
|
|
@@ -409,9 +432,9 @@ class MongoRepository {
|
|
|
409
432
|
confirm(params) {
|
|
410
433
|
return __awaiter(this, void 0, void 0, function* () {
|
|
411
434
|
const doc = yield this.transactionModel.findOneAndUpdate({
|
|
412
|
-
_id: params.id,
|
|
413
|
-
typeOf: params.typeOf,
|
|
414
|
-
status: factory.transactionStatusType.InProgress
|
|
435
|
+
_id: { $eq: params.id },
|
|
436
|
+
typeOf: { $eq: params.typeOf },
|
|
437
|
+
status: { $eq: factory.transactionStatusType.InProgress }
|
|
415
438
|
}, {
|
|
416
439
|
status: factory.transactionStatusType.Confirmed,
|
|
417
440
|
endDate: new Date(),
|
|
@@ -426,43 +449,49 @@ class MongoRepository {
|
|
|
426
449
|
// NotFoundであれば取引状態確認
|
|
427
450
|
if (doc === null) {
|
|
428
451
|
const transaction = yield this.findById({ typeOf: params.typeOf, id: params.id });
|
|
429
|
-
// tslint:disable-next-line:no-single-line-block-comment
|
|
430
|
-
/* istanbul ignore next */
|
|
431
452
|
if (transaction.status === factory.transactionStatusType.Confirmed) {
|
|
432
|
-
//
|
|
433
|
-
return;
|
|
434
|
-
// tslint:disable-next-line:no-single-line-block-comment
|
|
435
|
-
/* istanbul ignore next */
|
|
453
|
+
// すでに確定済の場合スルー
|
|
436
454
|
}
|
|
437
455
|
else if (transaction.status === factory.transactionStatusType.Expired) {
|
|
438
456
|
throw new factory.errors.Argument('Transaction id', 'Already expired');
|
|
439
|
-
// tslint:disable-next-line:no-single-line-block-comment
|
|
440
|
-
/* istanbul ignore next */
|
|
441
457
|
}
|
|
442
458
|
else if (transaction.status === factory.transactionStatusType.Canceled) {
|
|
443
459
|
throw new factory.errors.Argument('Transaction id', 'Already canceled');
|
|
444
|
-
// tslint:disable-next-line:no-single-line-block-comment
|
|
445
|
-
/* istanbul ignore next */
|
|
446
460
|
}
|
|
447
461
|
else {
|
|
448
462
|
throw new factory.errors.NotFound(this.transactionModel.modelName);
|
|
449
463
|
}
|
|
450
464
|
}
|
|
451
|
-
|
|
465
|
+
transaction_2.transactionEventEmitter.emitTransactionStatusChanged({
|
|
466
|
+
id: params.id,
|
|
467
|
+
typeOf: params.typeOf,
|
|
468
|
+
status: factory.transactionStatusType.Confirmed
|
|
469
|
+
});
|
|
452
470
|
});
|
|
453
471
|
}
|
|
454
472
|
/**
|
|
455
473
|
* タスク未エクスポートの取引をひとつ取得してエクスポートを開始する
|
|
456
474
|
*/
|
|
457
475
|
startExportTasks(params) {
|
|
476
|
+
var _a;
|
|
458
477
|
return __awaiter(this, void 0, void 0, function* () {
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
478
|
+
switch (params.status) {
|
|
479
|
+
case factory.transactionStatusType.InProgress:
|
|
480
|
+
throw new factory.errors.NotImplemented(`status "${params.status}" not implemented on startExportTasks`);
|
|
481
|
+
default:
|
|
482
|
+
// no op
|
|
483
|
+
}
|
|
484
|
+
const typeOfIn = (_a = params.typeOf) === null || _a === void 0 ? void 0 : _a.$in;
|
|
485
|
+
return this.transactionModel.findOneAndUpdate(Object.assign(Object.assign(Object.assign(Object.assign({}, (params.project !== undefined) ? { 'project.id': { $eq: params.project.id } } : undefined), (Array.isArray(typeOfIn)) ? { typeOf: { $in: typeOfIn } } : undefined), { status: { $eq: params.status }, tasksExportationStatus: { $eq: factory.transactionTasksExportationStatus.Unexported } }), (typeof params.id === 'string') ? { _id: { $eq: params.id } } : undefined), {
|
|
486
|
+
'tasksExportAction.actionStatus': factory.actionStatusType.ActiveActionStatus,
|
|
487
|
+
'tasksExportAction.agent': { name: params.tasksExportAction.agent.name },
|
|
488
|
+
'tasksExportAction.startDate': new Date(),
|
|
489
|
+
tasksExportationStatus: factory.transactionTasksExportationStatus.Exporting
|
|
490
|
+
}, { new: true })
|
|
491
|
+
.select({
|
|
492
|
+
_id: 1,
|
|
493
|
+
typeOf: 1
|
|
494
|
+
})
|
|
466
495
|
.exec()
|
|
467
496
|
// tslint:disable-next-line:no-null-keyword
|
|
468
497
|
.then((doc) => (doc === null) ? null : doc.toObject());
|
|
@@ -475,17 +504,74 @@ class MongoRepository {
|
|
|
475
504
|
*/
|
|
476
505
|
reexportTasks(params) {
|
|
477
506
|
return __awaiter(this, void 0, void 0, function* () {
|
|
478
|
-
yield this.transactionModel.
|
|
479
|
-
tasksExportationStatus: factory.transactionTasksExportationStatus.Exporting,
|
|
507
|
+
const reexportingTransactions = yield this.transactionModel.find({
|
|
508
|
+
tasksExportationStatus: { $eq: factory.transactionTasksExportationStatus.Exporting },
|
|
480
509
|
updatedAt: {
|
|
481
510
|
$lt: moment()
|
|
482
511
|
.add(-params.intervalInMinutes, 'minutes')
|
|
483
512
|
.toDate()
|
|
484
513
|
}
|
|
485
|
-
}, {
|
|
486
|
-
tasksExportationStatus: factory.transactionTasksExportationStatus.Unexported
|
|
487
514
|
})
|
|
515
|
+
.select({
|
|
516
|
+
_id: 1,
|
|
517
|
+
typeOf: 1,
|
|
518
|
+
status: 1
|
|
519
|
+
})
|
|
520
|
+
.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
|
|
488
521
|
.exec();
|
|
522
|
+
if (reexportingTransactions.length > 0) {
|
|
523
|
+
for (const reexportingTransaction of reexportingTransactions) {
|
|
524
|
+
yield this.transactionModel.updateOne({
|
|
525
|
+
_id: { $eq: reexportingTransaction.id },
|
|
526
|
+
tasksExportationStatus: { $eq: factory.transactionTasksExportationStatus.Exporting }
|
|
527
|
+
}, {
|
|
528
|
+
tasksExportAction: {
|
|
529
|
+
actionStatus: factory.actionStatusType.PotentialActionStatus
|
|
530
|
+
},
|
|
531
|
+
tasksExportationStatus: factory.transactionTasksExportationStatus.Unexported
|
|
532
|
+
})
|
|
533
|
+
.exec();
|
|
534
|
+
transaction_2.transactionEventEmitter.emitTransactionStatusChanged({
|
|
535
|
+
id: reexportingTransaction.id,
|
|
536
|
+
typeOf: reexportingTransaction.typeOf,
|
|
537
|
+
status: reexportingTransaction.status
|
|
538
|
+
});
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
});
|
|
542
|
+
}
|
|
543
|
+
/**
|
|
544
|
+
* タスクエクスポートの遅延している取引について明示的にemitTransactionStatusChangedを実行する
|
|
545
|
+
*/
|
|
546
|
+
exportTasks(params) {
|
|
547
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
548
|
+
const delayedTransactions = yield this.transactionModel.find({
|
|
549
|
+
status: { $in: params.status.$in },
|
|
550
|
+
tasksExportationStatus: { $eq: factory.transactionTasksExportationStatus.Unexported },
|
|
551
|
+
endDate: {
|
|
552
|
+
$exists: true,
|
|
553
|
+
$lt: moment(params.now)
|
|
554
|
+
.add(-params.delayInSeconds, 'seconds')
|
|
555
|
+
.toDate()
|
|
556
|
+
}
|
|
557
|
+
})
|
|
558
|
+
.select({
|
|
559
|
+
_id: 1,
|
|
560
|
+
typeOf: 1,
|
|
561
|
+
status: 1
|
|
562
|
+
})
|
|
563
|
+
.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
|
|
564
|
+
.exec();
|
|
565
|
+
if (delayedTransactions.length > 0) {
|
|
566
|
+
delayedTransactions.forEach((delayedTransaction) => {
|
|
567
|
+
transaction_2.transactionEventEmitter.emitTransactionStatusChanged({
|
|
568
|
+
id: delayedTransaction.id,
|
|
569
|
+
typeOf: delayedTransaction.typeOf,
|
|
570
|
+
status: delayedTransaction.status
|
|
571
|
+
});
|
|
572
|
+
});
|
|
573
|
+
}
|
|
574
|
+
return delayedTransactions;
|
|
489
575
|
});
|
|
490
576
|
}
|
|
491
577
|
/**
|
|
@@ -494,9 +580,15 @@ class MongoRepository {
|
|
|
494
580
|
*/
|
|
495
581
|
setTasksExportedById(params) {
|
|
496
582
|
return __awaiter(this, void 0, void 0, function* () {
|
|
497
|
-
|
|
583
|
+
const endDate = new Date();
|
|
584
|
+
yield this.transactionModel.updateOne({
|
|
585
|
+
_id: { $eq: params.id },
|
|
586
|
+
tasksExportationStatus: { $eq: factory.transactionTasksExportationStatus.Exporting }
|
|
587
|
+
}, {
|
|
498
588
|
tasksExportationStatus: factory.transactionTasksExportationStatus.Exported,
|
|
499
|
-
tasksExportedAt:
|
|
589
|
+
tasksExportedAt: endDate,
|
|
590
|
+
'tasksExportAction.actionStatus': factory.actionStatusType.CompletedActionStatus,
|
|
591
|
+
'tasksExportAction.endDate': endDate
|
|
500
592
|
})
|
|
501
593
|
.exec();
|
|
502
594
|
});
|
|
@@ -506,15 +598,36 @@ class MongoRepository {
|
|
|
506
598
|
*/
|
|
507
599
|
makeExpired(params) {
|
|
508
600
|
return __awaiter(this, void 0, void 0, function* () {
|
|
509
|
-
//
|
|
510
|
-
yield this.transactionModel.
|
|
511
|
-
status: factory.transactionStatusType.InProgress,
|
|
512
|
-
expires: { $lt: params.expires }
|
|
513
|
-
}
|
|
514
|
-
|
|
515
|
-
|
|
601
|
+
// IDをemitしたいのでまずリスト検索(2023-04-27~)
|
|
602
|
+
const expiringTransactions = yield this.transactionModel.find({
|
|
603
|
+
status: { $eq: factory.transactionStatusType.InProgress },
|
|
604
|
+
expires: { $lt: params.expires.$lt }
|
|
605
|
+
})
|
|
606
|
+
.select({
|
|
607
|
+
_id: 1,
|
|
608
|
+
typeOf: 1
|
|
516
609
|
})
|
|
610
|
+
.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
|
|
517
611
|
.exec();
|
|
612
|
+
if (expiringTransactions.length > 0) {
|
|
613
|
+
// ステータスと期限を見て更新
|
|
614
|
+
yield this.transactionModel.updateMany({
|
|
615
|
+
_id: { $in: expiringTransactions.map((t) => t.id) },
|
|
616
|
+
status: { $eq: factory.transactionStatusType.InProgress },
|
|
617
|
+
expires: { $lt: params.expires.$lt }
|
|
618
|
+
}, {
|
|
619
|
+
status: factory.transactionStatusType.Expired,
|
|
620
|
+
endDate: new Date()
|
|
621
|
+
})
|
|
622
|
+
.exec();
|
|
623
|
+
expiringTransactions.forEach((expiringTransaction) => {
|
|
624
|
+
transaction_2.transactionEventEmitter.emitTransactionStatusChanged({
|
|
625
|
+
id: expiringTransaction.id,
|
|
626
|
+
typeOf: expiringTransaction.typeOf,
|
|
627
|
+
status: factory.transactionStatusType.Expired
|
|
628
|
+
});
|
|
629
|
+
});
|
|
630
|
+
}
|
|
518
631
|
});
|
|
519
632
|
}
|
|
520
633
|
/**
|
|
@@ -539,11 +652,8 @@ class MongoRepository {
|
|
|
539
652
|
// NotFoundであれば取引状態確認
|
|
540
653
|
if (doc === null) {
|
|
541
654
|
const transaction = yield this.findById(params);
|
|
542
|
-
// tslint:disable-next-line:no-single-line-block-comment
|
|
543
|
-
/* istanbul ignore next */
|
|
544
655
|
if (transaction.status === factory.transactionStatusType.Canceled) {
|
|
545
|
-
//
|
|
546
|
-
return;
|
|
656
|
+
// すでに中止済の場合スルー
|
|
547
657
|
}
|
|
548
658
|
else if (transaction.status === factory.transactionStatusType.Expired) {
|
|
549
659
|
throw new factory.errors.Argument('Transaction id', 'Transaction already expired');
|
|
@@ -555,14 +665,18 @@ class MongoRepository {
|
|
|
555
665
|
throw new factory.errors.NotFound(this.transactionModel.modelName);
|
|
556
666
|
}
|
|
557
667
|
}
|
|
558
|
-
|
|
668
|
+
transaction_2.transactionEventEmitter.emitTransactionStatusChanged({
|
|
669
|
+
id: params.id,
|
|
670
|
+
typeOf: params.typeOf,
|
|
671
|
+
status: factory.transactionStatusType.Canceled
|
|
672
|
+
});
|
|
559
673
|
});
|
|
560
674
|
}
|
|
561
675
|
count(params) {
|
|
562
676
|
return __awaiter(this, void 0, void 0, function* () {
|
|
563
677
|
const conditions = MongoRepository.CREATE_MONGO_CONDITIONS(params);
|
|
564
678
|
return this.transactionModel.countDocuments((conditions.length > 0) ? { $and: conditions } : {})
|
|
565
|
-
.setOptions({ maxTimeMS:
|
|
679
|
+
.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
|
|
566
680
|
.exec();
|
|
567
681
|
});
|
|
568
682
|
}
|
|
@@ -605,7 +719,7 @@ class MongoRepository {
|
|
|
605
719
|
}
|
|
606
720
|
// const explainResult = await (<any>query).explain();
|
|
607
721
|
// console.log(explainResult[0].executionStats.allPlansExecution.map((e: any) => e.executionStages.inputStage));
|
|
608
|
-
return query.setOptions({ maxTimeMS:
|
|
722
|
+
return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
|
|
609
723
|
.exec()
|
|
610
724
|
.then((docs) => docs.map((doc) => doc.toObject()));
|
|
611
725
|
});
|
|
@@ -613,9 +727,12 @@ class MongoRepository {
|
|
|
613
727
|
/**
|
|
614
728
|
* 特定の取引を更新する(汎用)
|
|
615
729
|
*/
|
|
616
|
-
|
|
730
|
+
findByIdAndUpdateInProgress(params) {
|
|
617
731
|
return __awaiter(this, void 0, void 0, function* () {
|
|
618
|
-
yield this.transactionModel.findOneAndUpdate({
|
|
732
|
+
yield this.transactionModel.findOneAndUpdate({
|
|
733
|
+
_id: { $eq: params.id },
|
|
734
|
+
status: { $eq: factory.transactionStatusType.InProgress }
|
|
735
|
+
}, params.update, {
|
|
619
736
|
// new: true,
|
|
620
737
|
projection: { _id: 1 }
|
|
621
738
|
})
|
|
@@ -630,7 +747,8 @@ class MongoRepository {
|
|
|
630
747
|
saveOrderNumberIfNotExist(params) {
|
|
631
748
|
return __awaiter(this, void 0, void 0, function* () {
|
|
632
749
|
yield this.transactionModel.updateOne({
|
|
633
|
-
_id: params.id,
|
|
750
|
+
_id: { $eq: params.id },
|
|
751
|
+
status: { $eq: factory.transactionStatusType.InProgress },
|
|
634
752
|
'object.orderNumber': { $exists: false }
|
|
635
753
|
}, { 'object.orderNumber': params.orderNumber })
|
|
636
754
|
.exec();
|
|
@@ -639,7 +757,8 @@ class MongoRepository {
|
|
|
639
757
|
saveConfirmationNumberIfNotExist(params) {
|
|
640
758
|
return __awaiter(this, void 0, void 0, function* () {
|
|
641
759
|
yield this.transactionModel.updateOne({
|
|
642
|
-
_id: params.id,
|
|
760
|
+
_id: { $eq: params.id },
|
|
761
|
+
status: { $eq: factory.transactionStatusType.InProgress },
|
|
643
762
|
'object.confirmationNumber': { $exists: false }
|
|
644
763
|
}, { 'object.confirmationNumber': params.confirmationNumber })
|
|
645
764
|
.exec();
|
package/lib/chevre/repo/trip.js
CHANGED
|
@@ -23,6 +23,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
23
23
|
exports.MongoRepository = void 0;
|
|
24
24
|
const factory = require("../factory");
|
|
25
25
|
const trip_1 = require("./mongoose/schemas/trip");
|
|
26
|
+
const settings_1 = require("../settings");
|
|
26
27
|
/**
|
|
27
28
|
* トリップリポジトリ
|
|
28
29
|
*/
|
|
@@ -193,7 +194,7 @@ class MongoRepository {
|
|
|
193
194
|
// console.log(explainResult[0].queryPlanner?.winningPlan?.inputStage?.inputStage?.inputStage);
|
|
194
195
|
// console.log(explainResult);
|
|
195
196
|
// return [];
|
|
196
|
-
return query.setOptions({ maxTimeMS:
|
|
197
|
+
return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
|
|
197
198
|
.exec()
|
|
198
199
|
.then((docs) => docs.map((doc) => doc.toObject()));
|
|
199
200
|
});
|