@chevre/domain 24.0.0-alpha.10 → 24.0.0-alpha.12

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 (29) hide show
  1. package/lib/chevre/service/order/onAssetTransactionStatusChanged/paymentDue2Processing.d.ts +21 -0
  2. package/lib/chevre/service/order/onAssetTransactionStatusChanged/paymentDue2Processing.js +108 -0
  3. package/lib/chevre/service/order/onAssetTransactionStatusChanged.d.ts +5 -17
  4. package/lib/chevre/service/order/onAssetTransactionStatusChanged.js +4 -76
  5. package/lib/chevre/service/order/placeOrder.d.ts +12 -11
  6. package/lib/chevre/service/order.d.ts +3 -6
  7. package/lib/chevre/service/order.js +3 -9
  8. package/lib/chevre/service/payment/any/{fixOrderAsNeeded.d.ts → authorize/fixOrderAsNeeded.d.ts} +5 -5
  9. package/lib/chevre/service/payment/any/{fixOrderAsNeeded.js → authorize/fixOrderAsNeeded.js} +3 -3
  10. package/lib/chevre/service/payment/any/authorize.d.ts +90 -0
  11. package/lib/chevre/service/payment/any/authorize.js +225 -0
  12. package/lib/chevre/service/payment/any/findAcceptAction.d.ts +43 -0
  13. package/lib/chevre/service/payment/any/findAcceptAction.js +94 -0
  14. package/lib/chevre/service/payment/any/findAuthorizeAction.d.ts +41 -0
  15. package/lib/chevre/service/payment/any/findAuthorizeAction.js +83 -0
  16. package/lib/chevre/service/payment/any/findCheckAction.d.ts +44 -0
  17. package/lib/chevre/service/payment/any/findCheckAction.js +89 -0
  18. package/lib/chevre/service/payment/any/invalidatePaymentUrl.d.ts +28 -0
  19. package/lib/chevre/service/payment/any/invalidatePaymentUrl.js +185 -0
  20. package/lib/chevre/service/payment/any/processVoidPayTransaction.d.ts +29 -0
  21. package/lib/chevre/service/payment/any/processVoidPayTransaction.js +125 -0
  22. package/lib/chevre/service/payment/any/publishPaymentUrl.d.ts +64 -0
  23. package/lib/chevre/service/payment/any/publishPaymentUrl.js +133 -0
  24. package/lib/chevre/service/payment/any/voidPayTransaction.d.ts +31 -0
  25. package/lib/chevre/service/payment/any/voidPayTransaction.js +38 -0
  26. package/lib/chevre/service/payment/any.d.ts +8 -305
  27. package/lib/chevre/service/payment/any.js +17 -857
  28. package/lib/chevre/service/transaction/placeOrder/exportTasksById.d.ts +5 -4
  29. package/package.json +1 -1
