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

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.
@@ -21,11 +21,10 @@ async function main() {
21
21
  id: project.id,
22
22
  typeOf: chevre.factory.organizationType.Project
23
23
  },
24
- locationBranchCode: '120',
25
- importFrom: moment()
24
+ locationBranchCode: '018',
25
+ importFrom: moment('2023-05-17T02:45:00.214Z')
26
26
  .toDate(),
27
- importThrough: moment()
28
- .add(1, 'day')
27
+ importThrough: moment('2023-05-20T02:45:00.214Z')
29
28
  .toDate(),
30
29
  saveMovieTheater: false,
31
30
  saveScreeningEventSeries: false
@@ -127,7 +127,7 @@ function importFromCOA(params) {
127
127
  })(repos);
128
128
  savedScreeningEventSeriesCount = savedEventsCount;
129
129
  try {
130
- // イベントごとに永続化トライ
130
+ // イベント永続化
131
131
  const screeningEvents = yield saveScreeningEvents({
132
132
  locationBranchCode: params.locationBranchCode,
133
133
  movieTheater: movieTheater,
@@ -154,6 +154,8 @@ function importFromCOA(params) {
154
154
  // "message": "ESOCKETTIMEDOUT",
155
155
  if (error.name === 'COAServiceError') {
156
156
  if (error.message === 'ESOCKETTIMEDOUT') {
157
+ // tslint:disable-next-line:no-console
158
+ console.error('saveScreeningEvents throwed an error', error.name, error.message);
157
159
  throwsError = false;
158
160
  }
159
161
  }
@@ -70,13 +70,6 @@ function deleteOwnershipInfosByOrder(order) {
70
70
  // 所有期限切れのもの(ownedThroughの存在しないものは削除してはいけない)
71
71
  ownedThrough: { $lt: now }
72
72
  });
73
- // await repos.ownershipInfo.ownershipInfoModel.deleteMany({
74
- // 'project.id': { $eq: order.project.id },
75
- // identifier: { $in: ownershipIdentifiers },
76
- // // 所有期限切れのもの(ownedThroughの存在しないものは削除してはいけない)
77
- // ownedThrough: { $exists: true, $lt: now }
78
- // })
79
- // .exec();
80
73
  }
81
74
  });
82
75
  }
@@ -174,7 +174,13 @@ function createDeleteTasks(order) {
174
174
  numberOfTried: 0,
175
175
  executionResults: [],
176
176
  data: {
177
- object: order
177
+ object: {
178
+ confirmationNumber: order.confirmationNumber,
179
+ orderDate: order.orderDate,
180
+ orderNumber: order.orderNumber,
181
+ project: order.project,
182
+ typeOf: order.typeOf
183
+ }
178
184
  }
179
185
  }];
180
186
  }
@@ -10,8 +10,11 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.call = void 0;
13
+ const accountingReport_1 = require("../../repo/accountingReport");
13
14
  const action_1 = require("../../repo/action");
14
15
  const assetTransaction_1 = require("../../repo/assetTransaction");
16
+ const order_1 = require("../../repo/order");
17
+ const ownershipInfo_1 = require("../../repo/ownershipInfo");
15
18
  const reservation_1 = require("../../repo/reservation");
16
19
  const transaction_1 = require("../../repo/transaction");
17
20
  const TransactionService = require("../transaction");
@@ -20,15 +23,14 @@ const TransactionService = require("../transaction");
20
23
  */
21
24
  function call(data) {
22
25
  return (settings) => __awaiter(this, void 0, void 0, function* () {
23
- const actionRepo = new action_1.MongoRepository(settings.connection);
24
- const assetTransactionRepo = new assetTransaction_1.MongoRepository(settings.connection);
25
- const reservationRepo = new reservation_1.MongoRepository(settings.connection);
26
- const transactionRepo = new transaction_1.MongoRepository(settings.connection);
27
26
  yield TransactionService.deleteTransaction(data)({
28
- action: actionRepo,
29
- assetTransaction: assetTransactionRepo,
30
- reservation: reservationRepo,
31
- transaction: transactionRepo
27
+ accountingReport: new accountingReport_1.MongoRepository(settings.connection),
28
+ action: new action_1.MongoRepository(settings.connection),
29
+ assetTransaction: new assetTransaction_1.MongoRepository(settings.connection),
30
+ order: new order_1.MongoRepository(settings.connection),
31
+ ownershipInfo: new ownershipInfo_1.MongoRepository(settings.connection),
32
+ reservation: new reservation_1.MongoRepository(settings.connection),
33
+ transaction: new transaction_1.MongoRepository(settings.connection)
32
34
  });
33
35
  });
34
36
  }
