@chevre/domain 21.2.0-alpha.14 → 21.2.0-alpha.141

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.
Files changed (302) hide show
  1. package/example/src/chevre/aggregateEventReservation.ts +1 -1
  2. package/example/src/chevre/aggregation/aggregateSystem.ts +85 -27
  3. package/example/src/chevre/countDelayedTasks.ts +7 -2
  4. package/example/src/chevre/deleteTasksByName.ts +10 -2
  5. package/example/src/chevre/importEventsFromCOA.ts +3 -4
  6. package/example/src/chevre/lockStockHolder.ts +5 -2
  7. package/example/src/chevre/migrateOrderAdditionalProperties.ts +85 -0
  8. package/example/src/chevre/migrateScreeningEventSeriesVersion.ts +79 -0
  9. package/example/src/chevre/processPay.ts +5 -1
  10. package/example/src/chevre/processRegisterMembership.ts +8 -4
  11. package/example/src/chevre/processRegisterPaymentCard.ts +8 -4
  12. package/example/src/chevre/processReserve.ts +5 -2
  13. package/example/src/chevre/saveTasks.ts +13 -10
  14. package/example/src/chevre/searchAbortedTasks.ts +34 -0
  15. package/example/src/chevre/searchActions.ts +33 -0
  16. package/example/src/chevre/searchEventSeats.ts +5 -2
  17. package/example/src/chevre/searchHoldReservations.ts +38 -0
  18. package/example/src/chevre/searchPaymentServiceProviders.ts +38 -0
  19. package/example/src/chevre/searchReservationNumbersByOrderNumbers.ts +37 -1
  20. package/example/src/chevre/searchScreeningRooms.ts +23 -0
  21. package/example/src/chevre/searchSendEmailActions.ts +44 -0
  22. package/example/src/chevre/syncScreeningRooms.ts +21 -0
  23. package/example/src/chevre/syncScreeningRoomsAll.ts +41 -0
  24. package/example/src/chevre/task/executeTasks.ts +26 -0
  25. package/example/src/chevre/transaction/findCreditCard.ts +1 -1
  26. package/example/src/chevre/transaction/orderMembershipService.ts +1 -1
  27. package/example/src/chevre/transaction/processReturnOrder.ts +40 -0
  28. package/example/src/chevre/transaction/startExportTasks.ts +2 -1
  29. package/example/src/chevre/updateTransaction.ts +1 -1
  30. package/example/src/playOnMoment.ts +24 -0
  31. package/lib/chevre/credentials.d.ts +1 -0
  32. package/lib/chevre/credentials.js +2 -1
  33. package/lib/chevre/eventEmitter/assetTransaction.d.ts +21 -0
  34. package/lib/chevre/eventEmitter/assetTransaction.js +25 -0
  35. package/lib/chevre/eventEmitter/task.d.ts +2 -1
  36. package/lib/chevre/eventEmitter/task.js +1 -4
  37. package/lib/chevre/eventEmitter/transaction.d.ts +1 -1
  38. package/lib/chevre/eventEmitter/transaction.js +1 -4
  39. package/lib/chevre/eventEmitter.d.ts +2 -1
  40. package/lib/chevre/eventEmitter.js +3 -1
  41. package/lib/chevre/index.d.ts +1 -1
  42. package/lib/chevre/index.js +2 -2
  43. package/lib/chevre/repo/account.js +3 -2
  44. package/lib/chevre/repo/accountTransaction.d.ts +3 -1
  45. package/lib/chevre/repo/accountTransaction.js +3 -2
  46. package/lib/chevre/repo/action.d.ts +42 -2
  47. package/lib/chevre/repo/action.js +130 -57
  48. package/lib/chevre/repo/additionalProperty.js +2 -1
  49. package/lib/chevre/repo/aggregation.d.ts +3 -0
  50. package/lib/chevre/repo/aggregation.js +3 -0
  51. package/lib/chevre/repo/assetTransaction.d.ts +23 -8
  52. package/lib/chevre/repo/assetTransaction.js +253 -80
  53. package/lib/chevre/repo/categoryCode.d.ts +1 -1
  54. package/lib/chevre/repo/categoryCode.js +37 -25
  55. package/lib/chevre/repo/code.js +3 -2
  56. package/lib/chevre/repo/comment.d.ts +4 -1
  57. package/lib/chevre/repo/comment.js +22 -6
  58. package/lib/chevre/repo/confirmationNumber.d.ts +0 -1
  59. package/lib/chevre/repo/confirmationNumber.js +3 -15
  60. package/lib/chevre/repo/creativeWork.d.ts +2 -4
  61. package/lib/chevre/repo/creativeWork.js +35 -12
  62. package/lib/chevre/repo/customer.js +2 -1
  63. package/lib/chevre/repo/emailMessage.d.ts +1 -27
  64. package/lib/chevre/repo/emailMessage.js +2 -1
  65. package/lib/chevre/repo/event.d.ts +27 -1
  66. package/lib/chevre/repo/event.js +67 -33
  67. package/lib/chevre/repo/member.js +4 -3
  68. package/lib/chevre/repo/merchantReturnPolicy.d.ts +1 -3
  69. package/lib/chevre/repo/merchantReturnPolicy.js +2 -1
  70. package/lib/chevre/repo/mongoose/schemas/account.d.ts +4 -2
  71. package/lib/chevre/repo/mongoose/schemas/accountTitle.d.ts +29 -3
  72. package/lib/chevre/repo/mongoose/schemas/accountTransaction.d.ts +31 -3
  73. package/lib/chevre/repo/mongoose/schemas/accountTransaction.js +1 -1
  74. package/lib/chevre/repo/mongoose/schemas/accountingReport.d.ts +13 -3
  75. package/lib/chevre/repo/mongoose/schemas/action.d.ts +43 -3
  76. package/lib/chevre/repo/mongoose/schemas/action.js +19 -1
  77. package/lib/chevre/repo/mongoose/schemas/additionalProperty.d.ts +17 -3
  78. package/lib/chevre/repo/mongoose/schemas/aggregation.d.ts +4 -2
  79. package/lib/chevre/repo/mongoose/schemas/assetTransaction.d.ts +44 -3
  80. package/lib/chevre/repo/mongoose/schemas/assetTransaction.js +32 -19
  81. package/lib/chevre/repo/mongoose/schemas/authorization.d.ts +19 -3
  82. package/lib/chevre/repo/mongoose/schemas/authorization.js +1 -1
  83. package/lib/chevre/repo/mongoose/schemas/categoryCode.d.ts +25 -3
  84. package/lib/chevre/repo/mongoose/schemas/comments.d.ts +27 -3
  85. package/lib/chevre/repo/mongoose/schemas/comments.js +1 -1
  86. package/lib/chevre/repo/mongoose/schemas/creativeWork.d.ts +43 -3
  87. package/lib/chevre/repo/mongoose/schemas/customer.d.ts +25 -3
  88. package/lib/chevre/repo/mongoose/schemas/emailMessages.d.ts +21 -3
  89. package/lib/chevre/repo/mongoose/schemas/event.d.ts +71 -3
  90. package/lib/chevre/repo/mongoose/schemas/holdReservation.d.ts +75 -0
  91. package/lib/chevre/repo/mongoose/schemas/holdReservation.js +93 -0
  92. package/lib/chevre/repo/mongoose/schemas/member.d.ts +13 -3
  93. package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.d.ts +21 -3
  94. package/lib/chevre/repo/mongoose/schemas/offer.d.ts +65 -3
  95. package/lib/chevre/repo/mongoose/schemas/offerCatalog.d.ts +27 -3
  96. package/lib/chevre/repo/mongoose/schemas/offerItemCondition.d.ts +74 -0
  97. package/lib/chevre/repo/mongoose/schemas/offerItemCondition.js +45 -0
  98. package/lib/chevre/repo/mongoose/schemas/order.d.ts +51 -3
  99. package/lib/chevre/repo/mongoose/schemas/order.js +1 -1
  100. package/lib/chevre/repo/mongoose/schemas/ownershipInfo.d.ts +25 -3
  101. package/lib/chevre/repo/mongoose/schemas/ownershipInfo.js +1 -1
  102. package/lib/chevre/repo/mongoose/schemas/place.d.ts +55 -3
  103. package/lib/chevre/repo/mongoose/schemas/place.js +16 -1
  104. package/lib/chevre/repo/mongoose/schemas/priceSpecification.d.ts +29 -3
  105. package/lib/chevre/repo/mongoose/schemas/product.d.ts +31 -3
  106. package/lib/chevre/repo/mongoose/schemas/product.js +6 -0
  107. package/lib/chevre/repo/mongoose/schemas/project.d.ts +23 -3
  108. package/lib/chevre/repo/mongoose/schemas/reservation.d.ts +63 -5
  109. package/lib/chevre/repo/mongoose/schemas/reservation.js +1 -1
  110. package/lib/chevre/repo/mongoose/schemas/role.d.ts +11 -3
  111. package/lib/chevre/repo/mongoose/schemas/seller.d.ts +31 -3
  112. package/lib/chevre/repo/mongoose/schemas/seller.js +6 -0
  113. package/lib/chevre/repo/mongoose/schemas/serviceOutput.d.ts +11 -3
  114. package/lib/chevre/repo/mongoose/schemas/serviceOutput.js +1 -1
  115. package/lib/chevre/repo/mongoose/schemas/task.d.ts +30 -3
  116. package/lib/chevre/repo/mongoose/schemas/task.js +2 -1
  117. package/lib/chevre/repo/mongoose/schemas/telemetry.d.ts +21 -3
  118. package/lib/chevre/repo/mongoose/schemas/transaction.d.ts +40 -3
  119. package/lib/chevre/repo/mongoose/schemas/transaction.js +2 -1
  120. package/lib/chevre/repo/mongoose/schemas/trip.d.ts +11 -3
  121. package/lib/chevre/repo/offer.js +3 -2
  122. package/lib/chevre/repo/offerCatalog.js +0 -27
  123. package/lib/chevre/repo/offerItemCondition.d.ts +22 -0
  124. package/lib/chevre/repo/offerItemCondition.js +121 -0
  125. package/lib/chevre/repo/order.d.ts +55 -3
  126. package/lib/chevre/repo/order.js +62 -10
  127. package/lib/chevre/repo/ownershipInfo.js +2 -7
  128. package/lib/chevre/repo/place.d.ts +97 -24
  129. package/lib/chevre/repo/place.js +266 -76
  130. package/lib/chevre/repo/priceSpecification.js +3 -2
  131. package/lib/chevre/repo/product.d.ts +18 -3
  132. package/lib/chevre/repo/product.js +139 -5
  133. package/lib/chevre/repo/project.js +2 -1
  134. package/lib/chevre/repo/reservation.d.ts +20 -4
  135. package/lib/chevre/repo/reservation.js +40 -59
  136. package/lib/chevre/repo/role.js +3 -2
  137. package/lib/chevre/repo/seller.d.ts +1 -1
  138. package/lib/chevre/repo/seller.js +44 -23
  139. package/lib/chevre/repo/serviceOutput.js +2 -1
  140. package/lib/chevre/repo/stockHolder.d.ts +143 -7
  141. package/lib/chevre/repo/stockHolder.js +622 -104
  142. package/lib/chevre/repo/task.d.ts +42 -2
  143. package/lib/chevre/repo/task.js +68 -20
  144. package/lib/chevre/repo/transaction.d.ts +21 -2
  145. package/lib/chevre/repo/transaction.js +160 -48
  146. package/lib/chevre/repo/trip.js +2 -1
  147. package/lib/chevre/repository.d.ts +5 -2
  148. package/lib/chevre/repository.js +8 -4
  149. package/lib/chevre/service/aggregation/event/aggregateScreeningEvent.js +6 -2
  150. package/lib/chevre/service/aggregation/event/aggregateUseActionsOnEvent.js +19 -8
  151. package/lib/chevre/service/aggregation/system.d.ts +110 -23
  152. package/lib/chevre/service/aggregation/system.js +213 -91
  153. package/lib/chevre/service/assetTransaction/cancelReservation.js +1 -28
  154. package/lib/chevre/service/assetTransaction/moneyTransfer.js +2 -24
  155. package/lib/chevre/service/assetTransaction/pay/account/validation.js +1 -1
  156. package/lib/chevre/service/assetTransaction/pay/potentialActions.js +17 -1
  157. package/lib/chevre/service/assetTransaction/pay.d.ts +5 -1
  158. package/lib/chevre/service/assetTransaction/pay.js +20 -34
  159. package/lib/chevre/service/assetTransaction/refund.js +2 -24
  160. package/lib/chevre/service/assetTransaction/registerService.js +1 -25
  161. package/lib/chevre/service/assetTransaction/reserve/factory.d.ts +15 -5
  162. package/lib/chevre/service/assetTransaction/reserve/factory.js +122 -58
  163. package/lib/chevre/service/assetTransaction/reserve.d.ts +10 -1
  164. package/lib/chevre/service/assetTransaction/reserve.js +92 -69
  165. package/lib/chevre/service/assetTransaction.d.ts +6 -0
  166. package/lib/chevre/service/assetTransaction.js +9 -4
  167. package/lib/chevre/service/event.d.ts +3 -0
  168. package/lib/chevre/service/event.js +54 -22
  169. package/lib/chevre/service/notification/factory.js +2 -2
  170. package/lib/chevre/service/notification.d.ts +3 -1
  171. package/lib/chevre/service/notification.js +41 -7
  172. package/lib/chevre/service/offer/event/authorize.d.ts +3 -0
  173. package/lib/chevre/service/offer/event/authorize.js +8 -2
  174. package/lib/chevre/service/offer/event/factory.d.ts +3 -0
  175. package/lib/chevre/service/offer/event/factory.js +16 -5
  176. package/lib/chevre/service/offer/event/importFromCOA.js +2 -2
  177. package/lib/chevre/service/offer/event/voidTransaction.d.ts +2 -0
  178. package/lib/chevre/service/offer/event/voidTransaction.js +17 -1
  179. package/lib/chevre/service/offer/eventServiceByCOA.js +7 -9
  180. package/lib/chevre/service/offer/product.js +2 -2
  181. package/lib/chevre/service/offer.d.ts +16 -8
  182. package/lib/chevre/service/offer.js +71 -8
  183. package/lib/chevre/service/order/deleteOrder.d.ts +3 -1
  184. package/lib/chevre/service/order/deleteOrder.js +8 -8
  185. package/lib/chevre/service/order/onOrderStatusChanged/factory.d.ts +5 -2
  186. package/lib/chevre/service/order/onOrderStatusChanged/factory.js +41 -81
  187. package/lib/chevre/service/order/onOrderStatusChanged.js +1 -3
  188. package/lib/chevre/service/order/onOrderUpdated.d.ts +16 -0
  189. package/lib/chevre/service/order/onOrderUpdated.js +22 -0
  190. package/lib/chevre/service/order/placeOrder.d.ts +1 -0
  191. package/lib/chevre/service/order/placeOrder.js +41 -24
  192. package/lib/chevre/service/order/returnOrder.d.ts +1 -0
  193. package/lib/chevre/service/order/returnOrder.js +7 -12
  194. package/lib/chevre/service/order/sendOrder.d.ts +1 -0
  195. package/lib/chevre/service/order/sendOrder.js +7 -10
  196. package/lib/chevre/service/order.d.ts +2 -1
  197. package/lib/chevre/service/order.js +3 -1
  198. package/lib/chevre/service/payment/any/onPaid.js +1 -1
  199. package/lib/chevre/service/payment/any/onRefund.js +1 -1
  200. package/lib/chevre/service/payment/any.d.ts +9 -5
  201. package/lib/chevre/service/payment/any.js +80 -18
  202. package/lib/chevre/service/payment/creditCard.d.ts +1 -1
  203. package/lib/chevre/service/payment/creditCard.js +23 -17
  204. package/lib/chevre/service/payment/movieTicket/checkByIdentifier.d.ts +8 -7
  205. package/lib/chevre/service/payment/movieTicket/factory.d.ts +1 -1
  206. package/lib/chevre/service/payment/movieTicket/getCredentials.d.ts +1 -1
  207. package/lib/chevre/service/payment/movieTicket/getCredentials.js +1 -1
  208. package/lib/chevre/service/payment/movieTicket/validation.d.ts +6 -6
  209. package/lib/chevre/service/payment/movieTicket/validation.js +65 -37
  210. package/lib/chevre/service/payment/movieTicket.d.ts +2 -2
  211. package/lib/chevre/service/payment/movieTicket.js +7 -6
  212. package/lib/chevre/service/product.js +1 -5
  213. package/lib/chevre/service/report/telemetry.d.ts +0 -11
  214. package/lib/chevre/service/report/telemetry.js +21 -24
  215. package/lib/chevre/service/reserve/cancelReservation.d.ts +5 -3
  216. package/lib/chevre/service/reserve/cancelReservation.js +162 -142
  217. package/lib/chevre/service/reserve/checkInReservation.d.ts +9 -4
  218. package/lib/chevre/service/reserve/checkInReservation.js +77 -3
  219. package/lib/chevre/service/reserve/confirmReservation.d.ts +7 -4
  220. package/lib/chevre/service/reserve/confirmReservation.js +133 -58
  221. package/lib/chevre/service/reserve/factory.d.ts +1 -1
  222. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.d.ts +17 -5
  223. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.js +26 -24
  224. package/lib/chevre/service/reserve/potentialActions/onReservationCheckedIn.js +2 -3
  225. package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +2 -31
  226. package/lib/chevre/service/reserve/potentialActions/onReservationUsed.js +2 -3
  227. package/lib/chevre/service/reserve/useReservation.d.ts +7 -3
  228. package/lib/chevre/service/reserve/useReservation.js +61 -71
  229. package/lib/chevre/service/reserve/verifyToken4reservation.d.ts +15 -0
  230. package/lib/chevre/service/reserve/verifyToken4reservation.js +56 -0
  231. package/lib/chevre/service/reserve.d.ts +3 -2
  232. package/lib/chevre/service/reserve.js +4 -2
  233. package/lib/chevre/service/task/aggregateScreeningEvent.js +1 -1
  234. package/lib/chevre/service/task/cancelPendingReservation.js +6 -2
  235. package/lib/chevre/service/task/cancelReservation.js +1 -1
  236. package/lib/chevre/service/task/confirmRegisterServiceTransaction.js +1 -1
  237. package/lib/chevre/service/task/deleteTransaction.js +10 -8
  238. package/lib/chevre/service/task/importOffersFromCOA.js +4 -0
  239. package/lib/chevre/service/task/onAuthorizationCreated.d.ts +7 -0
  240. package/lib/chevre/service/task/onAuthorizationCreated.js +108 -0
  241. package/lib/chevre/service/task/onEventChanged.d.ts +7 -0
  242. package/lib/chevre/service/task/{deleteOrder.js → onEventChanged.js} +8 -14
  243. package/lib/chevre/service/task/onResourceUpdated.d.ts +10 -0
  244. package/lib/chevre/service/task/onResourceUpdated.js +423 -0
  245. package/lib/chevre/service/task/placeOrder.js +1 -1
  246. package/lib/chevre/service/task/reserve.js +10 -7
  247. package/lib/chevre/service/task/returnOrder.js +1 -1
  248. package/lib/chevre/service/task/returnPayTransaction.js +2 -12
  249. package/lib/chevre/service/task/sendOrder.js +1 -1
  250. package/lib/chevre/service/task/syncScreeningRooms.d.ts +7 -0
  251. package/lib/chevre/service/task/syncScreeningRooms.js +23 -0
  252. package/lib/chevre/service/task/useReservation.d.ts +7 -0
  253. package/lib/chevre/service/task/useReservation.js +36 -0
  254. package/lib/chevre/service/task/voidReserveTransaction.js +4 -2
  255. package/lib/chevre/service/task.d.ts +6 -0
  256. package/lib/chevre/service/task.js +22 -4
  257. package/lib/chevre/service/transaction/deleteTransaction.d.ts +21 -0
  258. package/lib/chevre/service/transaction/deleteTransaction.js +232 -0
  259. package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.js +11 -1
  260. package/lib/chevre/service/transaction/moneyTransfer/factory.d.ts +1 -1
  261. package/lib/chevre/service/transaction/moneyTransfer/factory.js +3 -1
  262. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.d.ts +1 -0
  263. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.js +1 -1
  264. package/lib/chevre/service/transaction/moneyTransfer.js +10 -13
  265. package/lib/chevre/service/transaction/orderProgramMembership/findCreditCard.js +1 -1
  266. package/lib/chevre/service/transaction/orderProgramMembership/findPaymentCardPermit.js +1 -1
  267. package/lib/chevre/service/transaction/orderProgramMembership.js +7 -3
  268. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +42 -30
  269. package/lib/chevre/service/transaction/placeOrder.js +1 -5
  270. package/lib/chevre/service/transaction/placeOrderInProgress/factory.js +1 -1
  271. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.d.ts +1 -0
  272. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.js +1 -1
  273. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.d.ts +1 -0
  274. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.js +1 -1
  275. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions.d.ts +1 -0
  276. package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.d.ts +3 -0
  277. package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.js +7 -3
  278. package/lib/chevre/service/transaction/placeOrderInProgress/result.d.ts +1 -0
  279. package/lib/chevre/service/transaction/placeOrderInProgress/result.js +2 -2
  280. package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.d.ts +1 -1
  281. package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.js +2 -2
  282. package/lib/chevre/service/transaction/placeOrderInProgress/validation.d.ts +2 -1
  283. package/lib/chevre/service/transaction/placeOrderInProgress/validation.js +23 -17
  284. package/lib/chevre/service/transaction/placeOrderInProgress.d.ts +0 -3
  285. package/lib/chevre/service/transaction/placeOrderInProgress.js +28 -15
  286. package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +10 -1
  287. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +25 -17
  288. package/lib/chevre/service/transaction/returnOrder.d.ts +4 -0
  289. package/lib/chevre/service/transaction/returnOrder.js +228 -36
  290. package/lib/chevre/service/transaction.d.ts +7 -13
  291. package/lib/chevre/service/transaction.js +12 -139
  292. package/lib/chevre/settings.d.ts +13 -2
  293. package/lib/chevre/settings.js +56 -7
  294. package/package.json +5 -5
  295. package/example/src/chevre/createManyEventsIfNotExist.ts +0 -205
  296. package/example/src/chevre/eventCatalog2eventService.ts +0 -123
  297. package/example/src/chevre/migrateMoneyTransferPendingTransactionIdentifier.ts +0 -96
  298. package/example/src/chevre/migrateMovieAdditionalProperties.ts +0 -98
  299. package/example/src/chevre/migrateStockHolderKeys.ts +0 -89
  300. package/lib/chevre/service/task/deleteAssetTransaction.d.ts +0 -12
  301. package/lib/chevre/service/task/deleteAssetTransaction.js +0 -65
  302. package/lib/chevre/service/task/deleteOrder.d.ts +0 -6