@@ -0,0 +1,21 @@
1
+ import type { AcceptedOfferRepo } from '../../../repo/acceptedOffer';
2
+ import type { OrderRepo } from '../../../repo/order';
3
+ import type { SettingRepo } from '../../../repo/setting';
4
+ import type { TaskRepo } from '../../../repo/task';
5
+ import type { PlaceOrderRepo } from '../../../repo/transaction/placeOrder';
6
+ import { Settings } from '../../../settings';
7
+ declare function paymentDue2Processing(params: {
8
+ project: {
9
+ id: string;
10
+ };
11
+ confirmationNumber: string;
12
+ orderNumber: string;
13
+ useOnOrderStatusChanged: boolean;
14
+ }): (repos: {
15
+ acceptedOffer: AcceptedOfferRepo;
16
+ order: OrderRepo;
17
+ setting: SettingRepo;
18
+ task: TaskRepo;
19
+ placeOrder: PlaceOrderRepo;
20
+ }, settings: Settings) => Promise<void>;
21
+ export { paymentDue2Processing, };
@@ -0,0 +1,108 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __importDefault = (this && this.__importDefault) || function (mod) {
26
+ return (mod && mod.__esModule) ? mod : { "default": mod };
27
+ };
28
+ Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.paymentDue2Processing = paymentDue2Processing;
30
+ const debug_1 = __importDefault(require("debug"));
31
+ const findPlaceOrderTransaction_1 = require("../findPlaceOrderTransaction");
32
+ const onOrderStatusChanged_1 = require("../onOrderStatusChanged");
33
+ const factory = __importStar(require("../../../factory"));
34
+ const debug = (0, debug_1.default)('chevre-domain:service:order');
35
+ function paymentDue2Processing(params) {
36
+ return async (repos, settings) => {
37
+ const placeOrderTransaction = await (0, findPlaceOrderTransaction_1.findPlaceOrderTransaction)({
38
+ project: { id: params.project.id },
39
+ confirmationNumber: params.confirmationNumber,
40
+ orderNumber: params.orderNumber
41
+ })(repos);
42
+ // const existingOrder: Pick<factory.order.IOrder, 'project'> = await repos.order.projectFieldsByOrderNumber({
43
+ // orderNumber: params.orderNumber,
44
+ // project: { id: params.project.id },
45
+ // inclusion: ['project']
46
+ // });
47
+ let order;
48
+ try {
49
+ order = await repos.order.changeStatus({
50
+ project: { id: params.project.id },
51
+ orderNumber: params.orderNumber,
52
+ orderStatus: factory.orderStatus.OrderProcessing,
53
+ previousOrderStatus: factory.orderStatus.OrderPaymentDue
54
+ });
55
+ }
56
+ catch (error) {
57
+ let throwsError = true;
58
+ // すでにステータスが進行していた場合、OrderPaymentDue->OrderProcessingの処理自体は成功しているので、後処理を続行する
59
+ order = await repos.order.projectFieldsByOrderNumber({
60
+ orderNumber: params.orderNumber,
61
+ project: { id: params.project.id },
62
+ inclusion: [
63
+ 'orderNumber', 'broker', 'confirmationNumber', 'customer', 'dateReturned',
64
+ 'name', 'orderDate', 'orderStatus', 'orderedItem', 'paymentMethods',
65
+ 'previousOrderStatus', 'price', 'priceCurrency', 'project', 'returner', 'seller', 'typeOf'
66
+ ] // explicit projection(2024-07-25~)
67
+ });
68
+ if (order.orderStatus === factory.orderStatus.OrderInTransit
69
+ || order.orderStatus === factory.orderStatus.OrderDelivered
70
+ || order.orderStatus === factory.orderStatus.OrderReturned) {
71
+ throwsError = false;
72
+ }
73
+ if (throwsError) {
74
+ throw error;
75
+ }
76
+ }
77
+ if (params.useOnOrderStatusChanged) {
78
+ // 全acceptedOffersを検索(2023-12-08~)
79
+ // const acceptedOffers = await repos.acceptedOffer.searchAcceptedOffersByOrderNumber(
80
+ // {
81
+ // orderNumber: { $eq: order.orderNumber },
82
+ // project: { id: { $eq: params.project.id } }
83
+ // },
84
+ // ['itemOffered', 'offeredThrough']
85
+ // );
86
+ const { numAcceptedOffers } = await repos.acceptedOffer.countByOrderNumber({
87
+ orderNumber: { $eq: order.orderNumber },
88
+ project: { id: { $eq: params.project.id } }
89
+ });
90
+ const itemOfferedTypeOfs = await repos.acceptedOffer.distinctValues({ orderNumber: { $in: [params.orderNumber] } }, 'acceptedOffers.itemOffered.typeOf');
91
+ const serialNumbers = await repos.acceptedOffer.distinctValues({ orderNumber: { $in: [params.orderNumber] } }, 'acceptedOffers.serialNumber');
92
+ const offeredThroughIdentifier = (await repos.acceptedOffer.distinctValues({ orderNumber: { $in: [params.orderNumber] } }, 'acceptedOffers.offeredThrough.identifier')).shift();
93
+ debug('onAssetTransactionStatusChanged paymentDue2Processing: calling onOrderProcessing...', 'numAcceptedOffers:', numAcceptedOffers, 'itemOfferedTypeOfs:', itemOfferedTypeOfs, 'serialNumbers:', serialNumbers, 'offeredThroughIdentifier:', offeredThroughIdentifier);
94
+ await (0, onOrderStatusChanged_1.onOrderProcessing)({
95
+ order: {
96
+ ...order,
97
+ // acceptedOffers,
98
+ numAcceptedOffers,
99
+ itemOfferedTypeOf: itemOfferedTypeOfs[0], // 1つしかない前提
100
+ serialNumbers,
101
+ offeredThroughIdentifier,
102
+ orderStatus: factory.orderStatus.OrderProcessing // 強制的にOrderProcessingとして処理する
103
+ },
104
+ placeOrderTransaction
105
+ })(repos, settings);
106
+ }
107
+ };
108
+ }
@@ -4,30 +4,18 @@ import type { OrderRepo } from '../../repo/order';
4
4
  import type { SettingRepo } from '../../repo/setting';