@@ -0,0 +1,21 @@
1
+ import * as factory from '../../factory';
2
+ import { MongoRepository as AccountingReportRepo } from '../../repo/accountingReport';
3
+ import { MongoRepository as ActionRepo } from '../../repo/action';
4
+ import { MongoRepository as AssetTransactionRepo } from '../../repo/assetTransaction';
5
+ import { MongoRepository as OrderRepo } from '../../repo/order';
6
+ import { MongoRepository as OwnershipInfoRepo } from '../../repo/ownershipInfo';
7
+ import { MongoRepository as ReservationRepo } from '../../repo/reservation';
8
+ import { MongoRepository as TransactionRepo } from '../../repo/transaction';
9
+ /**
10
+ * 取引に関わるリソースを削除する
11
+ * 冪等性を確保すること
12
+ */
13
+ export declare function deleteTransaction(params: factory.task.IData<factory.taskName.DeleteTransaction>): (repos: {
14
+ accountingReport: AccountingReportRepo;
15
+ action: ActionRepo;
16
+ assetTransaction: AssetTransactionRepo;
17
+ order: OrderRepo;
18
+ ownershipInfo: OwnershipInfoRepo;
19
+ reservation: ReservationRepo;
20
+ transaction: TransactionRepo;
21
+ }) => Promise<void>;
@@ -0,0 +1,202 @@
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.deleteTransaction = void 0;
13
+ const factory = require("../../factory");
14
+ const deleteOrder_1 = require("../order/deleteOrder");
15
+ /**
16
+ * 取引に関わるリソースを削除する
17
+ * 冪等性を確保すること
18
+ */
19
+ function deleteTransaction(params) {
20
+ // tslint:disable-next-line:max-func-body-length
21
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
22
+ var _a;
23
+ const transactions = yield repos.transaction.search({
24
+ ids: [params.object.id],
25
+ typeOf: params.object.typeOf,
26
+ inclusion: [],
27
+ exclusion: []
28
+ });
29
+ const transaction = transactions.shift();
30
+ if (transaction === undefined) {
31
+ // すでに削除済
32
+ return;
33
+ }
34
+ // DeleteTransactionアクションを作成(logとしての意味合いも含めて)
35
+ const actionAttributes = {
36
+ typeOf: factory.actionType.DeleteAction,
37
+ project: transaction.project,
38
+ object: params.object,
39
+ agent: transaction.project
40
+ };
41
+ let deletePayTransactionResult;
42
+ let payTransactionNumbers = [];
43
+ let deleteReservationsResult;
44
+ let deleteReserveTransactionResult;
45
+ let deletedReservationNumbers = [];
46
+ const action = yield repos.action.start(actionAttributes);
47
+ try {
48
+ const transactionTypeOf = transaction.typeOf;
49
+ switch (transactionTypeOf) {
50
+ case factory.transactionType.PlaceOrder:
51
+ switch (transaction.status) {
52
+ // 中止あるいは期限切れ取引の場合
53
+ case factory.transactionStatusType.Canceled:
54
+ case factory.transactionStatusType.Expired:
55
+ // tslint:disable-next-line:no-suspicious-comment
56
+ // TODO サービス登録取引を削除
57
+ // 決済取引を削除
58
+ const deletePayTransactionsByPlaceOrderResult = yield deletePayTransactionsByPlaceOrder({ transaction })(repos);
59
+ deletePayTransactionResult = deletePayTransactionsByPlaceOrderResult.deletePayTransactionResult;
60
+ payTransactionNumbers = deletePayTransactionsByPlaceOrderResult.payTransactionNumbers;
61
+ // 取引上での予約を削除
62
+ const deleteReservationsByPlaceOrderResult = yield deleteReservationsByPlaceOrder({ transaction })(repos);
63
+ deleteReservationsResult = deleteReservationsByPlaceOrderResult.deleteResult;
64
+ deleteReserveTransactionResult = deleteReservationsByPlaceOrderResult.deleteReserveTransactionResult;
65
+ deletedReservationNumbers = deleteReservationsByPlaceOrderResult.reserveTransactionNumbers;
66
+ break;
67
+ case factory.transactionStatusType.Confirmed:
68
+ const deletingOrder = (_a = transaction.result) === null || _a === void 0 ? void 0 : _a.order;
69
+ if (typeof (deletingOrder === null || deletingOrder === void 0 ? void 0 : deletingOrder.orderNumber) === 'string') {
70
+ yield (0, deleteOrder_1.deleteOrder)({
71
+ object: deletingOrder
72
+ })(repos);
73
+ }
74
+ break;
75
+ default:
76
+ }
77
+ // 取引削除
78
+ yield repos.transaction.findByIdAndDelete({ id: transaction.id });
79
+ break;
80
+ // implemented(2022-06-09~)
81
+ case factory.transactionType.ReturnOrder:
82
+ // 取引削除
83
+ yield repos.transaction.findByIdAndDelete({ id: transaction.id });
84
+ break;
85
+ // implemented(2022-06-09~)
86
+ case factory.transactionType.MoneyTransfer:
87
+ // 取引削除
88
+ yield repos.transaction.findByIdAndDelete({ id: transaction.id });
89
+ break;
90
+ default:
91
+ throw new factory.errors.NotImplemented(`${transactionTypeOf} not implemented`);
92
+ }
93
+ }
94
+ catch (error) {
95
+ // actionにエラー結果を追加
96
+ try {
97
+ const actionError = Object.assign(Object.assign({}, error), { message: error.message, name: error.name });
98
+ yield repos.action.giveUp({ typeOf: action.typeOf, id: action.id, error: actionError });
99
+ }
100
+ catch (__) {
101
+ // 失敗したら仕方ない
102
+ }
103
+ throw error;
104
+ }
105
+ // アクション完了
106
+ const actionResult = {
107
+ deletePayTransactionResult,
108
+ payTransactionNumbers,
109
+ deleteReservationsResult,
110
+ deleteReserveTransactionResult,
111
+ deletedReservationNumbers
112
+ };
113
+ yield repos.action.complete({ typeOf: action.typeOf, id: action.id, result: actionResult });
114
+ });
115
+ }
116
+ exports.deleteTransaction = deleteTransaction;
117
+ function deleteReservationsByPlaceOrder(params) {
118
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
119
+ let deleteResult;
120
+ let deleteReserveTransactionResult;
121
+ // 取引に対する全ての承認アクションを検索
122
+ const authorizeActions = yield repos.action.searchByPurpose({
123
+ typeOf: factory.actionType.AuthorizeAction,
124
+ purpose: {
125
+ typeOf: factory.transactionType.PlaceOrder,
126
+ id: params.transaction.id
127
+ }
128
+ });
129
+ // 予約取引番号を抽出
130
+ const authorizeReservationOfferActions = authorizeActions
131
+ .filter((a) => {
132
+ var _a, _b;
133
+ const pendingTransactionNumber = (_b = (_a = a.object) === null || _a === void 0 ? void 0 : _a.pendingTransaction) === null || _b === void 0 ? void 0 : _b.transactionNumber;
134
+ return a.object.typeOf === factory.action.authorize.offer.seatReservation.ObjectType.SeatReservation
135
+ && typeof pendingTransactionNumber === 'string'
136
+ && pendingTransactionNumber.length > 0;
137
+ });
138
+ const reserveTransactionNumbers = authorizeReservationOfferActions
139
+ .map((a) => { var _a; return String((_a = a.object.pendingTransaction) === null || _a === void 0 ? void 0 : _a.transactionNumber); });
140
+ if (reserveTransactionNumbers.length > 0) {
141
+ // 該当予約番号の予約を削除する(プロジェクトでも絞ること)
142
+ const deleteReservationsResult = yield repos.reservation.deleteByReservationNumbers({
143
+ project: { id: params.transaction.project.id },
144
+ reservationNumbers: reserveTransactionNumbers
145
+ });
146
+ deleteResult = {
147
+ n: deleteReservationsResult === null || deleteReservationsResult === void 0 ? void 0 : deleteReservationsResult.n,
148
+ ok: deleteReservationsResult === null || deleteReservationsResult === void 0 ? void 0 : deleteReservationsResult.ok,
149
+ deletedCount: deleteReservationsResult === null || deleteReservationsResult === void 0 ? void 0 : deleteReservationsResult.deletedCount
150
+ };
151
+ // 予約取引を削除(プロジェクトでも絞ること)(2022-06-07~)
152
+ const deleteAssetTransactionsResult = yield repos.assetTransaction.deleteByTransactionNumber({
153
+ project: { id: params.transaction.project.id },
154
+ transactionNumbers: reserveTransactionNumbers,
155
+ typeOf: factory.assetTransactionType.Reserve
156
+ });
157
+ deleteReserveTransactionResult = {
158
+ n: deleteAssetTransactionsResult === null || deleteAssetTransactionsResult === void 0 ? void 0 : deleteAssetTransactionsResult.n,
159
+ ok: deleteAssetTransactionsResult === null || deleteAssetTransactionsResult === void 0 ? void 0 : deleteAssetTransactionsResult.ok,
160
+ deletedCount: deleteAssetTransactionsResult === null || deleteAssetTransactionsResult === void 0 ? void 0 : deleteAssetTransactionsResult.deletedCount
161
+ };
162
+ }
163
+ return { deleteResult, deleteReserveTransactionResult, reserveTransactionNumbers };
164
+ });
165
+ }
166
+ function deletePayTransactionsByPlaceOrder(params) {
167
+ return (repos) => __awaiter(this, void 0, void 0, function* () {
168
+ let deletePayTransactionResult;
169
+ // 取引に対する全ての承認アクションを検索
170
+ const authorizeActions = yield repos.action.searchByPurpose({
171
+ typeOf: factory.actionType.AuthorizeAction,
172
+ purpose: {
173
+ typeOf: factory.transactionType.PlaceOrder,
174
+ id: params.transaction.id
175
+ }
176
+ });
177
+ // 決済取引番号を抽出
178
+ const authorizePaymentActions = authorizeActions
179
+ .filter((a) => {
180
+ var _a;
181
+ const pendingTransactionNumber = (_a = a.object) === null || _a === void 0 ? void 0 : _a.paymentMethodId;
182
+ return a.object.typeOf === factory.action.authorize.paymentMethod.any.ResultType.Payment
183
+ && typeof pendingTransactionNumber === 'string'
184
+ && pendingTransactionNumber.length > 0;
185
+ });
186
+ const payTransactionNumbers = authorizePaymentActions.map((a) => String(a.object.paymentMethodId));
187
+ if (payTransactionNumbers.length > 0) {
188
+ // 決済取引を削除(プロジェクトでも絞ること)(2022-06-07~)
189
+ const deleteAssetTransactionsResult = yield repos.assetTransaction.deleteByTransactionNumber({
190
+ project: { id: params.transaction.project.id },
191
+ transactionNumbers: payTransactionNumbers,
192
+ typeOf: factory.assetTransactionType.Pay
193
+ });
194
+ deletePayTransactionResult = {
195
+ n: deleteAssetTransactionsResult === null || deleteAssetTransactionsResult === void 0 ? void 0 : deleteAssetTransactionsResult.n,
196
+ ok: deleteAssetTransactionsResult === null || deleteAssetTransactionsResult === void 0 ? void 0 : deleteAssetTransactionsResult.ok,
197
+ deletedCount: deleteAssetTransactionsResult === null || deleteAssetTransactionsResult === void 0 ? void 0 : deleteAssetTransactionsResult.deletedCount
198
+ };
199
+ }
200
+ return { deletePayTransactionResult, payTransactionNumbers };
201
+ });
202
+ }
@@ -35,7 +35,13 @@ function createTasks(params) {
35
35
  numberOfTried: 0,
36
36
  executionResults: [],
37
37
  data: {
38
- object: transaction
38
+ object: {
39
+ endDate: transaction.endDate,
40
+ id: transaction.id,
41
+ project: transaction.project,
42
+ startDate: transaction.startDate,
43
+ typeOf: transaction.typeOf
44
+ }
39
45
  }
40
46
  };