@@ -25,6 +25,9 @@
25
25
  import { Connection } from 'mongoose';
26
26
  import * as factory from '../factory';
27
27
  export type IProduct = factory.product.IProduct | factory.service.paymentService.IService;
28
+ export type IPaymentServiceByProvider = Pick<factory.service.paymentService.IService, 'name' | 'description' | 'typeOf' | 'id' | 'productID' | 'serviceType' | 'additionalProperty'> & {
29
+ provider?: Pick<factory.service.paymentService.IProvider, 'credentials'>;
30
+ };
28
31
  /**
29
32
  * プロダクトリポジトリ
30
33
  */
@@ -37,9 +40,7 @@ export declare class MongoRepository {
37
40
  }, projection?: {
38
41
  [key: string]: number;
39
42
  }): Promise<IProduct>;
40
- search(conditions: factory.product.ISearchConditions, projection?: {
41
- [key: string]: number;
42
- }): Promise<IProduct[]>;
43
+ search(conditions: factory.product.ISearchConditions, inclusion: string[], exclusion: string[]): Promise<IProduct[]>;
43
44
  deleteById(params: {
44
45
  id: string;
45
46
  }): Promise<void>;
@@ -53,6 +54,20 @@ export declare class MongoRepository {
53
54
  typeOf: factory.service.paymentService.PaymentServiceType;
54
55
  id: string;
55
56
  }): Promise<factory.product.IAvailableChannel>;
