@chevre/domain 23.2.0-alpha.6 → 23.2.0-alpha.61

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 (173) hide show
  1. package/example/src/chevre/acceptedPaymentMethodOffer/adminAcceptedPaymentMethodOffers.ts +25 -17
  2. package/example/src/chevre/confirmationNumber/testRandomness.ts +49 -0
  3. package/example/src/chevre/emailMessage/createEmailMessageText.ts +63 -0
  4. package/example/src/chevre/event/importEventsFromCOAByTitle.ts +2 -2
  5. package/example/src/chevre/event/unsetSuperEventVideoFormat.ts +30 -0
  6. package/example/src/chevre/eventSeries/unsetVideoFormat.ts +31 -0
  7. package/example/src/chevre/{upsertScreeningEventSeriesByVersion.ts → eventSeries/upsertScreeningEventSeriesByVersion.ts} +47 -43
  8. package/example/src/chevre/{upsertOfferCatalogItemsByIdentifier.ts → offerCatalog/upsertOfferCatalogItemsByIdentifier.ts} +6 -3
  9. package/example/src/chevre/{upsertOfferCatalogsByIdentifier.ts → offerCatalog/upsertOfferCatalogsByIdentifier.ts} +8 -3
  10. package/example/src/chevre/{upsertOffersByIdentifier.ts → offers/upsertOffersByIdentifier.ts} +5 -3
  11. package/example/src/chevre/orderNumber/testRandomness.ts +54 -0
  12. package/example/src/chevre/place/adminEntranceGates.ts +69 -0
  13. package/example/src/chevre/place/checkEntranceGatesCount.ts +82 -0
  14. package/example/src/chevre/place/findRooms.ts +24 -0
  15. package/example/src/chevre/place/findSections.ts +28 -0
  16. package/example/src/chevre/place/migrateSectionIdentifier.ts +92 -0
  17. package/example/src/chevre/place/seatsJson2csv.ts +63 -0
  18. package/example/src/chevre/place/upsertMovieTheatersByBranchCode.ts +41 -0
  19. package/example/src/chevre/place/upsertRoomsByBranchCode.ts +40 -0
  20. package/example/src/chevre/place/upsertSeatSectionsByBranchCode.ts +56 -0
  21. package/example/src/chevre/reIndex.ts +1 -1
  22. package/example/src/chevre/roles/addAdminAcceptedPaymentMethodReadPermissionIfNotExists.ts +33 -0
  23. package/example/src/chevre/roles/addAdminAcceptedPaymentMethodWritePermissionIfNotExists.ts +33 -0
  24. package/example/src/chevre/roles/addAdminMovieReadPermissionIfNotExists.ts +49 -0
  25. package/example/src/chevre/roles/addAdminRoomReadPermissionIfNotExists.ts +34 -0
  26. package/example/src/chevre/roles/addAdminRoomWritePermissionIfNotExists.ts +34 -0
  27. package/example/src/chevre/settings/addOrderNumberSetting.ts +44 -0
  28. package/example/src/chevre/settings/addTransactionNumberSetting.ts +40 -0
  29. package/example/src/chevre/transactionNumber/publishByTimestamp.ts +23 -0
  30. package/example/src/chevre/transactionNumber/testRandomness.ts +42 -0
  31. package/example/src/chevre/unsetUnnecessaryFields.ts +8 -4
  32. package/lib/chevre/emailMessageBuilder.js +1 -0
  33. package/lib/chevre/factory/event.d.ts +1 -1
  34. package/lib/chevre/factory/event.js +11 -5
  35. package/lib/chevre/factory/transactionNumber.d.ts +19 -0
  36. package/lib/chevre/factory/transactionNumber.js +54 -0
  37. package/lib/chevre/repo/acceptedPaymentMethod.d.ts +41 -8
  38. package/lib/chevre/repo/acceptedPaymentMethod.js +72 -27
  39. package/lib/chevre/repo/aggregateOffer.d.ts +6 -1
  40. package/lib/chevre/repo/aggregateOffer.js +11 -3
  41. package/lib/chevre/repo/aggregateOrder.js +0 -93
  42. package/lib/chevre/repo/aggregateReservation.d.ts +0 -1
  43. package/lib/chevre/repo/aggregateReservation.js +0 -2
  44. package/lib/chevre/repo/confirmationNumber.d.ts +1 -0
  45. package/lib/chevre/repo/confirmationNumber.js +32 -25
  46. package/lib/chevre/repo/event.d.ts +3 -18
  47. package/lib/chevre/repo/event.js +94 -83
  48. package/lib/chevre/repo/eventOffer.d.ts +8 -0
  49. package/lib/chevre/repo/eventOffer.js +11 -0
  50. package/lib/chevre/repo/eventSeries.d.ts +17 -30
  51. package/lib/chevre/repo/eventSeries.js +204 -146
  52. package/lib/chevre/repo/mongoose/schemas/aggregateReservation.js +0 -1
  53. package/lib/chevre/repo/mongoose/schemas/eventSeries.js +20 -5
  54. package/lib/chevre/repo/mongoose/schemas/offerCatalog.js +2 -8
  55. package/lib/chevre/repo/mongoose/schemas/offerCatalogItem.js +28 -2
  56. package/lib/chevre/repo/mongoose/schemas/place.d.ts +6 -2
  57. package/lib/chevre/repo/mongoose/schemas/setting.d.ts +40 -0
  58. package/lib/chevre/repo/mongoose/schemas/setting.js +3 -0
  59. package/lib/chevre/repo/offerCatalog.d.ts +14 -1
  60. package/lib/chevre/repo/offerCatalog.js +41 -19
  61. package/lib/chevre/repo/offerCatalogItem.d.ts +10 -1
  62. package/lib/chevre/repo/offerCatalogItem.js +32 -17
  63. package/lib/chevre/repo/orderNumber.d.ts +6 -0
  64. package/lib/chevre/repo/orderNumber.js +110 -35
  65. package/lib/chevre/repo/place/entranceGate.d.ts +57 -0
  66. package/lib/chevre/repo/place/entranceGate.js +172 -0
  67. package/lib/chevre/repo/place/movieTheater.d.ts +40 -3
  68. package/lib/chevre/repo/place/movieTheater.js +77 -6
  69. package/lib/chevre/repo/place/screeningRoom.d.ts +60 -31
  70. package/lib/chevre/repo/place/screeningRoom.js +227 -135
  71. package/lib/chevre/repo/place/seat.d.ts +47 -45
  72. package/lib/chevre/repo/place/seat.js +175 -45
  73. package/lib/chevre/repo/place/section.d.ts +60 -30
  74. package/lib/chevre/repo/place/section.js +337 -127
  75. package/lib/chevre/repo/serviceOutputIdentifier.d.ts +3 -1
  76. package/lib/chevre/repo/serviceOutputIdentifier.js +42 -27
  77. package/lib/chevre/repo/setting.d.ts +1 -1
  78. package/lib/chevre/repo/setting.js +2 -2
  79. package/lib/chevre/repo/task.d.ts +1 -1
  80. package/lib/chevre/repo/transactionNumber.d.ts +5 -0
  81. package/lib/chevre/repo/transactionNumber.js +63 -27
  82. package/lib/chevre/repository.d.ts +8 -0
  83. package/lib/chevre/repository.js +16 -0
  84. package/lib/chevre/service/assetTransaction/fixInformAction.d.ts +3 -0
  85. package/lib/chevre/service/assetTransaction/fixInformAction.js +3 -0
  86. package/lib/chevre/service/assetTransaction/pay/cancel.d.ts +12 -0
  87. package/lib/chevre/service/assetTransaction/pay/cancel.js +25 -0
  88. package/lib/chevre/service/assetTransaction/pay/check.d.ts +23 -0
  89. package/lib/chevre/service/assetTransaction/pay/check.js +37 -0
  90. package/lib/chevre/service/assetTransaction/pay/confirm.d.ts +24 -0
  91. package/lib/chevre/service/assetTransaction/pay/confirm.js +72 -0
  92. package/lib/chevre/service/assetTransaction/pay/exportTasksById.d.ts +18 -0
  93. package/lib/chevre/service/assetTransaction/pay/exportTasksById.js +111 -0
  94. package/lib/chevre/service/assetTransaction/pay/publishPaymentUrl.d.ts +48 -0
  95. package/lib/chevre/service/assetTransaction/pay/publishPaymentUrl.js +164 -0
  96. package/lib/chevre/service/assetTransaction/pay/searchGMOTrade.d.ts +20 -0
  97. package/lib/chevre/service/assetTransaction/pay/searchGMOTrade.js +59 -0
  98. package/lib/chevre/service/assetTransaction/pay/{account → start/account}/validation.d.ts +2 -2
  99. package/lib/chevre/service/assetTransaction/pay/{account → start/account}/validation.js +1 -1
  100. package/lib/chevre/service/assetTransaction/pay/{factory.d.ts → start/factory.d.ts} +1 -1
  101. package/lib/chevre/service/assetTransaction/pay/{factory.js → start/factory.js} +1 -1
  102. package/lib/chevre/service/assetTransaction/pay/{validateAcceptedPaymentMethodIfNeeded.d.ts → start/preStart/validateAcceptedPaymentMethodIfNeeded.d.ts} +4 -4
  103. package/lib/chevre/service/assetTransaction/pay/{validateAcceptedPaymentMethodIfNeeded.js → start/preStart/validateAcceptedPaymentMethodIfNeeded.js} +1 -4
  104. package/lib/chevre/service/assetTransaction/pay/start/preStart/validateSeller.d.ts +8 -0
  105. package/lib/chevre/service/assetTransaction/pay/start/preStart/validateSeller.js +54 -0
  106. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeAccount.d.ts +13 -0
  107. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeAccount.js +49 -0
  108. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeCreditCard.d.ts +29 -0
  109. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeCreditCard.js +37 -0
  110. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.d.ts +42 -0
  111. package/lib/chevre/service/assetTransaction/pay/start/processAuthorizeMovieTicket.js +31 -0
  112. package/lib/chevre/service/assetTransaction/pay/start.d.ts +60 -0
  113. package/lib/chevre/service/assetTransaction/pay/start.js +145 -0
  114. package/lib/chevre/service/assetTransaction/pay.d.ts +8 -170
  115. package/lib/chevre/service/assetTransaction/pay.js +16 -623
  116. package/lib/chevre/service/assetTransaction/reserve/start/factory/createStartParams.js +10 -2
  117. package/lib/chevre/service/event/processUpdateMovieTheater.d.ts +1 -1
  118. package/lib/chevre/service/event/processUpdateMovieTheater.js +13 -11
  119. package/lib/chevre/service/event/saveScreeningEventSeries.js +4 -5
  120. package/lib/chevre/service/event/saveScreeningEvents.d.ts +2 -2
  121. package/lib/chevre/service/event/saveScreeningEvents.js +16 -12
  122. package/lib/chevre/service/offer/event/authorize/factory.js +9 -1
  123. package/lib/chevre/service/offer/event/searchEventTicketOffers.js +7 -4
  124. package/lib/chevre/service/offer/event/searchOfferAppliesToMovieTicket.js +9 -6
  125. package/lib/chevre/service/offer/event/searchOffersByIds.js +7 -4
  126. package/lib/chevre/service/offer/eventServiceByCOA/authorize/factory.js +7 -1
  127. package/lib/chevre/service/offer/onEventChanged.js +10 -6
  128. package/lib/chevre/service/offer/product.js +1 -1
  129. package/lib/chevre/service/offer.d.ts +5 -0
  130. package/lib/chevre/service/offer.js +34 -9
  131. package/lib/chevre/service/order/onOrderStatusChanged/onOrderCancelled/factory.d.ts +1 -1
  132. package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.d.ts +1 -1
  133. package/lib/chevre/service/order/onOrderStatusChanged/onOrderReturned/factory.d.ts +1 -1
  134. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByAggregateOffer.d.ts +13 -0
  135. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByAggregateOffer.js +53 -0
  136. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByEventSeries.d.ts +13 -0
  137. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByEventSeries.js +56 -0
  138. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByMovieTheater.d.ts +15 -0
  139. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByMovieTheater.js +58 -0
  140. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByOfferCatalog.d.ts +17 -0
  141. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByOfferCatalog.js +75 -0
  142. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByProduct.d.ts +19 -0
  143. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByProduct.js +60 -0
  144. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByRoom.d.ts +20 -0
  145. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesByRoom.js +51 -0
  146. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesBySeller.d.ts +27 -0
  147. package/lib/chevre/service/task/onResourceDeleted/deleteResourcesBySeller.js +100 -0
  148. package/lib/chevre/service/task/onResourceDeleted.d.ts +6 -0
  149. package/lib/chevre/service/task/onResourceDeleted.js +168 -0
  150. package/lib/chevre/service/task/onResourceUpdated.js +205 -42
  151. package/lib/chevre/service/task/syncResourcesFromCOA.js +4 -2
  152. package/lib/chevre/service/taskHandler.js +1 -0
  153. package/package.json +9 -9
  154. package/example/src/chevre/event/upsertManyScreeningEventByIdentifier.ts +0 -191
  155. package/example/src/chevre/eventSeries/migrateEventSeriesUnacceptedPaymentMethod.ts +0 -93
  156. package/example/src/chevre/offers/createSampleOffers.ts +0 -154
  157. package/example/src/chevre/settings/addSettings.ts +0 -46
  158. package/lib/chevre/service/eventOld.d.ts +0 -60
  159. package/lib/chevre/service/eventOld.js +0 -864
  160. package/lib/chevre/service/task/createEvent/createEvent.d.ts +0 -25
  161. package/lib/chevre/service/task/createEvent/createEvent.js +0 -45
  162. package/lib/chevre/service/task/createEvent/createEventBySchedule/factory.d.ts +0 -22
  163. package/lib/chevre/service/task/createEvent/createEventBySchedule/factory.js +0 -188
  164. package/lib/chevre/service/task/createEvent/createEventBySchedule/schedule2events.d.ts +0 -15
  165. package/lib/chevre/service/task/createEvent/createEventBySchedule/schedule2events.js +0 -116
  166. package/lib/chevre/service/task/createEvent/createEventBySchedule.d.ts +0 -25
  167. package/lib/chevre/service/task/createEvent/createEventBySchedule.js +0 -107
  168. package/lib/chevre/service/task/createEvent/createEventSeries.d.ts +0 -13
  169. package/lib/chevre/service/task/createEvent/createEventSeries.js +0 -118
  170. package/lib/chevre/service/task/createEvent.d.ts +0 -6
  171. package/lib/chevre/service/task/createEvent.js +0 -46
  172. package/lib/chevre/service/task/onResourceUpdated/onResourceDeleted.d.ts +0 -45
  173. package/lib/chevre/service/task/onResourceUpdated/onResourceDeleted.js +0 -447
