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