57
+ searchPaymentServicesByProvider(params: Pick<factory.product.ISearchConditions, 'limit' | 'page' | 'sort' | 'project' | 'provider' | 'typeOf'>): Promise<IPaymentServiceByProvider[]>;
58
+ /**
59
+ * 決済サービスのプロバイダー検索
60
+ */
61
+ searchProviders(params: {
62
+ limit?: number;
63
+ page?: number;
64
+ project?: {
65
+ id?: {
66
+ $eq?: string;
67
+ };
68
+ };
69
+ id: string;
70
+ }): Promise<factory.service.paymentService.IProvider[]>;
56
71
  /**
57
72
  * プロダクトを保管する
58
73
  * 作成 or 更新
@@ -21,8 +21,10 @@ var __rest = (this && this.__rest) || function (s, e) {
21
21
  };
22
22
  Object.defineProperty(exports, "__esModule", { value: true });
23
23
  exports.MongoRepository = void 0;
24
+ const mongoose_1 = require("mongoose");
24
25
  const product_1 = require("./mongoose/schemas/product");
25
26
  const factory = require("../factory");
27
+ const settings_1 = require("../settings");
26
28
  /**
27
29
  * プロダクトリポジトリ
28
30
  */
@@ -32,7 +34,7 @@ class MongoRepository {
32
34
  }
