@chevre/domain 21.2.0-alpha.8 → 21.2.0-alpha.80

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 (237) hide show
  1. package/example/src/chevre/aggregation/aggregateSystem.ts +58 -31
  2. package/example/src/chevre/countDelayedTransactions.ts +60 -0
  3. package/example/src/chevre/createManyEventsIfNotExist.ts +4 -1
  4. package/example/src/chevre/deleteTasksByName.ts +10 -2
  5. package/example/src/chevre/importEventsFromCOA.ts +3 -4
  6. package/example/src/chevre/migrateOrderAdditionalProperties.ts +85 -0
  7. package/example/src/chevre/processReserve.ts +2 -1
  8. package/example/src/chevre/saveTasks.ts +13 -10
  9. package/example/src/chevre/searchAbortedTasks.ts +36 -0
  10. package/example/src/chevre/searchReservationNumbersByOrderNumbers.ts +37 -1
  11. package/example/src/chevre/searchSellers.ts +22 -0
  12. package/example/src/chevre/searchSendEmailActions.ts +44 -0
  13. package/example/src/chevre/task/executeTasks.ts +26 -0
  14. package/example/src/chevre/transaction/findCreditCard.ts +1 -1
  15. package/example/src/chevre/transaction/orderMembershipService.ts +1 -1
  16. package/example/src/chevre/transaction/processReturnOrder.ts +40 -0
  17. package/example/src/chevre/transaction/startExportTasks.ts +20 -0
  18. package/example/src/chevre/updateTransaction.ts +1 -1
  19. package/example/src/playOnMoment.ts +24 -0
  20. package/lib/chevre/credentials.d.ts +1 -0
  21. package/lib/chevre/credentials.js +2 -1
  22. package/lib/chevre/eventEmitter/assetTransaction.d.ts +21 -0
  23. package/lib/chevre/eventEmitter/assetTransaction.js +25 -0
  24. package/lib/chevre/eventEmitter/task.d.ts +18 -0
  25. package/lib/chevre/eventEmitter/task.js +25 -0
  26. package/lib/chevre/eventEmitter/transaction.d.ts +21 -0
  27. package/lib/chevre/eventEmitter/transaction.js +25 -0
  28. package/lib/chevre/eventEmitter.d.ts +4 -0
  29. package/lib/chevre/eventEmitter.js +9 -0
  30. package/lib/chevre/index.d.ts +3 -2
  31. package/lib/chevre/index.js +5 -3
  32. package/lib/chevre/repo/accountTransaction.d.ts +3 -11
  33. package/lib/chevre/repo/accountTransaction.js +1 -54
  34. package/lib/chevre/repo/action.d.ts +29 -1
  35. package/lib/chevre/repo/action.js +32 -25
  36. package/lib/chevre/repo/assetTransaction.d.ts +25 -9
  37. package/lib/chevre/repo/assetTransaction.js +237 -80
  38. package/lib/chevre/repo/comment.d.ts +4 -1
  39. package/lib/chevre/repo/comment.js +20 -5
  40. package/lib/chevre/repo/confirmationNumber.d.ts +0 -1
  41. package/lib/chevre/repo/confirmationNumber.js +3 -15
  42. package/lib/chevre/repo/creativeWork.d.ts +1 -3
  43. package/lib/chevre/repo/emailMessage.d.ts +1 -27
  44. package/lib/chevre/repo/event.d.ts +5 -1
  45. package/lib/chevre/repo/merchantReturnPolicy.d.ts +1 -3
  46. package/lib/chevre/repo/mongoose/schemas/account.d.ts +5 -2
  47. package/lib/chevre/repo/mongoose/schemas/account.js +1 -0
  48. package/lib/chevre/repo/mongoose/schemas/accountTitle.d.ts +30 -3
  49. package/lib/chevre/repo/mongoose/schemas/accountTitle.js +1 -0
  50. package/lib/chevre/repo/mongoose/schemas/accountTransaction.d.ts +32 -3
  51. package/lib/chevre/repo/mongoose/schemas/accountTransaction.js +2 -1
  52. package/lib/chevre/repo/mongoose/schemas/accountingReport.d.ts +14 -3
  53. package/lib/chevre/repo/mongoose/schemas/accountingReport.js +1 -0
  54. package/lib/chevre/repo/mongoose/schemas/action.d.ts +44 -3
  55. package/lib/chevre/repo/mongoose/schemas/action.js +2 -1
  56. package/lib/chevre/repo/mongoose/schemas/additionalProperty.d.ts +18 -3
  57. package/lib/chevre/repo/mongoose/schemas/additionalProperty.js +1 -0
  58. package/lib/chevre/repo/mongoose/schemas/aggregation.d.ts +5 -2
  59. package/lib/chevre/repo/mongoose/schemas/aggregation.js +1 -0
  60. package/lib/chevre/repo/mongoose/schemas/assetTransaction.d.ts +45 -3
  61. package/lib/chevre/repo/mongoose/schemas/assetTransaction.js +15 -19
  62. package/lib/chevre/repo/mongoose/schemas/authorization.d.ts +20 -3
  63. package/lib/chevre/repo/mongoose/schemas/authorization.js +2 -1
  64. package/lib/chevre/repo/mongoose/schemas/categoryCode.d.ts +26 -3
  65. package/lib/chevre/repo/mongoose/schemas/categoryCode.js +1 -0
  66. package/lib/chevre/repo/mongoose/schemas/comments.d.ts +28 -3
  67. package/lib/chevre/repo/mongoose/schemas/comments.js +2 -1
  68. package/lib/chevre/repo/mongoose/schemas/creativeWork.d.ts +44 -3
  69. package/lib/chevre/repo/mongoose/schemas/creativeWork.js +1 -0
  70. package/lib/chevre/repo/mongoose/schemas/customer.d.ts +26 -3
  71. package/lib/chevre/repo/mongoose/schemas/customer.js +1 -0
  72. package/lib/chevre/repo/mongoose/schemas/emailMessages.d.ts +22 -3
  73. package/lib/chevre/repo/mongoose/schemas/emailMessages.js +1 -0
  74. package/lib/chevre/repo/mongoose/schemas/event.d.ts +72 -3
  75. package/lib/chevre/repo/mongoose/schemas/event.js +1 -0
  76. package/lib/chevre/repo/mongoose/schemas/member.d.ts +14 -3
  77. package/lib/chevre/repo/mongoose/schemas/member.js +1 -0
  78. package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.d.ts +22 -3
  79. package/lib/chevre/repo/mongoose/schemas/merchantReturnPolicy.js +1 -0
  80. package/lib/chevre/repo/mongoose/schemas/offer.d.ts +66 -3
  81. package/lib/chevre/repo/mongoose/schemas/offer.js +1 -0
  82. package/lib/chevre/repo/mongoose/schemas/offerCatalog.d.ts +28 -3
  83. package/lib/chevre/repo/mongoose/schemas/offerCatalog.js +1 -0
  84. package/lib/chevre/repo/mongoose/schemas/offerItemCondition.d.ts +74 -0
  85. package/lib/chevre/repo/mongoose/schemas/offerItemCondition.js +45 -0
  86. package/lib/chevre/repo/mongoose/schemas/order.d.ts +52 -3
  87. package/lib/chevre/repo/mongoose/schemas/order.js +2 -1
  88. package/lib/chevre/repo/mongoose/schemas/ownershipInfo.d.ts +26 -3
  89. package/lib/chevre/repo/mongoose/schemas/ownershipInfo.js +2 -1
  90. package/lib/chevre/repo/mongoose/schemas/place.d.ts +50 -3
  91. package/lib/chevre/repo/mongoose/schemas/place.js +1 -0
  92. package/lib/chevre/repo/mongoose/schemas/priceSpecification.d.ts +30 -3
  93. package/lib/chevre/repo/mongoose/schemas/priceSpecification.js +1 -0
  94. package/lib/chevre/repo/mongoose/schemas/product.d.ts +32 -3
  95. package/lib/chevre/repo/mongoose/schemas/product.js +1 -0
  96. package/lib/chevre/repo/mongoose/schemas/project.d.ts +24 -3
  97. package/lib/chevre/repo/mongoose/schemas/project.js +1 -0
  98. package/lib/chevre/repo/mongoose/schemas/reservation.d.ts +63 -4
  99. package/lib/chevre/repo/mongoose/schemas/reservation.js +2 -1
  100. package/lib/chevre/repo/mongoose/schemas/role.d.ts +12 -3
  101. package/lib/chevre/repo/mongoose/schemas/role.js +1 -0
  102. package/lib/chevre/repo/mongoose/schemas/seller.d.ts +32 -3
  103. package/lib/chevre/repo/mongoose/schemas/seller.js +7 -0
  104. package/lib/chevre/repo/mongoose/schemas/serviceOutput.d.ts +12 -3
  105. package/lib/chevre/repo/mongoose/schemas/serviceOutput.js +2 -1
  106. package/lib/chevre/repo/mongoose/schemas/task.d.ts +31 -3
  107. package/lib/chevre/repo/mongoose/schemas/task.js +3 -1
  108. package/lib/chevre/repo/mongoose/schemas/telemetry.d.ts +22 -3
  109. package/lib/chevre/repo/mongoose/schemas/telemetry.js +1 -0
  110. package/lib/chevre/repo/mongoose/schemas/transaction.d.ts +41 -3
  111. package/lib/chevre/repo/mongoose/schemas/transaction.js +3 -1
  112. package/lib/chevre/repo/mongoose/schemas/trip.d.ts +12 -3
  113. package/lib/chevre/repo/mongoose/schemas/trip.js +1 -0
  114. package/lib/chevre/repo/offerItemCondition.d.ts +22 -0
  115. package/lib/chevre/repo/offerItemCondition.js +120 -0
  116. package/lib/chevre/repo/order.d.ts +52 -2
  117. package/lib/chevre/repo/order.js +52 -4
  118. package/lib/chevre/repo/reservation.d.ts +8 -4
  119. package/lib/chevre/repo/reservation.js +8 -42
  120. package/lib/chevre/repo/seller.js +19 -19
  121. package/lib/chevre/repo/task.d.ts +42 -2
  122. package/lib/chevre/repo/task.js +90 -9
  123. package/lib/chevre/repo/transaction.d.ts +23 -3
  124. package/lib/chevre/repo/transaction.js +174 -54
  125. package/lib/chevre/repository.d.ts +5 -2
  126. package/lib/chevre/repository.js +8 -4
  127. package/lib/chevre/service/aggregation/system.d.ts +67 -22
  128. package/lib/chevre/service/aggregation/system.js +101 -89
  129. package/lib/chevre/service/assetTransaction/cancelReservation.js +1 -28
  130. package/lib/chevre/service/assetTransaction/moneyTransfer.js +1 -23
  131. package/lib/chevre/service/assetTransaction/pay/potentialActions.js +17 -1
  132. package/lib/chevre/service/assetTransaction/pay.js +10 -25
  133. package/lib/chevre/service/assetTransaction/refund.js +1 -23
  134. package/lib/chevre/service/assetTransaction/registerService.js +1 -25
  135. package/lib/chevre/service/assetTransaction/reserve/factory.d.ts +6 -2
  136. package/lib/chevre/service/assetTransaction/reserve/factory.js +24 -20
  137. package/lib/chevre/service/assetTransaction/reserve.d.ts +7 -1
  138. package/lib/chevre/service/assetTransaction/reserve.js +35 -40
  139. package/lib/chevre/service/assetTransaction.d.ts +6 -2
  140. package/lib/chevre/service/assetTransaction.js +9 -5
  141. package/lib/chevre/service/event.js +3 -1
  142. package/lib/chevre/service/notification/factory.js +2 -2
  143. package/lib/chevre/service/notification.d.ts +3 -1
  144. package/lib/chevre/service/notification.js +41 -7
  145. package/lib/chevre/service/offer/event/authorize.d.ts +1 -0
  146. package/lib/chevre/service/offer/event/authorize.js +5 -2
  147. package/lib/chevre/service/offer/event/factory.d.ts +2 -0
  148. package/lib/chevre/service/offer/event/factory.js +2 -2
  149. package/lib/chevre/service/offer/event/voidTransaction.d.ts +2 -0
  150. package/lib/chevre/service/offer/event/voidTransaction.js +17 -1
  151. package/lib/chevre/service/offer.js +1 -1
  152. package/lib/chevre/service/order/deleteOrder.d.ts +3 -1
  153. package/lib/chevre/service/order/deleteOrder.js +8 -8
  154. package/lib/chevre/service/order/onOrderStatusChanged/factory.d.ts +0 -1
  155. package/lib/chevre/service/order/onOrderStatusChanged/factory.js +1 -48
  156. package/lib/chevre/service/order/onOrderStatusChanged.js +1 -3
  157. package/lib/chevre/service/order/placeOrder.js +1 -1
  158. package/lib/chevre/service/order/returnOrder.js +1 -5
  159. package/lib/chevre/service/order/sendOrder.js +1 -1
  160. package/lib/chevre/service/payment/any/onPaid.js +1 -1
  161. package/lib/chevre/service/payment/any/onRefund.js +1 -1
  162. package/lib/chevre/service/payment/any.js +60 -10
  163. package/lib/chevre/service/payment/movieTicket/validation.d.ts +3 -2
  164. package/lib/chevre/service/payment/movieTicket/validation.js +12 -25
  165. package/lib/chevre/service/payment/movieTicket.d.ts +1 -1
  166. package/lib/chevre/service/payment/movieTicket.js +4 -3
  167. package/lib/chevre/service/product.js +1 -5
  168. package/lib/chevre/service/report/telemetry.d.ts +0 -11
  169. package/lib/chevre/service/report/telemetry.js +21 -24
  170. package/lib/chevre/service/reserve/cancelReservation.d.ts +4 -2
  171. package/lib/chevre/service/reserve/cancelReservation.js +2 -4
  172. package/lib/chevre/service/reserve/checkInReservation.d.ts +0 -3
  173. package/lib/chevre/service/reserve/checkInReservation.js +24 -0
  174. package/lib/chevre/service/reserve/confirmReservation.d.ts +2 -0
  175. package/lib/chevre/service/reserve/confirmReservation.js +45 -9
  176. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.d.ts +0 -3
  177. package/lib/chevre/service/reserve/potentialActions/onReservationCanceled.js +20 -20
  178. package/lib/chevre/service/reserve/potentialActions/onReservationCheckedIn.js +2 -3
  179. package/lib/chevre/service/reserve/potentialActions/onReservationConfirmed.js +2 -31
  180. package/lib/chevre/service/reserve/potentialActions/onReservationUsed.js +2 -3
  181. package/lib/chevre/service/reserve/useReservation.d.ts +4 -3
  182. package/lib/chevre/service/reserve/useReservation.js +14 -71
  183. package/lib/chevre/service/reserve/verifyToken4reservation.d.ts +15 -0
  184. package/lib/chevre/service/reserve/verifyToken4reservation.js +56 -0
  185. package/lib/chevre/service/reserve.d.ts +2 -1
  186. package/lib/chevre/service/reserve.js +3 -1
  187. package/lib/chevre/service/task/confirmRegisterServiceTransaction.js +1 -1
  188. package/lib/chevre/service/task/deleteTransaction.js +10 -8
  189. package/lib/chevre/service/task/importOffersFromCOA.js +4 -0
  190. package/lib/chevre/service/task/onAuthorizationCreated.d.ts +7 -0
  191. package/lib/chevre/service/task/onAuthorizationCreated.js +101 -0
  192. package/lib/chevre/service/task/reserve.js +5 -6
  193. package/lib/chevre/service/task/returnPayTransaction.js +2 -12
  194. package/lib/chevre/service/task/useReservation.d.ts +7 -0
  195. package/lib/chevre/service/task/{deleteOrder.js → useReservation.js} +11 -12
  196. package/lib/chevre/service/task/voidReserveTransaction.js +3 -1
  197. package/lib/chevre/service/task.d.ts +9 -0
  198. package/lib/chevre/service/task.js +43 -4
  199. package/lib/chevre/service/transaction/deleteTransaction.d.ts +21 -0
  200. package/lib/chevre/service/transaction/deleteTransaction.js +232 -0
  201. package/lib/chevre/service/transaction/moneyTransfer/exportTasks/factory.js +11 -1
  202. package/lib/chevre/service/transaction/moneyTransfer/factory.js +3 -1
  203. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.d.ts +1 -0
  204. package/lib/chevre/service/transaction/moneyTransfer/potentialActions.js +1 -1
  205. package/lib/chevre/service/transaction/moneyTransfer.js +9 -12
  206. package/lib/chevre/service/transaction/placeOrder/exportTasks/factory.js +42 -30
  207. package/lib/chevre/service/transaction/placeOrder.js +1 -5
  208. package/lib/chevre/service/transaction/placeOrderInProgress/factory.js +1 -1
  209. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.d.ts +1 -0
  210. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/moneyTransfer.js +1 -1
  211. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.d.ts +1 -0
  212. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions/registerService.js +1 -1
  213. package/lib/chevre/service/transaction/placeOrderInProgress/potentialActions.d.ts +1 -0
  214. package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.d.ts +3 -0
  215. package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.js +7 -3
  216. package/lib/chevre/service/transaction/placeOrderInProgress/result.d.ts +1 -0
  217. package/lib/chevre/service/transaction/placeOrderInProgress/result.js +2 -2
  218. package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.d.ts +1 -1
  219. package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.js +2 -2
  220. package/lib/chevre/service/transaction/placeOrderInProgress/validation.d.ts +2 -1
  221. package/lib/chevre/service/transaction/placeOrderInProgress/validation.js +23 -17
  222. package/lib/chevre/service/transaction/placeOrderInProgress.d.ts +0 -3
  223. package/lib/chevre/service/transaction/placeOrderInProgress.js +22 -11
  224. package/lib/chevre/service/transaction/returnOrder/exportTasks/factory.js +10 -1
  225. package/lib/chevre/service/transaction/returnOrder/potentialActions/returnPaymentMethod.js +25 -17
  226. package/lib/chevre/service/transaction/returnOrder.d.ts +4 -0
  227. package/lib/chevre/service/transaction/returnOrder.js +225 -35
  228. package/lib/chevre/service/transaction.d.ts +8 -13
  229. package/lib/chevre/service/transaction.js +12 -145
  230. package/lib/chevre/settings.d.ts +4 -1
  231. package/lib/chevre/settings.js +15 -5
  232. package/package.json +5 -5
  233. package/example/src/chevre/migrateMoneyTransferPendingTransactionIdentifier.ts +0 -96
  234. package/example/src/chevre/migrateMovieAdditionalProperties.ts +0 -98
  235. package/lib/chevre/service/task/deleteAssetTransaction.d.ts +0 -12
  236. package/lib/chevre/service/task/deleteAssetTransaction.js +0 -65
  237. package/lib/chevre/service/task/deleteOrder.d.ts +0 -6