@@ -0,0 +1,168 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.call = call;
13
+ const factory = require("../../factory");
14
+ const acceptedPaymentMethod_1 = require("../../repo/acceptedPaymentMethod");
15
+ const action_1 = require("../../repo/action");
16
+ const aggregateOffer_1 = require("../../repo/aggregateOffer");
17
+ const categoryCode_1 = require("../../repo/categoryCode");
18
+ const event_1 = require("../../repo/event");
19
+ const eventOffer_1 = require("../../repo/eventOffer");
20
+ const eventSeries_1 = require("../../repo/eventSeries");
21
+ const member_1 = require("../../repo/member");
22
+ const note_1 = require("../../repo/note");
23
+ const offerCatalog_1 = require("../../repo/offerCatalog");
24
+ const offerCatalogItem_1 = require("../../repo/offerCatalogItem");
25
+ const paymentServiceProvider_1 = require("../../repo/paymentServiceProvider");
26
+ const hasPOS_1 = require("../../repo/place/hasPOS");
27
+ const movieTheater_1 = require("../../repo/place/movieTheater");
28
+ const screeningRoom_1 = require("../../repo/place/screeningRoom");
29
+ const product_1 = require("../../repo/product");
30
+ const productModel_1 = require("../../repo/productModel");
31
+ const productOffer_1 = require("../../repo/productOffer");
32
+ const setting_1 = require("../../repo/setting");
33
+ const task_1 = require("../../repo/task");
34
+ const deleteResourcesByAggregateOffer_1 = require("./onResourceDeleted/deleteResourcesByAggregateOffer");
35
+ const deleteResourcesByEventSeries_1 = require("./onResourceDeleted/deleteResourcesByEventSeries");
36
+ const deleteResourcesByMovieTheater_1 = require("./onResourceDeleted/deleteResourcesByMovieTheater");
37
+ const deleteResourcesByOfferCatalog_1 = require("./onResourceDeleted/deleteResourcesByOfferCatalog");
38
+ const deleteResourcesByProduct_1 = require("./onResourceDeleted/deleteResourcesByProduct");
39
+ const deleteResourcesByRoom_1 = require("./onResourceDeleted/deleteResourcesByRoom");
40
+ const deleteResourcesBySeller_1 = require("./onResourceDeleted/deleteResourcesBySeller");
41
+ const onHasPOSUpdated_1 = require("./onResourceUpdated/onHasPOSUpdated");
42
+ const syncCategoryCode_1 = require("./onResourceUpdated/syncCategoryCode");
43
+ const syncOfferCatalog_1 = require("./onResourceUpdated/syncOfferCatalog");
44
+ /**
45
+ * タスク実行関数
46
+ */
47
+ function call(params) {
48
+ return (_a) => __awaiter(this, [_a], void 0, function* ({ connection }) {
49
+ yield onResourceDeleted(params.data)({
50
+ acceptedPaymentMethod: new acceptedPaymentMethod_1.AcceptedPaymentMethodRepo(connection),
51
+ action: new action_1.ActionRepo(connection),
52
+ aggregateOffer: new aggregateOffer_1.AggregateOfferRepo(connection),
53
+ categoryCode: new categoryCode_1.CategoryCodeRepo(connection),
54
+ event: new event_1.EventRepo(connection),
55
+ eventOffer: new eventOffer_1.EventOfferRepo(connection),
56
+ eventSeries: new eventSeries_1.EventSeriesRepo(connection),
57
+ hasPOS: new hasPOS_1.HasPOSRepo(connection, { id: '' }), // 先の処理で明示的に指定される
58
+ member: new member_1.MemberRepo(connection),
59
+ movieTheater: new movieTheater_1.MovieTheaterRepo(connection),
60
+ note: new note_1.NoteRepo(connection),
61
+ offerCatalog: new offerCatalog_1.OfferCatalogRepo(connection),
62
+ offerCatalogItem: new offerCatalogItem_1.OfferCatalogItemRepo(connection),
63
+ paymentServiceProvider: new paymentServiceProvider_1.PaymentServiceProviderRepo(connection),
64
+ screeningRoom: new screeningRoom_1.ScreeningRoomRepo(connection),
65
+ product: new product_1.ProductRepo(connection),
66
+ productModel: new productModel_1.ProductModelRepo(connection),
67
+ productOffer: new productOffer_1.ProductOfferRepo(connection),
68
+ setting: new setting_1.SettingRepo(connection),
69
+ task: new task_1.TaskRepo(connection)
70
+ });
71
+ });
72
+ }
73
+ function onResourceDeleted(params) {
74
+ // tslint:disable-next-line:max-func-body-length
75
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
76
+ const setting = yield repos.setting.findOne({ project: { id: { $eq: '*' } } }, ['useInformResourceTypes']);
77
+ const useInformResourceTypes = setting === null || setting === void 0 ? void 0 : setting.useInformResourceTypes;
78
+ const useInform = params.useInform === true
79
+ && Array.isArray(useInformResourceTypes) && useInformResourceTypes.includes(params.typeOf);
80
+ const isDeleted = params.isDeleted === true;
81
+ const resourceType = params.typeOf;
82
+ if (isDeleted) {
83
+ if (useInform) {
84
+ switch (resourceType) {
85
+ case 'POS':
86
+ yield (0, onHasPOSUpdated_1.createInformHasPOSTasks)({
87
+ project: { id: params.project.id },
88
+ ids: [params.operator.id],
89
+ typeOf: factory.placeType.MovieTheater
90
+ })(repos);
91
+ break;
92
+ default:
93
+ // no op
94
+ }
95
+ }
96
+ switch (resourceType) {
97
+ case 'POS':
98
+ break;
99
+ case factory.eventType.ScreeningEventSeries:
100
+ yield (0, deleteResourcesByEventSeries_1.deleteResourcesByEventSeries)({
101
+ project: { id: params.project.id },
102
+ ids: params.id
103
+ })(repos);
104
+ break;
105
+ case factory.placeType.ScreeningRoom:
106
+ yield (0, deleteResourcesByRoom_1.deleteResourcesByRoom)({
107
+ project: { id: params.project.id },
108
+ branchCode: params.branchCode,
109
+ containedInPlace: { id: params.containedInPlace.id }
110
+ })(repos);
111
+ break;
112
+ case factory.placeType.MovieTheater:
113
+ yield (0, deleteResourcesByMovieTheater_1.deleteResourcesByMovieTheater)({
114
+ project: { id: params.project.id },
115
+ ids: params.id
116
+ })(repos);
117
+ break;
118
+ case factory.organizationType.Corporation:
119
+ yield (0, deleteResourcesBySeller_1.deleteResourcesBySeller)({
120
+ project: { id: params.project.id },
121
+ ids: params.id
122
+ })(repos);
123
+ break;
124
+ case factory.offerType.AggregateOffer:
125
+ yield (0, deleteResourcesByAggregateOffer_1.deleteResourcesByAggregateOffer)({
126
+ project: { id: params.project.id },
127
+ ids: params.id
128
+ })(repos);
129
+ break;
130
+ case 'OfferCatalog':
131
+ yield (0, deleteResourcesByOfferCatalog_1.deleteResourcesByOfferCatalog)({
132
+ project: { id: params.project.id },
133
+ ids: params.id
134
+ })(repos);
135
+ yield (0, syncOfferCatalog_1.syncOfferCatalog)({
136
+ project: { id: params.project.id },
137
+ ids: params.id,
138
+ typeOf: resourceType,
139
+ isDeleted: true,
140
+ isOfferCatalogItem: params.isOfferCatalogItem === true
141
+ })(repos);
142
+ break;
143
+ case factory.product.ProductType.EventService:
144
+ case factory.product.ProductType.Product:
145
+ case factory.product.ProductType.Transportation:
146
+ case factory.product.ProductType.MembershipService:
147
+ case factory.product.ProductType.PaymentCard:
148
+ yield (0, deleteResourcesByProduct_1.deleteResourcesByProduct)({
149
+ project: { id: params.project.id },
150
+ ids: params.id,
151
+ typeOf: resourceType
152
+ })(repos);
153
+ break;
154
+ // 区分削除に対応(2024-04-18~)
155
+ case 'CategoryCode':
156
+ yield (0, syncCategoryCode_1.syncCategoryCode)({
157
+ project: { id: params.project.id },
158
+ ids: params.id,
159
+ isDeleted: true
160
+ })(repos);
161
+ break;
162
+ default:
163
+ // no op
164
+ throw new factory.errors.NotImplemented(`${resourceType} onDeleted not implemented`);
165
+ }
166
+ }
167
+ });
168
+ }
@@ -8,6 +8,17 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
8
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
9
9
  });