33
35
  // tslint:disable-next-line:max-func-body-length
34
36
  static CREATE_MONGO_CONDITIONS(params) {
35
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v;
37
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
36
38
  // MongoDB検索条件
37
39
  const andConditions = [];
38
40
  const projectIdEq = (_b = (_a = params.project) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.$eq;
@@ -143,6 +145,11 @@ class MongoRepository {
143
145
  ]
144
146
  });
145
147
  }
148
+ // プロバイダー条件を追加(2023-06-21~)
149
+ const providerIdEq = (_x = (_w = params.provider) === null || _w === void 0 ? void 0 : _w.id) === null || _x === void 0 ? void 0 : _x.$eq;
150
+ if (typeof providerIdEq === 'string') {
151
+ andConditions.push({ 'provider.id': { $exists: true, $eq: providerIdEq } });
152
+ }
146
153
  return andConditions;
147
154
  }
148
155
  findById(conditions, projection) {
@@ -155,11 +162,31 @@ class MongoRepository {
155
162
  return doc.toObject();
156
163
  });
157
164
  }
158
- search(conditions, projection) {
165
+ search(conditions,
166
+ // projection?: { [key: string]: number }
167
+ inclusion, exclusion) {
159
168
  var _a;
160
169
  return __awaiter(this, void 0, void 0, function* () {
161
170
  const andConditions = MongoRepository.CREATE_MONGO_CONDITIONS(conditions);
162
- const query = this.productModel.find((andConditions.length > 0) ? { $and: andConditions } : {}, Object.assign({ __v: 0, createdAt: 0, updatedAt: 0 }, projection));
171
+ let projection = {};
172
+ if (Array.isArray(inclusion) && inclusion.length > 0) {
173
+ inclusion.forEach((field) => {
174
+ projection[field] = 1;
175
+ });
176
+ }
177
+ else {
178
+ projection = {
179
+ __v: 0,
180
+ createdAt: 0,
181
+ updatedAt: 0
182
+ };
183
+ if (Array.isArray(exclusion) && exclusion.length > 0) {
184
+ exclusion.forEach((field) => {
185
+ projection[field] = 0;
186
+ });
187
+ }
188
+ }
189
+ const query = this.productModel.find((andConditions.length > 0) ? { $and: andConditions } : {}, projection);
163
190
  if (typeof conditions.limit === 'number' && conditions.limit > 0) {
164
191
  const page = (typeof conditions.page === 'number' && conditions.page > 0) ? conditions.page : 1;
165
192
  query.limit(conditions.limit)
@@ -170,7 +197,7 @@ class MongoRepository {
170
197
  if (((_a = conditions.sort) === null || _a === void 0 ? void 0 : _a.productID) !== undefined) {
171
198
  query.sort({ productID: conditions.sort.productID });
172
199
  }
173
- return query.setOptions({ maxTimeMS: 10000 })
200
+ return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
174
201
  .exec()
175
202
  .then((docs) => docs.map((doc) => doc.toObject()));
176
203
  });
@@ -192,7 +219,7 @@ class MongoRepository {
192
219
  project: { id: { $eq: params.project.id } },
193
220
  typeOf: { $eq: params.typeOf },
194
221
  id: { $eq: params.id }
195
- });
222
+ }, [], []);
196
223
  const paymentServiceSetting = paymentServices.shift();
197
224
  if (paymentServiceSetting === undefined) {
198
225
  throw new factory.errors.NotFound('PaymentService');
@@ -204,6 +231,113 @@ class MongoRepository {
204
231
  return availableChannel;
205
232
  });
206
233
  }
