@chevre/domain 21.2.0-alpha.51 → 21.2.0-alpha.52

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.
@@ -121,6 +121,7 @@ exports.exportTasks = exportTasks;
121
121
  */
122
122
  // tslint:disable-next-line:max-func-body-length
123
123
  function deleteTransaction(params) {
124
+ // tslint:disable-next-line:max-func-body-length
124
125
  return (repos) => __awaiter(this, void 0, void 0, function* () {
125
126
  const transactions = yield repos.transaction.search({
126
127
  ids: [params.object.id],
@@ -137,9 +138,11 @@ function deleteTransaction(params) {
137
138
  const actionAttributes = {
138
139
  typeOf: factory.actionType.DeleteAction,
139
140
  project: transaction.project,
140
- object: transaction,
141
+ object: params.object,
141
142
  agent: transaction.project
142
143
  };
144
+ let deletePayTransactionResult;
145
+ let payTransactionNumbers = [];
143
146
  let deleteReservationsResult;
144
147
  let deleteReserveTransactionResult;
145
148
  let deletedReservationNumbers = [];
@@ -154,13 +157,15 @@ function deleteTransaction(params) {
154
157
  case factory.transactionStatusType.Expired:
155
158
  // tslint:disable-next-line:no-suspicious-comment
156
159
  // TODO サービス登録取引を削除
157
- // tslint:disable-next-line:no-suspicious-comment
158
- // TODO 決済取引を削除
160
+ // 決済取引を削除
161
+ const deletePayTransactionsByPlaceOrderResult = yield deletePayTransactionsByPlaceOrder({ transaction })(repos);
162
+ deletePayTransactionResult = deletePayTransactionsByPlaceOrderResult.deletePayTransactionResult;
163
+ payTransactionNumbers = deletePayTransactionsByPlaceOrderResult.payTransactionNumbers;
159
164
  // 取引上での予約を削除
160
- const deleteReservationsByTransactionResult = yield deleteReservationsByTransaction({ transaction })(repos);
161
- deleteReservationsResult = deleteReservationsByTransactionResult.deleteResult;
162
- deleteReserveTransactionResult = deleteReservationsByTransactionResult.deleteReserveTransactionResult;
163
- deletedReservationNumbers = deleteReservationsByTransactionResult.reserveTransactionNumbers;
165
+ const deleteReservationsByPlaceOrderResult = yield deleteReservationsByPlaceOrder({ transaction })(repos);
166
+ deleteReservationsResult = deleteReservationsByPlaceOrderResult.deleteResult;
167
+ deleteReserveTransactionResult = deleteReservationsByPlaceOrderResult.deleteReserveTransactionResult;
168
+ deletedReservationNumbers = deleteReservationsByPlaceOrderResult.reserveTransactionNumbers;
164
169
  break;
165
170
  case factory.transactionStatusType.Confirmed:
166
171
  // no op
@@ -169,8 +174,6 @@ function deleteTransaction(params) {
169
174
  }
170
175
  // 取引削除
171
176
  yield repos.transaction.findByIdAndDelete({ id: transaction.id });
172
- // await repos.transaction.transactionModel.findByIdAndDelete(transaction.id)
173
- // .exec();
174
177
  break;
175
178
  // implemented(2022-06-09~)
176
179
  case factory.transactionType.ReturnOrder:
@@ -199,6 +202,8 @@ function deleteTransaction(params) {
199
202
  }
200
203
  // アクション完了
201
204
  const actionResult = {
205
+ deletePayTransactionResult,
206
+ payTransactionNumbers,
202
207
  deleteReservationsResult,
203
208
  deleteReserveTransactionResult,
204
209
  deletedReservationNumbers
@@ -207,7 +212,7 @@ function deleteTransaction(params) {
207
212
  });
208
213
  }
209
214
  exports.deleteTransaction = deleteTransaction;
210
- function deleteReservationsByTransaction(params) {
215
+ function deleteReservationsByPlaceOrder(params) {
211
216
  return (repos) => __awaiter(this, void 0, void 0, function* () {
212
217
  let deleteResult;
213
218
  let deleteReserveTransactionResult;
@@ -256,3 +261,40 @@ function deleteReservationsByTransaction(params) {
256
261
  return { deleteResult, deleteReserveTransactionResult, reserveTransactionNumbers };
257
262
  });
258
263
  }
264
+ function deletePayTransactionsByPlaceOrder(params) {
265
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
266
+ let deletePayTransactionResult;
267
+ // 取引に対する全ての承認アクションを検索
268
+ const authorizeActions = yield repos.action.searchByPurpose({
269
+ typeOf: factory.actionType.AuthorizeAction,
270
+ purpose: {
271
+ typeOf: factory.transactionType.PlaceOrder,
272
+ id: params.transaction.id
273
+ }
274
+ });
275
+ // 決済取引番号を抽出
276
+ const authorizePaymentActions = authorizeActions
277
+ .filter((a) => {
278
+ var _a;
279
+ const pendingTransactionNumber = (_a = a.object) === null || _a === void 0 ? void 0 : _a.paymentMethodId;
280
+ return a.object.typeOf === factory.action.authorize.paymentMethod.any.ResultType.Payment
281
+ && typeof pendingTransactionNumber === 'string'
282
+ && pendingTransactionNumber.length > 0;
283
+ });
284
+ const payTransactionNumbers = authorizePaymentActions.map((a) => String(a.object.paymentMethodId));
285
+ if (payTransactionNumbers.length > 0) {
286
+ // 決済取引を削除(プロジェクトでも絞ること)(2022-06-07~)
287
+ const deleteAssetTransactionsResult = yield repos.assetTransaction.deleteByTransactionNumber({
288
+ project: { id: params.transaction.project.id },
289
+ transactionNumbers: payTransactionNumbers,
290
+ typeOf: factory.assetTransactionType.Pay
291
+ });
292
+ deletePayTransactionResult = {
293
+ n: deleteAssetTransactionsResult === null || deleteAssetTransactionsResult === void 0 ? void 0 : deleteAssetTransactionsResult.n,
294
+ ok: deleteAssetTransactionsResult === null || deleteAssetTransactionsResult === void 0 ? void 0 : deleteAssetTransactionsResult.ok,
295
+ deletedCount: deleteAssetTransactionsResult === null || deleteAssetTransactionsResult === void 0 ? void 0 : deleteAssetTransactionsResult.deletedCount
296
+ };
297
+ }
298
+ return { deletePayTransactionResult, payTransactionNumbers };
299
+ });
300
+ }
package/package.json CHANGED
@@ -117,5 +117,5 @@
117
117
  "postversion": "git push origin --tags",
118
118
  "prepublishOnly": "npm run clean && npm run build && npm test && npm run doc"
119
119
  },
120
- "version": "21.2.0-alpha.51"
120
+ "version": "21.2.0-alpha.52"
121
121
  }