41
47
  taskAttributes.push(deleteTransactionTask);
@@ -75,7 +75,13 @@ function createTasks(params) {
75
75
  numberOfTried: 0,
76
76
  executionResults: [],
77
77
  data: {
78
- object: transaction
78
+ object: {
79
+ endDate: transaction.endDate,
80
+ id: transaction.id,
81
+ project: transaction.project,
82
+ startDate: transaction.startDate,
83
+ typeOf: transaction.typeOf
84
+ }
79
85
  }
80
86
  };
81
87
  // 確定取引にも決済承認中止タスクを追加(2023-05-03~)
@@ -36,7 +36,13 @@ function createTasks(params) {
36
36
  numberOfTried: 0,
37
37
  executionResults: [],
38
38
  data: {
39
- object: transaction
39
+ object: {
40
+ endDate: transaction.endDate,
41
+ id: transaction.id,
42
+ project: transaction.project,
43
+ startDate: transaction.startDate,
44
+ typeOf: transaction.typeOf
45
+ }
40
46
  }
41
47
  };
42
48
  taskAttributes.push(deleteTransactionTask);
@@ -1,9 +1,7 @@
1
1
  import * as factory from '../factory';
2
- import { MongoRepository as ActionRepo } from '../repo/action';
3
- import { MongoRepository as AssetTransactionRepo } from '../repo/assetTransaction';
4
- import { MongoRepository as ReservationRepo } from '../repo/reservation';
5
2
  import { MongoRepository as TaskRepo } from '../repo/task';