234
+ searchPaymentServicesByProvider(params) {
235
+ var _a, _b, _c, _d, _e, _f;
236
+ return __awaiter(this, void 0, void 0, function* () {
237
+ const matchStages = [];
238
+ const projectIdEq = (_b = (_a = params.project) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.$eq;
239
+ if (typeof projectIdEq === 'string') {
240
+ matchStages.push({ $match: { 'project.id': { $eq: projectIdEq } } });
241
+ }
242
+ const typeOfEq = (_c = params.typeOf) === null || _c === void 0 ? void 0 : _c.$eq;
243
+ if (typeof typeOfEq === 'string') {
244
+ matchStages.push({ $match: { typeOf: { $eq: typeOfEq } } });
245
+ }
246
+ const providerIdEq = (_e = (_d = params.provider) === null || _d === void 0 ? void 0 : _d.id) === null || _e === void 0 ? void 0 : _e.$eq;
247
+ if (typeof providerIdEq === 'string') {
248
+ matchStages.push({ $match: { 'provider.id': { $exists: true, $eq: providerIdEq } } });
249
+ }
250
+ const aggregate = this.productModel.aggregate([
251
+ ...(typeof ((_f = params.sort) === null || _f === void 0 ? void 0 : _f.productID) === 'number')
252
+ ? [{ $sort: { productID: params.sort.productID } }]
253
+ : [],
254
+ {
255
+ $unwind: {
256
+ path: '$provider'
257
+ }
258
+ },
259
+ ...matchStages,
260
+ {
261
+ $project: {
262
+ _id: 0,
263
+ typeOf: '$typeOf',
264
+ productID: '$productID',
265
+ description: '$description',
266
+ name: '$name',
267
+ // provider: [ [Object] ],
268
+ additionalProperty: '$additionalProperty',
269
+ serviceType: '$serviceType',
270
+ id: { $toString: '$_id' },
271
+ // ↓セキュアな情報を隠蔽するように
272
+ provider: {
273
+ credentials: {
274
+ shopId: '$provider.credentials.shopId',
275
+ tokenizationCode: '$provider.credentials.tokenizationCode',
276
+ paymentUrl: {
277
+ expiresInSeconds: '$provider.credentials.paymentUrl.expiresInSeconds',
278
+ useCallback: '$provider.credentials.paymentUrl.useCallback',
279
+ useWebhook: '$provider.credentials.paymentUrl.useWebhook'
280
+ }
281
+ }
282
+ }
283
+ }
284
+ }
285
+ ]);
286
+ if (typeof params.limit === 'number' && params.limit > 0) {
287
+ const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
288
+ aggregate.limit(params.limit * page)
289
+ .skip(params.limit * (page - 1));
290
+ }
291
+ return aggregate.option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
292
+ .exec();
293
+ });
294
+ }
295
+ /**
296
+ * 決済サービスのプロバイダー検索
297
+ */
298
+ searchProviders(params) {
299
+ var _a, _b;
300
+ return __awaiter(this, void 0, void 0, function* () {
301
+ const matchStages = [];
302
+ const projectIdEq = (_b = (_a = params.project) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.$eq;
303
+ if (typeof projectIdEq === 'string') {
304
+ matchStages.push({ $match: { 'project.id': { $eq: projectIdEq } } });
305
+ }
306
+ matchStages.push({ $match: { _id: { $eq: new mongoose_1.Types.ObjectId(params.id) } } });
307
+ const aggregate = this.productModel.aggregate([
308
+ {
309
+ $unwind: {
310
+ path: '$provider'
311
+ }
312
+ },
313
+ ...matchStages,
314
+ {
315
+ $project: {
316
+ _id: 0,
317
+ // ↓セキュアな情報を隠蔽するように
318
+ credentials: {
319
+ shopId: '$provider.credentials.shopId',
320
+ tokenizationCode: '$provider.credentials.tokenizationCode',
321
+ paymentUrl: {
322
+ expiresInSeconds: '$provider.credentials.paymentUrl.expiresInSeconds',
323
+ useCallback: '$provider.credentials.paymentUrl.useCallback',
324
+ useWebhook: '$provider.credentials.paymentUrl.useWebhook'
325
+ }
326
+ },
327
+ id: '$provider.id',
328
+ name: '$provider.name'
329
+ }
330
+ }
331
+ ]);
332
+ if (typeof params.limit === 'number' && params.limit > 0) {
333
+ const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
334
+ aggregate.limit(params.limit * page)
335
+ .skip(params.limit * (page - 1));
336
+ }
337
+ return aggregate.option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
338
+ .exec();
339
+ });
340
+ }
207
341
  /**
208
342
  * プロダクトを保管する
209
343
  * 作成 or 更新
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.MongoRepository = void 0;
13
13
  const project_1 = require("./mongoose/schemas/project");
14
14
  const factory = require("../factory");
15
+ const settings_1 = require("../settings");
15
16
  /**
16
17
  * プロジェクトリポジトリ
17
18
  */
@@ -89,7 +90,7 @@ class MongoRepository {
89
90
  if (((_a = conditions.sort) === null || _a === void 0 ? void 0 : _a._id) !== undefined) {
90
91
  query.sort({ _id: conditions.sort._id });
91
92
  }
92
- return query.setOptions({ maxTimeMS: 10000 })
93
+ return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
93
94
  .exec()
94
95
  .then((docs) => docs.map((doc) => doc.toObject()));
95
96
  });
@@ -1,3 +1,4 @@
1
+ import { BulkWriteResult as BulkWriteOpResultObject } from 'mongodb';
1
2
  import { Connection, UpdateWriteOpResult } from 'mongoose';
2
3
  import * as factory from '../factory';
3
4
  export interface IUpdatePartiallyParams {
@@ -23,20 +24,35 @@ export declare class MongoRepository {
23
24
  /**
24
25
  * 予約検索
25
26
  */
26
- search<T extends factory.reservationType>(params: factory.reservation.ISearchConditions<T>, projection?: any): Promise<factory.reservation.IReservation<factory.reservationType.EventReservation>[]>;
27
+ search<T extends factory.reservationType>(params: factory.reservation.ISearchConditions<T>, projection?: {
28
+ [key: string]: 0 | 1;
29
+ }): Promise<factory.reservation.IReservation<factory.reservationType.EventReservation>[]>;
27
30
  findById<T extends factory.reservationType>(params: {
28
31
  id: string;
29
32
  inclusion?: string[];
30
33
  exclusion?: string[];
31
34
  }): Promise<factory.reservation.IReservation<T>>;
32
- /**
33
- * 予約確定
34
- */
35
35
  confirmByReservationNumber(params: {
36
36
  reservationNumber: string;
37
37
  previousReservationStatus: factory.reservationStatusType;
38
38
  underName?: factory.reservation.IUnderName<factory.reservationType.EventReservation>;
39
+ broker?: factory.reservation.IBroker<factory.reservationType>;
40
+ issuedThrough?: factory.assetTransaction.reserve.IIssuedThrough;
39
41
  }): Promise<void>;
42
+ confirmByIdIfNotExist__(params: {
43
+ reservation: factory.assetTransaction.reserve.IObjectSubReservation;
44
+ reservationFor: factory.assetTransaction.reserve.IReservationFor;
45
+ underName?: factory.reservation.IUnderName<factory.reservationType.EventReservation>;
46
+ broker?: factory.reservation.IBroker<factory.reservationType>;
47
+ issuedThrough?: factory.assetTransaction.reserve.IIssuedThrough;
48
+ }): Promise<void>;
49
+ confirmManyIfNotExist(params: {
50
+ subReservation: factory.assetTransaction.reserve.IObjectSubReservation[];
51
+ reservationFor: factory.assetTransaction.reserve.IReservationFor;
52
+ underName?: factory.reservation.IUnderName<factory.reservationType.EventReservation>;
53
+ broker?: factory.reservation.IBroker<factory.reservationType>;
54
+ issuedThrough?: factory.assetTransaction.reserve.IIssuedThrough;
55
+ }): Promise<BulkWriteOpResultObject | void>;
40
56
  /**
41
57
  * 予約取消
42
58
  */
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.MongoRepository = void 0;
13
13
  const reservation_1 = require("./mongoose/schemas/reservation");
14
14
  const factory = require("../factory");
15
+ const settings_1 = require("../settings");
15
16
  /**
16
17
  * 予約リポジトリ
17
18
  */
@@ -811,18 +812,6 @@ class MongoRepository {
811
812
  }
812
813
  return andConditions;
813
814
  }
814
- // public async distinct<T extends factory.reservationType>(
815
- // field: string,
816
- // params: factory.reservation.ISearchConditions<T>
817
- // ): Promise<any[]> {
818
- // const conditions = MongoRepository.CREATE_MONGO_CONDITIONS(params);
819
- // return this.reservationModel.distinct(
820
- // field,
821
- // (conditions.length > 0) ? { $and: conditions } : {}
822
- // )
823
- // .setOptions({ maxTimeMS: 10000 })
824
- // .exec();
825
- // }
826
815
  createMany(params) {
827
816
  return __awaiter(this, void 0, void 0, function* () {
828
817
  if (params.reservations.length > 0) {
@@ -849,7 +838,7 @@ class MongoRepository {
849
838
  return __awaiter(this, void 0, void 0, function* () {
850
839
  const conditions = MongoRepository.CREATE_MONGO_CONDITIONS(params);
851
840
  return this.reservationModel.countDocuments((conditions.length > 0) ? { $and: conditions } : {})
852
- .setOptions({ maxTimeMS: 10000 })
841
+ .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
853
842
  .exec();
854
843
  });
855
844
  }
@@ -877,7 +866,7 @@ class MongoRepository {
877
866
  if (((_a = params.sort) === null || _a === void 0 ? void 0 : _a.modifiedTime) !== undefined) {
878
867
  query.sort({ modifiedTime: params.sort.modifiedTime });
879
868
  }
880
- return query.setOptions({ maxTimeMS: 10000 })
869
+ return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
881
870
  .exec()
882
871
  .then((docs) => docs.map((doc) => doc.toObject()));
883
872
  });
@@ -910,61 +899,53 @@ class MongoRepository {
910
899
  return doc.toObject();
911
900
  });
912
901
  }
913
- /**
914
- * 予約確定
915
- */
916
- // public async confirm<T extends factory.reservationType>(params: {
917
- // id: string;
918
- // previousReservationStatus: factory.reservationStatusType;
919
- // underName?: factory.reservation.IUnderName<T>;
920
- // }): Promise<factory.reservation.IReservation<T>> {
921
- // const conditions = {
922
- // _id: { $eq: String(params.id) },
923
- // reservationStatus: { $eq: params.previousReservationStatus }
924
- // };
925
- // // 更新属性をwhitelist化(2022-06-13~)
926
- // const update = {
927
- // // previousReservationStatusを保管(2023-01-19~)
928
- // previousReservationStatus: params.previousReservationStatus,
929
- // reservationStatus: factory.reservationStatusType.ReservationConfirmed,
930
- // modifiedTime: new Date(),
931
- // ...(params.underName !== undefined) ? { underName: params.underName } : undefined
932
- // };
933
- // const doc = await this.reservationModel.findOneAndUpdate(
934
- // conditions,
935
- // update,
936
- // { new: true }
937
- // )
938
- // .select({ __v: 0, createdAt: 0, updatedAt: 0 })
939
- // .exec();
940
- // // NotFoundであれば状態確認
941
- // if (doc === null) {
942
- // const reservation = await this.findById<T>({ id: String(params.id) });
943
- // if (reservation.reservationStatus === factory.reservationStatusType.ReservationConfirmed) {
944
- // // すでに確定済の場合
945
- // return reservation;
946
- // } else {
947
- // throw new factory.errors.Argument(
948
- // 'id',
949
- // `Reservation ${reservation.id} already changed -> ${reservation.reservationStatus}`
950
- // );
951
- // }
952
- // }
953
- // return doc.toObject();
954
- // }
955
902
  confirmByReservationNumber(params) {
903
+ var _a, _b;
956
904
  return __awaiter(this, void 0, void 0, function* () {
957
905
  const conditions = {
958
906
  reservationNumber: { $eq: String(params.reservationNumber) },
959
907
  reservationStatus: { $eq: params.previousReservationStatus }
960
908
  };
961
- const update = Object.assign({
909
+ const update = Object.assign(Object.assign(Object.assign({
962
910
  // previousReservationStatusを保管(2023-01-19~)
963
- previousReservationStatus: params.previousReservationStatus, reservationStatus: factory.reservationStatusType.ReservationConfirmed, modifiedTime: new Date() }, (params.underName !== undefined) ? { underName: params.underName } : undefined);
911
+ previousReservationStatus: params.previousReservationStatus, reservationStatus: factory.reservationStatusType.ReservationConfirmed, modifiedTime: new Date() }, (params.underName !== undefined) ? { underName: params.underName } : undefined), (typeof ((_a = params.broker) === null || _a === void 0 ? void 0 : _a.typeOf) === 'string') ? { broker: params.broker } : undefined), (typeof ((_b = params.issuedThrough) === null || _b === void 0 ? void 0 : _b.typeOf) === 'string') ? { issuedThrough: params.issuedThrough } : undefined);
964
912
  yield this.reservationModel.updateMany(conditions, update)
965
913
  .exec();
966
914
  });
967
915
  }
916
+ confirmByIdIfNotExist__(params) {
917
+ var _a, _b;
918
+ return __awaiter(this, void 0, void 0, function* () {
919
+ yield this.reservationModel.findOneAndUpdate({ _id: { $eq: params.reservation.id } }, {
920
+ $setOnInsert: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, params.reservation), { _id: params.reservation.id, reservationFor: params.reservationFor, reservationStatus: factory.reservationStatusType.ReservationConfirmed, modifiedTime: new Date() }), (params.underName !== undefined) ? { underName: params.underName } : undefined), (typeof ((_a = params.broker) === null || _a === void 0 ? void 0 : _a.typeOf) === 'string') ? { broker: params.broker } : undefined), (typeof ((_b = params.issuedThrough) === null || _b === void 0 ? void 0 : _b.typeOf) === 'string') ? { issuedThrough: params.issuedThrough } : undefined)
921
+ }, { upsert: true, new: true })
922
+ .select({ _id: 1 })
923
+ .exec();
924
+ });
925
+ }
926
+ confirmManyIfNotExist(params) {
927
+ return __awaiter(this, void 0, void 0, function* () {
928
+ const modifiedTime = new Date();
929
+ const bulkWriteOps = [];
930
+ if (Array.isArray(params.subReservation)) {
931
+ params.subReservation.forEach((subReservation) => {
932
+ var _a, _b;
933
+ bulkWriteOps.push({
934
+ updateOne: {
935
+ filter: { _id: { $eq: subReservation.id } },
936
+ update: {
937
+ $setOnInsert: Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({}, subReservation), { _id: subReservation.id, reservationFor: params.reservationFor, reservationStatus: factory.reservationStatusType.ReservationConfirmed, modifiedTime }), (params.underName !== undefined) ? { underName: params.underName } : undefined), (typeof ((_a = params.broker) === null || _a === void 0 ? void 0 : _a.typeOf) === 'string') ? { broker: params.broker } : undefined), (typeof ((_b = params.issuedThrough) === null || _b === void 0 ? void 0 : _b.typeOf) === 'string') ? { issuedThrough: params.issuedThrough } : undefined)
938
+ },
939
+ upsert: true
940
+ }
941
+ });
942
+ });
943
+ }
944
+ if (bulkWriteOps.length > 0) {
945
+ return this.reservationModel.bulkWrite(bulkWriteOps, { ordered: false });
946
+ }
947
+ });
948
+ }
968
949
  /**
969
950
  * 予約取消
970
951
  */
