@chevre/domain 21.2.0-alpha.5 → 21.2.0-alpha.50
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/countDelayedTasks.ts +17 -0
- package/example/src/chevre/countDelayedTransactions.ts +60 -0
- package/example/src/chevre/countMoneyTransferTransaction.ts +36 -0
- package/example/src/chevre/createManyEventsIfNotExist.ts +4 -1
- package/example/src/chevre/migrateOrderAdditionalProperties.ts +85 -0
- package/example/src/chevre/migrateStockHolderKeys.ts +89 -0
- package/example/src/chevre/saveTasks.ts +13 -10
- package/example/src/chevre/searchAbortedTasks.ts +36 -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/startExportTasks.ts +20 -0
- package/example/src/chevre/updateTransaction.ts +1 -1
- 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 +0 -4
- package/lib/chevre/repo/accountTitle.js +0 -4
- package/lib/chevre/repo/accountTransaction.d.ts +3 -11
- package/lib/chevre/repo/accountTransaction.js +1 -58
- package/lib/chevre/repo/accountingReport.js +0 -4
- package/lib/chevre/repo/action.d.ts +12 -1
- package/lib/chevre/repo/action.js +9 -29
- package/lib/chevre/repo/additionalProperty.js +0 -4
- package/lib/chevre/repo/aggregation.js +0 -4
- package/lib/chevre/repo/assetTransaction.d.ts +22 -7
- package/lib/chevre/repo/assetTransaction.js +173 -55
- package/lib/chevre/repo/categoryCode.js +0 -4
- package/lib/chevre/repo/code.js +0 -4
- package/lib/chevre/repo/comment.d.ts +4 -1
- package/lib/chevre/repo/comment.js +20 -9
- 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/creativeWork.js +0 -4
- package/lib/chevre/repo/customer.js +0 -4
- package/lib/chevre/repo/emailMessage.d.ts +1 -27
- package/lib/chevre/repo/emailMessage.js +0 -4
- package/lib/chevre/repo/event.d.ts +5 -1
- package/lib/chevre/repo/event.js +0 -4
- package/lib/chevre/repo/member.js +0 -4
- package/lib/chevre/repo/merchantReturnPolicy.d.ts +1 -3
- package/lib/chevre/repo/merchantReturnPolicy.js +0 -4
- 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 +3 -1
- 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/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 +62 -3
- 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 +1 -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/offer.js +0 -5
- package/lib/chevre/repo/offerCatalog.js +0 -4
- package/lib/chevre/repo/order.d.ts +25 -0
- package/lib/chevre/repo/order.js +5 -4
- package/lib/chevre/repo/ownershipInfo.js +0 -4
- package/lib/chevre/repo/permit.js +0 -4
- package/lib/chevre/repo/place.d.ts +5 -1
- package/lib/chevre/repo/place.js +1 -10
- package/lib/chevre/repo/priceSpecification.js +0 -4
- package/lib/chevre/repo/product.js +0 -4
- package/lib/chevre/repo/project.js +0 -4
- package/lib/chevre/repo/reservation.js +0 -4
- package/lib/chevre/repo/role.js +0 -4
- package/lib/chevre/repo/seller.js +0 -4
- package/lib/chevre/repo/serviceOutput.js +0 -4
- package/lib/chevre/repo/stockHolder.js +30 -0
- package/lib/chevre/repo/task.d.ts +38 -2
- package/lib/chevre/repo/task.js +96 -10
- package/lib/chevre/repo/telemetry.js +0 -4
- package/lib/chevre/repo/transaction.d.ts +23 -3
- package/lib/chevre/repo/transaction.js +174 -58
- package/lib/chevre/repo/trip.js +0 -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 -5
- package/lib/chevre/service/assetTransaction/moneyTransfer.js +1 -1
- package/lib/chevre/service/assetTransaction/pay.js +10 -4
- package/lib/chevre/service/assetTransaction/refund.js +1 -1
- package/lib/chevre/service/assetTransaction/registerService.js +1 -2
- package/lib/chevre/service/assetTransaction/reserve.js +1 -1
- package/lib/chevre/service/assetTransaction.d.ts +6 -2
- package/lib/chevre/service/assetTransaction.js +9 -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/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/onOrderStatusChanged.js +1 -1
- package/lib/chevre/service/order/placeOrder.js +1 -1
- package/lib/chevre/service/order/returnOrder.js +1 -5
- package/lib/chevre/service/order/sendOrder.js +1 -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 +60 -10
- package/lib/chevre/service/payment/movieTicket/validation.d.ts +6 -2
- package/lib/chevre/service/payment/movieTicket/validation.js +12 -25
- package/lib/chevre/service/payment/movieTicket.d.ts +4 -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.js +0 -2
- 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.js +1 -8
- package/lib/chevre/service/task/confirmRegisterServiceTransaction.js +1 -1
- package/lib/chevre/service/task/returnPayTransaction.js +1 -5
- 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/moneyTransfer.js +4 -4
- package/lib/chevre/service/transaction/orderProgramMembership.js +2 -1
- package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +30 -29
- 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 +1 -0
- package/lib/chevre/service/transaction/placeOrderInProgress.js +17 -10
- package/lib/chevre/service/transaction/returnOrder.js +1 -5
- package/lib/chevre/service/transaction.d.ts +6 -0
- package/lib/chevre/service/transaction.js +9 -7
- package/lib/chevre/settings.d.ts +4 -1
- package/lib/chevre/settings.js +11 -4
- package/package.json +5 -5
- package/example/src/chevre/migrateMoneyTransferPendingTransactionIdentifier.ts +0 -96
- package/example/src/chevre/migrateMovieAdditionalProperties.ts +0 -98
|
@@ -7,7 +7,7 @@ export type IUnitPriceSpecification = factory.priceSpecification.IPriceSpecifica
|
|
|
7
7
|
/**
|
|
8
8
|
* 取引が確定可能な状態かどうかをチェックする
|
|
9
9
|
*/
|
|
10
|
-
export declare function validateTransaction(transaction: factory.transaction.placeOrder.ITransaction): void;
|
|
10
|
+
export declare function validateTransaction(transaction: factory.transaction.placeOrder.ITransaction, authorizeActions: factory.action.authorize.IAction<factory.action.authorize.IAttributes<any, any>>[]): void;
|
|
11
11
|
export type IConfirmationNumberGenerator = (order: factory.order.IOrder) => string;
|
|
12
12
|
export type IOrderURLGenerator = (order: factory.order.IOrder) => string;
|
|
13
13
|
export type IResultOrderParams = factory.transaction.placeOrder.IResultOrderParams & {
|
|
@@ -46,4 +46,5 @@ export declare function validatePaymentMethods(params: {
|
|
|
46
46
|
export declare function validateEventOffers(params: {
|
|
47
47
|
transaction: factory.transaction.placeOrder.ITransaction;
|
|
48
48
|
order: factory.order.IOrder;
|
|
49
|
+
authorizeActions: factory.action.authorize.IAction<factory.action.authorize.IAttributes<any, any>>[];
|
|
49
50
|
}): void;
|
|
@@ -13,18 +13,18 @@ const debug = createDebug('cinerino-domain:service');
|
|
|
13
13
|
/**
|
|
14
14
|
* 取引が確定可能な状態かどうかをチェックする
|
|
15
15
|
*/
|
|
16
|
-
function validateTransaction(transaction) {
|
|
16
|
+
function validateTransaction(transaction, authorizeActions) {
|
|
17
17
|
validateProfile(transaction);
|
|
18
|
-
validatePrice(transaction);
|
|
18
|
+
validatePrice(transaction, authorizeActions);
|
|
19
19
|
// 利用可能な通貨単位に対して取引検証
|
|
20
|
-
validateMonetaryAmount(
|
|
20
|
+
validateMonetaryAmount(authorizeActions);
|
|
21
21
|
// 利用可能なMovieTicketIF決済方法タイプに対して動的にコーディング
|
|
22
22
|
// 検証すべきMovieTicketIF決済方法タイプのリストは、決済承認アクションのresult.issuedThrough.typeOf: MovieTicketで抽出できるのでは?
|
|
23
|
-
const movieTicketPaymentMethodTypes = findMovieTicketPaymentMethodTypesFromTransaction(
|
|
23
|
+
const movieTicketPaymentMethodTypes = findMovieTicketPaymentMethodTypesFromTransaction(authorizeActions);
|
|
24
24
|
if (Array.isArray(movieTicketPaymentMethodTypes) && movieTicketPaymentMethodTypes.length > 0) {
|
|
25
25
|
movieTicketPaymentMethodTypes.forEach((paymentMethodType) => {
|
|
26
26
|
try {
|
|
27
|
-
(0, validateMovieTicket_1.validateMovieTicket)(paymentMethodType, transaction);
|
|
27
|
+
(0, validateMovieTicket_1.validateMovieTicket)(paymentMethodType, transaction, authorizeActions);
|
|
28
28
|
}
|
|
29
29
|
catch (error) {
|
|
30
30
|
// 検証結果をlog(2022-06-04~)
|
|
@@ -35,11 +35,13 @@ function validateTransaction(transaction) {
|
|
|
35
35
|
});
|
|
36
36
|
}
|
|
37
37
|
// 決済URLが発行されている場合、検証
|
|
38
|
-
validatePaymentUrl(transaction);
|
|
38
|
+
validatePaymentUrl(transaction, authorizeActions);
|
|
39
39
|
}
|
|
40
40
|
exports.validateTransaction = validateTransaction;
|
|
41
|
-
function findMovieTicketPaymentMethodTypesFromTransaction(
|
|
42
|
-
|
|
41
|
+
function findMovieTicketPaymentMethodTypesFromTransaction(
|
|
42
|
+
// transaction: factory.transaction.placeOrder.ITransaction,
|
|
43
|
+
authorizeActions) {
|
|
44
|
+
// const authorizeActions = transaction.object.authorizeActions;
|
|
43
45
|
const authorizeMovieTicketPaymentActions = authorizeActions.filter((a) => {
|
|
44
46
|
var _a, _b;
|
|
45
47
|
return a.actionStatus === factory.actionStatusType.CompletedActionStatus
|
|
@@ -86,8 +88,8 @@ function validateProfile(transaction) {
|
|
|
86
88
|
throw new factory.errors.Argument('Transaction', 'Customer Profile Required');
|
|
87
89
|
}
|
|
88
90
|
}
|
|
89
|
-
function validatePrice(transaction) {
|
|
90
|
-
const authorizeActions = transaction.object.authorizeActions;
|
|
91
|
+
function validatePrice(transaction, authorizeActions) {
|
|
92
|
+
// const authorizeActions = transaction.object.authorizeActions;
|
|
91
93
|
let priceByAgent = 0;
|
|
92
94
|
let priceBySeller = 0;
|
|
93
95
|
// 決済承認を確認
|
|
@@ -110,9 +112,9 @@ function validatePrice(transaction) {
|
|
|
110
112
|
throw new factory.errors.Argument('Transaction', 'Transaction cannot be confirmed because prices are not matched');
|
|
111
113
|
}
|
|
112
114
|
}
|
|
113
|
-
function validatePaymentUrl(transaction) {
|
|
115
|
+
function validatePaymentUrl(transaction, authorizeActions) {
|
|
116
|
+
// const authorizeActions = transaction.object.authorizeActions;
|
|
114
117
|
var _a, _b;
|
|
115
|
-
const authorizeActions = transaction.object.authorizeActions;
|
|
116
118
|
// 決済URLが発行されている場合、検証
|
|
117
119
|
const paymentMethodId = (_a = transaction.object.paymentMethods) === null || _a === void 0 ? void 0 : _a.paymentMethodId;
|
|
118
120
|
const paymentUrl = (_b = transaction.object.paymentMethods) === null || _b === void 0 ? void 0 : _b.paymentUrl;
|
|
@@ -135,10 +137,10 @@ function validatePaymentUrl(transaction) {
|
|
|
135
137
|
/**
|
|
136
138
|
* JPY以外の通貨について取引を検証する
|
|
137
139
|
*/
|
|
138
|
-
function validateMonetaryAmount(
|
|
139
|
-
//
|
|
140
|
-
) {
|
|
141
|
-
const authorizeActions = transaction.object.authorizeActions;
|
|
140
|
+
function validateMonetaryAmount(
|
|
141
|
+
// transaction: factory.transaction.placeOrder.ITransaction,
|
|
142
|
+
authorizeActions) {
|
|
143
|
+
// const authorizeActions = transaction.object.authorizeActions;
|
|
142
144
|
const authorizeMonetaryAmountActions = authorizeActions
|
|
143
145
|
.filter((a) => {
|
|
144
146
|
var _a, _b;
|
|
@@ -216,7 +218,11 @@ exports.validatePaymentMethods = validatePaymentMethods;
|
|
|
216
218
|
* イベントオファー適用条件確認
|
|
217
219
|
*/
|
|
218
220
|
function validateEventOffers(params) {
|
|
219
|
-
const seatReservationAuthorizeActions =
|
|
221
|
+
// const seatReservationAuthorizeActions = <IAuthorizeSeatReservationOffer[]>
|
|
222
|
+
// params.transaction.object.authorizeActions
|
|
223
|
+
// .filter((a) => a.actionStatus === factory.actionStatusType.CompletedActionStatus)
|
|
224
|
+
// .filter((a) => a.object.typeOf === factory.action.authorize.offer.seatReservation.ObjectType.SeatReservation);
|
|
225
|
+
const seatReservationAuthorizeActions = params.authorizeActions
|
|
220
226
|
.filter((a) => a.actionStatus === factory.actionStatusType.CompletedActionStatus)
|
|
221
227
|
.filter((a) => a.object.typeOf === factory.action.authorize.offer.seatReservation.ObjectType.SeatReservation);
|
|
222
228
|
seatReservationAuthorizeActions.forEach((a) => {
|
|
@@ -95,14 +95,15 @@ function confirm(params) {
|
|
|
95
95
|
throw new factory.errors.Forbidden('Transaction not yours');
|
|
96
96
|
}
|
|
97
97
|
// 取引に対する全ての承認アクションをマージ
|
|
98
|
-
|
|
98
|
+
const authorizeActions = yield searchAuthorizeActions(params)(repos);
|
|
99
|
+
// transaction.object.authorizeActions = authorizeActions;
|
|
99
100
|
// 注文番号を発行
|
|
100
101
|
const orderNumber = yield publishOrderNumberIfNotExist({
|
|
101
102
|
project: { id: transaction.project.id },
|
|
102
103
|
id: transaction.id,
|
|
103
104
|
object: { orderDate: params.result.order.orderDate }
|
|
104
105
|
})(repos);
|
|
105
|
-
const result = createResult(Object.assign(Object.assign({}, params), { orderNumber, transaction: transaction }));
|
|
106
|
+
const result = createResult(Object.assign(Object.assign({}, params), { orderNumber, transaction: transaction, authorizeActions }));
|
|
106
107
|
// デフォルトEメールメッセージを検索
|
|
107
108
|
let emailMessageOnOrderSent;
|
|
108
109
|
if (repos.emailMessage !== undefined) {
|
|
@@ -119,14 +120,16 @@ function confirm(params) {
|
|
|
119
120
|
order: result.order,
|
|
120
121
|
potentialActions: params.potentialActions,
|
|
121
122
|
transaction: transaction,
|
|
122
|
-
emailMessage: emailMessageOnOrderSent
|
|
123
|
+
emailMessage: emailMessageOnOrderSent,
|
|
124
|
+
authorizeActions
|
|
123
125
|
});
|
|
124
126
|
// ステータス変更
|
|
125
127
|
try {
|
|
126
128
|
yield repos.transaction.confirm({
|
|
127
129
|
typeOf: transaction.typeOf,
|
|
128
130
|
id: transaction.id,
|
|
129
|
-
|
|
131
|
+
// 保管有無を設定化(2023-05-16~)
|
|
132
|
+
authorizeActions: (params.saveAuthorizeActions) ? authorizeActions : [],
|
|
130
133
|
result: result,
|
|
131
134
|
potentialActions: potentialActions
|
|
132
135
|
});
|
|
@@ -214,18 +217,20 @@ exports.publishOrderNumberIfNotExist = publishOrderNumberIfNotExist;
|
|
|
214
217
|
function createResult(params) {
|
|
215
218
|
const transaction = params.transaction;
|
|
216
219
|
// 取引の確定条件が全て整っているかどうか確認
|
|
217
|
-
(0, validation_1.validateTransaction)(transaction);
|
|
220
|
+
(0, validation_1.validateTransaction)(transaction, params.authorizeActions);
|
|
218
221
|
// 注文作成
|
|
219
222
|
const order = (0, result_1.createOrder)({
|
|
220
223
|
orderNumber: params.orderNumber,
|
|
221
224
|
transaction: transaction,
|
|
222
225
|
orderDate: params.result.order.orderDate,
|
|
223
226
|
orderStatus: factory.orderStatus.OrderProcessing,
|
|
224
|
-
isGift: false
|
|
227
|
+
isGift: false,
|
|
228
|
+
authorizeActions: params.authorizeActions
|
|
225
229
|
});
|
|
226
230
|
(0, validation_1.validateEventOffers)({
|
|
227
231
|
transaction: transaction,
|
|
228
|
-
order: order
|
|
232
|
+
order: order,
|
|
233
|
+
authorizeActions: params.authorizeActions
|
|
229
234
|
});
|
|
230
235
|
// 注文アイテム数制限確認
|
|
231
236
|
(0, validation_1.validateNumItems)({
|
|
@@ -252,7 +257,9 @@ function searchAuthorizeActions(params) {
|
|
|
252
257
|
purpose: {
|
|
253
258
|
typeOf: factory.transactionType.PlaceOrder,
|
|
254
259
|
id: params.id
|
|
255
|
-
}
|
|
260
|
+
},
|
|
261
|
+
// Completedに絞る(2023-05-16~)
|
|
262
|
+
actionStatus: { $eq: factory.actionStatusType.CompletedActionStatus }
|
|
256
263
|
});
|
|
257
264
|
// 万が一このプロセス中に他処理が発生してもそれらを無視するように、endDateでフィルタリング
|
|
258
265
|
authorizeActions = authorizeActions.filter((a) => (a.endDate !== undefined && a.endDate < params.result.order.orderDate));
|
|
@@ -311,7 +318,7 @@ function authorizeAward(params) {
|
|
|
311
318
|
if (Array.isArray(givePointAwardParams)) {
|
|
312
319
|
const pointAwardIdentifiers = givePointAwardParams.map((g) => { var _a; return String((_a = g.object) === null || _a === void 0 ? void 0 : _a.identifier); });
|
|
313
320
|
// 取引にインセンティブ付与アクションパラメータを保管する
|
|
314
|
-
yield repos.transaction.
|
|
321
|
+
yield repos.transaction.findByIdAndUpdateInProgress({
|
|
315
322
|
id: transaction.id,
|
|
316
323
|
update: {
|
|
317
324
|
$set: {
|
|
@@ -339,7 +346,7 @@ function voidAward(params) {
|
|
|
339
346
|
if (transaction.agent.id !== params.agent.id) {
|
|
340
347
|
throw new factory.errors.Forbidden('Transaction not yours');
|
|
341
348
|
}
|
|
342
|
-
yield repos.transaction.
|
|
349
|
+
yield repos.transaction.findByIdAndUpdateInProgress({
|
|
343
350
|
id: transaction.id,
|
|
344
351
|
update: {
|
|
345
352
|
$unset: {
|
|
@@ -384,11 +384,7 @@ function exportTasksById(params) {
|
|
|
384
384
|
transaction,
|
|
385
385
|
runsAt: taskRunsAt
|
|
386
386
|
});
|
|
387
|
-
|
|
388
|
-
yield repos.task.saveMany(taskAttributes);
|
|
389
|
-
// await Promise.all(taskAttributes.map(async (taskAttribute) => {
|
|
390
|
-
// await repos.task.save(taskAttribute);
|
|
391
|
-
// }));
|
|
387
|
+
yield repos.task.saveMany(taskAttributes, { emitImmediately: true });
|
|
392
388
|
});
|
|
393
389
|
}
|
|
394
390
|
exports.exportTasksById = exportTasksById;
|
|
@@ -45,6 +45,12 @@ export declare function exportTasks<T extends factory.transactionType>(params: {
|
|
|
45
45
|
typeOf?: {
|
|
46
46
|
$in: T[];
|
|
47
47
|
};
|
|
48
|
+
id?: string;
|
|
49
|
+
tasksExportAction?: {
|
|
50
|
+
agent: {
|
|
51
|
+
name: string;
|
|
52
|
+
};
|
|
53
|
+
};
|
|
48
54
|
}): IExportTasksOperation<void>;
|
|
49
55
|
/**
|
|
50
56
|
* 取引に関わるリソースを削除する
|
|
@@ -19,6 +19,7 @@ const MoneyTransferTransactionService = require("./transaction/moneyTransfer");
|
|
|
19
19
|
const PlaceOrderTransactionService = require("./transaction/placeOrder");
|
|
20
20
|
const PlaceOrderInProgressTransactionService = require("./transaction/placeOrderInProgress");
|
|
21
21
|
const ReturnOrderTransactionService = require("./transaction/returnOrder");
|
|
22
|
+
const settings_1 = require("../settings");
|
|
22
23
|
exports.moneyTransfer = MoneyTransferTransactionService;
|
|
23
24
|
exports.placeOrder = PlaceOrderTransactionService;
|
|
24
25
|
exports.placeOrderInProgress = PlaceOrderInProgressTransactionService;
|
|
@@ -77,15 +78,17 @@ exports.updateAgent = updateAgent;
|
|
|
77
78
|
*/
|
|
78
79
|
function exportTasks(params) {
|
|
79
80
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
81
|
+
var _a;
|
|
82
|
+
const transaction = yield repos.transaction.startExportTasks(Object.assign({ project: params.project, typeOf: params.typeOf, status: params.status, tasksExportAction: {
|
|
83
|
+
agent: {
|
|
84
|
+
name: (typeof ((_a = params.tasksExportAction) === null || _a === void 0 ? void 0 : _a.agent.name) === 'string')
|
|
85
|
+
? params.tasksExportAction.agent.name
|
|
86
|
+
: settings_1.DEFAULT_TASKS_EXPORT_AGENT_NAME
|
|
87
|
+
}
|
|
88
|
+
} }, (typeof params.id === 'string') ? { id: params.id } : undefined));
|
|
85
89
|
if (transaction === null) {
|
|
86
90
|
return;
|
|
87
91
|
}
|
|
88
|
-
// let tasks: factory.task.ITask<factory.taskName>[] = [];
|
|
89
92
|
// 失敗してもここでは戻さない(RUNNINGのまま待機)
|
|
90
93
|
switch (transaction.typeOf) {
|
|
91
94
|
case factory.transactionType.MoneyTransfer:
|
|
@@ -109,7 +112,6 @@ function exportTasks(params) {
|
|
|
109
112
|
default:
|
|
110
113
|
}
|
|
111
114
|
yield repos.transaction.setTasksExportedById({ id: transaction.id });
|
|
112
|
-
// return tasks;
|
|
113
115
|
});
|
|
114
116
|
}
|
|
115
117
|
exports.exportTasks = exportTasks;
|
package/lib/chevre/settings.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import * as moment from 'moment';
|
|
2
2
|
import * as factory from './factory';
|
|
3
|
+
export declare const TRIGGER_WEBHOOK_MAX_RETRY_COUNT: number;
|
|
4
|
+
export declare const TRIGGER_WEBHOOK_RETRY_INTERVAL_IN_MS: number;
|
|
3
5
|
export declare const ABORTED_TASKS_WITHOUT_REPORT: string[];
|
|
4
6
|
/**
|
|
5
7
|
* 資産取引保管期間
|
|
@@ -27,10 +29,11 @@ export type ISettings = factory.project.ISettings & {
|
|
|
27
29
|
useOfferRateLimitProjects: string[];
|
|
28
30
|
};
|
|
29
31
|
export declare const DEFAULT_PAYMENT_METHOD_TYPE_FOR_CREDIT_CARD: string;
|
|
32
|
+
export declare const DEFAULT_TASKS_EXPORT_AGENT_NAME: string;
|
|
30
33
|
export declare const USE_ASSET_TRANSACTION_SYNC_PROCESSING: boolean;
|
|
31
34
|
export declare const USE_PAY_ASSET_TRANSACTION_SYNC_PROCESSING: boolean;
|
|
32
35
|
export declare const USE_NEW_EVENT_AVAILABILITY_KEY_FROM: moment.Moment;
|
|
33
|
-
export declare const
|
|
36
|
+
export declare const INFORM_RESERVATION_TASK_DELAY_IN_SECONDS: number;
|
|
34
37
|
/**
|
|
35
38
|
* グローバル設定
|
|
36
39
|
*/
|
package/lib/chevre/settings.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.settings = exports.
|
|
3
|
+
exports.settings = exports.INFORM_RESERVATION_TASK_DELAY_IN_SECONDS = exports.USE_NEW_EVENT_AVAILABILITY_KEY_FROM = exports.USE_PAY_ASSET_TRANSACTION_SYNC_PROCESSING = exports.USE_ASSET_TRANSACTION_SYNC_PROCESSING = exports.DEFAULT_TASKS_EXPORT_AGENT_NAME = exports.DEFAULT_PAYMENT_METHOD_TYPE_FOR_CREDIT_CARD = exports.DEFAULT_SENDER_EMAIL = exports.TRANSACTION_CANCELED_STORAGE_PERIOD_IN_DAYS = exports.TRANSACTION_CONFIRMED_STORAGE_PERIOD_IN_DAYS = exports.ASSET_TRANSACTION_STORAGE_PERIOD_IN_DAYS = exports.ABORTED_TASKS_WITHOUT_REPORT = exports.TRIGGER_WEBHOOK_RETRY_INTERVAL_IN_MS = exports.TRIGGER_WEBHOOK_MAX_RETRY_COUNT = void 0;
|
|
4
4
|
const moment = require("moment");
|
|
5
5
|
const factory = require("./factory");
|
|
6
6
|
const transactionWebhookUrls = (typeof process.env.INFORM_TRANSACTION_URL === 'string')
|
|
@@ -14,6 +14,12 @@ const informReservationUrls = (typeof process.env.INFORM_RESERVATION_URL === 'st
|
|
|
14
14
|
: [];
|
|
15
15
|
// tslint:disable-next-line:no-magic-numbers
|
|
16
16
|
const triggerWebhookTimeout = (process.env.TRIGGER_WEBHOOK_TIMEOUT !== undefined) ? Number(process.env.TRIGGER_WEBHOOK_TIMEOUT) : 15000;
|
|
17
|
+
exports.TRIGGER_WEBHOOK_MAX_RETRY_COUNT = (typeof process.env.TRIGGER_WEBHOOK_MAX_RETRY_COUNT === 'string')
|
|
18
|
+
? Number(process.env.TRIGGER_WEBHOOK_MAX_RETRY_COUNT)
|
|
19
|
+
: 0;
|
|
20
|
+
exports.TRIGGER_WEBHOOK_RETRY_INTERVAL_IN_MS = (typeof process.env.TRIGGER_WEBHOOK_RETRY_INTERVAL_IN_MS === 'string')
|
|
21
|
+
? Number(process.env.TRIGGER_WEBHOOK_RETRY_INTERVAL_IN_MS)
|
|
22
|
+
: 0;
|
|
17
23
|
const MAXIMUM_RESERVATION_GRACE_PERIOD_IN_DAYS = (typeof process.env.MAXIMUM_RESERVATION_GRACE_PERIOD_IN_DAYS === 'string')
|
|
18
24
|
? Number(process.env.MAXIMUM_RESERVATION_GRACE_PERIOD_IN_DAYS)
|
|
19
25
|
// tslint:disable-next-line:no-magic-numbers
|
|
@@ -44,14 +50,15 @@ exports.TRANSACTION_CANCELED_STORAGE_PERIOD_IN_DAYS = (typeof process.env.TRANSA
|
|
|
44
50
|
: 7;
|
|
45
51
|
exports.DEFAULT_SENDER_EMAIL = process.env.DEFAULT_SENDER_EMAIL;
|
|
46
52
|
exports.DEFAULT_PAYMENT_METHOD_TYPE_FOR_CREDIT_CARD = String(process.env.DEFAULT_PAYMENT_METHOD_TYPE_FOR_CREDIT_CARD);
|
|
53
|
+
exports.DEFAULT_TASKS_EXPORT_AGENT_NAME = `${process.env.GAE_APPLICATION}:${process.env.GAE_SERVICE}:jobs`;
|
|
47
54
|
exports.USE_ASSET_TRANSACTION_SYNC_PROCESSING = process.env.USE_ASSET_TRANSACTION_SYNC_PROCESSING === '1';
|
|
48
55
|
exports.USE_PAY_ASSET_TRANSACTION_SYNC_PROCESSING = process.env.USE_PAY_ASSET_TRANSACTION_SYNC_PROCESSING === '1';
|
|
49
56
|
exports.USE_NEW_EVENT_AVAILABILITY_KEY_FROM = (typeof process.env.USE_NEW_EVENT_AVAILABILITY_KEY_FROM === 'string')
|
|
50
57
|
? moment(process.env.USE_NEW_EVENT_AVAILABILITY_KEY_FROM)
|
|
51
58
|
: moment('2023-08-31T15:00:00Z');
|
|
52
|
-
exports.
|
|
53
|
-
?
|
|
54
|
-
:
|
|
59
|
+
exports.INFORM_RESERVATION_TASK_DELAY_IN_SECONDS = (typeof process.env.INFORM_RESERVATION_TASK_DELAY_IN_SECONDS === 'string')
|
|
60
|
+
? Number(process.env.INFORM_RESERVATION_TASK_DELAY_IN_SECONDS)
|
|
61
|
+
: 0;
|
|
55
62
|
/**
|
|
56
63
|
* グローバル設定
|
|
57
64
|
*/
|
package/package.json
CHANGED
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
}
|
|
10
10
|
],
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@chevre/factory": "4.
|
|
13
|
-
"@cinerino/sdk": "3.
|
|
12
|
+
"@chevre/factory": "4.313.0-alpha.0",
|
|
13
|
+
"@cinerino/sdk": "3.156.0",
|
|
14
14
|
"@motionpicture/coa-service": "9.2.0",
|
|
15
15
|
"@motionpicture/gmo-service": "5.2.0",
|
|
16
16
|
"@sendgrid/mail": "6.4.0",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
"googleapis": "^85.0.0",
|
|
59
59
|
"json2csv": "4.5.4",
|
|
60
60
|
"mocha": "^5.2.0",
|
|
61
|
-
"mongoose": "
|
|
61
|
+
"mongoose": "7.0.5",
|
|
62
62
|
"nock": "^9.6.1",
|
|
63
63
|
"nyc": "^15.1.0",
|
|
64
64
|
"power-assert": "^1.6.1",
|
|
@@ -74,7 +74,7 @@
|
|
|
74
74
|
},
|
|
75
75
|
"peerDependencies": {
|
|
76
76
|
"aws-sdk": "^2.0.0",
|
|
77
|
-
"mongoose": "^
|
|
77
|
+
"mongoose": "^7.0.5",
|
|
78
78
|
"redis": "^4.6.5"
|
|
79
79
|
},
|
|
80
80
|
"engines": {
|
|
@@ -117,5 +117,5 @@
|
|
|
117
117
|
"postversion": "git push origin --tags",
|
|
118
118
|
"prepublishOnly": "npm run clean && npm run build && npm test && npm run doc"
|
|
119
119
|
},
|
|
120
|
-
"version": "21.2.0-alpha.
|
|
120
|
+
"version": "21.2.0-alpha.50"
|
|
121
121
|
}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
// tslint:disable:no-console
|
|
2
|
-
import * as moment from 'moment';
|
|
3
|
-
import * as mongoose from 'mongoose';
|
|
4
|
-
|
|
5
|
-
import { chevre } from '../../../lib/index';
|
|
6
|
-
|
|
7
|
-
const project = { id: String(process.env.PROJECT_ID) };
|
|
8
|
-
|
|
9
|
-
// tslint:disable-next-line:max-func-body-length
|
|
10
|
-
async function main() {
|
|
11
|
-
await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
|
|
12
|
-
|
|
13
|
-
const accountTransactionRepo = new chevre.repository.AccountTransaction(mongoose.connection);
|
|
14
|
-
const assetTransactionRepo = new chevre.repository.AssetTransaction(mongoose.connection);
|
|
15
|
-
|
|
16
|
-
const cursor = assetTransactionRepo.getCursor(
|
|
17
|
-
{
|
|
18
|
-
'project.id': { $eq: project.id },
|
|
19
|
-
typeOf: { $eq: chevre.factory.assetTransactionType.MoneyTransfer },
|
|
20
|
-
startDate: {
|
|
21
|
-
$gte: moment('2023-02-17T15:00:00Z')
|
|
22
|
-
.toDate()
|
|
23
|
-
}
|
|
24
|
-
// _id: { $eq: 'al6aff83w' }
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
// _id: 1,
|
|
28
|
-
}
|
|
29
|
-
);
|
|
30
|
-
console.log('assetTransactions found');
|
|
31
|
-
|
|
32
|
-
let i = 0;
|
|
33
|
-
let updateCount = 0;
|
|
34
|
-
// tslint:disable-next-line:max-func-body-length
|
|
35
|
-
await cursor.eachAsync(async (doc) => {
|
|
36
|
-
i += 1;
|
|
37
|
-
const moneyTransferTransaction: chevre.factory.assetTransaction.moneyTransfer.ITransaction = doc.toObject();
|
|
38
|
-
|
|
39
|
-
const description = moneyTransferTransaction.object.description;
|
|
40
|
-
if (description !== '鑑賞' && description !== '受け取り') {
|
|
41
|
-
console.log(
|
|
42
|
-
'no operation needed',
|
|
43
|
-
description,
|
|
44
|
-
moneyTransferTransaction.project.id,
|
|
45
|
-
moneyTransferTransaction.transactionNumber,
|
|
46
|
-
moneyTransferTransaction.startDate
|
|
47
|
-
);
|
|
48
|
-
} else {
|
|
49
|
-
const pendingTransactionIdentifier = moneyTransferTransaction.object.pendingTransaction?.identifier;
|
|
50
|
-
if (typeof pendingTransactionIdentifier === 'string' && pendingTransactionIdentifier.length > 0) {
|
|
51
|
-
console.log(
|
|
52
|
-
'pendingTransactionIdentifier found',
|
|
53
|
-
description,
|
|
54
|
-
moneyTransferTransaction.project.id,
|
|
55
|
-
moneyTransferTransaction.transactionNumber,
|
|
56
|
-
moneyTransferTransaction.startDate
|
|
57
|
-
);
|
|
58
|
-
} else {
|
|
59
|
-
// 口座取引からidentifierを取得
|
|
60
|
-
const accountTransaction =
|
|
61
|
-
await accountTransactionRepo.findByTransactionNumber({ transactionNumber: moneyTransferTransaction.transactionNumber });
|
|
62
|
-
console.log(
|
|
63
|
-
'updating identifier...',
|
|
64
|
-
accountTransaction.identifier,
|
|
65
|
-
description,
|
|
66
|
-
moneyTransferTransaction.project.id,
|
|
67
|
-
moneyTransferTransaction.transactionNumber,
|
|
68
|
-
moneyTransferTransaction.startDate
|
|
69
|
-
);
|
|
70
|
-
if (typeof accountTransaction.identifier === 'string') {
|
|
71
|
-
await assetTransactionRepo.findByIdAndUpdate({
|
|
72
|
-
id: moneyTransferTransaction.id,
|
|
73
|
-
update: {
|
|
74
|
-
'object.pendingTransaction.identifier': accountTransaction.identifier
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
console.log(
|
|
79
|
-
'ientifier updated',
|
|
80
|
-
accountTransaction.identifier,
|
|
81
|
-
description,
|
|
82
|
-
moneyTransferTransaction.project.id,
|
|
83
|
-
moneyTransferTransaction.transactionNumber,
|
|
84
|
-
moneyTransferTransaction.startDate
|
|
85
|
-
);
|
|
86
|
-
updateCount += 1;
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
});
|
|
90
|
-
console.log(i, 'assetTransactions checked');
|
|
91
|
-
console.log(updateCount, 'assetTransactions updated');
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
main()
|
|
95
|
-
.then()
|
|
96
|
-
.catch(console.error);
|
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
// tslint:disable:no-console
|
|
2
|
-
// import * as moment from 'moment';
|
|
3
|
-
import * as mongoose from 'mongoose';
|
|
4
|
-
|
|
5
|
-
import { chevre } from '../../../lib/index';
|
|
6
|
-
|
|
7
|
-
// const project = { id: String(process.env.PROJECT_ID) };
|
|
8
|
-
const EXCLUDED_PROJECT_ID = process.env.EXCLUDED_PROJECT_ID;
|
|
9
|
-
|
|
10
|
-
// tslint:disable-next-line:max-func-body-length
|
|
11
|
-
async function main() {
|
|
12
|
-
await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
|
|
13
|
-
|
|
14
|
-
const additionalPropertyRepo = new chevre.repository.AdditionalProperty(mongoose.connection);
|
|
15
|
-
const creativeWorkRepo = new chevre.repository.CreativeWork(mongoose.connection);
|
|
16
|
-
|
|
17
|
-
const cursor = creativeWorkRepo.getCursor(
|
|
18
|
-
{
|
|
19
|
-
// 'project.id': { $eq: project.id },
|
|
20
|
-
'project.id': { $ne: EXCLUDED_PROJECT_ID }
|
|
21
|
-
},
|
|
22
|
-
{
|
|
23
|
-
// _id: 1,
|
|
24
|
-
}
|
|
25
|
-
);
|
|
26
|
-
console.log('movies found');
|
|
27
|
-
|
|
28
|
-
const additionalPropertyNames: string[] = [];
|
|
29
|
-
const projectIds: string[] = [];
|
|
30
|
-
const unexpextedprojectIds: string[] = [];
|
|
31
|
-
|
|
32
|
-
let i = 0;
|
|
33
|
-
let updateCount = 0;
|
|
34
|
-
await cursor.eachAsync(async (doc) => {
|
|
35
|
-
i += 1;
|
|
36
|
-
const movie: chevre.factory.creativeWork.movie.ICreativeWork = doc.toObject();
|
|
37
|
-
|
|
38
|
-
const additionalPropertyNamesOnEvent = movie.additionalProperty?.map((p) => p.name);
|
|
39
|
-
if (Array.isArray(additionalPropertyNamesOnEvent) && additionalPropertyNamesOnEvent.length > 0) {
|
|
40
|
-
console.log(
|
|
41
|
-
additionalPropertyNamesOnEvent.length,
|
|
42
|
-
'additionalPropertyNamesOnEvent found',
|
|
43
|
-
movie.project.id,
|
|
44
|
-
movie.id
|
|
45
|
-
);
|
|
46
|
-
additionalPropertyNames.push(...additionalPropertyNamesOnEvent);
|
|
47
|
-
projectIds.push(movie.project.id);
|
|
48
|
-
additionalPropertyNamesOnEvent.forEach((name) => {
|
|
49
|
-
if (!name.match(/^[a-zA-Z]*$/)) {
|
|
50
|
-
// throw new Error(`not matched ${creativeWork.project.id} ${creativeWork.id}`);
|
|
51
|
-
unexpextedprojectIds.push(movie.project.id);
|
|
52
|
-
}
|
|
53
|
-
// tslint:disable-next-line:no-magic-numbers
|
|
54
|
-
if (name.length < 5) {
|
|
55
|
-
// throw new Error(`length matched ${creativeWork.project.id} ${creativeWork.id} ${name}`);
|
|
56
|
-
unexpextedprojectIds.push(movie.project.id);
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
for (const additionalPropertyNameOnEvent of additionalPropertyNamesOnEvent) {
|
|
61
|
-
const existings = await additionalPropertyRepo.search({
|
|
62
|
-
project: { id: { $eq: movie.project.id } },
|
|
63
|
-
limit: 1,
|
|
64
|
-
page: 1,
|
|
65
|
-
name: { $regex: `^${additionalPropertyNameOnEvent}$` }
|
|
66
|
-
});
|
|
67
|
-
if (existings.length > 0) {
|
|
68
|
-
console.log('already existed', additionalPropertyNameOnEvent, movie.id, movie.project.id);
|
|
69
|
-
} else {
|
|
70
|
-
updateCount += 1;
|
|
71
|
-
const newAdditionalProperty: chevre.factory.additionalProperty.IAdditionalProperty = {
|
|
72
|
-
project: movie.project,
|
|
73
|
-
typeOf: 'CategoryCode',
|
|
74
|
-
codeValue: additionalPropertyNameOnEvent,
|
|
75
|
-
inCodeSet: {
|
|
76
|
-
typeOf: 'CategoryCodeSet',
|
|
77
|
-
identifier: <chevre.factory.creativeWorkType.Movie>movie.typeOf
|
|
78
|
-
},
|
|
79
|
-
name: { ja: additionalPropertyNameOnEvent }
|
|
80
|
-
};
|
|
81
|
-
await additionalPropertyRepo.save({
|
|
82
|
-
attributes: newAdditionalProperty
|
|
83
|
-
});
|
|
84
|
-
console.log('created', additionalPropertyNameOnEvent, movie.id, movie.project.id);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
console.log(i, 'events checked');
|
|
90
|
-
console.log(updateCount, 'properties updated');
|
|
91
|
-
console.log('additionalPropertyNames:', [...new Set(additionalPropertyNames)]);
|
|
92
|
-
console.log('projectIds:', [...new Set(projectIds)]);
|
|
93
|
-
console.log('unexpextedprojectIds:', [...new Set(unexpextedprojectIds)]);
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
main()
|
|
97
|
-
.then()
|
|
98
|
-
.catch(console.error);
|