6
3
  import { MongoRepository as TransactionRepo } from '../repo/transaction';
4
+ import { deleteTransaction } from './transaction/deleteTransaction';
7
5
  import * as MoneyTransferTransactionService from './transaction/moneyTransfer';
8
6
  import * as PlaceOrderTransactionService from './transaction/placeOrder';
9
7
  import * as PlaceOrderInProgressTransactionService from './transaction/placeOrderInProgress';
@@ -15,6 +13,7 @@ export import moneyTransfer = MoneyTransferTransactionService;
15
13
  export import placeOrder = PlaceOrderTransactionService;
16
14
  export import placeOrderInProgress = PlaceOrderInProgressTransactionService;
17
15
  export import returnOrder = ReturnOrderTransactionService;
16
+ export { deleteTransaction };
18
17
  /**
19
18
  * 取引人プロフィール更新
20
19
  */
@@ -52,13 +51,3 @@ export declare function exportTasks<T extends factory.transactionType>(params: {
52
51
  };
53
52
  };
54
53
  }): IExportTasksOperation<void>;
55
- /**
56
- * 取引に関わるリソースを削除する
57
- * 冪等性を確保すること
58
- */
59
- export declare function deleteTransaction(params: factory.task.IData<factory.taskName.DeleteTransaction>): (repos: {
60
- action: ActionRepo;
61
- assetTransaction: AssetTransactionRepo;
62
- reservation: ReservationRepo;
63
- transaction: TransactionRepo;
64
- }) => Promise<void>;
@@ -9,12 +9,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  });
10
10
  };
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.deleteTransaction = exports.exportTasks = exports.updateAgent = exports.returnOrder = exports.placeOrderInProgress = exports.placeOrder = exports.moneyTransfer = void 0;
12
+ exports.exportTasks = exports.updateAgent = exports.deleteTransaction = exports.returnOrder = exports.placeOrderInProgress = exports.placeOrder = exports.moneyTransfer = void 0;
13
13
  /**
14
14
  * 取引サービス
15
15
  */