@@ -0,0 +1,120 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
23
+ exports.MongoRepository = void 0;
24
+ const factory = require("../factory");
25
+ const offerItemCondition_1 = require("./mongoose/schemas/offerItemCondition");
26
+ /**
27
+ * アイテムコンディションリポジトリ
28
+ */
29
+ class MongoRepository {
30
+ constructor(connection) {
31
+ this.offerItemConditionModel = connection.model(offerItemCondition_1.modelName, offerItemCondition_1.schema);
32
+ }
33
+ static CREATE_MONGO_CONDITIONS(params) {
34
+ var _a, _b, _c, _d, _e, _f;
35
+ const andConditions = [];
36
+ const projectIdEq = (_b = (_a = params.project) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.$eq;
37
+ if (typeof projectIdEq === 'string') {
38
+ andConditions.push({ 'project.id': { $eq: projectIdEq } });
39
+ }
40
+ const idEq = (_c = params.id) === null || _c === void 0 ? void 0 : _c.$eq;
41
+ if (typeof idEq === 'string') {
42
+ andConditions.push({ _id: { $eq: idEq } });
43
+ }
44
+ const idIn = (_d = params.id) === null || _d === void 0 ? void 0 : _d.$in;
45
+ if (Array.isArray(idIn)) {
46
+ andConditions.push({ _id: { $in: idIn } });
47
+ }
48
+ const identifierEq = (_e = params.identifier) === null || _e === void 0 ? void 0 : _e.$eq;
49
+ if (typeof identifierEq === 'string') {
50
+ andConditions.push({ identifier: { $eq: identifierEq } });
51
+ }
52
+ const identifierIn = (_f = params.identifier) === null || _f === void 0 ? void 0 : _f.$in;
53
+ if (Array.isArray(identifierIn)) {
54
+ andConditions.push({ identifier: { $in: identifierIn } });
55
+ }
56
+ return andConditions;
57
+ }
58
+ findById(params) {
59
+ return __awaiter(this, void 0, void 0, function* () {
60
+ const doc = yield this.offerItemConditionModel.findOne({ _id: params.id }, {
61
+ __v: 0,
62
+ createdAt: 0,
63
+ updatedAt: 0
64
+ })
65
+ .exec();
66
+ if (doc === null) {
67
+ throw new factory.errors.NotFound(this.offerItemConditionModel.modelName);
68
+ }
69
+ return doc.toObject();
70
+ });
71
+ }
72
+ search(params, projection) {
73
+ var _a;
74
+ return __awaiter(this, void 0, void 0, function* () {
75
+ const conditions = MongoRepository.CREATE_MONGO_CONDITIONS(params);
76
+ const positiveProjectionExists = (projection !== undefined && projection !== null)
77
+ ? Object.values(projection)
78
+ .some((value) => value !== 0)
79
+ : false;
80
+ const query = this.offerItemConditionModel.find((conditions.length > 0) ? { $and: conditions } : {}, (positiveProjectionExists)
81
+ ? projection
82
+ : Object.assign(Object.assign({}, projection), { __v: 0, createdAt: 0, updatedAt: 0 }));
83
+ if (typeof params.limit === 'number' && params.limit > 0) {
84
+ const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
85
+ query.limit(params.limit)
86
+ .skip(params.limit * (page - 1));
87
+ }
88
+ if (((_a = params.sort) === null || _a === void 0 ? void 0 : _a.identifier) !== undefined) {
89
+ query.sort({ identifier: params.sort.identifier });
90
+ }
91
+ return query.setOptions({ maxTimeMS: 10000 })
92
+ .exec()
93
+ .then((docs) => docs.map((doc) => doc.toObject()));
94
+ });
95
+ }
96
+ save(params) {
97
+ return __awaiter(this, void 0, void 0, function* () {
98
+ let doc;
99
+ if (params.id === '') {
100
+ doc = yield this.offerItemConditionModel.create(params);
101
+ }
102
+ else {
103
+ const { id, identifier, project, typeOf } = params, updateFields = __rest(params, ["id", "identifier", "project", "typeOf"]);
104
+ doc = yield this.offerItemConditionModel.findOneAndUpdate({ _id: params.id }, updateFields, { upsert: false, new: true })
105
+ .exec();
106
+ }
107
+ if (doc === null) {
108
+ throw new factory.errors.NotFound(this.offerItemConditionModel.modelName);
109
+ }
110
+ return doc.toObject();
111
+ });
112
+ }
113
+ deleteById(params) {
114
+ return __awaiter(this, void 0, void 0, function* () {
115
+ yield this.offerItemConditionModel.findOneAndRemove({ _id: params.id })
116
+ .exec();
117
+ });
118
+ }
119
+ }
120
+ exports.MongoRepository = MongoRepository;
@@ -1,3 +1,27 @@
1
+ /// <reference types="mongoose/types/aggregate" />
2
+ /// <reference types="mongoose/types/callback" />
3
+ /// <reference types="mongoose/types/collection" />
4
+ /// <reference types="mongoose/types/connection" />
5
+ /// <reference types="mongoose/types/cursor" />
6
+ /// <reference types="mongoose/types/document" />
7
+ /// <reference types="mongoose/types/error" />
8
+ /// <reference types="mongoose/types/expressions" />
9
+ /// <reference types="mongoose/types/helpers" />
10
+ /// <reference types="mongoose/types/middlewares" />
11
+ /// <reference types="mongoose/types/indexes" />
12
+ /// <reference types="mongoose/types/models" />
13
+ /// <reference types="mongoose/types/mongooseoptions" />
14
+ /// <reference types="mongoose/types/pipelinestage" />
15
+ /// <reference types="mongoose/types/populate" />
16
+ /// <reference types="mongoose/types/query" />
17
+ /// <reference types="mongoose/types/schemaoptions" />
18
+ /// <reference types="mongoose/types/schematypes" />
19
+ /// <reference types="mongoose/types/session" />
20
+ /// <reference types="mongoose/types/types" />
21
+ /// <reference types="mongoose/types/utility" />
22
+ /// <reference types="mongoose/types/validation" />
23
+ /// <reference types="mongoose/types/virtuals" />
24
+ /// <reference types="mongoose/types/inferschematype" />
1
25
  import { Connection } from 'mongoose';
2
26
  import * as factory from '../factory';
3
27
  /**
@@ -62,7 +86,9 @@ export declare class MongoRepository {
62
86
  /**
63
87
  * 注文を検索する
64
88
  */
65
- search(params: factory.order.ISearchConditions, projection?: any): Promise<factory.order.IOrder[]>;
89
+ search(params: factory.order.ISearchConditions, projection?: {
90
+ [key: string]: 0 | 1;
91
+ }): Promise<factory.order.IOrder[]>;
66
92
  /**
67
93
  * 注文の受入オファーIDリストを検索する
68
94
  */
@@ -70,7 +96,11 @@ export declare class MongoRepository {
70
96
  /**
71
97
  * オファー展開の注文検索
72
98
  */
73
- searchWithUnwoundAcceptedOffer(params: factory.order.ISearchConditions, projection?: any): Promise<factory.order.IOrder[]>;
99
+ searchWithUnwoundAcceptedOffer(params: factory.order.ISearchConditions, projection?: {
100
+ [key: string]: any;
101
+ }): Promise<Omit<factory.order.IOrder[], 'acceptedOffers'> & {
102
+ acceptedOffers?: factory.order.IAcceptedOffer<factory.order.IItemOffered> | factory.order.IAcceptedOffer<factory.order.IItemOffered>[];
103
+ }>;
74
104
  /**
75
105
  * 特典口座情報が未保管であれば保管する
76
106
  */
@@ -86,4 +116,24 @@ export declare class MongoRepository {
86
116
  $in: string[];
87
117
  };
88
118
  }): Promise<(string)[]>;
