@chevre/domain 21.2.0-alpha.9 → 21.2.0-alpha.91
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 +58 -31
- package/example/src/chevre/createManyEventsIfNotExist.ts +4 -1
- 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/processReserve.ts +2 -1
- package/example/src/chevre/saveTasks.ts +13 -10
- package/example/src/chevre/searchAbortedTasks.ts +36 -0
- package/example/src/chevre/searchReservationNumbersByOrderNumbers.ts +37 -1
- package/example/src/chevre/searchSellers.ts +33 -0
- 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/accountTransaction.d.ts +3 -11
- package/lib/chevre/repo/accountTransaction.js +1 -54
- package/lib/chevre/repo/action.d.ts +29 -1
- package/lib/chevre/repo/action.js +32 -25
- package/lib/chevre/repo/assetTransaction.d.ts +25 -9
- package/lib/chevre/repo/assetTransaction.js +241 -80
- package/lib/chevre/repo/comment.d.ts +4 -1
- package/lib/chevre/repo/comment.js +20 -5
- package/lib/chevre/repo/confirmationNumber.d.ts +0 -1
- package/lib/chevre/repo/confirmationNumber.js +3 -15
- package/lib/chevre/repo/creativeWork.d.ts +1 -3
- package/lib/chevre/repo/emailMessage.d.ts +1 -27
- package/lib/chevre/repo/event.d.ts +5 -1
- package/lib/chevre/repo/merchantReturnPolicy.d.ts +1 -3
- package/lib/chevre/repo/mongoose/schemas/account.d.ts +5 -2
- package/lib/chevre/repo/mongoose/schemas/account.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/accountTitle.d.ts +30 -3
- package/lib/chevre/repo/mongoose/schemas/accountTitle.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/accountTransaction.d.ts +32 -3
- package/lib/chevre/repo/mongoose/schemas/accountTransaction.js +2 -1
- package/lib/chevre/repo/mongoose/schemas/accountingReport.d.ts +14 -3
- package/lib/chevre/repo/mongoose/schemas/accountingReport.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/action.d.ts +44 -3
- package/lib/chevre/repo/mongoose/schemas/action.js +2 -1
- package/lib/chevre/repo/mongoose/schemas/additionalProperty.d.ts +18 -3
- package/lib/chevre/repo/mongoose/schemas/additionalProperty.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/aggregation.d.ts +5 -2
- package/lib/chevre/repo/mongoose/schemas/aggregation.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/assetTransaction.d.ts +45 -3
- package/lib/chevre/repo/mongoose/schemas/assetTransaction.js +27 -19
- package/lib/chevre/repo/mongoose/schemas/authorization.d.ts +20 -3
- package/lib/chevre/repo/mongoose/schemas/authorization.js +2 -1
- package/lib/chevre/repo/mongoose/schemas/categoryCode.d.ts +26 -3
- package/lib/chevre/repo/mongoose/schemas/categoryCode.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/comments.d.ts +28 -3
- package/lib/chevre/repo/mongoose/schemas/comments.js +2 -1
- package/lib/chevre/repo/mongoose/schemas/creativeWork.d.ts +44 -3
- package/lib/chevre/repo/mongoose/schemas/creativeWork.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/customer.d.ts +26 -3
- package/lib/chevre/repo/mongoose/schemas/customer.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/emailMessages.d.ts +22 -3
- package/lib/chevre/repo/mongoose/schemas/emailMessages.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/event.d.ts +72 -3
- package/lib/chevre/repo/mongoose/schemas/event.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/member.d.ts +14 -3
- package/lib/chevre/repo/mongoose/schemas/member.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.d.ts +22 -3
- package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/offer.d.ts +66 -3
- package/lib/chevre/repo/mongoose/schemas/offer.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/offerCatalog.d.ts +28 -3
- package/lib/chevre/repo/mongoose/schemas/offerCatalog.js +1 -0
- 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 +52 -3
- package/lib/chevre/repo/mongoose/schemas/order.js +2 -1
- package/lib/chevre/repo/mongoose/schemas/ownershipInfo.d.ts +26 -3
- package/lib/chevre/repo/mongoose/schemas/ownershipInfo.js +2 -1
- package/lib/chevre/repo/mongoose/schemas/place.d.ts +50 -3
- package/lib/chevre/repo/mongoose/schemas/place.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/priceSpecification.d.ts +30 -3
- package/lib/chevre/repo/mongoose/schemas/priceSpecification.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/product.d.ts +32 -3
- package/lib/chevre/repo/mongoose/schemas/product.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/project.d.ts +24 -3
- package/lib/chevre/repo/mongoose/schemas/project.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/reservation.d.ts +63 -4
- package/lib/chevre/repo/mongoose/schemas/reservation.js +2 -1
- package/lib/chevre/repo/mongoose/schemas/role.d.ts +12 -3
- package/lib/chevre/repo/mongoose/schemas/role.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/seller.d.ts +32 -3
- package/lib/chevre/repo/mongoose/schemas/seller.js +7 -0
- package/lib/chevre/repo/mongoose/schemas/serviceOutput.d.ts +12 -3
- package/lib/chevre/repo/mongoose/schemas/serviceOutput.js +2 -1
- package/lib/chevre/repo/mongoose/schemas/task.d.ts +31 -3
- package/lib/chevre/repo/mongoose/schemas/task.js +3 -1
- package/lib/chevre/repo/mongoose/schemas/telemetry.d.ts +22 -3
- package/lib/chevre/repo/mongoose/schemas/telemetry.js +1 -0
- package/lib/chevre/repo/mongoose/schemas/transaction.d.ts +41 -3
- package/lib/chevre/repo/mongoose/schemas/transaction.js +3 -1
- package/lib/chevre/repo/mongoose/schemas/trip.d.ts +12 -3
- package/lib/chevre/repo/mongoose/schemas/trip.js +1 -0
- package/lib/chevre/repo/offerItemCondition.d.ts +22 -0
- package/lib/chevre/repo/offerItemCondition.js +120 -0
- package/lib/chevre/repo/order.d.ts +55 -3
- package/lib/chevre/repo/order.js +56 -5
- package/lib/chevre/repo/reservation.d.ts +8 -4
- package/lib/chevre/repo/reservation.js +12 -42
- package/lib/chevre/repo/seller.js +19 -19
- package/lib/chevre/repo/task.d.ts +42 -2
- package/lib/chevre/repo/task.js +90 -9
- package/lib/chevre/repo/transaction.d.ts +23 -3
- package/lib/chevre/repo/transaction.js +174 -54
- package/lib/chevre/repository.d.ts +5 -2
- package/lib/chevre/repository.js +8 -4
- package/lib/chevre/service/aggregation/system.d.ts +67 -22
- package/lib/chevre/service/aggregation/system.js +101 -89
- package/lib/chevre/service/assetTransaction/cancelReservation.js +1 -28
- package/lib/chevre/service/assetTransaction/moneyTransfer.js +1 -23
- package/lib/chevre/service/assetTransaction/pay/potentialActions.js +17 -1
- package/lib/chevre/service/assetTransaction/pay.js +10 -25
- package/lib/chevre/service/assetTransaction/refund.js +1 -23
- package/lib/chevre/service/assetTransaction/registerService.js +1 -25
- package/lib/chevre/service/assetTransaction/reserve/factory.d.ts +7 -2
- package/lib/chevre/service/assetTransaction/reserve/factory.js +33 -22
- package/lib/chevre/service/assetTransaction/reserve.d.ts +7 -1
- package/lib/chevre/service/assetTransaction/reserve.js +40 -41
- package/lib/chevre/service/assetTransaction.d.ts +6 -2
- package/lib/chevre/service/assetTransaction.js +9 -5
- package/lib/chevre/service/event.js +3 -1
- 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 +1 -0
- package/lib/chevre/service/offer/event/authorize.js +5 -2
- package/lib/chevre/service/offer/event/factory.d.ts +2 -0
- package/lib/chevre/service/offer/event/factory.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.js +1 -1
- 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 +4 -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 +15 -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.js +74 -16
- package/lib/chevre/service/payment/movieTicket/validation.d.ts +3 -2
- package/lib/chevre/service/payment/movieTicket/validation.js +12 -25
- package/lib/chevre/service/payment/movieTicket.d.ts +1 -1
- package/lib/chevre/service/payment/movieTicket.js +4 -3
- 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 +4 -2
- package/lib/chevre/service/reserve/cancelReservation.js +2 -4
- 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 +121 -58
- package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.d.ts +0 -3
- package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.js +20 -20
- 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/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/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.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 +9 -12
- 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 +22 -11
- 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 +225 -35
- package/lib/chevre/service/transaction.d.ts +8 -13
- package/lib/chevre/service/transaction.js +12 -145
- package/lib/chevre/settings.d.ts +4 -1
- package/lib/chevre/settings.js +15 -5
- package/package.json +5 -5
- 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/service/task/deleteOrder.js +0 -35
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import * as factory from '../factory';
|
|
2
2
|
import { MongoRepository as ActionRepo } from '../repo/action';
|
|
3
3
|
import { MongoRepository as ProjectRepo } from '../repo/project';
|
|
4
|
-
export type Operation<T> = (
|
|
4
|
+
export type Operation<T> = (repos: {
|
|
5
|
+
accessToken: string;
|
|
6
|
+
}) => Promise<T>;
|
|
5
7
|
/**
|
|
6
8
|
* Eメールメッセージを送信する
|
|
7
9
|
* https://sendgrid.com/docs/API_Reference/Web_API_v3/Mail/errors.html
|
|
@@ -111,15 +111,11 @@ exports.sendEmailMessage = sendEmailMessage;
|
|
|
111
111
|
* https://notify-bot.line.me/doc/ja/
|
|
112
112
|
*/
|
|
113
113
|
function report2developers(subject, content, imageThumbnail, imageFullsize) {
|
|
114
|
-
return () => __awaiter(this, void 0, void 0, function* () {
|
|
114
|
+
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
115
115
|
const LINE_NOTIFY_URL = credentials_1.credentials.lineNotify.url;
|
|
116
|
-
const LINE_NOTIFY_ACCESS_TOKEN = credentials_1.credentials.lineNotify.accessToken;
|
|
117
116
|
if (LINE_NOTIFY_URL === undefined) {
|
|
118
117
|
throw new Error('Environment variable LINE_NOTIFY_URL not set');
|
|
119
118
|
}
|
|
120
|
-
if (LINE_NOTIFY_ACCESS_TOKEN === undefined) {
|
|
121
|
-
throw new Error('Environment variable LINE_NOTIFY_ACCESS_TOKEN not set');
|
|
122
|
-
}
|
|
123
119
|
const message = `--------
|
|
124
120
|
${subject}
|
|
125
121
|
--------
|
|
@@ -130,7 +126,7 @@ ${content}`;
|
|
|
130
126
|
var _a;
|
|
131
127
|
request.post({
|
|
132
128
|
url: LINE_NOTIFY_URL,
|
|
133
|
-
auth: { bearer:
|
|
129
|
+
auth: { bearer: repos.accessToken },
|
|
134
130
|
form: formData,
|
|
135
131
|
json: true,
|
|
136
132
|
timeout: (_a = settings_1.settings.webhook) === null || _a === void 0 ? void 0 : _a.timeout
|
|
@@ -154,6 +150,45 @@ ${content}`;
|
|
|
154
150
|
exports.report2developers = report2developers;
|
|
155
151
|
const USERNAME_ARGUMENT_REQUIRED_MESSAGE = 'Missing required key \'Username\' in params';
|
|
156
152
|
function triggerWebhook(params) {
|
|
153
|
+
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
154
|
+
// retryableにする(2023-05-12~)
|
|
155
|
+
let retry = true;
|
|
156
|
+
let numberOfTry = 0;
|
|
157
|
+
while (numberOfTry >= 0) {
|
|
158
|
+
try {
|
|
159
|
+
numberOfTry += 1;
|
|
160
|
+
if (numberOfTry > settings_1.TRIGGER_WEBHOOK_MAX_RETRY_COUNT) {
|
|
161
|
+
retry = false;
|
|
162
|
+
}
|
|
163
|
+
// retryInterval
|
|
164
|
+
if (numberOfTry > 1) {
|
|
165
|
+
yield sleep(settings_1.TRIGGER_WEBHOOK_RETRY_INTERVAL_IN_MS * (numberOfTry - 1));
|
|
166
|
+
}
|
|
167
|
+
yield processInformAction(params)(repos);
|
|
168
|
+
break;
|
|
169
|
+
}
|
|
170
|
+
catch (error) {
|
|
171
|
+
if (retry) {
|
|
172
|
+
continue;
|
|
173
|
+
}
|
|
174
|
+
else {
|
|
175
|
+
throw error;
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
exports.triggerWebhook = triggerWebhook;
|
|
182
|
+
function sleep(waitTime) {
|
|
183
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
184
|
+
return new Promise((resolve) => {
|
|
185
|
+
setTimeout(() => {
|
|
186
|
+
resolve();
|
|
187
|
+
}, waitTime);
|
|
188
|
+
});
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
function processInformAction(params) {
|
|
157
192
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
158
193
|
var _a, _b;
|
|
159
194
|
// アクション開始
|
|
@@ -219,4 +254,3 @@ function triggerWebhook(params) {
|
|
|
219
254
|
yield repos.action.complete({ typeOf: action.typeOf, id: action.id, result: result });
|
|
220
255
|
});
|
|
221
256
|
}
|
|
222
|
-
exports.triggerWebhook = triggerWebhook;
|
|
@@ -66,7 +66,8 @@ function authorize(params) {
|
|
|
66
66
|
ticketOffers,
|
|
67
67
|
unitPriceOffers,
|
|
68
68
|
validateEvent: params.validateEvent === true,
|
|
69
|
-
validateEventOfferPeriod: params.validateEventOfferPeriod === true
|
|
69
|
+
validateEventOfferPeriod: params.validateEventOfferPeriod === true,
|
|
70
|
+
disablePendingReservations: params.disablePendingReservations
|
|
70
71
|
})(repos);
|
|
71
72
|
// requestBody = processStartReserveResult.requestBody;
|
|
72
73
|
// responseBody = processStartReserveResult.responseBody;
|
|
@@ -162,9 +163,11 @@ function processStartReserve4chevre(params) {
|
|
|
162
163
|
// requestBody = startParams;
|
|
163
164
|
const startParamObject = yield validateObjectWithoutDetail(startParams)(repos);
|
|
164
165
|
// 予約取引開始
|
|
165
|
-
|
|
166
|
+
const startReserveTransactionResult = yield ReserveTransactionService.start(Object.assign(Object.assign({}, startParams), { object: startParamObject, preSearchedEvent: event, preSearchedTicketOffers: params.ticketOffers, preSearchedUnitPriceOffers: params.unitPriceOffers, availableAtOrFrom: { id: params.availableAtOrFrom.id }, validateEvent: params.validateEvent, validateEventOfferPeriod: params.validateEventOfferPeriod, validateAppliesToMovieTicket: true, disablePendingReservations: params.disablePendingReservations }))(repos);
|
|
167
|
+
responseBody = startReserveTransactionResult.transaction;
|
|
166
168
|
// 予約取引からオファー情報を生成する
|
|
167
169
|
acceptedOffers4result = (0, factory_1.responseBody2acceptedOffers4result)({
|
|
170
|
+
objectSubReservations: startReserveTransactionResult.objectSubReservations,
|
|
168
171
|
responseBody: responseBody,
|
|
169
172
|
event: event,
|
|
170
173
|
project: transaction.project,
|
|
@@ -23,8 +23,10 @@ export declare function createAuthorizeSeatReservationActionAttributes(params: {
|
|
|
23
23
|
export declare function acceptedOffers2amount(params: {
|
|
24
24
|
acceptedOffers: IResultAcceptedOffer[];
|
|
25
25
|
}): number;
|
|
26
|
+
type IObjectSubReservation = factory.assetTransaction.reserve.IObjectSubReservation;
|
|
26
27
|
type IResultAcceptedOffer = factory.action.authorize.offer.seatReservation.IResultAcceptedOffer;
|
|
27
28
|
export declare function responseBody2acceptedOffers4result(params: {
|
|
29
|
+
objectSubReservations: IObjectSubReservation[];
|
|
28
30
|
responseBody: factory.assetTransaction.reserve.ITransaction;
|
|
29
31
|
event: IMinimizedIndividualEvent<factory.eventType.ScreeningEvent>;
|
|
30
32
|
project: {
|
|
@@ -154,8 +154,8 @@ exports.acceptedOffers2amount = acceptedOffers2amount;
|
|
|
154
154
|
function responseBody2acceptedOffers4result(params) {
|
|
155
155
|
let acceptedOffers4result = [];
|
|
156
156
|
// 予約取引からacceptedOffers4resultを生成する
|
|
157
|
-
if (Array.isArray(params.
|
|
158
|
-
acceptedOffers4result = params.
|
|
157
|
+
if (Array.isArray(params.objectSubReservations)) {
|
|
158
|
+
acceptedOffers4result = params.objectSubReservations.map((itemOffered) => {
|
|
159
159
|
var _a;
|
|
160
160
|
const reservation = createReservation({ project: params.project, itemOffered, event: params.event });
|
|
161
161
|
// appliesToMovieTicketがArrayでないケースは廃止(2022-09-12~)
|
|
@@ -5,6 +5,7 @@ import { RedisRepository as OfferRateLimitRepo } from '../../../repo/rateLimit/o
|
|
|
5
5
|
import { MongoRepository as ReservationRepo } from '../../../repo/reservation';
|
|
6
6
|
import { StockHolderRepository as StockHolderRepo } from '../../../repo/stockHolder';
|
|
7
7
|
import { MongoRepository as TaskRepo } from '../../../repo/task';
|
|
8
|
+
import { MongoRepository as TransactionRepo } from '../../../repo/transaction';
|
|
8
9
|
export import WebAPIIdentifier = factory.service.webAPI.Identifier;
|
|
9
10
|
interface IVoidTransactionRepos {
|
|
10
11
|
action: ActionRepo;
|
|
@@ -13,6 +14,7 @@ interface IVoidTransactionRepos {
|
|
|
13
14
|
offerRateLimit: OfferRateLimitRepo;
|
|
14
15
|
reservation: ReservationRepo;
|
|
15
16
|
task: TaskRepo;
|
|
17
|
+
transaction: TransactionRepo;
|
|
16
18
|
}
|
|
17
19
|
/**
|
|
18
20
|
* イベントオファー承認取消(タスクから実行)
|
|
@@ -26,8 +26,13 @@ exports.WebAPIIdentifier = factory.service.webAPI.Identifier;
|
|
|
26
26
|
*/
|
|
27
27
|
function voidTransaction(params) {
|
|
28
28
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
29
|
+
const transaction = yield repos.transaction.findById({
|
|
30
|
+
typeOf: params.purpose.typeOf,
|
|
31
|
+
id: params.purpose.id,
|
|
32
|
+
inclusion: ['_id', 'typeOf', 'status']
|
|
33
|
+
});
|
|
29
34
|
// 座席仮予約アクション検索
|
|
30
|
-
|
|
35
|
+
let authorizeActions = yield repos.action.searchByPurpose({
|
|
31
36
|
typeOf: factory.actionType.AuthorizeAction,
|
|
32
37
|
purpose: {
|
|
33
38
|
typeOf: params.purpose.typeOf,
|
|
@@ -36,6 +41,17 @@ function voidTransaction(params) {
|
|
|
36
41
|
})
|
|
37
42
|
.then((actions) => actions
|
|
38
43
|
.filter((a) => a.object.typeOf === factory.action.authorize.offer.seatReservation.ObjectType.SeatReservation));
|
|
44
|
+
switch (transaction.status) {
|
|
45
|
+
case factory.transactionStatusType.InProgress:
|
|
46
|
+
throw new factory.errors.NotImplemented(`${transaction.status} not implemented`);
|
|
47
|
+
// 確定取引に対応(2023-05-07~)
|
|
48
|
+
case factory.transactionStatusType.Confirmed:
|
|
49
|
+
// アクションステータスを検証する
|
|
50
|
+
authorizeActions = authorizeActions.filter((a) => a.actionStatus !== factory.actionStatusType.CompletedActionStatus);
|
|
51
|
+
break;
|
|
52
|
+
default:
|
|
53
|
+
// no op
|
|
54
|
+
}
|
|
39
55
|
yield Promise.all(authorizeActions.map((action) => __awaiter(this, void 0, void 0, function* () {
|
|
40
56
|
yield repos.action.cancel({ typeOf: action.typeOf, id: action.id });
|
|
41
57
|
switch (action.instrument.identifier) {
|
|
@@ -7,7 +7,9 @@ import * as factory from '../../factory';
|
|
|
7
7
|
* 注文に関わるリソースを削除する
|
|
8
8
|
* 冪等性を確保すること
|
|
9
9
|
*/
|
|
10
|
-
declare function deleteOrder(params:
|
|
10
|
+
declare function deleteOrder(params: {
|
|
11
|
+
object: Pick<factory.order.IOrder, 'project' | 'typeOf' | 'confirmationNumber' | 'orderDate' | 'orderNumber'>;
|
|
12
|
+
}): (repos: {
|
|
11
13
|
accountingReport: AccountingReportRepo;
|
|
12
14
|
order: OrderRepo;
|
|
13
15
|
ownershipInfo: OwnershipInfoRepo;
|
|
@@ -18,7 +18,14 @@ const factory = require("../../factory");
|
|
|
18
18
|
*/
|
|
19
19
|
function deleteOrder(params) {
|
|
20
20
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
21
|
-
const
|
|
21
|
+
const orders = yield repos.order.search({
|
|
22
|
+
orderNumbers: [params.object.orderNumber]
|
|
23
|
+
});
|
|
24
|
+
const order = orders.shift();
|
|
25
|
+
if (order === undefined) {
|
|
26
|
+
// すでに削除済
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
22
29
|
// 注文アイテムの予約を削除
|
|
23
30
|
yield deleteReservationsByOrder(order)(repos);
|
|
24
31
|
// 所有権削除
|
|
@@ -63,13 +70,6 @@ function deleteOwnershipInfosByOrder(order) {
|
|
|
63
70
|
// 所有期限切れのもの(ownedThroughの存在しないものは削除してはいけない)
|
|
64
71
|
ownedThrough: { $lt: now }
|
|
65
72
|
});
|
|
66
|
-
// await repos.ownershipInfo.ownershipInfoModel.deleteMany({
|
|
67
|
-
// 'project.id': { $eq: order.project.id },
|
|
68
|
-
// identifier: { $in: ownershipIdentifiers },
|
|
69
|
-
// // 所有期限切れのもの(ownedThroughの存在しないものは削除してはいけない)
|
|
70
|
-
// ownedThrough: { $exists: true, $lt: now }
|
|
71
|
-
// })
|
|
72
|
-
// .exec();
|
|
73
73
|
}
|
|
74
74
|
});
|
|
75
75
|
}
|
|
@@ -6,8 +6,10 @@ export declare function getOrderWithToken(params: {
|
|
|
6
6
|
order: factory.order.IOrder;
|
|
7
7
|
expiresIn: number;
|
|
8
8
|
}): Promise<factory.order.IOrder | IOrderWithToken>;
|
|
9
|
-
export
|
|
10
|
-
|
|
9
|
+
export type IUpdatedOrder4inform = Pick<factory.order.IOrder, 'typeOf' | 'orderNumber' | 'name' | 'additionalProperty' | 'project'> & {
|
|
10
|
+
orderStatus?: undefined;
|
|
11
|
+
};
|
|
12
|
+
export declare function createInformTasks(order: factory.order.IOrder | IOrderWithToken | IUpdatedOrder4inform): factory.task.IAttributes<factory.taskName.TriggerWebhook>[];
|
|
11
13
|
export declare function createConfirmReservationActionObject4ChevreByOrder(params: {
|
|
12
14
|
order: factory.order.IOrder;
|
|
13
15
|
}): factory.action.interact.confirm.reservation.IObject<factory.service.webAPI.Identifier.Chevre>[];
|
|
@@ -10,10 +10,9 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
10
10
|
};
|
|
11
11
|
var _a;
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
-
exports.createConfirmRegisterServiceActionObjectByOrder = exports.createConfirmReservationActionObject4COAByOrder = exports.createConfirmReservationActionObject4ChevreByOrder = exports.
|
|
13
|
+
exports.createConfirmRegisterServiceActionObjectByOrder = exports.createConfirmReservationActionObject4COAByOrder = exports.createConfirmReservationActionObject4ChevreByOrder = exports.createInformTasks = exports.getOrderWithToken = void 0;
|
|
14
14
|
const google_libphonenumber_1 = require("google-libphonenumber");
|
|
15
15
|
const jwt = require("jsonwebtoken");
|
|
16
|
-
const moment = require("moment");
|
|
17
16
|
const util_1 = require("util");
|
|
18
17
|
const credentials_1 = require("../../../credentials");
|
|
19
18
|
const factory = require("../../../factory");
|
|
@@ -26,32 +25,10 @@ function getOrderWithToken(params) {
|
|
|
26
25
|
if (typeof credentials_1.credentials.hub.clientId !== 'string') {
|
|
27
26
|
return params.order;
|
|
28
27
|
}
|
|
29
|
-
// 冗長な個人情報をマスク(最低限の情報に)
|
|
30
|
-
// const customer4orderToken: factory.order.ISimpleCustomer =
|
|
31
|
-
// (params.order.customer.typeOf === factory.organizationType.Organization)
|
|
32
|
-
// ? {
|
|
33
|
-
// id: params.order.customer.id,
|
|
34
|
-
// name: '****',
|
|
35
|
-
// // project: params.order.customer.project,
|
|
36
|
-
// typeOf: params.order.customer.typeOf
|
|
37
|
-
// }
|
|
38
|
-
// : {
|
|
39
|
-
// id: params.order.customer.id,
|
|
40
|
-
// typeOf: params.order.customer.typeOf
|
|
41
|
-
// };
|
|
42
|
-
// const seller4orderToken: Omit<factory.order.ISeller, 'name'> = {
|
|
43
|
-
// id: params.order.seller.id,
|
|
44
|
-
// typeOf: params.order.seller.typeOf
|
|
45
|
-
// };
|
|
46
28
|
// 最適化(2023-01-31~)
|
|
47
29
|
const order4token = {
|
|
48
30
|
typeOf: params.order.typeOf,
|
|
49
|
-
// seller: seller4orderToken,
|
|
50
|
-
// customer: customer4orderToken,
|
|
51
31
|
orderNumber: params.order.orderNumber
|
|
52
|
-
// price: params.order.price,
|
|
53
|
-
// priceCurrency: params.order.priceCurrency,
|
|
54
|
-
// orderDate: params.order.orderDate
|
|
55
32
|
};
|
|
56
33
|
const token = yield new Promise((resolve, reject) => {
|
|
57
34
|
// 所有権を暗号化する
|
|
@@ -86,10 +63,13 @@ function createInformTasks(order) {
|
|
|
86
63
|
let informTasks = [];
|
|
87
64
|
if (Array.isArray(informOrder) && informOrder.length > 0) {
|
|
88
65
|
const order4inform = creteOrder4inform(order);
|
|
89
|
-
let recipientId =
|
|
90
|
-
if (order.orderStatus ===
|
|
91
|
-
|
|
92
|
-
|
|
66
|
+
let recipientId = '';
|
|
67
|
+
if (typeof order.orderStatus === 'string') {
|
|
68
|
+
recipientId = order.customer.id;
|
|
69
|
+
if (order.orderStatus === factory.orderStatus.OrderReturned) {
|
|
70
|
+
if (typeof ((_a = order.returner) === null || _a === void 0 ? void 0 : _a.id) === 'string') {
|
|
71
|
+
recipientId = order.returner.id;
|
|
72
|
+
}
|
|
93
73
|
}
|
|
94
74
|
}
|
|
95
75
|
informTasks = informOrder.map((informOrderParams) => {
|
|
@@ -98,7 +78,6 @@ function createInformTasks(order) {
|
|
|
98
78
|
agent: order.project,
|
|
99
79
|
object: order4inform,
|
|
100
80
|
project: order.project,
|
|
101
|
-
// purpose: params.transaction,
|
|
102
81
|
recipient: {
|
|
103
82
|
url: (_a = informOrderParams.recipient) === null || _a === void 0 ? void 0 : _a.url,
|
|
104
83
|
id: recipientId,
|
|
@@ -123,62 +102,43 @@ function createInformTasks(order) {
|
|
|
123
102
|
}
|
|
124
103
|
exports.createInformTasks = createInformTasks;
|
|
125
104
|
function creteOrder4inform(order) {
|
|
126
|
-
if (order.orderStatus ===
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
105
|
+
if (typeof order.orderStatus === 'string') {
|
|
106
|
+
if (order.orderStatus === factory.orderStatus.OrderReturned) {
|
|
107
|
+
// 返品注文通知内容を最適化(2022-12-28~)
|
|
108
|
+
return Object.assign(Object.assign({ project: order.project, typeOf: order.typeOf, orderNumber: order.orderNumber, orderStatus: order.orderStatus }, (order.dateReturned !== undefined) ? { dateReturned: order.dateReturned } : undefined), (typeof order.id === 'string') ? { id: order.id } : undefined);
|
|
109
|
+
}
|
|
110
|
+
else if (order.orderStatus === factory.orderStatus.OrderDelivered) {
|
|
111
|
+
// 配送済注文通知内容を最適化(2022-12-29~)
|
|
112
|
+
return Object.assign({ project: order.project, typeOf: order.typeOf, orderNumber: order.orderNumber, orderStatus: order.orderStatus }, (typeof order.id === 'string') ? { id: order.id } : undefined);
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
// 冗長な個人情報をmask
|
|
116
|
+
return Object.assign(Object.assign({
|
|
117
|
+
// whitelistで作成する(2022-07-19~)
|
|
118
|
+
project: order.project, typeOf: order.typeOf, seller: order.seller, price: order.price, priceCurrency: order.priceCurrency, confirmationNumber: order.confirmationNumber, orderNumber: order.orderNumber, acceptedOffers: order.acceptedOffers, orderStatus: order.orderStatus, orderDate: order.orderDate,
|
|
119
|
+
// mask
|
|
120
|
+
customer: Object.assign(Object.assign({}, (0, order_1.createMaskedCustomer)(order)), { additionalProperty: (Array.isArray(order.customer.additionalProperty)) ? order.customer.additionalProperty : [],
|
|
121
|
+
// identifierは必要
|
|
122
|
+
// 予約後を隠蔽(2022-12-24~)
|
|
123
|
+
identifier: (Array.isArray(order.customer.identifier))
|
|
124
|
+
? order.customer.identifier.filter((p) => {
|
|
125
|
+
return !reservedAgentIdentifireNames_1.RESERVED_AGENT_IDENTIFIER_NAMES.includes(p.name);
|
|
126
|
+
})
|
|
127
|
+
: [] }),
|
|
128
|
+
// paymentMethodsに関してもmask(2022-05-30~)
|
|
129
|
+
paymentMethods: order.paymentMethods.map((p) => {
|
|
130
|
+
return Object.assign(Object.assign({}, p), (typeof p.accountId === 'string' && p.accountId.length > 0)
|
|
131
|
+
? { accountId: ASTERISK_CHARACTER.repeat(p.accountId.length) }
|
|
132
|
+
: undefined);
|
|
133
|
+
}) }, (typeof order.token === 'string')
|
|
134
|
+
? { token: order.token }
|
|
135
|
+
: undefined), (typeof order.id === 'string') ? { id: order.id } : undefined);
|
|
136
|
+
}
|
|
133
137
|
}
|
|
134
138
|
else {
|
|
135
|
-
|
|
136
|
-
return Object.assign(Object.assign({
|
|
137
|
-
// whitelistで作成する(2022-07-19~)
|
|
138
|
-
project: order.project, typeOf: order.typeOf, seller: order.seller, price: order.price, priceCurrency: order.priceCurrency, confirmationNumber: order.confirmationNumber, orderNumber: order.orderNumber, acceptedOffers: order.acceptedOffers, orderStatus: order.orderStatus, orderDate: order.orderDate,
|
|
139
|
-
// mask
|
|
140
|
-
customer: Object.assign(Object.assign({}, (0, order_1.createMaskedCustomer)(order)), { additionalProperty: (Array.isArray(order.customer.additionalProperty)) ? order.customer.additionalProperty : [],
|
|
141
|
-
// identifierは必要
|
|
142
|
-
// 予約後を隠蔽(2022-12-24~)
|
|
143
|
-
identifier: (Array.isArray(order.customer.identifier))
|
|
144
|
-
? order.customer.identifier.filter((p) => {
|
|
145
|
-
return !reservedAgentIdentifireNames_1.RESERVED_AGENT_IDENTIFIER_NAMES.includes(p.name);
|
|
146
|
-
})
|
|
147
|
-
: [] }),
|
|
148
|
-
// paymentMethodsに関してもmask(2022-05-30~)
|
|
149
|
-
paymentMethods: order.paymentMethods.map((p) => {
|
|
150
|
-
return Object.assign(Object.assign({}, p), (typeof p.accountId === 'string' && p.accountId.length > 0)
|
|
151
|
-
? { accountId: ASTERISK_CHARACTER.repeat(p.accountId.length) }
|
|
152
|
-
: undefined);
|
|
153
|
-
}) }, (typeof order.token === 'string')
|
|
154
|
-
? { token: order.token }
|
|
155
|
-
: undefined), (typeof order.id === 'string') ? { id: order.id } : undefined);
|
|
139
|
+
return order;
|
|
156
140
|
}
|
|
157
141
|
}
|
|
158
|
-
/**
|
|
159
|
-
* 注文保管期間
|
|
160
|
-
*/
|
|
161
|
-
const ORDER_STORAGE_PERIOD_IN_DAYS = (typeof process.env.ORDER_STORAGE_PERIOD_IN_DAYS === 'string')
|
|
162
|
-
? Number(process.env.ORDER_STORAGE_PERIOD_IN_DAYS) :
|
|
163
|
-
// tslint:disable-next-line:no-magic-numbers
|
|
164
|
-
365;
|
|
165
|
-
function createDeleteTasks(order) {
|
|
166
|
-
return [{
|
|
167
|
-
project: order.project,
|
|
168
|
-
name: factory.taskName.DeleteOrder,
|
|
169
|
-
status: factory.taskStatus.Ready,
|
|
170
|
-
runsAt: moment(order.orderDate)
|
|
171
|
-
.add(ORDER_STORAGE_PERIOD_IN_DAYS, 'days')
|
|
172
|
-
.toDate(),
|
|
173
|
-
remainingNumberOfTries: 10,
|
|
174
|
-
numberOfTried: 0,
|
|
175
|
-
executionResults: [],
|
|
176
|
-
data: {
|
|
177
|
-
object: order
|
|
178
|
-
}
|
|
179
|
-
}];
|
|
180
|
-
}
|
|
181
|
-
exports.createDeleteTasks = createDeleteTasks;
|
|
182
142
|
function createConfirmReservationActionObject4ChevreByOrder(params) {
|
|
183
143
|
const chevreReservationNumbers = (Array.isArray(params.order.acceptedOffers))
|
|
184
144
|
? params.order.acceptedOffers.filter((o) => {
|
|
@@ -72,8 +72,6 @@ function onOrderStatusChanged(params) {
|
|
|
72
72
|
tasks = [
|
|
73
73
|
// 注文作成時のみトークン付加
|
|
74
74
|
...(0, factory_1.createInformTasks)(orderWithToken),
|
|
75
|
-
// リソース削除タスク
|
|
76
|
-
...(0, factory_1.createDeleteTasks)(params.order),
|
|
77
75
|
...yield createConfirmPayTransactionTasks(params.order, simpleOrder)(repos),
|
|
78
76
|
...yield createConfirmReserveTransactionTasks(params.order, simpleOrder)(repos),
|
|
79
77
|
...yield createConfirmRegisterServiceTransactionTasks(params.order, simpleOrder)(repos)
|
|
@@ -89,7 +87,7 @@ function onOrderStatusChanged(params) {
|
|
|
89
87
|
break;
|
|
90
88
|
default:
|
|
91
89
|
}
|
|
92
|
-
yield repos.task.saveMany(tasks);
|
|
90
|
+
yield repos.task.saveMany(tasks, { emitImmediately: true });
|
|
93
91
|
});
|
|
94
92
|
}
|
|
95
93
|
exports.onOrderStatusChanged = onOrderStatusChanged;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 注文変更時処理
|
|
3
|
+
*/
|
|
4
|
+
import { MongoRepository as TaskRepo } from '../../repo/task';
|
|
5
|
+
import * as factory from '../../factory';
|
|
6
|
+
export declare function onOrderUpdated(params: {
|
|
7
|
+
additionalProperty?: factory.propertyValue.IPropertyValue<string>[];
|
|
8
|
+
name?: string;
|
|
9
|
+
orderNumber: string;
|
|
10
|
+
project: {
|
|
11
|
+
id: string;
|
|
12
|
+
};
|
|
13
|
+
}): (repos: {
|
|
14
|
+
task: TaskRepo;
|
|
15
|
+
}) => Promise<void>;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.onOrderUpdated = void 0;
|
|
13
|
+
const factory = require("../../factory");
|
|
14
|
+
const factory_1 = require("./onOrderStatusChanged/factory");
|
|
15
|
+
function onOrderUpdated(params) {
|
|
16
|
+
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
17
|
+
let tasks = [];
|
|
18
|
+
tasks = (0, factory_1.createInformTasks)(Object.assign(Object.assign({ typeOf: factory.order.OrderType.Order, orderNumber: params.orderNumber, project: { id: params.project.id, typeOf: factory.organizationType.Project } }, (typeof params.name === 'string') ? { name: params.name } : undefined), (Array.isArray(params.additionalProperty)) ? { additionalProperty: params.additionalProperty } : undefined));
|
|
19
|
+
yield repos.task.saveMany(tasks, { emitImmediately: true });
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
exports.onOrderUpdated = onOrderUpdated;
|
|
@@ -168,50 +168,67 @@ function placeOrder(params) {
|
|
|
168
168
|
confirmationNumber: params.object.confirmationNumber,
|
|
169
169
|
orderNumber: params.object.orderNumber
|
|
170
170
|
})({ transaction: repos.transaction });
|
|
171
|
-
// アクションを作成する(2022-04-11~)
|
|
172
171
|
const maskedCustomer = (0, order_1.createMaskedCustomer)(order);
|
|
173
172
|
const simpleOrder = {
|
|
174
|
-
// project: order.project,
|
|
175
173
|
typeOf: order.typeOf,
|
|
176
174
|
seller: order.seller,
|
|
177
175
|
customer: { typeOf: maskedCustomer.typeOf, id: maskedCustomer.id, name: maskedCustomer.name },
|
|
178
|
-
// IOrderへ移行(2022-11-17~)
|
|
179
|
-
// confirmationNumber: order.confirmationNumber,
|
|
180
176
|
orderNumber: order.orderNumber,
|
|
181
177
|
price: order.price,
|
|
182
178
|
priceCurrency: order.priceCurrency,
|
|
183
179
|
orderDate: order.orderDate
|
|
184
180
|
};
|
|
181
|
+
const orderActionPurpose = {
|
|
182
|
+
typeOf: placeOrderTransaction.typeOf, id: placeOrderTransaction.id
|
|
183
|
+
};
|
|
185
184
|
const orderActionAttributes = {
|
|
186
185
|
agent: (typeof ((_a = params.agent) === null || _a === void 0 ? void 0 : _a.typeOf) === 'string') ? params.agent : order.project,
|
|
187
186
|
object: simpleOrder,
|
|
188
187
|
potentialActions: {},
|
|
189
188
|
project: order.project,
|
|
190
|
-
purpose:
|
|
189
|
+
purpose: orderActionPurpose,
|
|
191
190
|
typeOf: factory.actionType.OrderAction
|
|
192
191
|
};
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
192
|
+
// 冪等性を担保(2023-05-31~)
|
|
193
|
+
const completedActions = yield repos.action.search({
|
|
194
|
+
limit: 1,
|
|
195
|
+
page: 1,
|
|
196
|
+
actionStatus: { $in: [factory.actionStatusType.CompletedActionStatus] },
|
|
197
|
+
typeOf: { $eq: orderActionAttributes.typeOf },
|
|
198
|
+
object: {
|
|
199
|
+
orderNumber: { $in: [orderActionAttributes.object.orderNumber] }
|
|
200
|
+
},
|
|
201
|
+
purpose: {
|
|
202
|
+
id: { $in: [orderActionPurpose.id] },
|
|
203
|
+
typeOf: { $in: [orderActionPurpose.typeOf] }
|
|
204
|
+
}
|
|
205
|
+
}, ['_id'], []);
|
|
206
|
+
if (completedActions.length === 0) {
|
|
207
|
+
const action = yield repos.action.start(orderActionAttributes);
|
|
199
208
|
try {
|
|
200
|
-
|
|
201
|
-
yield repos.action.giveUp({ typeOf: orderActionAttributes.typeOf, id: action.id, error: actionError });
|
|
209
|
+
yield repos.order.createIfNotExist(order);
|
|
202
210
|
}
|
|
203
|
-
catch (
|
|
204
|
-
//
|
|
211
|
+
catch (error) {
|
|
212
|
+
// actionにエラー結果を追加
|
|
213
|
+
try {
|
|
214
|
+
const actionError = Object.assign(Object.assign({}, error), { message: error.message, name: error.name });
|
|
215
|
+
yield repos.action.giveUp({ typeOf: orderActionAttributes.typeOf, id: action.id, error: actionError });
|
|
216
|
+
}
|
|
217
|
+
catch (__) {
|
|
218
|
+
// 失敗したら仕方ない
|
|
219
|
+
}
|
|
220
|
+
throw error;
|
|
205
221
|
}
|
|
206
|
-
|
|
222
|
+
yield repos.action.complete({ typeOf: orderActionAttributes.typeOf, id: action.id, result: {} });
|
|
223
|
+
}
|
|
224
|
+
if (params.useOnOrderStatusChanged || params.useOnOrderStatusChanged === undefined) {
|
|
225
|
+
// 経理レポートを保管
|
|
226
|
+
yield (0, createAccountingReportIfNotExist_1.createAccountingReportIfNotExist)(order)({ accountingReport: repos.accountingReport });
|
|
227
|
+
yield (0, onOrderStatusChanged_1.onOrderStatusChanged)({ order })({
|
|
228
|
+
registerActionInProgress: repos.registerActionInProgress,
|
|
229
|
+
task: repos.task
|
|
230
|
+
});
|
|
207
231
|
}
|
|
208
|
-
yield repos.action.complete({ typeOf: orderActionAttributes.typeOf, id: action.id, result: {} });
|
|
209
|
-
// 経理レポートを保管
|
|
210
|
-
yield (0, createAccountingReportIfNotExist_1.createAccountingReportIfNotExist)(order)({ accountingReport: repos.accountingReport });
|
|
211
|
-
yield (0, onOrderStatusChanged_1.onOrderStatusChanged)({ order })({
|
|
212
|
-
registerActionInProgress: repos.registerActionInProgress,
|
|
213
|
-
task: repos.task
|
|
214
|
-
});
|
|
215
232
|
// 潜在アクション
|
|
216
233
|
yield onPlaceOrder({
|
|
217
234
|
object: order,
|
|
@@ -269,6 +286,6 @@ function onPlaceOrder(params) {
|
|
|
269
286
|
}
|
|
270
287
|
}
|
|
271
288
|
// タスク保管
|
|
272
|
-
yield repos.task.saveMany(taskAttributes);
|
|
289
|
+
yield repos.task.saveMany(taskAttributes, { emitImmediately: true });
|
|
273
290
|
});
|
|
274
291
|
}
|
|
@@ -42,12 +42,9 @@ function returnOrder(params) {
|
|
|
42
42
|
throw new factory.errors.NotFound(factory.transactionType.ReturnOrder);
|
|
43
43
|
}
|
|
44
44
|
const simpleOrder = {
|
|
45
|
-
// project: order.project,
|
|
46
45
|
typeOf: order.typeOf,
|
|
47
46
|
seller: order.seller,
|
|
48
47
|
customer: (0, order_1.createMaskedCustomer)(order),
|
|
49
|
-
// IOrderへ移行(2022-11-17~)
|
|
50
|
-
// confirmationNumber: order.confirmationNumber,
|
|
51
48
|
orderNumber: order.orderNumber,
|
|
52
49
|
price: order.price,
|
|
53
50
|
priceCurrency: order.priceCurrency,
|
|
@@ -80,10 +77,12 @@ function returnOrder(params) {
|
|
|
80
77
|
}
|
|
81
78
|
const result = returnedOwnershipInfos;
|
|
82
79
|
yield repos.action.complete({ typeOf: action.typeOf, id: action.id, result: result });
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
80
|
+
if (params.useOnOrderStatusChanged || params.useOnOrderStatusChanged === undefined) {
|
|
81
|
+
yield (0, onOrderStatusChanged_1.onOrderStatusChanged)({ order, returnOrderTransaction })({
|
|
82
|
+
registerActionInProgress: repos.registerServiceInProgress,
|
|
83
|
+
task: repos.task
|
|
84
|
+
});
|
|
85
|
+
}
|
|
87
86
|
// 潜在アクション
|
|
88
87
|
yield onReturn(returnOrderActionAttributes)({ task: repos.task });
|
|
89
88
|
});
|
|
@@ -204,10 +203,6 @@ function onReturn(returnActionAttributes) {
|
|
|
204
203
|
}
|
|
205
204
|
}
|
|
206
205
|
// タスク保管
|
|
207
|
-
|
|
208
|
-
yield repos.task.saveMany(taskAttributes);
|
|
209
|
-
// await Promise.all(taskAttributes.map(async (taskAttribute) => {
|
|
210
|
-
// return repos.task.save(taskAttribute);
|
|
211
|
-
// }));
|
|
206
|
+
yield repos.task.saveMany(taskAttributes, { emitImmediately: true });
|
|
212
207
|
});
|
|
213
208
|
}
|