16
16
  const google_libphonenumber_1 = require("google-libphonenumber");
17
17
  const factory = require("../factory");
18
+ const deleteTransaction_1 = require("./transaction/deleteTransaction");
19
+ Object.defineProperty(exports, "deleteTransaction", { enumerable: true, get: function () { return deleteTransaction_1.deleteTransaction; } });
18
20
  const MoneyTransferTransactionService = require("./transaction/moneyTransfer");
19
21
  const PlaceOrderTransactionService = require("./transaction/placeOrder");
20
22
  const PlaceOrderInProgressTransactionService = require("./transaction/placeOrderInProgress");
@@ -115,186 +117,3 @@ function exportTasks(params) {
115
117
  });
116
118
  }
117
119
  exports.exportTasks = exportTasks;
118
- /**
119
- * 取引に関わるリソースを削除する
120
- * 冪等性を確保すること
121
- */
122
- // tslint:disable-next-line:max-func-body-length
123
- function deleteTransaction(params) {
124
- // tslint:disable-next-line:max-func-body-length
125
- return (repos) => __awaiter(this, void 0, void 0, function* () {
126
- const transactions = yield repos.transaction.search({
127
- ids: [params.object.id],
128
- typeOf: params.object.typeOf,
129
- inclusion: [],
130
- exclusion: []
131
- });
132
- const transaction = transactions.shift();
133
- if (transaction === undefined) {
134
- // すでに削除済
135
- return;
136
- }
137
- // DeleteTransactionアクションを作成(logとしての意味合いも含めて)
138
- const actionAttributes = {
139
- typeOf: factory.actionType.DeleteAction,
140
- project: transaction.project,
141
- object: params.object,
142
- agent: transaction.project
143
- };
144
- let deletePayTransactionResult;
145
- let payTransactionNumbers = [];
146
- let deleteReservationsResult;
147
- let deleteReserveTransactionResult;
148
- let deletedReservationNumbers = [];
149
- const action = yield repos.action.start(actionAttributes);
150
- try {
151
- const transactionTypeOf = transaction.typeOf;
152
- switch (transactionTypeOf) {
153
- case factory.transactionType.PlaceOrder:
154
- switch (transaction.status) {
155
- // 中止あるいは期限切れ取引の場合
156
- case factory.transactionStatusType.Canceled:
157
- case factory.transactionStatusType.Expired:
158
- // tslint:disable-next-line:no-suspicious-comment
159
- // TODO サービス登録取引を削除
160
- // 決済取引を削除
161
- const deletePayTransactionsByPlaceOrderResult = yield deletePayTransactionsByPlaceOrder({ transaction })(repos);
162
- deletePayTransactionResult = deletePayTransactionsByPlaceOrderResult.deletePayTransactionResult;
163
- payTransactionNumbers = deletePayTransactionsByPlaceOrderResult.payTransactionNumbers;
164
- // 取引上での予約を削除
165
- const deleteReservationsByPlaceOrderResult = yield deleteReservationsByPlaceOrder({ transaction })(repos);
166
- deleteReservationsResult = deleteReservationsByPlaceOrderResult.deleteResult;
167
- deleteReserveTransactionResult = deleteReservationsByPlaceOrderResult.deleteReserveTransactionResult;
168
- deletedReservationNumbers = deleteReservationsByPlaceOrderResult.reserveTransactionNumbers;
169
- break;
170
- case factory.transactionStatusType.Confirmed:
171
- // no op
172
- break;
173
- default:
174
- }
175
- // 取引削除
176
- yield repos.transaction.findByIdAndDelete({ id: transaction.id });
177
- break;
178
- // implemented(2022-06-09~)
179
- case factory.transactionType.ReturnOrder:
180
- // 取引削除
181
- yield repos.transaction.findByIdAndDelete({ id: transaction.id });
182
- break;
183
- // implemented(2022-06-09~)
184
- case factory.transactionType.MoneyTransfer:
185
- // 取引削除
186
- yield repos.transaction.findByIdAndDelete({ id: transaction.id });
187
- break;
188
- default:
189
- throw new factory.errors.NotImplemented(`${transactionTypeOf} not implemented`);
190
- }
191
- }
192
- catch (error) {
193
- // actionにエラー結果を追加
194
- try {
195
- const actionError = Object.assign(Object.assign({}, error), { message: error.message, name: error.name });
196
- yield repos.action.giveUp({ typeOf: action.typeOf, id: action.id, error: actionError });
197
- }
198
- catch (__) {
199
- // 失敗したら仕方ない
200
- }
201
- throw error;
202
- }
203
- // アクション完了
204
- const actionResult = {
205
- deletePayTransactionResult,
206
- payTransactionNumbers,
207
- deleteReservationsResult,
208
- deleteReserveTransactionResult,
209
- deletedReservationNumbers
210
- };
211
- yield repos.action.complete({ typeOf: action.typeOf, id: action.id, result: actionResult });
212
- });
213
- }
214
- exports.deleteTransaction = deleteTransaction;
215
- function deleteReservationsByPlaceOrder(params) {
216
- return (repos) => __awaiter(this, void 0, void 0, function* () {
217
- let deleteResult;
218
- let deleteReserveTransactionResult;
219
- // 取引に対する全ての承認アクションを検索
220
- const authorizeActions = yield repos.action.searchByPurpose({
221
- typeOf: factory.actionType.AuthorizeAction,
222
- purpose: {
223
- typeOf: factory.transactionType.PlaceOrder,
224
- id: params.transaction.id
225
- }
226
- });
227
- // 予約取引番号を抽出
228
- const authorizeReservationOfferActions = authorizeActions
229
- .filter((a) => {
230
- var _a, _b;
231
- const pendingTransactionNumber = (_b = (_a = a.object) === null || _a === void 0 ? void 0 : _a.pendingTransaction) === null || _b === void 0 ? void 0 : _b.transactionNumber;
232
- return a.object.typeOf === factory.action.authorize.offer.seatReservation.ObjectType.SeatReservation
233
- && typeof pendingTransactionNumber === 'string'
234
- && pendingTransactionNumber.length > 0;
235
- });
236
- const reserveTransactionNumbers = authorizeReservationOfferActions
237
- .map((a) => { var _a; return String((_a = a.object.pendingTransaction) === null || _a === void 0 ? void 0 : _a.transactionNumber); });
238
- if (reserveTransactionNumbers.length > 0) {
239
- // 該当予約番号の予約を削除する(プロジェクトでも絞ること)
240
- const deleteReservationsResult = yield repos.reservation.deleteByReservationNumbers({
241
- project: { id: params.transaction.project.id },
242
- reservationNumbers: reserveTransactionNumbers
243
- });
244
- deleteResult = {
245
- n: deleteReservationsResult === null || deleteReservationsResult === void 0 ? void 0 : deleteReservationsResult.n,
246
- ok: deleteReservationsResult === null || deleteReservationsResult === void 0 ? void 0 : deleteReservationsResult.ok,
247
- deletedCount: deleteReservationsResult === null || deleteReservationsResult === void 0 ? void 0 : deleteReservationsResult.deletedCount
248
- };
249
- // 予約取引を削除(プロジェクトでも絞ること)(2022-06-07~)
250
- const deleteAssetTransactionsResult = yield repos.assetTransaction.deleteByTransactionNumber({
251
- project: { id: params.transaction.project.id },
252
- transactionNumbers: reserveTransactionNumbers,
253
- typeOf: factory.assetTransactionType.Reserve
254
- });
255
- deleteReserveTransactionResult = {
256
- n: deleteAssetTransactionsResult === null || deleteAssetTransactionsResult === void 0 ? void 0 : deleteAssetTransactionsResult.n,
257
- ok: deleteAssetTransactionsResult === null || deleteAssetTransactionsResult === void 0 ? void 0 : deleteAssetTransactionsResult.ok,
258
- deletedCount: deleteAssetTransactionsResult === null || deleteAssetTransactionsResult === void 0 ? void 0 : deleteAssetTransactionsResult.deletedCount
259
- };
260
- }
261
- return { deleteResult, deleteReserveTransactionResult, reserveTransactionNumbers };
262
- });
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
- }
@@ -40,7 +40,10 @@ exports.ASSET_TRANSACTION_STORAGE_PERIOD_IN_DAYS = (typeof process.env.ASSET_TRA
40
40
  /**
41
41
  * 取引保管期間(Confirmed)
42
42
  */
43
- exports.TRANSACTION_CONFIRMED_STORAGE_PERIOD_IN_DAYS = 365;
43
+ exports.TRANSACTION_CONFIRMED_STORAGE_PERIOD_IN_DAYS = (typeof process.env.TRANSACTION_CONFIRMED_STORAGE_PERIOD_IN_DAYS === 'string')
44
+ ? Number(process.env.TRANSACTION_CONFIRMED_STORAGE_PERIOD_IN_DAYS)
45
+ // tslint:disable-next-line:no-magic-numbers
46
+ : 365;
44
47
  /**
45
48
  * 取引保管期間(Canceled)
46
49
  */
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.52"
120
+ "version": "21.2.0-alpha.54"
121
121
  }