@@ -1174,7 +1155,7 @@ class MongoRepository {
1174
1155
  }
1175
1156
  })
1176
1157
  .select({ _id: 1 })
1177
- .setOptions({ maxTimeMS: 10000 })
1158
+ .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
1178
1159
  .exec()
1179
1160
  .then((docs) => docs.map((doc) => doc._id.toString()));
1180
1161
  });
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.MongoRepository = exports.RoleType = void 0;
13
13
  const factory = require("../factory");
14
14
  const role_1 = require("./mongoose/schemas/role");
15
+ const settings_1 = require("../settings");
15
16
  var RoleType;
16
17
  (function (RoleType) {
17
18
  RoleType["OrganizationRole"] = "OrganizationRole";
@@ -67,7 +68,7 @@ class MongoRepository {
67
68
  return __awaiter(this, void 0, void 0, function* () {
68
69
  const conditions = MongoRepository.CREATE_MONGO_CONDITIONS(params);
69
70
  return this.roleModel.countDocuments((conditions.length > 0) ? { $and: conditions } : {})
70
- .setOptions({ maxTimeMS: 10000 })
71
+ .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
71
72
  .exec();
72
73
  });
73
74
  }
@@ -91,7 +92,7 @@ class MongoRepository {
91
92
  }
92
93
  // const explainResult = await (<any>query).explain();
93
94
  // console.log(explainResult[0].executionStats.allPlansExecution.map((e: any) => e.executionStages.inputStage));
94
- return query.setOptions({ maxTimeMS: 10000 })
95
+ return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
95
96
  .exec()
96
97
  .then((docs) => docs.map((doc) => doc.toObject()));
97
98
  });