119
+ /**
120
+ * 注文に含まれるイベントIDを検索する
121
+ */
122
+ searchReservationForIdsByOrderNumbers(params: {
123
+ orderNumber: {
124
+ $in: string[];
125
+ };
126
+ }): Promise<string[]>;
127
+ /**
128
+ * 注文に含まれるacceptedOffersを検索する
129
+ */
130
+ searchAcceptedOffersByOrderNumbers(params: {
131
+ orderNumber: {
132
+ $in: string[];
133
+ };
134
+ }): Promise<{
135
+ id: string;
136
+ priceSpecification: factory.order.ITicketPriceSpecification;
137
+ }[]>;
138
+ getCursor(conditions: any, projection: any): import("mongoose").Cursor<any, import("mongoose").QueryOptions<any>>;
89
139
  }
@@ -896,8 +896,15 @@ class MongoRepository {
896
896
  var _a;
897
897
  return __awaiter(this, void 0, void 0, function* () {
898
898
  const conditions = MongoRepository.CREATE_MONGO_CONDITIONS(params);
899
+ const projectionSpecified = projection !== undefined && projection !== null;
900
+ const positiveProjectionExists = (projectionSpecified)
901
+ ? Object.values(projection)
902
+ .some((value) => value !== 0)
903
+ : false;
899
904
  const query = this.orderModel.find((conditions.length > 0) ? { $and: conditions } : {})
900
- .select(Object.assign({ __v: 0, createdAt: 0, updatedAt: 0 }, projection));
905
+ .select((projectionSpecified && positiveProjectionExists)
906
+ ? projection
907
+ : Object.assign({ __v: 0, createdAt: 0, updatedAt: 0 }, projection));
901
908
  if (typeof params.limit === 'number' && params.limit > 0) {
902
909
  const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
903
910
  query.limit(params.limit)
@@ -1002,13 +1009,54 @@ class MongoRepository {
1002
1009
  if (!Array.isArray(params.orderNumber.$in) || params.orderNumber.$in.length === 0) {
1003
1010
  return [];
1004
1011
  }
1005
- const reservationNumbers = yield this.orderModel.distinct('acceptedOffers.itemOffered.reservationNumber', {
1006
- orderNumber: params.orderNumber.$in
1012
+ return this.orderModel.distinct('acceptedOffers.itemOffered.reservationNumber', {
1013
+ 'acceptedOffers.itemOffered.reservationNumber': { $exists: true },
1014
+ orderNumber: { $in: params.orderNumber.$in }
1007
1015
  })
1008
1016
  .setOptions({ maxTimeMS: 10000 })
1009
1017
  .exec();
1010
- return [...new Set(reservationNumbers)];
1011
1018
  });
1012
1019
  }
1020
+ /**
1021
+ * 注文に含まれるイベントIDを検索する
1022
+ */
1023
+ searchReservationForIdsByOrderNumbers(params) {
1024
+ return __awaiter(this, void 0, void 0, function* () {
1025
+ if (!Array.isArray(params.orderNumber.$in) || params.orderNumber.$in.length === 0) {
1026
+ return [];
1027
+ }
1028
+ return this.orderModel.distinct('acceptedOffers.itemOffered.reservationFor.id', {
1029
+ 'acceptedOffers.itemOffered.reservationFor.id': { $exists: true },
1030
+ orderNumber: { $in: params.orderNumber.$in }
1031
+ })
1032
+ .setOptions({ maxTimeMS: 10000 })
1033
+ .exec();
1034
+ });
1035
+ }
1036
+ /**
1037
+ * 注文に含まれるacceptedOffersを検索する
1038
+ */
1039
+ searchAcceptedOffersByOrderNumbers(params) {
1040
+ return __awaiter(this, void 0, void 0, function* () {
1041
+ if (!Array.isArray(params.orderNumber.$in) || params.orderNumber.$in.length === 0) {
1042
+ return [];
1043
+ }
1044
+ const aggregate = this.orderModel.aggregate();
1045
+ aggregate.unwind('$acceptedOffers');
1046
+ aggregate.match({ orderNumber: { $in: params.orderNumber.$in } });
1047
+ aggregate.project({
1048
+ _id: 0,
1049
+ id: '$acceptedOffers.id',
1050
+ priceSpecification: '$acceptedOffers.priceSpecification'
1051
+ });
1052
+ return aggregate.option({ maxTimeMS: 10000 })
1053
+ .exec();
1054
+ });
1055
+ }
1056
+ getCursor(conditions, projection) {
1057
+ return this.orderModel.find(conditions, projection)
1058
+ .sort({ orderDate: factory.sortType.Descending })
1059
+ .cursor();
1060
+ }
1013
1061
  }
1014
1062
  exports.MongoRepository = MongoRepository;
@@ -23,20 +23,24 @@ export declare class MongoRepository {
23
23
  /**
24
24
  * 予約検索
25
25
  */
26
- search<T extends factory.reservationType>(params: factory.reservation.ISearchConditions<T>, projection?: any): Promise<factory.reservation.IReservation<factory.reservationType.EventReservation>[]>;
26
+ search<T extends factory.reservationType>(params: factory.reservation.ISearchConditions<T>, projection?: {
27
+ [key: string]: 0 | 1;
28
+ }): Promise<factory.reservation.IReservation<factory.reservationType.EventReservation>[]>;
27
29
  findById<T extends factory.reservationType>(params: {
28
30
  id: string;
29
31
  inclusion?: string[];
30
32
  exclusion?: string[];
31
33
  }): Promise<factory.reservation.IReservation<T>>;
32
- /**
33
- * 予約確定
34
- */
35
34
  confirmByReservationNumber(params: {
36
35
  reservationNumber: string;
37
36
  previousReservationStatus: factory.reservationStatusType;
38
37
  underName?: factory.reservation.IUnderName<factory.reservationType.EventReservation>;
39
38
  }): Promise<void>;
39
+ confirmByIdIfNotExist(params: {
40
+ reservation: factory.assetTransaction.reserve.IObjectSubReservation;
41
+ reservationFor: factory.assetTransaction.reserve.IReservationFor;
42
+ underName?: factory.reservation.IUnderName<factory.reservationType.EventReservation>;
43
+ }): Promise<void>;
40
44
  /**
41
45
  * 予約取消
42
46
  */
@@ -910,48 +910,6 @@ class MongoRepository {
910
910
  return doc.toObject();
911
911
  });
912
912
  }
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
913
  confirmByReservationNumber(params) {
956
914
  return __awaiter(this, void 0, void 0, function* () {
957
915
  const conditions = {
@@ -965,6 +923,14 @@ class MongoRepository {
965
923
  .exec();
966
924
  });
967
925
  }
926
+ confirmByIdIfNotExist(params) {
927
+ return __awaiter(this, void 0, void 0, function* () {
928
+ yield this.reservationModel.findByIdAndUpdate({ _id: { $eq: params.reservation.id } }, {
929
+ $setOnInsert: 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)
930
+ })
931
+ .exec();
932
+ });
933
+ }
968
934
  /**
969
935
  * 予約取消
970
936
  */
@@ -32,21 +32,12 @@ class MongoRepository {
32
32
  }
33
33
  // tslint:disable-next-line:max-func-body-length
34
34
  static CREATE_MONGO_CONDITIONS(params) {
35
- var _a, _b, _c, _d, _e, _f;
35
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
36
36
  // MongoDB検索条件
37
37
  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
- }
38
+ const projectIdEq = (_b = (_a = params.project) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.$eq;
39
+ if (typeof projectIdEq === 'string') {
40
+ andConditions.push({ 'project.id': { $eq: projectIdEq } });
50
41
  }
51
42
  const nameRegex = params.name;
52
43
  if (typeof nameRegex === 'string' && nameRegex.length > 0) {
@@ -67,7 +58,7 @@ class MongoRepository {
67
58
  ]
68
59
  });
69
60
  }
70
- const branchCodeEq = (_a = params.branchCode) === null || _a === void 0 ? void 0 : _a.$eq;
61
+ const branchCodeEq = (_c = params.branchCode) === null || _c === void 0 ? void 0 : _c.$eq;
71
62
  if (typeof branchCodeEq === 'string') {
72
63
  andConditions.push({
73
64
  branchCode: {
@@ -75,7 +66,7 @@ class MongoRepository {
75
66
  }
76
67
  });
77
68
  }
78
- const branchCodeRegex = (_b = params.branchCode) === null || _b === void 0 ? void 0 : _b.$regex;
69
+ const branchCodeRegex = (_d = params.branchCode) === null || _d === void 0 ? void 0 : _d.$regex;
79
70
  if (typeof branchCodeRegex === 'string' && branchCodeRegex.length > 0) {
80
71
  andConditions.push({
81
72
  branchCode: {
@@ -83,7 +74,7 @@ class MongoRepository {
83
74
  }
84
75
  });
85
76
  }
86
- const additionalPropertyAll = (_c = params.additionalProperty) === null || _c === void 0 ? void 0 : _c.$all;
77
+ const additionalPropertyAll = (_e = params.additionalProperty) === null || _e === void 0 ? void 0 : _e.$all;
87
78
  if (Array.isArray(additionalPropertyAll)) {
88
79
  andConditions.push({
89
80
  additionalProperty: {
@@ -92,7 +83,7 @@ class MongoRepository {
92
83
  }
93
84
  });
94
85
  }
95
- const additionalPropertyIn = (_d = params.additionalProperty) === null || _d === void 0 ? void 0 : _d.$in;
86
+ const additionalPropertyIn = (_f = params.additionalProperty) === null || _f === void 0 ? void 0 : _f.$in;
96
87
  if (Array.isArray(additionalPropertyIn)) {
97
88
  andConditions.push({
98
89
  additionalProperty: {
@@ -101,7 +92,7 @@ class MongoRepository {
101
92
  }
102
93
  });
103
94
  }
104
- const additionalPropertyNin = (_e = params.additionalProperty) === null || _e === void 0 ? void 0 : _e.$nin;
95
+ const additionalPropertyNin = (_g = params.additionalProperty) === null || _g === void 0 ? void 0 : _g.$nin;
105
96
  if (Array.isArray(additionalPropertyNin)) {
106
97
  andConditions.push({
107
98
  additionalProperty: {
@@ -109,7 +100,7 @@ class MongoRepository {
109
100
  }
110
101
  });
111
102
  }
112
- const additionalPropertyElemMatch = (_f = params.additionalProperty) === null || _f === void 0 ? void 0 : _f.$elemMatch;
103
+ const additionalPropertyElemMatch = (_h = params.additionalProperty) === null || _h === void 0 ? void 0 : _h.$elemMatch;
113
104
  if (additionalPropertyElemMatch !== undefined && additionalPropertyElemMatch !== null) {
114
105
  andConditions.push({
115
106
  additionalProperty: {
@@ -118,6 +109,15 @@ class MongoRepository {
118
109
  }
119
110
  });
120
111
  }
112
+ 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;
113
+ if (typeof hasMerchantReturnPolicyItemConditionIdEq === 'string') {
114
+ andConditions.push({
115
+ 'hasMerchantReturnPolicy.itemCondition.id': {
116
+ $exists: true,
117
+ $eq: hasMerchantReturnPolicyItemConditionIdEq
118
+ }
119
+ });
120
+ }
121
121
  return andConditions;
122
122
  }
123
123
  /**
@@ -17,6 +17,9 @@ interface IStatus {
17
17
  export interface IAggregateTask {
18
18
  statuses: IStatus[];
19
19
  }
20
+ interface IOptionOnCreate {
21
+ emitImmediately: boolean;
22
+ }
20
23
  /**
21
24
  * タスクリポジトリ
22
25
  */
@@ -24,13 +27,43 @@ export declare class MongoRepository {
24
27
  readonly taskModel: typeof Model;
25
28
  constructor(connection: Connection);
26
29
  static CREATE_MONGO_CONDITIONS(params: factory.task.ISearchConditions): any[];
27
- saveMany(taskAttributes: factory.task.IAttributes<factory.taskName>[]): Promise<{
30
+ saveMany(taskAttributes: factory.task.IAttributes<factory.taskName>[], options: IOptionOnCreate): Promise<{
28
31
  id: string;
29
32
  }[]>;
30
- createInformTaskIfNotExist(params: factory.task.IAttributes<factory.taskName.TriggerWebhook>): Promise<void>;
33
+ createInformTaskIfNotExist(params: factory.task.IAttributes<factory.taskName.TriggerWebhook>, options: IOptionOnCreate): Promise<void>;
34
+ executeById(params: {
35
+ id: string;
36
+ executor: {
37
+ name: string;
38
+ };
39
+ }): Promise<factory.task.ITask<factory.taskName> | null>;
31
40
  executeOneByName<T extends factory.taskName>(params: {
32
41
  name: T;
42
+ executor: {
43
+ name: string;
44
+ };
33
45
  }): Promise<factory.task.ITask<T> | null>;
46
+ /**
47
+ * 一定期間遅延したタスクを実行する
48
+ */
49
+ executeTasks(params: {
50
+ now: Date;
51
+ /**
52
+ * 指定期間遅延しているタスクを実行する
53
+ */
54
+ delayInSeconds: number;
55
+ limit: number;
56
+ name: {
57
+ /**
58
+ * 指定タスクのみ実行する
59
+ */
60
+ $in?: factory.taskName[];
61
+ /**
62
+ * 指定タスク以外のみ実行する
63
+ */
64
+ $nin?: factory.taskName[];
65
+ };
66
+ }): Promise<Pick<import("@chevre/factory/lib/task").ITask | import("@chevre/factory/lib/task/confirmMoneyTransfer").ITask | import("@chevre/factory/lib/task/confirmRegisterService").ITask | import("@chevre/factory/lib/task/confirmPayTransaction").ITask | import("@chevre/factory/lib/task/confirmRegisterServiceTransaction").ITask | import("@chevre/factory/lib/task/confirmReserveTransaction").ITask | import("@chevre/factory/lib/task/deleteTransaction").ITask | import("@chevre/factory/lib/task/givePointAward").ITask | import("@chevre/factory/lib/task/onAuthorizationCreated").ITask | import("@chevre/factory/lib/task/orderProgramMembership").ITask | import("@chevre/factory/lib/task/placeOrder").ITask | import("@chevre/factory/lib/task/returnOrder").ITask | import("@chevre/factory/lib/task/returnMoneyTransfer").ITask | import("@chevre/factory/lib/task/returnPayTransaction").ITask | import("@chevre/factory/lib/task/returnPointAward").ITask | import("@chevre/factory/lib/task/returnReserveTransaction").ITask | import("@chevre/factory/lib/task/sendEmailMessage").ITask | import("@chevre/factory/lib/task/sendOrder").ITask | import("@chevre/factory/lib/task/triggerWebhook").ITask | import("@chevre/factory/lib/task/useReservation").ITask | import("@chevre/factory/lib/task/voidMoneyTransferTransaction").ITask | import("@chevre/factory/lib/task/voidPayTransaction").ITask | import("@chevre/factory/lib/task/voidRegisterServiceTransaction").ITask | import("@chevre/factory/lib/task/voidReserveTransaction").ITask, "id" | "name" | "status">[]>;
34
67
  retry(params: {
35
68
  intervalInMinutes: number;
36
69
  }): Promise<void>;
@@ -60,6 +93,13 @@ export declare class MongoRepository {
60
93
  }): Promise<void>;
61
94
  deleteByName(params: {
62
95
  name: factory.taskName;
96
+ status?: {
97
+ $eq?: factory.taskStatus;
98
+ };
99
+ runsAt?: {
100
+ $gte: Date;
101
+ $lte: Date;
102
+ };
63
103
  }): Promise<import("mongodb").DeleteResult>;
64
104
  countDelayedTasks(params: {
65
105
  delayInSeconds: number;