@chevre/domain 23.2.0-alpha.61 → 23.2.0-alpha.63
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/chevre/credentials/customSearch.js +2 -0
- package/lib/chevre/credentials/lineNotify.js +4 -0
- package/lib/chevre/credentials/sendGrid.js +2 -0
- package/lib/chevre/credentials.js +15 -30
- package/lib/chevre/emailMessageBuilder.js +225 -250
- package/lib/chevre/errorHandler.js +38 -59
- package/lib/chevre/eventEmitter/assetTransaction.js +0 -1
- package/lib/chevre/eventEmitter/task.js +0 -1
- package/lib/chevre/eventEmitter/transaction.js +0 -1
- package/lib/chevre/factory/event.js +69 -42
- package/lib/chevre/factory/transactionNumber.js +2 -2
- package/lib/chevre/index.js +15 -30
- package/lib/chevre/repo/acceptedOffer.js +177 -197
- package/lib/chevre/repo/acceptedPaymentMethod.js +131 -144
- package/lib/chevre/repo/account.js +194 -238
- package/lib/chevre/repo/accountTitle.js +9 -21
- package/lib/chevre/repo/accountTransaction.js +186 -193
- package/lib/chevre/repo/accountingReport.js +88 -107
- package/lib/chevre/repo/action.js +849 -883
- package/lib/chevre/repo/additionalProperty.js +64 -92
- package/lib/chevre/repo/advanceBookingRequirement.js +69 -91
- package/lib/chevre/repo/aggregateOffer.js +392 -430
- package/lib/chevre/repo/aggregateOrder.js +50 -62
- package/lib/chevre/repo/aggregateReservation.js +76 -89
- package/lib/chevre/repo/aggregation.js +42 -63
- package/lib/chevre/repo/assetTransaction.js +692 -729
- package/lib/chevre/repo/authorization.js +115 -134
- package/lib/chevre/repo/categoryCode.js +114 -147
- package/lib/chevre/repo/comment.js +73 -82
- package/lib/chevre/repo/concurrentLock.js +17 -29
- package/lib/chevre/repo/confirmationNumber.js +19 -35
- package/lib/chevre/repo/creativeWork.js +152 -180
- package/lib/chevre/repo/credentials.js +39 -51
- package/lib/chevre/repo/customer.js +64 -88
- package/lib/chevre/repo/customerType.js +52 -62
- package/lib/chevre/repo/emailMessage.js +51 -80
- package/lib/chevre/repo/event.js +640 -684
- package/lib/chevre/repo/eventOffer.js +122 -125
- package/lib/chevre/repo/eventSellerMakesOffer.js +64 -76
- package/lib/chevre/repo/eventSeries.js +207 -244
- package/lib/chevre/repo/identity.js +94 -107
- package/lib/chevre/repo/identityProvider.js +72 -96
- package/lib/chevre/repo/issuer.js +102 -135
- package/lib/chevre/repo/member.js +238 -259
- package/lib/chevre/repo/memberProgram.js +157 -177
- package/lib/chevre/repo/merchantReturnPolicy.js +61 -94
- package/lib/chevre/repo/message.js +122 -135
- package/lib/chevre/repo/mongoose/onIndexCreated.js +0 -1
- package/lib/chevre/repo/mongoose/schemas/acceptedPaymentMethod.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/account.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/accountTitle.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/accountTransaction.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/accountingReport.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/action.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/actionRecipe.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/additionalProperty.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/advanceBookingRequirement.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/aggregateOffer.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/aggregateOrder.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/aggregateReservation.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/aggregation.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/assetTransaction.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/authorization.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/categoryCode.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/civicStructure.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/creativeWork.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/customer.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/customerType.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/event.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/eventOffer.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/eventSeries.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/identity.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/identityProvider.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/issuer.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/member/global.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/member.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/message.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/movieTicketTypes.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/note.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/offerCatalog.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/offerCatalogItem.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/offerItemCondition.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/order.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/paymentService.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/paymentServiceChannel.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/pendingReservation.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/pendingReservationAggregate.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/place.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/potentialAction.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/product.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/productModel.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/productOffer.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/reservation.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/reserveInterface.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/role.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/schedule.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/seller.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/sellerReturnPolicy.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/service/availableHour.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/setting.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/task.js +1 -2
- package/lib/chevre/repo/mongoose/schemas/ticket.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/transaction.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/transactionNumber.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/trip.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/webSite.js +1 -1
- package/lib/chevre/repo/movieTicketType.js +67 -94
- package/lib/chevre/repo/note.js +143 -147
- package/lib/chevre/repo/noteAboutOrder.js +112 -113
- package/lib/chevre/repo/offer/unitPriceInCatalog.js +330 -314
- package/lib/chevre/repo/offerCatalog.js +302 -334
- package/lib/chevre/repo/offerCatalogItem.js +289 -317
- package/lib/chevre/repo/offerItemCondition.js +60 -85
- package/lib/chevre/repo/order.js +559 -607
- package/lib/chevre/repo/orderInTransaction.js +113 -136
- package/lib/chevre/repo/orderNumber.js +95 -112
- package/lib/chevre/repo/ownershipInfo.js +212 -240
- package/lib/chevre/repo/passport.js +93 -102
- package/lib/chevre/repo/paymentMethod/creditCard.js +151 -169
- package/lib/chevre/repo/paymentService.js +179 -200
- package/lib/chevre/repo/paymentServiceChannel.js +76 -100
- package/lib/chevre/repo/paymentServiceProvider.js +186 -201
- package/lib/chevre/repo/pendingReservation.js +272 -305
- package/lib/chevre/repo/permit.js +47 -42
- package/lib/chevre/repo/person.js +217 -256
- package/lib/chevre/repo/place/busStop.js +76 -106
- package/lib/chevre/repo/place/entranceGate.js +123 -128
- package/lib/chevre/repo/place/hasPOS.js +108 -120
- package/lib/chevre/repo/place/movieTheater.js +185 -220
- package/lib/chevre/repo/place/screeningRoom.js +339 -325
- package/lib/chevre/repo/place/seat.js +538 -481
- package/lib/chevre/repo/place/section.js +328 -296
- package/lib/chevre/repo/potentialAction.js +67 -87
- package/lib/chevre/repo/priceSpecification.js +102 -146
- package/lib/chevre/repo/product.js +203 -239
- package/lib/chevre/repo/productHasOfferCatalog.js +39 -50
- package/lib/chevre/repo/productModel.js +94 -127
- package/lib/chevre/repo/productOffer.js +119 -118
- package/lib/chevre/repo/project.js +123 -141
- package/lib/chevre/repo/projectMakesOffer.js +96 -108
- package/lib/chevre/repo/rateLimit/offer.js +43 -57
- package/lib/chevre/repo/reservation.js +369 -398
- package/lib/chevre/repo/reserveInterface.js +31 -42
- package/lib/chevre/repo/role.js +93 -112
- package/lib/chevre/repo/schedule.js +25 -36
- package/lib/chevre/repo/seller.js +114 -147
- package/lib/chevre/repo/sellerMakesOffer.js +95 -110
- package/lib/chevre/repo/sellerPaymentAccepted.js +92 -109
- package/lib/chevre/repo/sellerReturnPolicy.js +74 -97
- package/lib/chevre/repo/service/availableHour.js +27 -38
- package/lib/chevre/repo/serviceOutput.js +54 -67
- package/lib/chevre/repo/serviceOutputIdentifier.js +46 -58
- package/lib/chevre/repo/setting/jwt.js +40 -50
- package/lib/chevre/repo/setting.js +48 -48
- package/lib/chevre/repo/stockHolder.js +179 -199
- package/lib/chevre/repo/task.js +610 -619
- package/lib/chevre/repo/telemetry.js +1 -0
- package/lib/chevre/repo/ticket.js +52 -65
- package/lib/chevre/repo/transaction.js +754 -815
- package/lib/chevre/repo/transactionNumber.js +67 -80
- package/lib/chevre/repo/transactionNumberCounter.js +68 -79
- package/lib/chevre/repo/transactionProcess.js +36 -47
- package/lib/chevre/repo/trip.js +144 -164
- package/lib/chevre/repo/webSite.js +90 -106
- package/lib/chevre/repository.js +455 -647
- package/lib/chevre/service/account.js +9 -21
- package/lib/chevre/service/accountTransaction/deposit.js +16 -17
- package/lib/chevre/service/accountTransaction/transfer.js +18 -22
- package/lib/chevre/service/accountTransaction/withdraw.js +16 -17
- package/lib/chevre/service/accountTransaction.js +4 -16
- package/lib/chevre/service/aggregation/event/aggregateOffers.js +63 -60
- package/lib/chevre/service/aggregation/event/aggregateScreeningEvent.js +52 -55
- package/lib/chevre/service/aggregation/event/findEventOffers.js +7 -17
- package/lib/chevre/service/aggregation/event/importFromCOA.js +4 -14
- package/lib/chevre/service/aggregation/project.js +10 -19
- package/lib/chevre/service/aggregation/system.js +182 -99
- package/lib/chevre/service/assetTransaction/cancelReservation/factory.js +31 -17
- package/lib/chevre/service/assetTransaction/cancelReservation/start.js +17 -24
- package/lib/chevre/service/assetTransaction/cancelReservation/startAndConfirm.js +17 -15
- package/lib/chevre/service/assetTransaction/cancelReservation.js +7 -18
- package/lib/chevre/service/assetTransaction/cancelReservationCOA/factory.js +11 -4
- package/lib/chevre/service/assetTransaction/cancelReservationCOA.js +4 -13
- package/lib/chevre/service/assetTransaction/fixInformAction.js +6 -16
- package/lib/chevre/service/assetTransaction/moneyTransfer/potentialActions.js +13 -25
- package/lib/chevre/service/assetTransaction/moneyTransfer.js +101 -90
- package/lib/chevre/service/assetTransaction/pay/cancel.js +3 -12
- package/lib/chevre/service/assetTransaction/pay/check.js +4 -14
- package/lib/chevre/service/assetTransaction/pay/confirm.js +18 -21
- package/lib/chevre/service/assetTransaction/pay/exportTasksById.js +4 -14
- package/lib/chevre/service/assetTransaction/pay/publishPaymentUrl.js +33 -34
- package/lib/chevre/service/assetTransaction/pay/searchGMOTrade.js +7 -17
- package/lib/chevre/service/assetTransaction/pay/start/account/validation.js +6 -16
- package/lib/chevre/service/assetTransaction/pay/start/factory.js +64 -37
- package/lib/chevre/service/assetTransaction/pay/start/preStart/validateAcceptedPaymentMethodIfNeeded.js +7 -19
- package/lib/chevre/service/assetTransaction/pay/start/preStart/validateSeller.js +6 -16
- package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeAccount.js +7 -17
- package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeCreditCard.js +9 -15
- package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.js +3 -12
- package/lib/chevre/service/assetTransaction/pay/start.js +29 -35
- package/lib/chevre/service/assetTransaction/refund/factory.js +36 -16
- package/lib/chevre/service/assetTransaction/refund/potentialActions.js +12 -21
- package/lib/chevre/service/assetTransaction/refund.js +35 -41
- package/lib/chevre/service/assetTransaction/registerService/factory.js +65 -28
- package/lib/chevre/service/assetTransaction/registerService/potentialActions.js +50 -43
- package/lib/chevre/service/assetTransaction/registerService.js +45 -56
- package/lib/chevre/service/assetTransaction/reserve/cancel.js +5 -14
- package/lib/chevre/service/assetTransaction/reserve/confirm/factory.js +15 -4
- package/lib/chevre/service/assetTransaction/reserve/confirm.js +21 -26
- package/lib/chevre/service/assetTransaction/reserve/exportTasksById.js +3 -13
- package/lib/chevre/service/assetTransaction/reserve/start/createSubReservations.js +99 -83
- package/lib/chevre/service/assetTransaction/reserve/start/factory/createPointAward.js +17 -12
- package/lib/chevre/service/assetTransaction/reserve/start/factory/createReservation.js +108 -72
- package/lib/chevre/service/assetTransaction/reserve/start/factory/createStartParams.js +69 -30
- package/lib/chevre/service/assetTransaction/reserve/start/factory/price.js +29 -20
- package/lib/chevre/service/assetTransaction/reserve/start.js +91 -108
- package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/fixExtendedEventOffer.js +5 -15
- package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/validateIssuedOfferIfExists.js +41 -54
- package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/validateMemberTierIfExists.js +42 -56
- package/lib/chevre/service/assetTransaction/reserve/validateStartRequest/verifyTicketTokenAsNeeded.js +7 -19
- package/lib/chevre/service/assetTransaction/reserve/validateStartRequest.js +15 -27
- package/lib/chevre/service/assetTransaction/reserveCOA/cancel.js +24 -24
- package/lib/chevre/service/assetTransaction/reserveCOA/factory.js +12 -4
- package/lib/chevre/service/assetTransaction/reserveCOA.js +4 -13
- package/lib/chevre/service/assetTransaction.js +17 -21
- package/lib/chevre/service/delivery/factory.js +3 -4
- package/lib/chevre/service/delivery/product/factory.js +16 -7
- package/lib/chevre/service/delivery/reservation/factory.js +14 -3
- package/lib/chevre/service/delivery.js +48 -52
- package/lib/chevre/service/event/processUpdateMovieTheater.js +21 -26
- package/lib/chevre/service/event/saveScreeningEventSeries.js +56 -41
- package/lib/chevre/service/event/saveScreeningEvents.js +14 -29
- package/lib/chevre/service/event.js +34 -30
- package/lib/chevre/service/iam.js +8 -17
- package/lib/chevre/service/moneyTransfer.js +128 -112
- package/lib/chevre/service/notification/factory.js +11 -10
- package/lib/chevre/service/notification/notifyAbortedTasksByEmail.js +11 -15
- package/lib/chevre/service/notification/notifyByEmail.js +7 -19
- package/lib/chevre/service/notification/sendEmailMessage.js +23 -26
- package/lib/chevre/service/notification/triggerWebhook.js +58 -56
- package/lib/chevre/service/offer/any.js +6 -15
- package/lib/chevre/service/offer/event/authorize/factory.js +139 -63
- package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre/requestedProgramMembershipUsed2permit.js +8 -19
- package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre.js +43 -27
- package/lib/chevre/service/offer/event/authorize.js +114 -71
- package/lib/chevre/service/offer/event/checkAvailability.js +5 -15
- package/lib/chevre/service/offer/event/importFromCOA/factory.js +9 -3
- package/lib/chevre/service/offer/event/importFromCOA.js +13 -19
- package/lib/chevre/service/offer/event/issueEventOfferTicket.js +38 -39
- package/lib/chevre/service/offer/event/searchEventTicketOffers.js +26 -41
- package/lib/chevre/service/offer/event/searchOfferAppliesToMovieTicket.js +11 -22
- package/lib/chevre/service/offer/event/searchOfferCatalogItemAvailability.js +13 -26
- package/lib/chevre/service/offer/event/searchOfferCatalogItems.js +15 -23
- package/lib/chevre/service/offer/event/searchOffersByIds.js +24 -39
- package/lib/chevre/service/offer/event/searchPriceSpecs4event.js +5 -14
- package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4chevre.js +4 -13
- package/lib/chevre/service/offer/event/voidTransaction/processVoidTransaction4coa.js +6 -15
- package/lib/chevre/service/offer/event/voidTransaction.js +35 -41
- package/lib/chevre/service/offer/event/voidTransactionByActionId.js +14 -20
- package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer/authorize.js +52 -42
- package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer/factory.js +5 -1
- package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.js +34 -37
- package/lib/chevre/service/offer/eventServiceByCOA/authorize/factory.js +45 -26
- package/lib/chevre/service/offer/eventServiceByCOA/authorize/validateAcceptedOffers.js +67 -62
- package/lib/chevre/service/offer/eventServiceByCOA/authorize.js +16 -27
- package/lib/chevre/service/offer/eventServiceByCOA/authorizeByAcceptAction.js +8 -18
- package/lib/chevre/service/offer/eventServiceByCOA/changeOffers.js +42 -43
- package/lib/chevre/service/offer/eventServiceByCOA/findAcceptAction.js +22 -25
- package/lib/chevre/service/offer/factory.js +18 -8
- package/lib/chevre/service/offer/moneyTransfer/authorize.js +31 -36
- package/lib/chevre/service/offer/moneyTransfer/returnMoneyTransfer.js +9 -18
- package/lib/chevre/service/offer/moneyTransfer/settleTransaction.js +10 -19
- package/lib/chevre/service/offer/moneyTransfer/voidTransaction.js +14 -24
- package/lib/chevre/service/offer/onEventChanged.js +69 -65
- package/lib/chevre/service/offer/product/factory.js +54 -32
- package/lib/chevre/service/offer/product/searchProductOffers.js +30 -24
- package/lib/chevre/service/offer/product.js +106 -82
- package/lib/chevre/service/offer.js +48 -45
- package/lib/chevre/service/order/confirmPayTransaction.js +28 -27
- package/lib/chevre/service/order/createAccountingReportIfNotExist.js +54 -41
- package/lib/chevre/service/order/deleteOrder.js +28 -36
- package/lib/chevre/service/order/findPlaceOrderTransaction.js +3 -12
- package/lib/chevre/service/order/onAssetTransactionStatusChanged.js +64 -70
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled/factory.js +1 -2
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled.js +3 -12
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered/factory.js +11 -6
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderDelivered.js +5 -14
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.js +22 -9
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially.js +5 -14
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderInTransit.js +23 -26
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderPaymentDue.js +13 -19
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/createSendEmailMessageTaskIfNotExist.js +5 -14
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/factory.js +24 -14
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/processOrder.js +23 -32
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing.js +8 -18
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.js +10 -9
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned.js +23 -28
- package/lib/chevre/service/order/onOrderUpdated/factory.js +3 -5
- package/lib/chevre/service/order/onOrderUpdated.js +13 -15
- package/lib/chevre/service/order/payOrder.js +3 -12
- package/lib/chevre/service/order/placeOrder/createPlacingOrderFromExistingTransaction.js +9 -20
- package/lib/chevre/service/order/placeOrder/factory/orderedItem.js +31 -15
- package/lib/chevre/service/order/placeOrder/factory.js +35 -22
- package/lib/chevre/service/order/placeOrder/voidAcceptedOfferIfNecessary.js +3 -12
- package/lib/chevre/service/order/placeOrder.js +12 -23
- package/lib/chevre/service/order/placeOrderWithoutTransaction.js +10 -18
- package/lib/chevre/service/order/returnOrder.js +27 -30
- package/lib/chevre/service/order/sendOrder.js +37 -37
- package/lib/chevre/service/payment/any/authorize/fixTransactionNumber.js +19 -25
- package/lib/chevre/service/payment/any/authorize/handlePrePublishedPaymentMethodIdOnAuthorizing.js +24 -39
- package/lib/chevre/service/payment/any/factory.js +106 -50
- package/lib/chevre/service/payment/any/fixOrderAsNeeded.js +4 -13
- package/lib/chevre/service/payment/any/onPayActionCompleted.js +13 -18
- package/lib/chevre/service/payment/any/onPaymentStatusChanged/onPaid.js +34 -37
- package/lib/chevre/service/payment/any/onPaymentStatusChanged/onRefunded.js +18 -24
- package/lib/chevre/service/payment/any/onPaymentStatusChanged.js +16 -16
- package/lib/chevre/service/payment/any/onRefundActionCompletedOrFailed.js +15 -21
- package/lib/chevre/service/payment/any/person2username.js +32 -45
- package/lib/chevre/service/payment/any/publishPaymentUrl/fixTransactionNumberOnPublishPaymentUrl.js +8 -18
- package/lib/chevre/service/payment/any/verifyTicketTokenAsNeeded.js +5 -17
- package/lib/chevre/service/payment/any.js +181 -142
- package/lib/chevre/service/payment/creditCard/authorize/handleAuthorizeError.js +2 -2
- package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard.js +44 -25
- package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard3ds.js +6 -15
- package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCard3dsResult2recipe.js +5 -1
- package/lib/chevre/service/payment/creditCard/authorize/processAuthorizeCreditCardResult2recipe.js +10 -2
- package/lib/chevre/service/payment/creditCard/authorize.js +20 -22
- package/lib/chevre/service/payment/creditCard/factory.js +22 -4
- package/lib/chevre/service/payment/creditCard/getGMOInfoFromSeller.js +8 -18
- package/lib/chevre/service/payment/creditCard/payCreditCard.js +31 -36
- package/lib/chevre/service/payment/creditCard/refundCreditCard.js +40 -51
- package/lib/chevre/service/payment/creditCard/searchGMOTrade.js +33 -45
- package/lib/chevre/service/payment/creditCard/voidTransaction.js +15 -26
- package/lib/chevre/service/payment/faceToFace.js +14 -23
- package/lib/chevre/service/payment/factory/createPayObjectServiceOutput.js +44 -25
- package/lib/chevre/service/payment/factory.js +50 -24
- package/lib/chevre/service/payment/movieTicket/authorize.js +35 -30
- package/lib/chevre/service/payment/movieTicket/checkMovieTicket.js +22 -25
- package/lib/chevre/service/payment/movieTicket/factory.js +33 -10
- package/lib/chevre/service/payment/movieTicket/getCredentials.js +5 -15
- package/lib/chevre/service/payment/movieTicket/payMovieTicket.js +29 -40
- package/lib/chevre/service/payment/movieTicket/processPurchaseNumberAuth.js +8 -18
- package/lib/chevre/service/payment/movieTicket/refundMovieTicket.js +60 -60
- package/lib/chevre/service/payment/movieTicket/validation.js +41 -37
- package/lib/chevre/service/payment/movieTicket/voidTransaction.js +8 -18
- package/lib/chevre/service/payment/paymentCard.js +87 -104
- package/lib/chevre/service/permit.js +36 -35
- package/lib/chevre/service/product.js +23 -28
- package/lib/chevre/service/project.js +22 -31
- package/lib/chevre/service/report/ownershipInfo.js +3 -4
- package/lib/chevre/service/report/telemetry.js +51 -70
- package/lib/chevre/service/reserve/cancelReservation.js +92 -93
- package/lib/chevre/service/reserve/checkInReservation.js +24 -29
- package/lib/chevre/service/reserve/confirmReservation.js +33 -39
- package/lib/chevre/service/reserve/factory.js +42 -20
- package/lib/chevre/service/reserve/findByCode.js +13 -18
- package/lib/chevre/service/reserve/potentialActions/onPendingReservationCanceled.js +18 -24
- package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.js +17 -25
- package/lib/chevre/service/reserve/potentialActions/onReservationCheckedIn.js +38 -30
- package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +45 -37
- package/lib/chevre/service/reserve/potentialActions/onReservationUsed.js +37 -33
- package/lib/chevre/service/reserve/potentialActions/onReservationsCreated.js +17 -23
- package/lib/chevre/service/reserve/searchByOrder.js +10 -20
- package/lib/chevre/service/reserve/useReservation.js +47 -34
- package/lib/chevre/service/reserve/verifyToken4reservation.js +7 -14
- package/lib/chevre/service/reserveCOA/cancelReservation.js +7 -17
- package/lib/chevre/service/reserveCOA/factory.js +5 -1
- package/lib/chevre/service/task/acceptCOAOffer.js +20 -25
- package/lib/chevre/service/task/aggregateOffers.js +3 -12
- package/lib/chevre/service/task/aggregateOnSystem.js +4 -14
- package/lib/chevre/service/task/aggregateScreeningEvent.js +3 -12
- package/lib/chevre/service/task/authorizePayment.js +9 -15
- package/lib/chevre/service/task/cancelMoneyTransfer.js +3 -12
- package/lib/chevre/service/task/cancelPendingReservation.js +10 -20
- package/lib/chevre/service/task/cancelReservation.js +3 -12
- package/lib/chevre/service/task/checkMovieTicket.js +16 -19
- package/lib/chevre/service/task/checkResource.js +7 -16
- package/lib/chevre/service/task/confirmMoneyTransfer.js +3 -12
- package/lib/chevre/service/task/confirmPayTransaction.js +6 -12
- package/lib/chevre/service/task/confirmRegisterService.js +3 -12
- package/lib/chevre/service/task/confirmRegisterServiceTransaction.js +24 -31
- package/lib/chevre/service/task/confirmReserveTransaction.js +48 -45
- package/lib/chevre/service/task/createAccountingReport.js +14 -20
- package/lib/chevre/service/task/deletePerson.js +48 -60
- package/lib/chevre/service/task/deleteTransaction.js +3 -12
- package/lib/chevre/service/task/givePointAward.js +3 -12
- package/lib/chevre/service/task/handleNotification.js +4 -14
- package/lib/chevre/service/task/importEventCapacitiesFromCOA.js +6 -16
- package/lib/chevre/service/task/importEventsFromCOA.js +6 -16
- package/lib/chevre/service/task/importOffersFromCOA.js +8 -18
- package/lib/chevre/service/task/invalidatePaymentUrl.js +6 -12
- package/lib/chevre/service/task/moneyTransfer.js +3 -12
- package/lib/chevre/service/task/onAssetTransactionStatusChanged.js +3 -12
- package/lib/chevre/service/task/onAuthorizationCreated.js +11 -19
- package/lib/chevre/service/task/onEventChanged.js +3 -12
- package/lib/chevre/service/task/onOrderPaymentCompleted.js +3 -12
- package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByAggregateOffer.js +7 -16
- package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByEventSeries.js +7 -16
- package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByMovieTheater.js +8 -17
- package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByOfferCatalog.js +10 -19
- package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByProduct.js +8 -17
- package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByRoom.js +6 -15
- package/lib/chevre/service/task/onResourceDeleted/deleteResourcesBySeller.js +14 -24
- package/lib/chevre/service/task/onResourceDeleted.js +17 -27
- package/lib/chevre/service/task/onResourceUpdated/onAggregateOfferUpdated.js +9 -21
- package/lib/chevre/service/task/onResourceUpdated/onCategoryCodeUpdated.js +3 -12
- package/lib/chevre/service/task/onResourceUpdated/onHasPOSUpdated.js +11 -23
- package/lib/chevre/service/task/onResourceUpdated/onOfferCatalogUpdated.js +13 -25
- package/lib/chevre/service/task/onResourceUpdated/syncCategoryCode.js +9 -15
- package/lib/chevre/service/task/onResourceUpdated/syncOfferCatalog.js +21 -27
- package/lib/chevre/service/task/onResourceUpdated.js +113 -158
- package/lib/chevre/service/task/pay.js +8 -16
- package/lib/chevre/service/task/payment/invalidatePaymentUrlByTask.js +4 -14
- package/lib/chevre/service/task/payment/payByTask.js +49 -38
- package/lib/chevre/service/task/payment/refundByTask.js +7 -17
- package/lib/chevre/service/task/payment/voidPaymentByTask.js +6 -15
- package/lib/chevre/service/task/placeOrder.js +6 -12
- package/lib/chevre/service/task/publishPaymentUrl.js +9 -14
- package/lib/chevre/service/task/refund.js +8 -16
- package/lib/chevre/service/task/registerService.js +3 -12
- package/lib/chevre/service/task/reserve.js +3 -12
- package/lib/chevre/service/task/returnMoneyTransfer.js +3 -12
- package/lib/chevre/service/task/returnOrder.js +6 -12
- package/lib/chevre/service/task/returnPayTransaction.js +54 -49
- package/lib/chevre/service/task/returnPointAward.js +3 -12
- package/lib/chevre/service/task/returnReserveTransaction.js +29 -30
- package/lib/chevre/service/task/sendEmailMessage.js +6 -13
- package/lib/chevre/service/task/sendOrder.js +12 -15
- package/lib/chevre/service/task/syncResourcesFromCOA.js +39 -45
- package/lib/chevre/service/task/triggerWebhook.js +6 -12
- package/lib/chevre/service/task/useReservation.js +11 -14
- package/lib/chevre/service/task/voidMoneyTransferTransaction.js +3 -12
- package/lib/chevre/service/task/voidPayTransaction.js +7 -12
- package/lib/chevre/service/task/voidPayment.js +3 -12
- package/lib/chevre/service/task/voidRegisterServiceTransaction.js +3 -12
- package/lib/chevre/service/task/voidReserveTransaction.js +10 -16
- package/lib/chevre/service/task.js +16 -26
- package/lib/chevre/service/taskHandler/onOperationFailed/informTaskIfNeeded.js +9 -20
- package/lib/chevre/service/taskHandler/onOperationFailed.js +20 -17
- package/lib/chevre/service/taskHandler.js +19 -22
- package/lib/chevre/service/transaction/deleteTransaction.js +104 -88
- package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.js +15 -9
- package/lib/chevre/service/transaction/moneyTransfer/factory.js +13 -4
- package/lib/chevre/service/transaction/moneyTransfer/potentialActions.js +12 -24
- package/lib/chevre/service/transaction/moneyTransfer.js +119 -98
- package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions/sendEmailMessage.js +49 -51
- package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions.js +14 -25
- package/lib/chevre/service/transaction/placeOrder/confirm/publishCode.js +4 -14
- package/lib/chevre/service/transaction/placeOrder/confirm/validation/validateInvoiceReferencesOrder.js +3 -4
- package/lib/chevre/service/transaction/placeOrder/confirm/validation/validateMovieTicket.js +3 -6
- package/lib/chevre/service/transaction/placeOrder/confirm/validation/validatePrice.js +2 -3
- package/lib/chevre/service/transaction/placeOrder/confirm/validation.js +30 -47
- package/lib/chevre/service/transaction/placeOrder/confirm.js +75 -59
- package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +31 -15
- package/lib/chevre/service/transaction/placeOrder/exportTasksById.js +6 -15
- package/lib/chevre/service/transaction/placeOrder/publishConfirmationNumberIfNotExist.js +6 -15
- package/lib/chevre/service/transaction/placeOrder/publishOrderNumberIfNotExist.js +7 -16
- package/lib/chevre/service/transaction/placeOrder/start/factory.js +27 -7
- package/lib/chevre/service/transaction/placeOrder/start/validateStartRequest.js +53 -60
- package/lib/chevre/service/transaction/placeOrder/start.js +14 -18
- package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +13 -7
- package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +176 -190
- package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPointAward.js +75 -89
- package/lib/chevre/service/transaction/returnOrder/potentialActions/sendEmailMessage.js +40 -48
- package/lib/chevre/service/transaction/returnOrder/potentialActions.js +52 -56
- package/lib/chevre/service/transaction/returnOrder/preStart/findApplicableReturnPolicy.js +100 -104
- package/lib/chevre/service/transaction/returnOrder/preStart/getReturnPolicyByProject.js +60 -80
- package/lib/chevre/service/transaction/returnOrder/preStart.js +42 -47
- package/lib/chevre/service/transaction/returnOrder.js +32 -37
- package/lib/chevre/service/transaction.js +75 -46
- package/lib/chevre/service/validation/validateEvent.js +2 -11
- package/lib/chevre/service/validation/validateOrder.js +7 -18
- package/lib/chevre/service.js +85 -131
- package/lib/chevre/settings/aggregation.js +4 -0
- package/lib/chevre/settings.js +7 -1
- package/lib/index.js +0 -1
- package/package.json +6 -11
- package/example/src/chevre/addEventBySchedule.ts +0 -46
- package/example/src/idaas/auth0/adminApplications.ts +0 -183
- package/example/src/idaas/auth0/getToken.ts +0 -55
- package/example/src/idaas/auth0/getTokenByPrivateKeyJWT.ts +0 -84
|
@@ -1,24 +1,4 @@
|
|
|
1
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
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
12
|
-
var t = {};
|
|
13
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
14
|
-
t[p] = s[p];
|
|
15
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
16
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
17
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
18
|
-
t[p[i]] = s[p[i]];
|
|
19
|
-
}
|
|
20
|
-
return t;
|
|
21
|
-
};
|
|
22
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
23
3
|
exports.AggregateOfferRepo = void 0;
|
|
24
4
|
const createDebug = require("debug");
|
|
@@ -29,41 +9,40 @@ const debug = createDebug('chevre-domain:repo:aggregateOffer');
|
|
|
29
9
|
* 集計オファーリポジトリ
|
|
30
10
|
*/
|
|
31
11
|
class AggregateOfferRepo {
|
|
12
|
+
aggregateOfferModel;
|
|
32
13
|
constructor(connection) {
|
|
33
14
|
this.aggregateOfferModel = connection.model(aggregateOffer_1.modelName, (0, aggregateOffer_1.createSchema)());
|
|
34
15
|
}
|
|
35
|
-
// tslint:disable-next-line:cyclomatic-complexity max-func-body-length
|
|
36
16
|
static CREATE_MATCH_STAGE(params) {
|
|
37
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33, _34, _35, _36, _37, _38, _39, _40, _41, _42, _43, _44, _45, _46, _47, _48, _49, _50;
|
|
38
17
|
const matchStages = [];
|
|
39
|
-
const projectIdEq =
|
|
18
|
+
const projectIdEq = params.project?.id?.$eq;
|
|
40
19
|
if (typeof projectIdEq === 'string') {
|
|
41
20
|
matchStages.push({
|
|
42
21
|
$match: { 'project.id': { $eq: projectIdEq } }
|
|
43
22
|
});
|
|
44
23
|
}
|
|
45
|
-
const parentOfferIdIn =
|
|
24
|
+
const parentOfferIdIn = params.parentOffer?.id?.$in;
|
|
46
25
|
if (Array.isArray(parentOfferIdIn)) {
|
|
47
26
|
matchStages.push({ $match: { _id: { $in: parentOfferIdIn } } });
|
|
48
27
|
}
|
|
49
28
|
// aggregateOffer.includedInDataCatalogで検索する(2023-09-21~)
|
|
50
|
-
const includedInDataCatalogIdIn =
|
|
29
|
+
const includedInDataCatalogIdIn = params.includedInDataCatalog?.id?.$in;
|
|
51
30
|
if (Array.isArray(includedInDataCatalogIdIn)) {
|
|
52
31
|
matchStages.push({ $match: { 'includedInDataCatalog.id': { $exists: true, $in: includedInDataCatalogIdIn } } });
|
|
53
32
|
}
|
|
54
|
-
const idEq =
|
|
33
|
+
const idEq = params.id?.$eq;
|
|
55
34
|
if (typeof idEq === 'string') {
|
|
56
35
|
matchStages.push({
|
|
57
36
|
$match: { _id: { $eq: idEq } } // _idに変更(2023-12-22~)
|
|
58
37
|
});
|
|
59
38
|
}
|
|
60
|
-
const idIn =
|
|
39
|
+
const idIn = params.id?.$in;
|
|
61
40
|
if (Array.isArray(idIn)) {
|
|
62
41
|
matchStages.push({
|
|
63
42
|
$match: { _id: { $in: idIn } } // _idに変更(2023-12-22~)
|
|
64
43
|
});
|
|
65
44
|
}
|
|
66
|
-
const identifierEq =
|
|
45
|
+
const identifierEq = params.identifier?.$eq;
|
|
67
46
|
if (typeof identifierEq === 'string') {
|
|
68
47
|
matchStages.push({
|
|
69
48
|
$match: {
|
|
@@ -71,7 +50,7 @@ class AggregateOfferRepo {
|
|
|
71
50
|
}
|
|
72
51
|
});
|
|
73
52
|
}
|
|
74
|
-
const identifierIn =
|
|
53
|
+
const identifierIn = params.identifier?.$in;
|
|
75
54
|
if (Array.isArray(identifierIn)) {
|
|
76
55
|
matchStages.push({
|
|
77
56
|
$match: {
|
|
@@ -79,7 +58,7 @@ class AggregateOfferRepo {
|
|
|
79
58
|
}
|
|
80
59
|
});
|
|
81
60
|
}
|
|
82
|
-
const identifierRegex =
|
|
61
|
+
const identifierRegex = params.identifier?.$regex;
|
|
83
62
|
if (typeof identifierRegex === 'string' && identifierRegex.length > 0) {
|
|
84
63
|
matchStages.push({
|
|
85
64
|
$match: {
|
|
@@ -87,7 +66,7 @@ class AggregateOfferRepo {
|
|
|
87
66
|
}
|
|
88
67
|
});
|
|
89
68
|
}
|
|
90
|
-
const nameRegex =
|
|
69
|
+
const nameRegex = params.name?.$regex;
|
|
91
70
|
if (typeof nameRegex === 'string' && nameRegex.length > 0) {
|
|
92
71
|
const nameRegexExp = new RegExp(nameRegex);
|
|
93
72
|
matchStages.push({
|
|
@@ -101,7 +80,7 @@ class AggregateOfferRepo {
|
|
|
101
80
|
}
|
|
102
81
|
});
|
|
103
82
|
}
|
|
104
|
-
const itemOfferedTypeOfEq =
|
|
83
|
+
const itemOfferedTypeOfEq = params.itemOffered?.typeOf?.$eq;
|
|
105
84
|
if (typeof itemOfferedTypeOfEq === 'string') {
|
|
106
85
|
matchStages.push({
|
|
107
86
|
$match: {
|
|
@@ -109,7 +88,7 @@ class AggregateOfferRepo {
|
|
|
109
88
|
}
|
|
110
89
|
});
|
|
111
90
|
}
|
|
112
|
-
const categoryCodeValueIn =
|
|
91
|
+
const categoryCodeValueIn = params.category?.codeValue?.$in;
|
|
113
92
|
if (Array.isArray(categoryCodeValueIn)) {
|
|
114
93
|
matchStages.push({
|
|
115
94
|
$match: {
|
|
@@ -117,7 +96,7 @@ class AggregateOfferRepo {
|
|
|
117
96
|
}
|
|
118
97
|
});
|
|
119
98
|
}
|
|
120
|
-
const eligibleMembershipTypeCodeValueEq =
|
|
99
|
+
const eligibleMembershipTypeCodeValueEq = params.eligibleMembershipType?.codeValue?.$eq;
|
|
121
100
|
if (typeof eligibleMembershipTypeCodeValueEq === 'string') {
|
|
122
101
|
matchStages.push({
|
|
123
102
|
$match: {
|
|
@@ -128,7 +107,7 @@ class AggregateOfferRepo {
|
|
|
128
107
|
}
|
|
129
108
|
});
|
|
130
109
|
}
|
|
131
|
-
const eligibleMonetaryAmountCurrencyEq =
|
|
110
|
+
const eligibleMonetaryAmountCurrencyEq = params.eligibleMonetaryAmount?.currency?.$eq;
|
|
132
111
|
if (typeof eligibleMonetaryAmountCurrencyEq === 'string') {
|
|
133
112
|
matchStages.push({
|
|
134
113
|
$match: {
|
|
@@ -139,7 +118,7 @@ class AggregateOfferRepo {
|
|
|
139
118
|
}
|
|
140
119
|
});
|
|
141
120
|
}
|
|
142
|
-
const eligibleSeatingTypeCodeValueEq =
|
|
121
|
+
const eligibleSeatingTypeCodeValueEq = params.eligibleSeatingType?.codeValue?.$eq;
|
|
143
122
|
if (typeof eligibleSeatingTypeCodeValueEq === 'string') {
|
|
144
123
|
matchStages.push({
|
|
145
124
|
$match: {
|
|
@@ -150,13 +129,13 @@ class AggregateOfferRepo {
|
|
|
150
129
|
}
|
|
151
130
|
});
|
|
152
131
|
}
|
|
153
|
-
const appliesToMovieTicketSize =
|
|
132
|
+
const appliesToMovieTicketSize = params.priceSpecification?.appliesToMovieTicket?.$size;
|
|
154
133
|
if (typeof appliesToMovieTicketSize === 'number') {
|
|
155
134
|
matchStages.push({
|
|
156
135
|
$match: { 'offers.priceSpecification.appliesToMovieTicket': { $exists: true, $size: appliesToMovieTicketSize } }
|
|
157
136
|
});
|
|
158
137
|
}
|
|
159
|
-
const appliesToMovieTicketServiceTypeExist =
|
|
138
|
+
const appliesToMovieTicketServiceTypeExist = params.priceSpecification?.appliesToMovieTicket?.serviceType?.$exists;
|
|
160
139
|
if (typeof appliesToMovieTicketServiceTypeExist === 'boolean') {
|
|
161
140
|
matchStages.push({
|
|
162
141
|
$match: {
|
|
@@ -166,7 +145,7 @@ class AggregateOfferRepo {
|
|
|
166
145
|
}
|
|
167
146
|
});
|
|
168
147
|
}
|
|
169
|
-
const appliesToMovieTicketServiceTypeEq =
|
|
148
|
+
const appliesToMovieTicketServiceTypeEq = params.priceSpecification?.appliesToMovieTicket?.serviceType?.$eq;
|
|
170
149
|
if (typeof appliesToMovieTicketServiceTypeEq === 'string') {
|
|
171
150
|
matchStages.push({
|
|
172
151
|
$match: {
|
|
@@ -177,7 +156,7 @@ class AggregateOfferRepo {
|
|
|
177
156
|
}
|
|
178
157
|
});
|
|
179
158
|
}
|
|
180
|
-
const appliesToMovieTicketServiceOutputTypeOfEq =
|
|
159
|
+
const appliesToMovieTicketServiceOutputTypeOfEq = params.priceSpecification?.appliesToMovieTicket?.serviceOutput?.typeOf?.$eq;
|
|
181
160
|
if (typeof appliesToMovieTicketServiceOutputTypeOfEq === 'string') {
|
|
182
161
|
matchStages.push({
|
|
183
162
|
$match: {
|
|
@@ -188,7 +167,7 @@ class AggregateOfferRepo {
|
|
|
188
167
|
}
|
|
189
168
|
});
|
|
190
169
|
}
|
|
191
|
-
const appliesToMovieTicketServiceOutputTypeOfAll =
|
|
170
|
+
const appliesToMovieTicketServiceOutputTypeOfAll = params.priceSpecification?.appliesToMovieTicket?.serviceOutput?.typeOf?.$all;
|
|
192
171
|
if (Array.isArray(appliesToMovieTicketServiceOutputTypeOfAll)) {
|
|
193
172
|
matchStages.push({
|
|
194
173
|
$match: {
|
|
@@ -199,7 +178,7 @@ class AggregateOfferRepo {
|
|
|
199
178
|
}
|
|
200
179
|
});
|
|
201
180
|
}
|
|
202
|
-
const appliesToMovieTicketServiceOutputTypeOfNin =
|
|
181
|
+
const appliesToMovieTicketServiceOutputTypeOfNin = params.priceSpecification?.appliesToMovieTicket?.serviceOutput?.typeOf?.$nin;
|
|
203
182
|
if (Array.isArray(appliesToMovieTicketServiceOutputTypeOfNin)) {
|
|
204
183
|
matchStages.push({
|
|
205
184
|
$match: {
|
|
@@ -210,7 +189,7 @@ class AggregateOfferRepo {
|
|
|
210
189
|
});
|
|
211
190
|
}
|
|
212
191
|
if (params.priceSpecification !== undefined && params.priceSpecification !== null) {
|
|
213
|
-
const priceSpecificationPriceGte =
|
|
192
|
+
const priceSpecificationPriceGte = params.priceSpecification.price?.$gte;
|
|
214
193
|
if (typeof priceSpecificationPriceGte === 'number') {
|
|
215
194
|
matchStages.push({
|
|
216
195
|
$match: {
|
|
@@ -221,7 +200,7 @@ class AggregateOfferRepo {
|
|
|
221
200
|
}
|
|
222
201
|
});
|
|
223
202
|
}
|
|
224
|
-
const priceSpecificationPriceLte =
|
|
203
|
+
const priceSpecificationPriceLte = params.priceSpecification.price?.$lte;
|
|
225
204
|
if (typeof priceSpecificationPriceLte === 'number') {
|
|
226
205
|
matchStages.push({
|
|
227
206
|
$match: {
|
|
@@ -232,7 +211,7 @@ class AggregateOfferRepo {
|
|
|
232
211
|
}
|
|
233
212
|
});
|
|
234
213
|
}
|
|
235
|
-
const accountsReceivableGte =
|
|
214
|
+
const accountsReceivableGte = params.priceSpecification.accounting?.accountsReceivable?.$gte;
|
|
236
215
|
if (typeof accountsReceivableGte === 'number') {
|
|
237
216
|
matchStages.push({
|
|
238
217
|
$match: {
|
|
@@ -243,7 +222,7 @@ class AggregateOfferRepo {
|
|
|
243
222
|
}
|
|
244
223
|
});
|
|
245
224
|
}
|
|
246
|
-
const accountsReceivableLte =
|
|
225
|
+
const accountsReceivableLte = params.priceSpecification.accounting?.accountsReceivable?.$lte;
|
|
247
226
|
if (typeof accountsReceivableLte === 'number') {
|
|
248
227
|
matchStages.push({
|
|
249
228
|
$match: {
|
|
@@ -254,7 +233,7 @@ class AggregateOfferRepo {
|
|
|
254
233
|
}
|
|
255
234
|
});
|
|
256
235
|
}
|
|
257
|
-
const accountingCodeValueEq =
|
|
236
|
+
const accountingCodeValueEq = params.priceSpecification.accounting?.operatingRevenue?.codeValue?.$eq;
|
|
258
237
|
if (typeof accountingCodeValueEq === 'string') {
|
|
259
238
|
matchStages.push({
|
|
260
239
|
$match: {
|
|
@@ -265,7 +244,7 @@ class AggregateOfferRepo {
|
|
|
265
244
|
}
|
|
266
245
|
});
|
|
267
246
|
}
|
|
268
|
-
const accountingCodeValueIn =
|
|
247
|
+
const accountingCodeValueIn = params.priceSpecification.accounting?.operatingRevenue?.codeValue?.$in;
|
|
269
248
|
if (Array.isArray(accountingCodeValueIn)) {
|
|
270
249
|
matchStages.push({
|
|
271
250
|
$match: {
|
|
@@ -276,7 +255,7 @@ class AggregateOfferRepo {
|
|
|
276
255
|
}
|
|
277
256
|
});
|
|
278
257
|
}
|
|
279
|
-
const referenceQuantityValueEq =
|
|
258
|
+
const referenceQuantityValueEq = params.priceSpecification.referenceQuantity?.value?.$eq;
|
|
280
259
|
if (typeof referenceQuantityValueEq === 'number') {
|
|
281
260
|
matchStages.push({
|
|
282
261
|
$match: {
|
|
@@ -288,7 +267,7 @@ class AggregateOfferRepo {
|
|
|
288
267
|
});
|
|
289
268
|
}
|
|
290
269
|
}
|
|
291
|
-
const availabilityEq =
|
|
270
|
+
const availabilityEq = params.availability?.$eq;
|
|
292
271
|
if (typeof availabilityEq === 'string') {
|
|
293
272
|
matchStages.push({
|
|
294
273
|
$match: {
|
|
@@ -296,7 +275,7 @@ class AggregateOfferRepo {
|
|
|
296
275
|
}
|
|
297
276
|
});
|
|
298
277
|
}
|
|
299
|
-
const availableAtOrFromIdEq =
|
|
278
|
+
const availableAtOrFromIdEq = params.availableAtOrFrom?.id?.$eq;
|
|
300
279
|
if (typeof availableAtOrFromIdEq === 'string') {
|
|
301
280
|
matchStages.push({
|
|
302
281
|
$match: {
|
|
@@ -307,7 +286,7 @@ class AggregateOfferRepo {
|
|
|
307
286
|
}
|
|
308
287
|
});
|
|
309
288
|
}
|
|
310
|
-
const availableAtOrFromIdIn =
|
|
289
|
+
const availableAtOrFromIdIn = params.availableAtOrFrom?.id?.$in;
|
|
311
290
|
if (Array.isArray(availableAtOrFromIdIn)) {
|
|
312
291
|
matchStages.push({
|
|
313
292
|
$match: {
|
|
@@ -318,7 +297,7 @@ class AggregateOfferRepo {
|
|
|
318
297
|
}
|
|
319
298
|
});
|
|
320
299
|
}
|
|
321
|
-
const addOnItemOfferedIdEq =
|
|
300
|
+
const addOnItemOfferedIdEq = params.addOn?.itemOffered?.id?.$eq;
|
|
322
301
|
if (typeof addOnItemOfferedIdEq === 'string') {
|
|
323
302
|
matchStages.push({
|
|
324
303
|
$match: {
|
|
@@ -326,7 +305,7 @@ class AggregateOfferRepo {
|
|
|
326
305
|
}
|
|
327
306
|
});
|
|
328
307
|
}
|
|
329
|
-
const addOnItemOfferedIdIn =
|
|
308
|
+
const addOnItemOfferedIdIn = params.addOn?.itemOffered?.id?.$in;
|
|
330
309
|
if (Array.isArray(addOnItemOfferedIdIn)) {
|
|
331
310
|
matchStages.push({
|
|
332
311
|
$match: {
|
|
@@ -334,7 +313,7 @@ class AggregateOfferRepo {
|
|
|
334
313
|
}
|
|
335
314
|
});
|
|
336
315
|
}
|
|
337
|
-
const hasMerchantReturnPolicyIdEq =
|
|
316
|
+
const hasMerchantReturnPolicyIdEq = params.hasMerchantReturnPolicy?.id?.$eq;
|
|
338
317
|
if (typeof hasMerchantReturnPolicyIdEq === 'string') {
|
|
339
318
|
matchStages.push({
|
|
340
319
|
$match: {
|
|
@@ -345,7 +324,7 @@ class AggregateOfferRepo {
|
|
|
345
324
|
}
|
|
346
325
|
});
|
|
347
326
|
}
|
|
348
|
-
const acceptedPaymentMethodIdentifierIn =
|
|
327
|
+
const acceptedPaymentMethodIdentifierIn = params.acceptedPaymentMethod?.identifier?.$in;
|
|
349
328
|
if (Array.isArray(acceptedPaymentMethodIdentifierIn)) {
|
|
350
329
|
matchStages.push({
|
|
351
330
|
$match: {
|
|
@@ -356,7 +335,7 @@ class AggregateOfferRepo {
|
|
|
356
335
|
}
|
|
357
336
|
});
|
|
358
337
|
}
|
|
359
|
-
const additionalPropertyAll =
|
|
338
|
+
const additionalPropertyAll = params.additionalProperty?.$all;
|
|
360
339
|
if (Array.isArray(additionalPropertyAll)) {
|
|
361
340
|
matchStages.push({
|
|
362
341
|
$match: {
|
|
@@ -367,7 +346,7 @@ class AggregateOfferRepo {
|
|
|
367
346
|
}
|
|
368
347
|
});
|
|
369
348
|
}
|
|
370
|
-
const additionalPropertyElemMatch =
|
|
349
|
+
const additionalPropertyElemMatch = params.additionalProperty?.$elemMatch;
|
|
371
350
|
if (additionalPropertyElemMatch !== undefined && additionalPropertyElemMatch !== null) {
|
|
372
351
|
matchStages.push({
|
|
373
352
|
$match: {
|
|
@@ -397,7 +376,7 @@ class AggregateOfferRepo {
|
|
|
397
376
|
});
|
|
398
377
|
}
|
|
399
378
|
// add advanceBookingRequirement.id.$eq(2025-04-08~)
|
|
400
|
-
const advanceBookingRequirementIdEq =
|
|
379
|
+
const advanceBookingRequirementIdEq = params.advanceBookingRequirement?.id?.$eq;
|
|
401
380
|
if (typeof advanceBookingRequirementIdEq === 'string') {
|
|
402
381
|
matchStages.push({ $match: { 'offers.advanceBookingRequirement.id': { $exists: true, $eq: advanceBookingRequirementIdEq } } });
|
|
403
382
|
}
|
|
@@ -438,105 +417,100 @@ class AggregateOfferRepo {
|
|
|
438
417
|
else if (negativeProjectionFields.length > 0) {
|
|
439
418
|
negativeProjectionFields.forEach((field) => {
|
|
440
419
|
if (typeof projectStage[field] === 'string') {
|
|
441
|
-
// tslint:disable-next-line:no-dynamic-delete
|
|
442
420
|
delete projectStage[field];
|
|
443
421
|
}
|
|
444
422
|
});
|
|
445
423
|
}
|
|
446
424
|
return projectStage;
|
|
447
425
|
}
|
|
448
|
-
search(params, projection) {
|
|
449
|
-
|
|
450
|
-
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
$sort: Object.assign(Object.assign({}, (typeof sortByPrice === 'number')
|
|
426
|
+
async search(params, projection) {
|
|
427
|
+
const matchStages = AggregateOfferRepo.CREATE_MATCH_STAGE(params);
|
|
428
|
+
const projectStage = AggregateOfferRepo.CREATE_AGGREGATE_OFFERS_PROJECTION({ ...projection });
|
|
429
|
+
const sortByPrice = params.sort?.['priceSpecification.price'];
|
|
430
|
+
const sortByIdentifier = params.sort?.identifier;
|
|
431
|
+
const aggregate = this.aggregateOfferModel.aggregate([
|
|
432
|
+
...matchStages,
|
|
433
|
+
...(typeof sortByPrice === 'number' || typeof sortByIdentifier === 'number')
|
|
434
|
+
? [
|
|
435
|
+
{
|
|
436
|
+
$sort: {
|
|
437
|
+
...(typeof sortByPrice === 'number')
|
|
461
438
|
? { 'offers.priceSpecification.price': sortByPrice }
|
|
462
|
-
: undefined
|
|
439
|
+
: undefined,
|
|
440
|
+
...(typeof sortByIdentifier === 'number')
|
|
463
441
|
? { 'offers.identifier': sortByIdentifier }
|
|
464
|
-
: undefined
|
|
442
|
+
: undefined
|
|
465
443
|
}
|
|
466
|
-
]
|
|
467
|
-
: [],
|
|
468
|
-
{ $project: projectStage }
|
|
469
|
-
]);
|
|
470
|
-
// tslint:disable-next-line:no-single-line-block-comment
|
|
471
|
-
/* istanbul ignore else */
|
|
472
|
-
if (typeof params.limit === 'number' && params.limit > 0) {
|
|
473
|
-
const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
|
|
474
|
-
aggregate.limit(params.limit * page)
|
|
475
|
-
.skip(params.limit * (page - 1));
|
|
476
|
-
}
|
|
477
|
-
return aggregate.exec();
|
|
478
|
-
});
|
|
479
|
-
}
|
|
480
|
-
pushIncludedInDataCatalog(params) {
|
|
481
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
482
|
-
if (!Array.isArray(params.id.$in) || params.id.$in.length === 0) {
|
|
483
|
-
return;
|
|
484
|
-
}
|
|
485
|
-
const pushIncludedInDataCatalogIds = params.$push.includedInDataCatalog.$each.map((element) => element.id);
|
|
486
|
-
if (pushIncludedInDataCatalogIds.length === 0) {
|
|
487
|
-
return;
|
|
488
|
-
}
|
|
489
|
-
const newIncludedInDataCatalogs = pushIncludedInDataCatalogIds.map((catalogId) => {
|
|
490
|
-
return {
|
|
491
|
-
id: catalogId,
|
|
492
|
-
typeOf: 'OfferCatalog'
|
|
493
|
-
};
|
|
494
|
-
});
|
|
495
|
-
const result = yield this.aggregateOfferModel.updateMany({
|
|
496
|
-
'project.id': { $eq: params.project.id },
|
|
497
|
-
_id: { $in: params.id.$in },
|
|
498
|
-
// includedInDataCatalogのユニークネスを保証する
|
|
499
|
-
'includedInDataCatalog.id': { $nin: pushIncludedInDataCatalogIds }
|
|
500
|
-
},
|
|
501
|
-
// { $addToSet: { includedInDataCatalog: { $each: newIncludedInDataCatalogs } } }
|
|
502
|
-
{
|
|
503
|
-
$push: {
|
|
504
|
-
includedInDataCatalog: {
|
|
505
|
-
$each: newIncludedInDataCatalogs
|
|
506
|
-
// $slice: params.$push.includedInDataCatalog.$slice
|
|
507
444
|
}
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
445
|
+
]
|
|
446
|
+
: [],
|
|
447
|
+
{ $project: projectStage }
|
|
448
|
+
]);
|
|
449
|
+
/* istanbul ignore else */
|
|
450
|
+
if (typeof params.limit === 'number' && params.limit > 0) {
|
|
451
|
+
const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
|
|
452
|
+
aggregate.limit(params.limit * page)
|
|
453
|
+
.skip(params.limit * (page - 1));
|
|
454
|
+
}
|
|
455
|
+
return aggregate.exec();
|
|
456
|
+
}
|
|
457
|
+
async pushIncludedInDataCatalog(params) {
|
|
458
|
+
if (!Array.isArray(params.id.$in) || params.id.$in.length === 0) {
|
|
459
|
+
return;
|
|
460
|
+
}
|
|
461
|
+
const pushIncludedInDataCatalogIds = params.$push.includedInDataCatalog.$each.map((element) => element.id);
|
|
462
|
+
if (pushIncludedInDataCatalogIds.length === 0) {
|
|
463
|
+
return;
|
|
464
|
+
}
|
|
465
|
+
const newIncludedInDataCatalogs = pushIncludedInDataCatalogIds.map((catalogId) => {
|
|
466
|
+
return {
|
|
467
|
+
id: catalogId,
|
|
468
|
+
typeOf: 'OfferCatalog'
|
|
469
|
+
};
|
|
512
470
|
});
|
|
471
|
+
const result = await this.aggregateOfferModel.updateMany({
|
|
472
|
+
'project.id': { $eq: params.project.id },
|
|
473
|
+
_id: { $in: params.id.$in },
|
|
474
|
+
// includedInDataCatalogのユニークネスを保証する
|
|
475
|
+
'includedInDataCatalog.id': { $nin: pushIncludedInDataCatalogIds }
|
|
476
|
+
},
|
|
477
|
+
// { $addToSet: { includedInDataCatalog: { $each: newIncludedInDataCatalogs } } }
|
|
478
|
+
{
|
|
479
|
+
$push: {
|
|
480
|
+
includedInDataCatalog: {
|
|
481
|
+
$each: newIncludedInDataCatalogs
|
|
482
|
+
// $slice: params.$push.includedInDataCatalog.$slice
|
|
483
|
+
}
|
|
484
|
+
}
|
|
485
|
+
})
|
|
486
|
+
.exec();
|
|
487
|
+
debug('result', result);
|
|
513
488
|
}
|
|
514
489
|
/**
|
|
515
490
|
* 記載カタログからカタログを除外する
|
|
516
491
|
*/
|
|
517
|
-
pullIncludedInDataCatalog(params) {
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
492
|
+
async pullIncludedInDataCatalog(params) {
|
|
493
|
+
const idNin = params.id?.$nin;
|
|
494
|
+
const pullingCatalogId = params.$pull.includedInDataCatalog.$elemMatch.id.$eq;
|
|
495
|
+
await this.aggregateOfferModel.updateMany({
|
|
496
|
+
'project.id': { $eq: params.project.id },
|
|
497
|
+
'includedInDataCatalog.id': { $exists: true, $eq: pullingCatalogId },
|
|
498
|
+
...(Array.isArray(idNin)) ? { _id: { $nin: idNin } } : undefined
|
|
499
|
+
}, {
|
|
500
|
+
$pull: {
|
|
501
|
+
includedInDataCatalog: {
|
|
502
|
+
id: { $eq: pullingCatalogId }
|
|
527
503
|
}
|
|
528
|
-
}
|
|
529
|
-
|
|
530
|
-
|
|
504
|
+
}
|
|
505
|
+
})
|
|
506
|
+
.exec();
|
|
531
507
|
}
|
|
532
|
-
deleteById(params) {
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
.exec();
|
|
539
|
-
});
|
|
508
|
+
async deleteById(params) {
|
|
509
|
+
await this.aggregateOfferModel.findOneAndDelete({
|
|
510
|
+
_id: { $eq: params.id },
|
|
511
|
+
'project.id': { $eq: params.project.id }
|
|
512
|
+
}, { projection: { _id: 1 } })
|
|
513
|
+
.exec();
|
|
540
514
|
}
|
|
541
515
|
// 単価オファー最適化作業における一時的な処理
|
|
542
516
|
// public async optimizeOffers() {
|
|
@@ -562,322 +536,310 @@ class AggregateOfferRepo {
|
|
|
562
536
|
.sort({ 'offers.identifier': factory.sortType.Ascending })
|
|
563
537
|
.cursor();
|
|
564
538
|
}
|
|
565
|
-
unsetUnnecessaryFields(params) {
|
|
566
|
-
return
|
|
567
|
-
|
|
568
|
-
.exec();
|
|
569
|
-
});
|
|
539
|
+
async unsetUnnecessaryFields(params) {
|
|
540
|
+
return this.aggregateOfferModel.updateMany(params.filter, { $unset: params.$unset }, { timestamps: false })
|
|
541
|
+
.exec();
|
|
570
542
|
}
|
|
571
|
-
save(params) {
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
543
|
+
async save(params) {
|
|
544
|
+
let doc;
|
|
545
|
+
let aggregateOfferId;
|
|
546
|
+
// const { $unset, ...paramsWithoutUnset } = params;
|
|
547
|
+
const { ...paramsWithoutUnset } = params;
|
|
548
|
+
// let savedUnitPriceOffer: factory.unitPriceOffer.IUnitPriceOffer;
|
|
549
|
+
if (typeof params.id !== 'string' || params.id.length === 0) {
|
|
550
|
+
const uniqid = await Promise.resolve().then(() => require('uniqid'));
|
|
551
|
+
const newId = uniqid();
|
|
552
|
+
aggregateOfferId = newId;
|
|
553
|
+
// サブオファー最適化(2023-12-22~)
|
|
554
|
+
// savedUnitPriceOffer = { ...paramsWithoutUnset, id };
|
|
555
|
+
const { id, project, ...savedUnitPriceOffer } = paramsWithoutUnset;
|
|
556
|
+
const aggregateOffer = {
|
|
557
|
+
typeOf: factory.offerType.AggregateOffer,
|
|
558
|
+
project: params.project,
|
|
559
|
+
offers: [savedUnitPriceOffer]
|
|
560
|
+
};
|
|
561
|
+
doc = await this.aggregateOfferModel.create({
|
|
562
|
+
...aggregateOffer,
|
|
563
|
+
_id: newId
|
|
564
|
+
});
|
|
565
|
+
}
|
|
566
|
+
else {
|
|
567
|
+
aggregateOfferId = params.id;
|
|
568
|
+
// const unitPriceOffers = <Pick<factory.unitPriceOffer.IUnitPriceOffer, 'id' | 'identifier' | 'project' | 'typeOf'>[]>
|
|
569
|
+
// await this.search(
|
|
570
|
+
// {
|
|
571
|
+
// limit: 1,
|
|
572
|
+
// page: 1,
|
|
573
|
+
// project: { id: { $eq: params.project.id } },
|
|
574
|
+
// id: { $eq: params.id }
|
|
575
|
+
// },
|
|
576
|
+
// { identifier: 1, project: 1, typeOf: 1 }
|
|
577
|
+
// );
|
|
578
|
+
// const originalUnitPriceOffer = unitPriceOffers.shift();
|
|
579
|
+
const aggregateOffers = await this.search({
|
|
580
|
+
limit: 1,
|
|
581
|
+
page: 1,
|
|
582
|
+
project: { id: { $eq: params.project.id } },
|
|
583
|
+
id: { $eq: params.id }
|
|
584
|
+
});
|
|
585
|
+
const originalUnitPriceOffer = aggregateOffers.shift()?.offers
|
|
586
|
+
.shift();
|
|
587
|
+
if (originalUnitPriceOffer === undefined) {
|
|
588
|
+
throw new factory.errors.NotFound(factory.offerType.Offer);
|
|
592
589
|
}
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
//
|
|
599
|
-
|
|
600
|
-
//
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
|
|
604
|
-
|
|
605
|
-
|
|
606
|
-
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
id: { $eq: params.id }
|
|
611
|
-
});
|
|
612
|
-
const originalUnitPriceOffer = (_a = aggregateOffers.shift()) === null || _a === void 0 ? void 0 : _a.offers.shift();
|
|
613
|
-
if (originalUnitPriceOffer === undefined) {
|
|
614
|
-
throw new factory.errors.NotFound(factory.offerType.Offer);
|
|
590
|
+
// 上書き禁止属性を除外
|
|
591
|
+
const { id, identifier, project, typeOf, ...updateFields } = paramsWithoutUnset;
|
|
592
|
+
// サブオファー最適化(2023-12-22~)
|
|
593
|
+
const subOffer = {
|
|
594
|
+
...updateFields,
|
|
595
|
+
// id: originalUnitPriceOffer.id,
|
|
596
|
+
identifier: originalUnitPriceOffer.identifier,
|
|
597
|
+
// project: originalUnitPriceOffer.project,
|
|
598
|
+
typeOf: originalUnitPriceOffer.typeOf
|
|
599
|
+
};
|
|
600
|
+
doc = await this.aggregateOfferModel.findOneAndUpdate(
|
|
601
|
+
// { 'offers.id': params.id },
|
|
602
|
+
{ _id: params.id }, // _idに変更(2023-12-22~)
|
|
603
|
+
{
|
|
604
|
+
$set: {
|
|
605
|
+
// 'offers.$[offer]': savedUnitPriceOffer
|
|
606
|
+
'offers.0': subOffer // _idに変更(2023-12-22~)
|
|
615
607
|
}
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
627
|
-
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
'offers.0': subOffer // _idに変更(2023-12-22~)
|
|
631
|
-
}
|
|
632
|
-
}, {
|
|
633
|
-
upsert: false,
|
|
634
|
-
new: true
|
|
635
|
-
// _idに変更(2023-12-22~)
|
|
636
|
-
// arrayFilters: [
|
|
637
|
-
// { 'offer.id': { $eq: params.id } }
|
|
638
|
-
// ]
|
|
639
|
-
})
|
|
640
|
-
.exec();
|
|
641
|
-
}
|
|
642
|
-
if (doc === null) {
|
|
643
|
-
throw new factory.errors.NotFound(this.aggregateOfferModel.modelName);
|
|
644
|
-
}
|
|
645
|
-
return { id: aggregateOfferId };
|
|
646
|
-
});
|
|
608
|
+
}, {
|
|
609
|
+
upsert: false,
|
|
610
|
+
new: true
|
|
611
|
+
// _idに変更(2023-12-22~)
|
|
612
|
+
// arrayFilters: [
|
|
613
|
+
// { 'offer.id': { $eq: params.id } }
|
|
614
|
+
// ]
|
|
615
|
+
})
|
|
616
|
+
.exec();
|
|
617
|
+
}
|
|
618
|
+
if (doc === null) {
|
|
619
|
+
throw new factory.errors.NotFound(this.aggregateOfferModel.modelName);
|
|
620
|
+
}
|
|
621
|
+
return { id: aggregateOfferId };
|
|
647
622
|
}
|
|
648
623
|
/**
|
|
649
624
|
* コードをキーにして冪等置換(2023-12-13~)
|
|
650
625
|
*/
|
|
651
|
-
upsertByIdentifier(params, options) {
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
}
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
'offers.identifier': { $exists: true, $eq: p.identifier },
|
|
674
|
-
'offers.itemOffered.typeOf': { $eq: productType } // プロダクトタイプを変更させないためにフィルター追加(2026-01-30~)
|
|
675
|
-
});
|
|
676
|
-
const newOfferId = uniqid(); // setOnInsert時のみに利用する新ID
|
|
677
|
-
// サブオファー最適化(2023-12-22~)
|
|
678
|
-
const { project } = p, subOffer = __rest(p, ["project"]);
|
|
679
|
-
const aggregateOffer = {
|
|
680
|
-
project: p.project,
|
|
681
|
-
typeOf: factory.offerType.AggregateOffer,
|
|
682
|
-
offers: [subOffer]
|
|
683
|
-
};
|
|
684
|
-
const setOnInsert = {
|
|
685
|
-
project: aggregateOffer.project,
|
|
686
|
-
typeOf: aggregateOffer.typeOf,
|
|
687
|
-
_id: newOfferId
|
|
688
|
-
};
|
|
689
|
-
const updateFilter = {
|
|
690
|
-
$setOnInsert: setOnInsert,
|
|
691
|
-
$set: { offers: aggregateOffer.offers }
|
|
692
|
-
};
|
|
693
|
-
const updateOneOnInsert = {
|
|
694
|
-
filter,
|
|
695
|
-
update: updateFilter,
|
|
696
|
-
upsert: true
|
|
697
|
-
};
|
|
698
|
-
insertBulkWriteOps.push({ updateOne: updateOneOnInsert });
|
|
626
|
+
async upsertByIdentifier(params, options) {
|
|
627
|
+
const { productType } = options;
|
|
628
|
+
const uniqid = await Promise.resolve().then(() => require('uniqid'));
|
|
629
|
+
const insertBulkWriteOps = [];
|
|
630
|
+
// const updateBulkWriteOps: AnyBulkWriteOperation<factory.aggregateOffer.IAggregateOffer>[] = [];
|
|
631
|
+
const queryFilters = [];
|
|
632
|
+
if (Array.isArray(params)) {
|
|
633
|
+
params.forEach((p) => {
|
|
634
|
+
// 指定されたproductTypeを強制する
|
|
635
|
+
if (p.itemOffered?.typeOf !== productType) {
|
|
636
|
+
throw new factory.errors.Argument('itemOffered.typeOf', `not matched with productType: ${productType}`);
|
|
637
|
+
}
|
|
638
|
+
// リソースのユニークネスを保証するfilter
|
|
639
|
+
const filter = {
|
|
640
|
+
'project.id': { $eq: p.project.id },
|
|
641
|
+
'offers.identifier': { $exists: true, $eq: p.identifier },
|
|
642
|
+
'offers.itemOffered.typeOf': { $eq: productType } // プロダクトタイプを変更させないためにフィルター追加(2026-01-30~)
|
|
643
|
+
};
|
|
644
|
+
queryFilters.push({
|
|
645
|
+
'project.id': { $eq: p.project.id },
|
|
646
|
+
'offers.identifier': { $exists: true, $eq: p.identifier },
|
|
647
|
+
'offers.itemOffered.typeOf': { $eq: productType } // プロダクトタイプを変更させないためにフィルター追加(2026-01-30~)
|
|
699
648
|
});
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
const
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
|
|
707
|
-
|
|
708
|
-
|
|
709
|
-
|
|
710
|
-
|
|
711
|
-
|
|
649
|
+
const newOfferId = uniqid(); // setOnInsert時のみに利用する新ID
|
|
650
|
+
// サブオファー最適化(2023-12-22~)
|
|
651
|
+
const { project, ...subOffer } = p;
|
|
652
|
+
const aggregateOffer = {
|
|
653
|
+
project: p.project,
|
|
654
|
+
typeOf: factory.offerType.AggregateOffer,
|
|
655
|
+
offers: [subOffer]
|
|
656
|
+
};
|
|
657
|
+
const setOnInsert = {
|
|
658
|
+
project: aggregateOffer.project,
|
|
659
|
+
typeOf: aggregateOffer.typeOf,
|
|
660
|
+
_id: newOfferId
|
|
661
|
+
};
|
|
662
|
+
const updateFilter = {
|
|
663
|
+
$setOnInsert: setOnInsert,
|
|
664
|
+
$set: { offers: aggregateOffer.offers }
|
|
665
|
+
};
|
|
666
|
+
const updateOneOnInsert = {
|
|
667
|
+
filter,
|
|
668
|
+
update: updateFilter,
|
|
669
|
+
upsert: true
|
|
670
|
+
};
|
|
671
|
+
insertBulkWriteOps.push({ updateOne: updateOneOnInsert });
|
|
672
|
+
});
|
|
673
|
+
}
|
|
674
|
+
if (insertBulkWriteOps.length > 0) {
|
|
675
|
+
const bulkWriteResult = await this.aggregateOfferModel.bulkWrite(insertBulkWriteOps, { ordered: false });
|
|
676
|
+
// modifiedの場合upsertedIdsに含まれないので、idを検索する
|
|
677
|
+
const modifiedOffers = await this.aggregateOfferModel.find({ $or: queryFilters },
|
|
678
|
+
// { _id: 1, 'offers.identifier': 1 }
|
|
679
|
+
{ _id: 0, id: '$_id' })
|
|
680
|
+
.lean() // lean(2024-09-26~)
|
|
681
|
+
.exec();
|
|
682
|
+
return { bulkWriteResult, modifiedOffers };
|
|
683
|
+
}
|
|
712
684
|
}
|
|
713
685
|
/**
|
|
714
686
|
* sskts専用オファー保管
|
|
715
687
|
*/
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
|
|
723
|
-
|
|
724
|
-
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
742
|
-
|
|
743
|
-
typeOf: aggregateOffer.typeOf,
|
|
744
|
-
_id: newOfferId
|
|
745
|
-
},
|
|
746
|
-
$set: { offers: aggregateOffer.offers } // サブオファー最適化(2023-12-22~)
|
|
688
|
+
async saveManyByIdentifier4sskts(params) {
|
|
689
|
+
const uniqid = await Promise.resolve().then(() => require('uniqid'));
|
|
690
|
+
const insertBulkWriteOps = [];
|
|
691
|
+
// const updateBulkWriteOps: AnyBulkWriteOperation[] = [];
|
|
692
|
+
if (Array.isArray(params)) {
|
|
693
|
+
params.forEach((p) => {
|
|
694
|
+
const newOfferId = uniqid();
|
|
695
|
+
// サブオファー最適化(2023-12-22~)
|
|
696
|
+
// const unitPriceOffer: factory.aggregateOffer.ISubOffer = { ...p.attributes, id: newOfferId };
|
|
697
|
+
const subOffer = p.attributes;
|
|
698
|
+
const aggregateOffer = {
|
|
699
|
+
project: { id: p.project.id, typeOf: factory.organizationType.Project },
|
|
700
|
+
typeOf: factory.offerType.AggregateOffer,
|
|
701
|
+
offers: [subOffer]
|
|
702
|
+
};
|
|
703
|
+
insertBulkWriteOps.push({
|
|
704
|
+
updateOne: {
|
|
705
|
+
filter: {
|
|
706
|
+
'project.id': { $eq: p.project.id },
|
|
707
|
+
'offers.identifier': { $exists: true, $eq: p.attributes.identifier }
|
|
708
|
+
},
|
|
709
|
+
update: {
|
|
710
|
+
$setOnInsert: {
|
|
711
|
+
// ...aggregateOffer,
|
|
712
|
+
project: aggregateOffer.project,
|
|
713
|
+
typeOf: aggregateOffer.typeOf,
|
|
714
|
+
_id: newOfferId
|
|
747
715
|
},
|
|
748
|
-
|
|
749
|
-
}
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
// updateOne: {
|
|
753
|
-
// filter: {
|
|
754
|
-
// 'project.id': { $eq: aggregateOffer.project.id },
|
|
755
|
-
// 'offers.identifier': { $exists: true, $eq: subOffer.identifier }
|
|
756
|
-
// },
|
|
757
|
-
// update: {
|
|
758
|
-
// // 特定の属性のみ更新する(IDを上書きできないので)
|
|
759
|
-
// $set: {
|
|
760
|
-
// 'offers.0.name': subOffer.name,
|
|
761
|
-
// 'offers.0.description': subOffer.description,
|
|
762
|
-
// 'offers.0.alternateName': subOffer.alternateName,
|
|
763
|
-
// 'offers.0.priceSpecification': subOffer.priceSpecification,
|
|
764
|
-
// 'offers.0.additionalProperty': subOffer.additionalProperty,
|
|
765
|
-
// ...(Array.isArray(subOffer.eligibleMembershipType))
|
|
766
|
-
// ? { 'offers.0.eligibleMembershipType': subOffer.eligibleMembershipType }
|
|
767
|
-
// : undefined,
|
|
768
|
-
// ...(Array.isArray(subOffer.eligibleMonetaryAmount))
|
|
769
|
-
// ? { 'offers.0.eligibleMonetaryAmount': subOffer.eligibleMonetaryAmount }
|
|
770
|
-
// : undefined
|
|
771
|
-
// },
|
|
772
|
-
// },
|
|
773
|
-
// upsert: false
|
|
774
|
-
// }
|
|
775
|
-
// });
|
|
716
|
+
$set: { offers: aggregateOffer.offers } // サブオファー最適化(2023-12-22~)
|
|
717
|
+
},
|
|
718
|
+
upsert: true
|
|
719
|
+
}
|
|
776
720
|
});
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
//
|
|
781
|
-
|
|
782
|
-
|
|
721
|
+
// updateBulkWriteOps.push({
|
|
722
|
+
// updateOne: {
|
|
723
|
+
// filter: {
|
|
724
|
+
// 'project.id': { $eq: aggregateOffer.project.id },
|
|
725
|
+
// 'offers.identifier': { $exists: true, $eq: subOffer.identifier }
|
|
726
|
+
// },
|
|
727
|
+
// update: {
|
|
728
|
+
// // 特定の属性のみ更新する(IDを上書きできないので)
|
|
729
|
+
// $set: {
|
|
730
|
+
// 'offers.0.name': subOffer.name,
|
|
731
|
+
// 'offers.0.description': subOffer.description,
|
|
732
|
+
// 'offers.0.alternateName': subOffer.alternateName,
|
|
733
|
+
// 'offers.0.priceSpecification': subOffer.priceSpecification,
|
|
734
|
+
// 'offers.0.additionalProperty': subOffer.additionalProperty,
|
|
735
|
+
// ...(Array.isArray(subOffer.eligibleMembershipType))
|
|
736
|
+
// ? { 'offers.0.eligibleMembershipType': subOffer.eligibleMembershipType }
|
|
737
|
+
// : undefined,
|
|
738
|
+
// ...(Array.isArray(subOffer.eligibleMonetaryAmount))
|
|
739
|
+
// ? { 'offers.0.eligibleMonetaryAmount': subOffer.eligibleMonetaryAmount }
|
|
740
|
+
// : undefined
|
|
741
|
+
// },
|
|
742
|
+
// },
|
|
743
|
+
// upsert: false
|
|
744
|
+
// }
|
|
745
|
+
// });
|
|
746
|
+
});
|
|
747
|
+
}
|
|
748
|
+
if (insertBulkWriteOps.length > 0) {
|
|
749
|
+
await this.aggregateOfferModel.bulkWrite(insertBulkWriteOps, { ordered: false });
|
|
750
|
+
// await this.aggregateOfferModel.bulkWrite(updateBulkWriteOps, { ordered: false });
|
|
751
|
+
}
|
|
783
752
|
}
|
|
784
753
|
/**
|
|
785
754
|
* プロダクトIDからアドオンを除外する
|
|
786
755
|
*/
|
|
787
|
-
pullAddOns(params) {
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
|
|
793
|
-
|
|
794
|
-
|
|
795
|
-
|
|
796
|
-
|
|
797
|
-
|
|
798
|
-
|
|
799
|
-
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
|
|
803
|
-
|
|
804
|
-
|
|
805
|
-
'
|
|
806
|
-
'itemOffered.id': { $in: params.addOn.itemOffered.id.$in }
|
|
807
|
-
}
|
|
756
|
+
async pullAddOns(params) {
|
|
757
|
+
if (params.addOn.itemOffered.id.$in.length === 0) {
|
|
758
|
+
return;
|
|
759
|
+
}
|
|
760
|
+
const conditions = {
|
|
761
|
+
'project.id': { $eq: params.project.id },
|
|
762
|
+
'offers.addOn.itemOffered.id': { $exists: true, $in: params.addOn.itemOffered.id.$in }
|
|
763
|
+
};
|
|
764
|
+
// const updatingOffers = <Pick<factory.unitPriceOffer.IUnitPriceOffer, 'id' | 'identifier'>[]>await this.search(
|
|
765
|
+
// {
|
|
766
|
+
// project: { id: { $eq: params.project.id } },
|
|
767
|
+
// addOn: { itemOffered: { id: { $in: params.addOn.itemOffered.id.$in } } }
|
|
768
|
+
// },
|
|
769
|
+
// { identifier: 1 }
|
|
770
|
+
// );
|
|
771
|
+
return this.aggregateOfferModel.updateMany(conditions, {
|
|
772
|
+
$pull: {
|
|
773
|
+
'offers.$[offer].addOn': {
|
|
774
|
+
'itemOffered.id': { $in: params.addOn.itemOffered.id.$in }
|
|
808
775
|
}
|
|
809
|
-
}
|
|
810
|
-
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
776
|
+
}
|
|
777
|
+
}, {
|
|
778
|
+
arrayFilters: [
|
|
779
|
+
{ 'offer.addOn.itemOffered.id': { $exists: true, $in: params.addOn.itemOffered.id.$in } }
|
|
780
|
+
]
|
|
781
|
+
})
|
|
782
|
+
.exec();
|
|
783
|
+
// if (updatingOffers.length > 0) {
|
|
784
|
+
// // no op
|
|
785
|
+
// }
|
|
786
|
+
// return result;
|
|
820
787
|
}
|
|
821
|
-
countIncludedInDataCatalog(params) {
|
|
822
|
-
|
|
823
|
-
|
|
824
|
-
{
|
|
825
|
-
$
|
|
826
|
-
|
|
827
|
-
|
|
828
|
-
|
|
829
|
-
{
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
$
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
else: 0
|
|
837
|
-
}
|
|
788
|
+
async countIncludedInDataCatalog(params) {
|
|
789
|
+
const aggregate = this.aggregateOfferModel.aggregate([
|
|
790
|
+
{
|
|
791
|
+
$match: {
|
|
792
|
+
_id: { $eq: params.id.$eq }
|
|
793
|
+
}
|
|
794
|
+
},
|
|
795
|
+
{
|
|
796
|
+
$project: {
|
|
797
|
+
_id: 0,
|
|
798
|
+
includedInDataCatalogCount: {
|
|
799
|
+
$cond: {
|
|
800
|
+
if: { $isArray: '$includedInDataCatalog' },
|
|
801
|
+
then: { $size: '$includedInDataCatalog' },
|
|
802
|
+
else: 0
|
|
838
803
|
}
|
|
839
804
|
}
|
|
840
805
|
}
|
|
841
|
-
|
|
842
|
-
|
|
843
|
-
|
|
806
|
+
}
|
|
807
|
+
]);
|
|
808
|
+
return aggregate.exec();
|
|
844
809
|
}
|
|
845
|
-
maxIncludedInDataCatalogCount() {
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
852
|
-
|
|
853
|
-
{
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
$
|
|
858
|
-
|
|
859
|
-
|
|
860
|
-
else: 0
|
|
861
|
-
}
|
|
810
|
+
async maxIncludedInDataCatalogCount() {
|
|
811
|
+
const aggregate = this.aggregateOfferModel.aggregate([
|
|
812
|
+
// {
|
|
813
|
+
// $match: {
|
|
814
|
+
// _id: { $eq: params.id.$eq }
|
|
815
|
+
// }
|
|
816
|
+
// },
|
|
817
|
+
{
|
|
818
|
+
$project: {
|
|
819
|
+
_id: 0,
|
|
820
|
+
includedInDataCatalogCount: {
|
|
821
|
+
$cond: {
|
|
822
|
+
if: { $isArray: '$includedInDataCatalog' },
|
|
823
|
+
then: { $size: '$includedInDataCatalog' },
|
|
824
|
+
else: 0
|
|
862
825
|
}
|
|
863
826
|
}
|
|
864
|
-
},
|
|
865
|
-
{
|
|
866
|
-
$group: {
|
|
867
|
-
// tslint:disable-next-line:no-null-keyword
|
|
868
|
-
_id: null,
|
|
869
|
-
maxCount: { $max: '$includedInDataCatalogCount' }
|
|
870
|
-
}
|
|
871
|
-
},
|
|
872
|
-
{
|
|
873
|
-
$project: {
|
|
874
|
-
_id: 0,
|
|
875
|
-
maxCount: '$maxCount'
|
|
876
|
-
}
|
|
877
827
|
}
|
|
878
|
-
|
|
879
|
-
|
|
880
|
-
|
|
828
|
+
},
|
|
829
|
+
{
|
|
830
|
+
$group: {
|
|
831
|
+
_id: null,
|
|
832
|
+
maxCount: { $max: '$includedInDataCatalogCount' }
|
|
833
|
+
}
|
|
834
|
+
},
|
|
835
|
+
{
|
|
836
|
+
$project: {
|
|
837
|
+
_id: 0,
|
|
838
|
+
maxCount: '$maxCount'
|
|
839
|
+
}
|
|
840
|
+
}
|
|
841
|
+
]);
|
|
842
|
+
return aggregate.exec();
|
|
881
843
|
}
|
|
882
844
|
}
|
|
883
845
|
exports.AggregateOfferRepo = AggregateOfferRepo;
|