@@ -37,7 +37,7 @@ export declare class MongoRepository {
37
37
  */
38
38
  findById(conditions: {
39
39
  id: string;
40
- }, projection?: any): Promise<ISeller>;
40
+ }, inclusion: string[], exclusion: string[]): Promise<ISeller>;
41
41
  /**
42
42
  * 販売者を保管する
43
43
  */
@@ -23,6 +23,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
23
23
  exports.MongoRepository = void 0;
24
24
  const seller_1 = require("./mongoose/schemas/seller");
25
25
  const factory = require("../factory");
26
+ const settings_1 = require("../settings");
26
27
  /**
27
28
  * 販売者リポジトリ
28
29
  */
@@ -32,21 +33,12 @@ class MongoRepository {
32
33
  }
33
34
  // tslint:disable-next-line:max-func-body-length
34
35
  static CREATE_MONGO_CONDITIONS(params) {
35
- var _a, _b, _c, _d, _e, _f;
36
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
36
37
  // MongoDB検索条件
37
38
  const andConditions = [];
38
- // tslint:disable-next-line:no-single-line-block-comment
39
- /* istanbul ignore else */
40
- if (params.project !== undefined) {
41
- if (params.project.id !== undefined && params.project.id !== null) {
42
- if (typeof params.project.id.$eq === 'string') {
43
- andConditions.push({
44
- 'project.id': {
45
- $eq: params.project.id.$eq
46
- }
47
- });
48
- }
49
- }
39
+ const projectIdEq = (_b = (_a = params.project) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.$eq;
40
+ if (typeof projectIdEq === 'string') {
41
+ andConditions.push({ 'project.id': { $eq: projectIdEq } });
50
42
  }
51
43
  const nameRegex = params.name;
52
44
  if (typeof nameRegex === 'string' && nameRegex.length > 0) {
@@ -67,7 +59,7 @@ class MongoRepository {
67
59
  ]
68
60
  });
69
61
  }
70
- const branchCodeEq = (_a = params.branchCode) === null || _a === void 0 ? void 0 : _a.$eq;
62
+ const branchCodeEq = (_c = params.branchCode) === null || _c === void 0 ? void 0 : _c.$eq;
71
63
  if (typeof branchCodeEq === 'string') {
72
64
  andConditions.push({
73
65
  branchCode: {
@@ -75,7 +67,7 @@ class MongoRepository {
75
67
  }
76
68
  });
77
69
  }
78
- const branchCodeRegex = (_b = params.branchCode) === null || _b === void 0 ? void 0 : _b.$regex;
70
+ const branchCodeRegex = (_d = params.branchCode) === null || _d === void 0 ? void 0 : _d.$regex;
79
71
  if (typeof branchCodeRegex === 'string' && branchCodeRegex.length > 0) {
80
72
  andConditions.push({
81
73
  branchCode: {
@@ -83,7 +75,7 @@ class MongoRepository {
83
75
  }
84
76
  });
85
77
  }
86
- const additionalPropertyAll = (_c = params.additionalProperty) === null || _c === void 0 ? void 0 : _c.$all;
78
+ const additionalPropertyAll = (_e = params.additionalProperty) === null || _e === void 0 ? void 0 : _e.$all;
87
79
  if (Array.isArray(additionalPropertyAll)) {
88
80
  andConditions.push({
89
81
  additionalProperty: {
@@ -92,7 +84,7 @@ class MongoRepository {
92
84
  }
93
85
  });
94
86
  }
95
- const additionalPropertyIn = (_d = params.additionalProperty) === null || _d === void 0 ? void 0 : _d.$in;
87
+ const additionalPropertyIn = (_f = params.additionalProperty) === null || _f === void 0 ? void 0 : _f.$in;
96
88
  if (Array.isArray(additionalPropertyIn)) {
97
89
  andConditions.push({
98
90
  additionalProperty: {
@@ -101,7 +93,7 @@ class MongoRepository {
101
93
  }
102
94
  });
103
95
  }
104
- const additionalPropertyNin = (_e = params.additionalProperty) === null || _e === void 0 ? void 0 : _e.$nin;
96
+ const additionalPropertyNin = (_g = params.additionalProperty) === null || _g === void 0 ? void 0 : _g.$nin;
105
97
  if (Array.isArray(additionalPropertyNin)) {
106
98
  andConditions.push({
107
99
  additionalProperty: {
@@ -109,7 +101,7 @@ class MongoRepository {
109
101
  }
110
102
  });
111
103
  }
112
- const additionalPropertyElemMatch = (_f = params.additionalProperty) === null || _f === void 0 ? void 0 : _f.$elemMatch;
104
+ const additionalPropertyElemMatch = (_h = params.additionalProperty) === null || _h === void 0 ? void 0 : _h.$elemMatch;
113
105
  if (additionalPropertyElemMatch !== undefined && additionalPropertyElemMatch !== null) {
114
106
  andConditions.push({
115
107
  additionalProperty: {
@@ -118,14 +110,43 @@ class MongoRepository {
118
110
  }
119
111
  });
120
112
  }
113
+ const hasMerchantReturnPolicyItemConditionIdEq = (_l = (_k = (_j = params.hasMerchantReturnPolicy) === null || _j === void 0 ? void 0 : _j.itemCondition) === null || _k === void 0 ? void 0 : _k.id) === null || _l === void 0 ? void 0 : _l.$eq;
114
+ if (typeof hasMerchantReturnPolicyItemConditionIdEq === 'string') {
115
+ andConditions.push({
116
+ 'hasMerchantReturnPolicy.itemCondition.id': {
117
+ $exists: true,
118
+ $eq: hasMerchantReturnPolicyItemConditionIdEq
119
+ }
120
+ });
121
+ }
121
122
  return andConditions;
122
123
  }
123
124
  /**
124
125
  * 特定販売者検索
125
126
  */
126
- findById(conditions, projection) {
127
+ findById(conditions,
128
+ // projection?: any
129
+ inclusion, exclusion) {
127
130
  return __awaiter(this, void 0, void 0, function* () {
128
- const doc = yield this.organizationModel.findOne({ _id: conditions.id }, Object.assign({ __v: 0, createdAt: 0, updatedAt: 0 }, projection))
131
+ let projection = {};
132
+ if (Array.isArray(inclusion) && inclusion.length > 0) {
133
+ inclusion.forEach((field) => {
134
+ projection[field] = 1;
135
+ });
136
+ }
137
+ else {
138
+ projection = {
139
+ __v: 0,
140
+ createdAt: 0,
141
+ updatedAt: 0
142
+ };
143
+ if (Array.isArray(exclusion) && exclusion.length > 0) {
144
+ exclusion.forEach((field) => {
145
+ projection[field] = 0;
146
+ });
147
+ }
148
+ }
149
+ const doc = yield this.organizationModel.findOne({ _id: conditions.id }, projection)
129
150
  .exec();
130
151
  if (doc === null) {
131
152
  throw new factory.errors.NotFound(this.organizationModel.modelName);
@@ -160,7 +181,7 @@ class MongoRepository {
160
181
  return __awaiter(this, void 0, void 0, function* () {
161
182
  const conditions = MongoRepository.CREATE_MONGO_CONDITIONS(params);
162
183
  return this.organizationModel.countDocuments((conditions.length > 0) ? { $and: conditions } : {})
163
- .setOptions({ maxTimeMS: 10000 })
184
+ .setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
164
185
  .exec();
165
186
  });
166
187
  }
@@ -182,7 +203,7 @@ class MongoRepository {
182
203
  if (((_a = conditions.sort) === null || _a === void 0 ? void 0 : _a.branchCode) !== undefined) {
183
204
  query.sort({ branchCode: conditions.sort.branchCode });
184
205
  }
185
- return query.setOptions({ maxTimeMS: 10000 })
206
+ return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
186
207
  .exec()
187
208
  .then((docs) => docs.map((doc) => doc.toObject()));
188
209
  });
@@ -12,6 +12,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.MongoRepository = void 0;
13
13
  const serviceOutput_1 = require("./mongoose/schemas/serviceOutput");
14
14
  const factory = require("../factory");
15
+ const settings_1 = require("../settings");
15
16
  /**
16
17
  * サービスアウトプットリポジトリ
17
18
  */
@@ -128,7 +129,7 @@ class MongoRepository {
128
129
  // if (params.sort !== undefined) {
129
130
  // query.sort(params.sort);
130
131
  // }
131
- return query.setOptions({ maxTimeMS: 10000 })
132
+ return query.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
132
133
  .exec()
133
134
  .then((docs) => docs.map((doc) => doc.toObject()));
134
135
  });