10
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
+ };
11
22
  Object.defineProperty(exports, "__esModule", { value: true });
12
23
  exports.call = call;
13
24
  const factory = require("../../factory");
@@ -24,6 +35,7 @@ const unitPriceInCatalog_1 = require("../../repo/offer/unitPriceInCatalog");
24
35
  const offerCatalog_1 = require("../../repo/offerCatalog");
25
36
  const offerCatalogItem_1 = require("../../repo/offerCatalogItem");
26
37
  const paymentServiceProvider_1 = require("../../repo/paymentServiceProvider");
38
+ const entranceGate_1 = require("../../repo/place/entranceGate");
27
39
  const hasPOS_1 = require("../../repo/place/hasPOS");
28
40
  const movieTheater_1 = require("../../repo/place/movieTheater");
29
41
  const screeningRoom_1 = require("../../repo/place/screeningRoom");
@@ -36,7 +48,6 @@ const onAggregateOfferUpdated_1 = require("./onResourceUpdated/onAggregateOfferU
36
48
  const onCategoryCodeUpdated_1 = require("./onResourceUpdated/onCategoryCodeUpdated");
37
49
  const onHasPOSUpdated_1 = require("./onResourceUpdated/onHasPOSUpdated");
38
50
  const onOfferCatalogUpdated_1 = require("./onResourceUpdated/onOfferCatalogUpdated");
39
- const onResourceDeleted_1 = require("./onResourceUpdated/onResourceDeleted");
40
51
  /**
41
52
  * タスク実行関数
42
53
  */
@@ -48,6 +59,7 @@ function call(data) {
48
59
  aggregateOffer: new aggregateOffer_1.AggregateOfferRepo(connection),
49
60
  categoryCode: new categoryCode_1.CategoryCodeRepo(connection),
50
61
  creativeWork: new creativeWork_1.CreativeWorkRepo(connection),
62
+ entranceGate: new entranceGate_1.EntranceGateRepo(connection, { id: '' }), // 先の処理で明示的に指定される
51
63
  event: new event_1.EventRepo(connection),
52
64
  eventSeries: new eventSeries_1.EventSeriesRepo(connection),
53
65
  hasPOS: new hasPOS_1.HasPOSRepo(connection, { id: '' }), // 先の処理で明示的に指定される
@@ -73,7 +85,9 @@ function onResourceUpdated(params) {
73
85
  return (repos) => __awaiter(this, void 0, void 0, function* () {
74
86
  const isDeleted = params.isDeleted === true;
75
87
  if (isDeleted) {
76
- yield (0, onResourceDeleted_1.onResourceDeleted)(params)(repos);
88
+ // migrate to onResourceDeleted task(2026-01-16~)
89
+ throw new factory.errors.Argument('isDeleted', 'isDeleted must be false');
90
+ // await onResourceDeleted(params)(repos);
77
91
  }
78
92
  else {
79
93
  const setting = yield repos.setting.findOne({ project: { id: { $eq: '*' } } }, ['onResourceUpdated', 'useInformResourceTypes']);
@@ -118,6 +132,14 @@ function onResourceUpdated(params) {
118
132
  typeOf: params.typeOf
119
133
  }, setting)(repos);
120
134
  break;
135
+ // ルーム通知に対応(2026-01-16~)
136
+ case factory.placeType.ScreeningRoom:
137
+ yield createInformRoomTasks(params, setting)(repos);
138
+ break;
139
+ // 入場ゲート通知に対応(2026-01-17~)
140
+ case factory.placeType.EntranceGate:
141
+ yield createInformEntranceGateTasks(params, setting)(repos);
142
+ break;
121
143
  case 'AccountTitle':
122
144
  yield createInformAccountTitleTasks({
123
145
  project: { id: params.project.id },
@@ -397,27 +419,28 @@ function createInformCategoryCodeTasks(params, setting) {
397
419
  }
398
420
  });
399
421
  }
400
- // tslint:disable-next-line:max-func-body-length
401
422
  function createInformMovieTheaterTasks(params, setting) {
402
- return (repos
403
- // settings: Settings
404
- ) => __awaiter(this, void 0, void 0, function* () {
423
+ // tslint:disable-next-line:max-func-body-length
424
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
405
425
  var _a;
406
- if (params.ids.length !== 1) {
407
- throw new factory.errors.Argument('id', 'id.length must be 1');
426
+ // 複数対応(2026-01-18~)
427
+ // if (params.ids.length !== 1) {
428
+ // throw new factory.errors.Argument('id', 'id.length must be 1');
429
+ // }
430
+ if (params.ids.length === 0) {
431
+ return;
408
432
  }
409
- // const informResources = settings.onResourceUpdated.informResource;
410
433
  const informResources = (_a = setting === null || setting === void 0 ? void 0 : setting.onResourceUpdated) === null || _a === void 0 ? void 0 : _a.informResource;
411
434
  const movieTheaters = yield repos.movieTheater.projectFields({
412
- limit: 1,
413
- page: 1,
435
+ // limit: 1,
436
+ // page: 1,
414
437
  project: { id: { $eq: params.project.id } },
415
- id: { $eq: params.ids[0] }
438
+ // id: { $eq: params.ids[0] }
439
+ id: { $in: params.ids }
416
440
  }, [
417
441
  'additionalProperty',
418
442
  'branchCode',
419
- 'hasEntranceGate',
420
- // 'hasPOS',
443
+ // 'hasEntranceGate', // migrate to IEntranceGateAsNotification(2026-01-17~)
421
444
  'kanaName',
422
445
  'name',
423
446
  'parentOrganization',
@@ -428,23 +451,33 @@ function createInformMovieTheaterTasks(params, setting) {
428
451
  ]
429
452
  // []
430
453
  );
431
- const movieTheater = movieTheaters.shift();
432
- if (movieTheater === undefined) {
433
- throw new factory.errors.NotFound(factory.placeType.MovieTheater);
434
- }
435
- // ルームを検索
436
- const screeningRooms = yield repos.screeningRoom.searchScreeningRooms({
437
- containedInPlace: { id: { $eq: movieTheater.id } }
454
+ // const movieTheater = movieTheaters.shift();
455
+ // if (movieTheater === undefined) {
456
+ // throw new factory.errors.NotFound(factory.placeType.MovieTheater);
457
+ // }
458
+ // // ルームを検索
459
+ // const screeningRooms = await repos.screeningRoom.findRooms(
460
+ // {
461
+ // containedInPlace: { id: { $eq: movieTheater.id } }
462
+ // }
463
+ // );
464
+ // 入場ゲートを廃止(2026-01-17~)
465
+ const movieTheaters4inform = movieTheaters.map((movieTheater) => {
466
+ const { hasEntranceGate } = movieTheater, movieTheaterWithoutEntranceGates = __rest(movieTheater, ["hasEntranceGate"]);
467
+ return Object.assign({}, movieTheaterWithoutEntranceGates
468
+ // ...movieTheater
469
+ // migrate to IRoomAsNotification(2026-01-16~)
470
+ // containsPlace: screeningRooms.map((room) => {
471
+ // return {
472
+ // branchCode: room.branchCode,
473
+ // name: room.name,
474
+ // typeOf: factory.placeType.ScreeningRoom,
475
+ // additionalProperty: room.additionalProperty,
476
+ // address: room.address
477
+ // };
478
+ // })
479
+ );
438
480
  });
439
- const movieTheaters4inform = [Object.assign(Object.assign({}, movieTheater), { containsPlace: screeningRooms.map((room) => {
440
- return {
441
- branchCode: room.branchCode,
442
- name: room.name,
443
- typeOf: room.typeOf,
444
- additionalProperty: room.additionalProperty,
445
- address: room.address
446
- };
447
- }) })];
448
481
  if (movieTheaters4inform.length > 0) {
449
482
  const taskRunsAt = new Date();
450
483
  const informTasks = [];
@@ -453,8 +486,8 @@ function createInformMovieTheaterTasks(params, setting) {
453
486
  const informUrl = String((_a = informResource.recipient) === null || _a === void 0 ? void 0 : _a.url);
454
487
  movieTheaters4inform.forEach((movieTheater4inform) => {
455
488
  var _a;
456
- // _idは不要であり、存在すると予期せぬ影響を及ぼす可能性がある
457
- delete movieTheater4inform._id;
489
+ // // _idは不要であり、存在すると予期せぬ影響を及ぼす可能性がある
490
+ // delete (<any>movieTheater4inform)._id;
458
491
  const informActionAttributes = {
459
492
  object: movieTheater4inform,
460
493
  recipient: {
@@ -488,6 +521,131 @@ function createInformMovieTheaterTasks(params, setting) {
488
521
  }
489
522
  });
490
523
  }
524
+ // tslint:disable-next-line:max-func-body-length
525
+ function createInformRoomTasks(params, setting) {
526
+ return (repos
527
+ // settings: Settings
528
+ ) => __awaiter(this, void 0, void 0, function* () {
529
+ var _a;
530
+ // const informResources = settings.onResourceUpdated.informResource;
531
+ const informResources = (_a = setting === null || setting === void 0 ? void 0 : setting.onResourceUpdated) === null || _a === void 0 ? void 0 : _a.informResource;
532
+ if (Array.isArray(params.branchCode) && params.branchCode.length > 0) {
533
+ // ルームを検索
534
+ const rooms = (yield repos.screeningRoom.findRooms({
535
+ project: { id: { $eq: params.project.id } },
536
+ branchCode: { $in: params.branchCode },
537
+ containedInPlace: { id: { $eq: params.containedInPlace.id } }
538
+ }));
539
+ const rooms4inform = rooms.map((room) => {
540
+ return {
541
+ branchCode: room.branchCode,
542
+ name: room.name,
543
+ typeOf: factory.placeType.ScreeningRoom,
544
+ additionalProperty: room.additionalProperty,
545
+ address: room.address,
546
+ containedInPlace: { id: params.containedInPlace.id },
547
+ project: { id: params.project.id }
548
+ };
549
+ });
550
+ if (rooms4inform.length > 0) {
551
+ const taskRunsAt = new Date();
552
+ const informTasks = [];
553
+ informResources === null || informResources === void 0 ? void 0 : informResources.forEach((informResource) => {
554
+ var _a;
555
+ const informUrl = String((_a = informResource.recipient) === null || _a === void 0 ? void 0 : _a.url);
556
+ rooms4inform.forEach((room4inform) => {
557
+ var _a;
558
+ const informActionAttributes = {
559
+ object: room4inform,
560
+ recipient: {
561
+ id: '',
562
+ name: String((_a = informResource.recipient) === null || _a === void 0 ? void 0 : _a.name),
563
+ typeOf: factory.creativeWorkType.WebApplication
564
+ },
565
+ target: {
566
+ httpMethod: 'POST',
567
+ encodingType: factory.encodingFormat.Application.json,
568
+ typeOf: 'EntryPoint',
569
+ urlTemplate: informUrl
570
+ }
571
+ };
572
+ informTasks.push({
573
+ project: { id: params.project.id, typeOf: factory.organizationType.Project },
574
+ name: factory.taskName.TriggerWebhook,
575
+ status: factory.taskStatus.Ready,
576
+ runsAt: taskRunsAt,
577
+ remainingNumberOfTries: 10,
578
+ numberOfTried: 0,
579
+ executionResults: [],
580
+ data: informActionAttributes
581
+ });
582
+ });
583
+ });
584
+ if (informTasks.length > 0) {
585
+ yield repos.task.saveMany(informTasks, { emitImmediately: true });
586
+ }
587
+ }
588
+ }
589
+ });
590
+ }
591
+ // tslint:disable-next-line:max-func-body-length
592
+ function createInformEntranceGateTasks(params, setting) {
593
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
594
+ var _a;
595
+ const informResources = (_a = setting === null || setting === void 0 ? void 0 : setting.onResourceUpdated) === null || _a === void 0 ? void 0 : _a.informResource;
596
+ if (Array.isArray(params.identifier) && params.identifier.length > 0) {
597
+ // 入場ゲートを検索
598
+ repos.entranceGate.setOperatorId({ id: params.containedInPlace.id });
599
+ const entranceGates = (yield repos.entranceGate.findEntranceGates({
600
+ project: { id: { $eq: params.project.id } },
601
+ identifier: { $in: params.identifier }
602
+ }));
603
+ const entranceGatesAsNotification = [{
604
+ id: params.containedInPlace.id,
605
+ typeOf: factory.placeType.MovieTheater,
606
+ hasEntranceGate: entranceGates.map((entranceGate) => {
607
+ return Object.assign(Object.assign({}, entranceGate), { typeOf: factory.placeType.Place });
608
+ })
609
+ }];
610
+ const taskRunsAt = new Date();
611
+ const informTasks = [];
612
+ informResources === null || informResources === void 0 ? void 0 : informResources.forEach((informResource) => {
613
+ var _a;
614
+ const informUrl = String((_a = informResource.recipient) === null || _a === void 0 ? void 0 : _a.url);
615
+ entranceGatesAsNotification.forEach((entranceGateAsNotification) => {
616
+ var _a;
617
+ const informActionAttributes = {
618
+ object: entranceGateAsNotification,
619
+ recipient: {
620
+ id: '',
621
+ name: String((_a = informResource.recipient) === null || _a === void 0 ? void 0 : _a.name),
622
+ typeOf: factory.creativeWorkType.WebApplication
623
+ },
624
+ target: {
625
+ httpMethod: 'POST',
626
+ encodingType: factory.encodingFormat.Application.json,
627
+ typeOf: 'EntryPoint',
628
+ urlTemplate: informUrl
629
+ }
630
+ };
631
+ informTasks.push({
632
+ project: { id: params.project.id, typeOf: factory.organizationType.Project },
633
+ name: factory.taskName.TriggerWebhook,
634
+ status: factory.taskStatus.Ready,
635
+ runsAt: taskRunsAt,
636
+ remainingNumberOfTries: 10,
637
+ numberOfTried: 0,
638
+ executionResults: [],
639
+ data: informActionAttributes
640
+ });
641
+ });
642
+ });
643
+ if (informTasks.length > 0) {
644
+ yield repos.task.saveMany(informTasks, { emitImmediately: true });
645
+ }
646
+ }
647
+ });
648
+ }
491
649
  function createInformAccountTitleTasks(params, setting) {
492
650
  return (repos
493
651
  // settings: Settings
@@ -566,22 +724,27 @@ function createInformAccountTitleTasks(params, setting) {
566
724
  }
567
725
  function syncMovieTheater(params) {
568
726
  return (repos) => __awaiter(this, void 0, void 0, function* () {
569
- if (params.ids.length !== 1) {
570
- throw new factory.errors.Argument('id', 'id.length must be 1');
727
+ // if (params.ids.length !== 1) {
728
+ // throw new factory.errors.Argument('id', 'id.length must be 1');
729
+ // }
730
+ if (params.ids.length === 0) {
731
+ return;
571
732
  }
572
733
  const movieTheaters = yield repos.movieTheater.projectFields({
573
- id: { $eq: params.ids[0] },
734
+ id: { $in: params.ids },
574
735
  project: { id: { $eq: params.project.id } }
575
736
  }, ['id', 'name']
576
737
  // []
577
738
  );
578
- const movieTheater = movieTheaters.shift();
579
- if (movieTheater === undefined) {
580
- throw new factory.errors.NotFound(factory.placeType.MovieTheater);
739
+ // const movieTheater = movieTheaters.shift();
740
+ // if (movieTheater === undefined) {
741
+ // throw new factory.errors.NotFound(factory.placeType.MovieTheater);
742
+ // }
743
+ for (const movieTheater of movieTheaters) {
744
+ yield repos.screeningRoom.updateScreeningRoomsByContainedInPlaceId({
745
+ project: { id: params.project.id },
746
+ containedInPlace: movieTheater
747
+ });
581
748
  }
582
- yield repos.screeningRoom.updateScreeningRoomsByContainedInPlaceId({
583
- project: { id: params.project.id },
584
- containedInPlace: movieTheater
585
- });
586
749
  });
587
750
  }
@@ -216,7 +216,7 @@ function syncEvents(params) {
216
216
  throw new factory.errors.NotFound(factory.placeType.MovieTheater);
217
217
  }
218
218
  // console.log('movieTheater:', movieTheater);
219
- const screeningRoom = (yield repos.screeningRoom.searchScreeningRooms({
219
+ const screeningRoom = (yield repos.screeningRoom.findRooms({
220
220
  project: { id: { $eq: params.project.id } },
221
221
  containedInPlace: { branchCode: { $eq: movieTheater.branchCode } },
222
222
  branchCode: { $eq: roomCode }
@@ -236,7 +236,9 @@ function syncEvents(params) {
236
236
  }, [
237
237
  'project', 'typeOf', 'eventStatus', 'identifier',
238
238
  'name', 'kanaName', 'alternativeHeadline', 'location',
239
- 'organizer', 'videoFormat', 'soundFormat', 'workPerformed',
239
+ 'organizer',
240
+ // 'videoFormat', // 参照廃止(2026-02-10~)
241
+ 'soundFormat', 'workPerformed',
240
242
  'duration', 'endDate', 'startDate', 'coaInfo',
241
243
  'offers', 'additionalProperty'
242
244
  ])).shift();
@@ -59,6 +59,7 @@ function executeTask(task, next) {
59
59
  case factory.taskName.ImportOffersFromCOA:
60
60
  case factory.taskName.InvalidatePaymentUrl:
61
61
  case factory.taskName.OnAuthorizationCreated:
62
+ case factory.taskName.OnResourceDeleted:
62
63
  case factory.taskName.Pay:
63
64
  case factory.taskName.PublishPaymentUrl:
64
65
  case factory.taskName.Refund:
package/package.json CHANGED
@@ -11,13 +11,12 @@
11
11
  "dependencies": {
12
12
  "@aws-sdk/client-cognito-identity-provider": "3.600.0",
13
13
  "@aws-sdk/credential-providers": "3.600.0",
14
- "@chevre/factory": "5.4.0-alpha.9",
15
- "@cinerino/sdk": "12.12.1",
14
+ "@chevre/factory": "5.4.0-alpha.31",
15
+ "@cinerino/sdk": "13.0.0",
16
16
  "@motionpicture/coa-service": "9.6.0",
17
17
  "@motionpicture/gmo-service": "5.4.0-alpha.1",
18
18
  "@sendgrid/client": "8.1.4",
19
19
  "@surfrock/sdk": "1.4.0-alpha.1",
20
- "cdigit": "2.6.7",
21
20
  "debug": "^3.2.7",
22
21
  "google-libphonenumber": "^3.2.18",
23
22
  "http-status": "^1.5.0",
@@ -25,14 +24,15 @@
25
24
  "lodash.difference": "^4.5.0",
26
25
  "moment": "^2.29.1",
27
26
  "moment-timezone": "^0.5.33",
28
- "node-fpe": "1.0.0",
29
- "pug": "^2.0.4",
27
+ "node-fpe": "2.0.4",
28
+ "pug": "3.0.3",
30
29
  "uniqid": "5.4.0",
31
30
  "uuid": "^3.4.0"
32
31
  },
33
32
  "description": "Chevre Domain Library for Node.js",
34
33
  "devDependencies": {
35
34
  "@eslint/js": "9.16.0",
35
+ "@json2csv/plainjs": "7.0.6",
36
36
  "@sendgrid/helpers": "8.0.0",
37
37
  "@types/debug": "0.0.30",
38
38
  "@types/google-libphonenumber": "^7.4.19",
@@ -42,9 +42,9 @@
42
42
  "@types/lodash.difference": "^4.5.6",
43
43
  "@types/mocha": "10.0.7",
44
44
  "@types/moment-timezone": "^0.5.30",
45
- "@types/node": "18.19.2",
45
+ "@types/node": "22.19.7",
46
46
  "@types/power-assert": "^1.5.3",
47
- "@types/pug": "^2.0.4",
47
+ "@types/pug": "2.0.10",
48
48
  "@types/sinon": "^4.3.3",
49
49
  "@types/sinon-mongoose": "^1.3.11",
50
50
  "@types/uniqid": "^4.1.3",
@@ -76,7 +76,7 @@
76
76
  },
77
77
  "engines": {
78
78
  "node": ">=18.0.0",
79
- "npm": ">=6.0.0"
79
+ "npm": ">=10.0.0"
80
80
  },
81
81
  "keywords": [],
82
82
  "license": "UNLICENSED",
@@ -115,5 +115,5 @@
115
115
  "postversion": "git push origin --tags",
116
116
  "prepublishOnly": "npm run clean && npm run build && npm test && npm run doc"
117
117
  },
118
- "version": "23.2.0-alpha.6"
118
+ "version": "23.2.0-alpha.61"
119
119
  }