5
5
  import type { TaskRepo } from '../../repo/task';
6
6
  import type { PlaceOrderRepo } from '../../repo/transaction/placeOrder';
7
+ import { paymentDue2Processing } from './onAssetTransactionStatusChanged/paymentDue2Processing';
7
8
  import * as factory from '../../factory';
8
9
  import { Settings } from '../../settings';
9
- declare function onAssetTransactionStatusChanged(params: factory.task.IData<factory.taskName.OnAssetTransactionStatusChanged>): (repos: {
10
+ interface IOnAssetTransactionStatusChangedRepos {
10
11
  acceptedOffer: AcceptedOfferRepo;
11
12
  assetTransaction: AssetTransactionRepo;
12
13
  order: OrderRepo;
13
14
  setting: SettingRepo;
14
15
  task: TaskRepo;
15
16
  placeOrder: PlaceOrderRepo;
16
- }, settings: Settings) => Promise<void>;
17
- declare function paymentDue2Processing(params: {
18
- project: {
19
- id: string;
20
- };
21
- confirmationNumber: string;
22
- orderNumber: string;
23
- useOnOrderStatusChanged: boolean;
24
- }): (repos: {
25
- acceptedOffer: AcceptedOfferRepo;
26
- order: OrderRepo;
27
- setting: SettingRepo;
28
- task: TaskRepo;
29
- placeOrder: PlaceOrderRepo;
30
- }, settings: Settings) => Promise<void>;
17
+ }
18
+ declare function onAssetTransactionStatusChanged(params: factory.task.IData<factory.taskName.OnAssetTransactionStatusChanged>): (repos: IOnAssetTransactionStatusChangedRepos, settings: Settings) => Promise<void>;
31
19
  declare function processing2inTransit(params: {
32
20
  project: {
33
21
  id: string;
@@ -39,4 +27,4 @@ declare function processing2inTransit(params: {
39
27
  task: TaskRepo;
40
28
  placeOrder: PlaceOrderRepo;
41
29
  }, settings: Settings) => Promise<void>;
42
- export { onAssetTransactionStatusChanged, paymentDue2Processing, processing2inTransit };
30
+ export { IOnAssetTransactionStatusChangedRepos, onAssetTransactionStatusChanged, paymentDue2Processing, processing2inTransit };
@@ -26,12 +26,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
26
26
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
+ exports.paymentDue2Processing = void 0;
29
30
  exports.onAssetTransactionStatusChanged = onAssetTransactionStatusChanged;
30
- exports.paymentDue2Processing = paymentDue2Processing;
31
31
  exports.processing2inTransit = processing2inTransit;
32
32
  const debug_1 = __importDefault(require("debug"));
33
33
  const findPlaceOrderTransaction_1 = require("./findPlaceOrderTransaction");
34
34
  const onOrderStatusChanged_1 = require("./onOrderStatusChanged");
35
+ const paymentDue2Processing_1 = require("./onAssetTransactionStatusChanged/paymentDue2Processing");
36
+ Object.defineProperty(exports, "paymentDue2Processing", { enumerable: true, get: function () { return paymentDue2Processing_1.paymentDue2Processing; } });
35
37
  const factory = __importStar(require("../../factory"));
36
38
  const debug = (0, debug_1.default)('chevre-domain:service:order');
37
39
  function onAssetTransactionStatusChanged(params) {
@@ -59,7 +61,7 @@ function onAssetTransactionStatusChanged(params) {
59
61
  // PayTransactionのステータス検証
60
62
  const processable = await isProcessable({ project: { id: params.project.id }, orderNumber })(repos);
61
63
  if (processable) {
62
- await paymentDue2Processing({
64
+ await (0, paymentDue2Processing_1.paymentDue2Processing)({
63
65
  project: { id: params.project.id },
64
66
  confirmationNumber,
65
67
  orderNumber,
@@ -211,80 +213,6 @@ function isProcessable(params) {
211
213
  return allPayTransactionConfirmed;
212
214
  };
213
215
  }
214
- function paymentDue2Processing(params) {
215
- return async (repos, settings) => {
216
- const placeOrderTransaction = await (0, findPlaceOrderTransaction_1.findPlaceOrderTransaction)({
217
- project: { id: params.project.id },
218
- confirmationNumber: params.confirmationNumber,
219
- orderNumber: params.orderNumber
220
- })(repos);
221
- // const existingOrder: Pick<factory.order.IOrder, 'project'> = await repos.order.projectFieldsByOrderNumber({
222
- // orderNumber: params.orderNumber,
223
- // project: { id: params.project.id },
224
- // inclusion: ['project']
225
- // });
226
- let order;
227
- try {
228
- order = await repos.order.changeStatus({
229
- project: { id: params.project.id },
230
- orderNumber: params.orderNumber,
231
- orderStatus: factory.orderStatus.OrderProcessing,
232
- previousOrderStatus: factory.orderStatus.OrderPaymentDue
233
- });
234
- }
235
- catch (error) {
236
- let throwsError = true;
237
- // すでにステータスが進行していた場合、OrderPaymentDue->OrderProcessingの処理自体は成功しているので、後処理を続行する
238
- order = await repos.order.projectFieldsByOrderNumber({
239
- orderNumber: params.orderNumber,
240
- project: { id: params.project.id },
241
- inclusion: [
242
- 'orderNumber', 'broker', 'confirmationNumber', 'customer', 'dateReturned',
243
- 'name', 'orderDate', 'orderStatus', 'orderedItem', 'paymentMethods',
244
- 'previousOrderStatus', 'price', 'priceCurrency', 'project', 'returner', 'seller', 'typeOf'
245
- ] // explicit projection(2024-07-25~)
246
- });
247
- if (order.orderStatus === factory.orderStatus.OrderInTransit
248
- || order.orderStatus === factory.orderStatus.OrderDelivered
249
- || order.orderStatus === factory.orderStatus.OrderReturned) {
250
- throwsError = false;
251
- }
252
- if (throwsError) {
253
- throw error;
254
- }
255
- }
256
- if (params.useOnOrderStatusChanged) {
257
- // 全acceptedOffersを検索(2023-12-08~)
258
- // const acceptedOffers = await repos.acceptedOffer.searchAcceptedOffersByOrderNumber(
259
- // {
260
- // orderNumber: { $eq: order.orderNumber },
261
- // project: { id: { $eq: params.project.id } }
262
- // },
263
- // ['itemOffered', 'offeredThrough']
264
- // );
265
- const { numAcceptedOffers } = await repos.acceptedOffer.countByOrderNumber({
266
- orderNumber: { $eq: order.orderNumber },
267
- project: { id: { $eq: params.project.id } }
268
- });
269
- const itemOfferedTypeOfs = await repos.acceptedOffer.distinctValues({ orderNumber: { $in: [params.orderNumber] } }, 'acceptedOffers.itemOffered.typeOf');
270
- const serialNumbers = await repos.acceptedOffer.distinctValues({ orderNumber: { $in: [params.orderNumber] } }, 'acceptedOffers.serialNumber');
271
- const offeredThroughIdentifier = (await repos.acceptedOffer.distinctValues({ orderNumber: { $in: [params.orderNumber] } }, 'acceptedOffers.offeredThrough.identifier')).shift();
272
- debug('onAssetTransactionStatusChanged paymentDue2Processing: calling onOrderProcessing...', 'numAcceptedOffers:', numAcceptedOffers, 'itemOfferedTypeOfs:', itemOfferedTypeOfs, 'serialNumbers:', serialNumbers, 'offeredThroughIdentifier:', offeredThroughIdentifier);
273
- await (0, onOrderStatusChanged_1.onOrderProcessing)({
274
- order: {
275
- ...order,
276
- // acceptedOffers,
277
- numAcceptedOffers,
278
- itemOfferedTypeOf: itemOfferedTypeOfs[0], // 1つしかない前提
279
- serialNumbers,
280
- offeredThroughIdentifier,
281
- orderStatus: factory.orderStatus.OrderProcessing // 強制的にOrderProcessingとして処理する
282
- },
283
- placeOrderTransaction
284
- })(repos, settings);
285
- }
286
- };
287
- }
288
216
  function cancelOrderIfExist(params) {
289
217
  return async (repos) => {
290
218
  if (params.paymentMethodId.length === 0) {
@@ -8,6 +8,16 @@ import type { TaskRepo } from '../../repo/task';
8
8
  import type { PlaceOrderRepo } from '../../repo/transaction/placeOrder';
9
9
  import * as factory from '../../factory';
10
10
  import { Settings } from '../../settings';
11
+ interface IPlaceOrderRepos {
12
+ acceptedOffer: AcceptedOfferRepo;
13
+ accountingReport: AccountingReportRepo;
14
+ action: ActionRepo;
15
+ order: OrderRepo;
16
+ orderInTransaction: OrderInTransactionRepo;
17
+ setting: SettingRepo;
18
+ task: TaskRepo;
19
+ placeOrder: PlaceOrderRepo;
20
+ }
11
21
  /**
12
22
  * 注文を作成する
13
23
  */
@@ -21,16 +31,7 @@ declare function placeOrder(params: {
21
31
  orderNumber: string;
22
32
  };
23
33
  useOnOrderStatusChanged: boolean;
24
- }): (repos: {
25
- acceptedOffer: AcceptedOfferRepo;
26
- accountingReport: AccountingReportRepo;
27
- action: ActionRepo;
28
- order: OrderRepo;
29
- orderInTransaction: OrderInTransactionRepo;
30
- setting: SettingRepo;
31
- task: TaskRepo;
32
- placeOrder: PlaceOrderRepo;
33
- }, settings: Settings) => Promise<{
34
+ }): (repos: IPlaceOrderRepos, settings: Settings) => Promise<{
34
35
  order: factory.transaction.placeOrder.IOrderAsResult;
35
36
  }>;
36
- export { placeOrder };
37
+ export { IPlaceOrderRepos, placeOrder };
@@ -2,12 +2,9 @@
2
2
  * 注文サービス
3
3
  */
4
4
  import { confirmPayTransaction } from './order/confirmPayTransaction';
5
- import { deleteOrder } from './order/deleteOrder';
6
- import { onAssetTransactionStatusChanged, paymentDue2Processing } from './order/onAssetTransactionStatusChanged';
7
- import { onOrderProcessing, processOrder } from './order/onOrderStatusChanged';
5
+ import { paymentDue2Processing } from './order/onAssetTransactionStatusChanged';
6
+ import { processOrder } from './order/onOrderStatusChanged';
8
7
  import { onOrderUpdated } from './order/onOrderUpdated';
9
- import { payOrder } from './order/payOrder';
10
8
  import { placeOrder } from './order/placeOrder';
11
9
  import { placeOrderWithoutTransaction } from './order/placeOrderWithoutTransaction';
12
- import { sendOrder } from './order/sendOrder';
13
- export { confirmPayTransaction, deleteOrder, onAssetTransactionStatusChanged, onOrderProcessing, onOrderUpdated, paymentDue2Processing, payOrder, placeOrder, placeOrderWithoutTransaction, processOrder, sendOrder };
10
+ export { confirmPayTransaction, onOrderUpdated, paymentDue2Processing, placeOrder, placeOrderWithoutTransaction, processOrder, };
@@ -1,26 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.sendOrder = exports.processOrder = exports.placeOrderWithoutTransaction = exports.placeOrder = exports.payOrder = exports.paymentDue2Processing = exports.onOrderUpdated = exports.onOrderProcessing = exports.onAssetTransactionStatusChanged = exports.deleteOrder = exports.confirmPayTransaction = void 0;
3
+ exports.processOrder = exports.placeOrderWithoutTransaction = exports.placeOrder = exports.paymentDue2Processing = exports.onOrderUpdated = exports.confirmPayTransaction = void 0;
4
4
  /**
5
5
  * 注文サービス
6
6
  */
7
7
  const confirmPayTransaction_1 = require("./order/confirmPayTransaction");
8
8
  Object.defineProperty(exports, "confirmPayTransaction", { enumerable: true, get: function () { return confirmPayTransaction_1.confirmPayTransaction; } });
9
- const deleteOrder_1 = require("./order/deleteOrder");
10
- Object.defineProperty(exports, "deleteOrder", { enumerable: true, get: function () { return deleteOrder_1.deleteOrder; } });
9
+ // import { deleteOrder } from './order/deleteOrder';
11
10
  const onAssetTransactionStatusChanged_1 = require("./order/onAssetTransactionStatusChanged");
12
- Object.defineProperty(exports, "onAssetTransactionStatusChanged", { enumerable: true, get: function () { return onAssetTransactionStatusChanged_1.onAssetTransactionStatusChanged; } });
13
11
  Object.defineProperty(exports, "paymentDue2Processing", { enumerable: true, get: function () { return onAssetTransactionStatusChanged_1.paymentDue2Processing; } });
14
12
  const onOrderStatusChanged_1 = require("./order/onOrderStatusChanged");
15
- Object.defineProperty(exports, "onOrderProcessing", { enumerable: true, get: function () { return onOrderStatusChanged_1.onOrderProcessing; } });
16
13
  Object.defineProperty(exports, "processOrder", { enumerable: true, get: function () { return onOrderStatusChanged_1.processOrder; } });
17
14
  const onOrderUpdated_1 = require("./order/onOrderUpdated");
18
15
  Object.defineProperty(exports, "onOrderUpdated", { enumerable: true, get: function () { return onOrderUpdated_1.onOrderUpdated; } });
19
- const payOrder_1 = require("./order/payOrder");
20
- Object.defineProperty(exports, "payOrder", { enumerable: true, get: function () { return payOrder_1.payOrder; } });
16
+ // import { payOrder } from './order/payOrder';
21
17
  const placeOrder_1 = require("./order/placeOrder");
22
18
  Object.defineProperty(exports, "placeOrder", { enumerable: true, get: function () { return placeOrder_1.placeOrder; } });
23
19
  const placeOrderWithoutTransaction_1 = require("./order/placeOrderWithoutTransaction");
24
20
  Object.defineProperty(exports, "placeOrderWithoutTransaction", { enumerable: true, get: function () { return placeOrderWithoutTransaction_1.placeOrderWithoutTransaction; } });
25
- const sendOrder_1 = require("./order/sendOrder");
26
- Object.defineProperty(exports, "sendOrder", { enumerable: true, get: function () { return sendOrder_1.sendOrder; } });
@@ -1,8 +1,8 @@
1
- import * as factory from '../../../factory';
2
- import type { ConfirmationNumberRepo } from '../../../repo/confirmationNumber';
3
- import type { OrderNumberRepo } from '../../../repo/orderNumber';
4
- import type { ProjectRepo } from '../../../repo/project';
5
- import type { PlaceOrderRepo } from '../../../repo/transaction/placeOrder';
1
+ import * as factory from '../../../../factory';
2
+ import type { ConfirmationNumberRepo } from '../../../../repo/confirmationNumber';
3
+ import type { OrderNumberRepo } from '../../../../repo/orderNumber';
4
+ import type { ProjectRepo } from '../../../../repo/project';
5
+ import type { PlaceOrderRepo } from '../../../../repo/transaction/placeOrder';
6
6
  declare function fixOrderAsNeeded(params: {
7
7
  project: {
8
8
  id: string;
@@ -24,9 +24,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
26
  exports.fixOrderAsNeeded = fixOrderAsNeeded;
27
- const factory = __importStar(require("../../../factory"));
28
- const publishConfirmationNumberIfNotExist_1 = require("../../transaction/placeOrder/publishConfirmationNumberIfNotExist");
29
- const issueOrderNumberIfNotExist_1 = require("../../transaction/placeOrder/issueOrderNumberIfNotExist");
27
+ const factory = __importStar(require("../../../../factory"));
28
+ const publishConfirmationNumberIfNotExist_1 = require("../../../transaction/placeOrder/publishConfirmationNumberIfNotExist");
29
+ const issueOrderNumberIfNotExist_1 = require("../../../transaction/placeOrder/issueOrderNumberIfNotExist");
30
30
  function fixOrderAsNeeded(params) {
31
31
  return async (repos) => {
32
32
  const orderDate = new Date();
@@ -0,0 +1,90 @@
1
+ import * as factory from '../../../factory';
2
+ import { Settings } from '../../../settings';
3
+ import type { AcceptedPaymentMethodRepo } from '../../../repo/acceptedPaymentMethod';
4
+ import type { AccountingReportRepo } from '../../../repo/accountingReport';
5
+ import type { ActionRepo } from '../../../repo/action';
6
+ import type { AssetTransactionRepo } from '../../../repo/assetTransaction';
7
+ import type { AuthorizationRepo } from '../../../repo/authorization';
8
+ import type { ConfirmationNumberRepo } from '../../../repo/confirmationNumber';
9
+ import type { CredentialsRepo } from '../../../repo/credentials';
10
+ import type { EventRepo } from '../../../repo/event';
11
+ import type { EventSeriesRepo } from '../../../repo/eventSeries';
12
+ import type { OrderNumberRepo } from '../../../repo/orderNumber';
13
+ import type { PaymentServiceRepo } from '../../../repo/paymentService';
14
+ import type { PaymentServiceProviderRepo } from '../../../repo/paymentServiceProvider';
15
+ import type { PotentialActionRepo } from '../../../repo/potentialAction';
16
+ import type { ProductRepo } from '../../../repo/product';
17
+ import type { ProjectRepo } from '../../../repo/project';
18
+ import type { SellerPaymentAcceptedRepo } from '../../../repo/sellerPaymentAccepted';
19
+ import type { TaskRepo } from '../../../repo/task';
20
+ import type { TicketRepo } from '../../../repo/ticket';
21
+ import type { PlaceOrderRepo } from '../../../repo/transaction/placeOrder';
22
+ import type { TransactionNumberRepo } from '../../../repo/transactionNumber';
23
+ interface IAuthorizeRepos {
24
+ acceptedPaymentMethod: AcceptedPaymentMethodRepo;
25
+ accountingReport: AccountingReportRepo;
26
+ action: ActionRepo;
27
+ assetTransaction: AssetTransactionRepo;
28
+ authorization: AuthorizationRepo;
29
+ confirmationNumber: ConfirmationNumberRepo;
30
+ credentials: CredentialsRepo;
31
+ event: EventRepo;
32
+ eventSeries: EventSeriesRepo;
33
+ orderNumber: OrderNumberRepo;
34
+ paymentAccepted: SellerPaymentAcceptedRepo;
35
+ paymentService: PaymentServiceRepo;
36
+ paymentServiceProvider: PaymentServiceProviderRepo;
37
+ potentialAction: PotentialActionRepo;
38
+ product: ProductRepo;
39
+ project: ProjectRepo;
40
+ task: TaskRepo;
41
+ ticket: TicketRepo;
42
+ placeOrder: PlaceOrderRepo;
43
+ transactionNumber: TransactionNumberRepo;
44
+ }
45
+ type IAuthorizeOperation<T> = (repos: IAuthorizeRepos, settings: Settings) => Promise<T>;
46
+ type IObjectWithoutDetail = factory.action.authorize.paymentMethod.any.IObjectWithoutDetail & {
47
+ ticketToken?: string;
48
+ };
49
+ /**
50
+ * 決済承認
51
+ * CreditCard,MovieTicket -> 決済承認タスクから呼ばれる
52
+ * FaceToFace,PaymentCard -> apiから呼ばれる
53
+ */
54
+ declare function authorize(params: {
55
+ project: {
56
+ id: string;
57
+ };
58
+ agent: {
59
+ id: string;
60
+ };
61
+ object: IObjectWithoutDetail;
62
+ purpose: factory.action.authorize.paymentMethod.any.IPurpose;
63
+ paymentServiceType: factory.service.paymentService.PaymentServiceType;
64
+ location?: factory.action.trade.pay.ILocation;
65
+ options: {
66
+ /**
67
+ * アクション失敗時に即時に決済取引を中止するかどうか
68
+ */
69
+ useCancelPayTransactionOnFailed: boolean;
70
+ checkedAction: {
71
+ id: string;
72
+ };
73
+ };
74
+ sameAs?: {
75
+ /**
76
+ * 実行元タスクID
77
+ */
78
+ id: string;
79
+ };
80
+ /**
81
+ * ツールとしての対応決済方法オファー
82
+ */
83
+ instrument: factory.action.trade.pay.IAcceptedPaymentMethodOfferAsInstrument[];
84
+ }): IAuthorizeOperation<{
85
+ /**
86
+ * 承認アクションID
87
+ */
88
+ id: string;
89
+ }>;
90
+ export { authorize, IAuthorizeRepos };