@chevre/domain 21.18.0-alpha.14 → 21.18.0-alpha.16

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.
@@ -14,10 +14,10 @@ async function main() {
14
14
  orderNumber: 'CIN4-3943271-4221863',
15
15
  project: { id: project.id },
16
16
  inclusion: [
17
- 'project', 'typeOf', 'orderNumber', 'dateReturned', 'id',
18
- 'customer', 'returner', 'seller', 'price', 'priceCurrency', 'orderDate'
17
+ // 'project', 'typeOf', 'orderNumber', 'dateReturned', 'id',
18
+ // 'customer', 'returner', 'seller', 'price', 'priceCurrency', 'orderDate'
19
19
  ],
20
- exclusion: []
20
+ exclusion: ['acceptedOffers']
21
21
  });
22
22
  console.log(order);
23
23
 
@@ -47,7 +47,7 @@ export declare class MongoRepository {
47
47
  orderNumber: string;
48
48
  orderStatus: factory.orderStatus;
49
49
  previousOrderStatus: factory.orderStatus;
50
- }): Promise<factory.order.IOrder>;
50
+ }): Promise<Omit<factory.order.IOrder, 'acceptedOffers'>>;
51
51
  /**
52
52
  * 注文を返品する
53
53
  */
@@ -104,7 +104,7 @@ export declare class MongoRepository {
104
104
  id?: string;
105
105
  };
106
106
  inclusion: IKeyOfProjection[];
107
- exclusion: IKeyOfProjection[];
107
+ exclusion: (IKeyOfProjection | 'acceptedOffers')[];
108
108
  }): Promise<factory.order.IOrder>;
109
109
  findByOrderNumberAndReservationId(params: {
110
110
  project: {
@@ -697,7 +697,8 @@ class MongoRepository {
697
697
  projection: {
698
698
  __v: 0,
699
699
  createdAt: 0,
700
- updatedAt: 0
700
+ updatedAt: 0,
701
+ acceptedOffers: 0 // 除外(2023-12-08~)
701
702
  }
702
703
  })
703
704
  .exec();
@@ -707,7 +708,9 @@ class MongoRepository {
707
708
  orderNumber: params.orderNumber,
708
709
  project: { id: params.project.id },
709
710
  inclusion: [],
710
- exclusion: []
711
+ exclusion: [
712
+ 'acceptedOffers' // 除外(2023-12-08~)
713
+ ]
711
714
  });
712
715
  // tslint:disable-next-line:no-single-line-block-comment
713
716
  /* istanbul ignore next */
@@ -4,5 +4,7 @@ export type IOwnershipInfo = factory.ownershipInfo.IOwnershipInfo<factory.owners
4
4
  * 注文から所有権を作成する
5
5
  */
6
6
  export declare function createOwnershipInfosFromOrder(params: {
7
- order: Pick<factory.order.IOrder, 'acceptedOffers' | 'orderDate' | 'project' | 'customer' | 'orderNumber' | 'seller'>;
7
+ order: Pick<factory.order.IOrder, 'orderDate' | 'project' | 'customer' | 'orderNumber' | 'seller'> & {
8
+ acceptedOffers: factory.order.IAcceptedOffer<factory.order.IItemOffered>[];
9
+ };
8
10
  }): IOwnershipInfo[];
@@ -1,3 +1,4 @@
1
+ import type { MongoRepository as AcceptedOfferRepo } from '../../repo/acceptedOffer';
1
2
  import type { MongoRepository as AccountingReportRepo } from '../../repo/accountingReport';
2
3
  import type { MongoRepository as EventRepo } from '../../repo/event';
3
4
  import type { MongoRepository as OrderRepo } from '../../repo/order';
@@ -11,6 +12,7 @@ import * as factory from '../../factory';
11
12
  declare function deleteOrder(params: {
12
13
  object: Pick<factory.order.IOrder, 'project' | 'typeOf' | 'confirmationNumber' | 'orderDate' | 'orderNumber'>;
13
14
  }): (repos: {
15
+ acceptedOffer: AcceptedOfferRepo;
14
16
  accountingReport: AccountingReportRepo;
15
17
  event: EventRepo;
16
18
  order: OrderRepo;
@@ -50,7 +50,11 @@ function deleteOrder(params) {
50
50
  exports.deleteOrder = deleteOrder;
51
51
  function deleteReservationsByOrder(order) {
52
52
  return (repos) => __awaiter(this, void 0, void 0, function* () {
53
- const acceptedOffers = (Array.isArray(order.acceptedOffers)) ? order.acceptedOffers : [];
53
+ const acceptedOffers = yield repos.acceptedOffer.searchAcceptedOffersByOrderNumber({
54
+ orderNumber: { $eq: order.orderNumber },
55
+ project: { id: { $eq: order.project.id } }
56
+ });
57
+ // const acceptedOffers = (Array.isArray(order.acceptedOffers)) ? order.acceptedOffers : [];
54
58
  const reservationIds = acceptedOffers.filter((o) => {
55
59
  return o.itemOffered.typeOf === factory.reservationType.EventReservation;
56
60
  })
@@ -66,7 +70,12 @@ function deleteOwnershipInfosByOrder(order) {
66
70
  return (repos) => __awaiter(this, void 0, void 0, function* () {
67
71
  const now = new Date();
68
72
  // 所有権作成
69
- const ownershipInfos = (0, factory_1.createOwnershipInfosFromOrder)({ order });
73
+ const ownershipInfos = (0, factory_1.createOwnershipInfosFromOrder)({
74
+ order: Object.assign(Object.assign({}, order), { acceptedOffers: yield repos.acceptedOffer.searchAcceptedOffersByOrderNumber({
75
+ orderNumber: { $eq: order.orderNumber },
76
+ project: { id: { $eq: order.project.id } }
77
+ }) })
78
+ });
70
79
  const ownershipIdentifiers = ownershipInfos.map((o) => String(o.identifier));
71
80
  if (ownershipIdentifiers.length > 0) {
72
81
  yield repos.ownershipInfo.deleteExpiredByIdentifiers({
@@ -81,7 +90,11 @@ function deleteOwnershipInfosByOrder(order) {
81
90
  function deleteEventsByOrder(order) {
82
91
  return (repos) => __awaiter(this, void 0, void 0, function* () {
83
92
  const now = new Date();
84
- const acceptedOffers = (Array.isArray(order.acceptedOffers)) ? order.acceptedOffers : [];
93
+ const acceptedOffers = yield repos.acceptedOffer.searchAcceptedOffersByOrderNumber({
94
+ orderNumber: { $eq: order.orderNumber },
95
+ project: { id: { $eq: order.project.id } }
96
+ });
97
+ // const acceptedOffers = (Array.isArray(order.acceptedOffers)) ? order.acceptedOffers : [];
85
98
  const reservationForIds = acceptedOffers.filter((o) => {
86
99
  return (o.itemOffered.typeOf === factory.reservationType.EventReservation
87
100
  || o.itemOffered.typeOf === factory.reservationType.BusReservation)
@@ -1,9 +1,11 @@
1
+ import type { MongoRepository as AcceptedOfferRepo } from '../../repo/acceptedOffer';
1
2
  import type { MongoRepository as AssetTransactionRepo } from '../../repo/assetTransaction';
2
3
  import type { MongoRepository as OrderRepo } from '../../repo/order';
3
4
  import type { MongoRepository as TaskRepo } from '../../repo/task';
4
5
  import type { MongoRepository as TransactionRepo } from '../../repo/transaction';
5
6
  import * as factory from '../../factory';
6
7
  declare function onAssetTransactionStatusChanged(params: factory.task.IData<factory.taskName.OnAssetTransactionStatusChanged>): (repos: {
8
+ acceptedOffer: AcceptedOfferRepo;
7
9
  assetTransaction: AssetTransactionRepo;
8
10
  order: OrderRepo;
9
11
  task: TaskRepo;
@@ -17,6 +19,7 @@ declare function paymentDue2Processing(params: {
17
19
  orderNumber: string;
18
20
  useOnOrderStatusChanged: boolean;
19
21
  }): (repos: {
22
+ acceptedOffer: AcceptedOfferRepo;
20
23
  order: OrderRepo;
21
24
  task: TaskRepo;
22
25
  transaction: TransactionRepo;
@@ -138,7 +138,7 @@ function paymentDue2Processing(params) {
138
138
  orderNumber: params.orderNumber,
139
139
  project: { id: params.project.id },
140
140
  inclusion: [],
141
- exclusion: []
141
+ exclusion: ['acceptedOffers']
142
142
  });
143
143
  try {
144
144
  order = yield repos.order.changeStatus({
@@ -151,12 +151,12 @@ function paymentDue2Processing(params) {
151
151
  catch (error) {
152
152
  let throwsError = true;
153
153
  // すでにステータスが煤でいた場合、OrderPaymentDue->OrderProcessingの処理自体は成功しているので、後処理を続行する
154
- order = yield repos.order.findByOrderNumber({
154
+ order = (yield repos.order.findByOrderNumber({
155
155
  orderNumber: params.orderNumber,
156
156
  project: { id: params.project.id },
157
157
  inclusion: [],
158
- exclusion: []
159
- });
158
+ exclusion: ['acceptedOffers']
159
+ }));
160
160
  if (order.orderStatus === factory.orderStatus.OrderDelivered
161
161
  || order.orderStatus === factory.orderStatus.OrderReturned) {
162
162
  throwsError = false;
@@ -166,8 +166,13 @@ function paymentDue2Processing(params) {
166
166
  }
167
167
  }
168
168
  if (params.useOnOrderStatusChanged) {
169
+ // 全acceptedOffersを検索(2023-12-08~)
170
+ const acceptedOffers = yield repos.acceptedOffer.searchAcceptedOffersByOrderNumber({
171
+ orderNumber: { $eq: order.orderNumber },
172
+ project: { id: { $eq: params.project.id } }
173
+ });
169
174
  yield (0, onOrderStatusChanged_1.onOrderProcessing)({
170
- order: Object.assign(Object.assign({}, order), { orderStatus: factory.orderStatus.OrderProcessing // 強制的にOrderProcessingとして処理する
175
+ order: Object.assign(Object.assign({}, order), { acceptedOffers, orderStatus: factory.orderStatus.OrderProcessing // 強制的にOrderProcessingとして処理する
171
176
  }),
172
177
  placeOrderTransaction
173
178
  })({
@@ -3,8 +3,9 @@ import * as factory from '../../../factory';
3
3
  import { IExternalOrder } from './onOrderProcessing/factory';
4
4
  type IPlaceOrderTransaction = Pick<factory.transaction.placeOrder.ITransaction, 'id' | 'typeOf' | 'potentialActions'>;
5
5
  declare function onOrderProcessing(params: {
6
- order: Omit<factory.order.IOrder, 'orderStatus'> & {
6
+ order: Omit<factory.order.IOrder, 'acceptedOffers' | 'orderStatus'> & {
7
7
  orderStatus: factory.orderStatus.OrderProcessing;
8
+ acceptedOffers: factory.order.IAcceptedOffer<factory.order.IItemOffered>[];
8
9
  };
9
10
  placeOrderTransaction?: IPlaceOrderTransaction;
10
11
  }): (repos: {
@@ -1,3 +1,4 @@
1
+ import type { MongoRepository as AcceptedOfferRepo } from '../../repo/acceptedOffer';
1
2
  import type { MongoRepository as OrderRepo } from '../../repo/order';
2
3
  import type { MongoRepository as TaskRepo } from '../../repo/task';
3
4
  import type { MongoRepository as TransactionRepo } from '../../repo/transaction';
@@ -6,6 +7,7 @@ import * as factory from '../../factory';
6
7
  * 注文を決済する
7
8
  */
8
9
  declare function payOrder(params: factory.task.IData<factory.taskName.OnOrderPaymentCompleted>): (repos: {
10
+ acceptedOffer: AcceptedOfferRepo;
9
11
  order: OrderRepo;
10
12
  task: TaskRepo;
11
13
  transaction: TransactionRepo;
@@ -1,3 +1,4 @@
1
+ import type { MongoRepository as AcceptedOfferRepo } from '../../repo/acceptedOffer';
1
2
  import type { MongoRepository as AccountingReportRepo } from '../../repo/accountingReport';
2
3
  import type { MongoRepository as ActionRepo } from '../../repo/action';
3
4
  import type { MongoRepository as OrderRepo } from '../../repo/order';
@@ -34,6 +35,7 @@ declare function placeOrder(params: {
34
35
  };
35
36
  useOnOrderStatusChanged: boolean;
36
37
  }): (repos: {
38
+ acceptedOffer: AcceptedOfferRepo;
37
39
  accountingReport: AccountingReportRepo;
38
40
  action: ActionRepo;
39
41
  order: OrderRepo;
@@ -1,3 +1,4 @@
1
+ import type { MongoRepository as AcceptedOfferRepo } from '../../repo/acceptedOffer';
1
2
  import type { MongoRepository as ActionRepo } from '../../repo/action';
2
3
  import type { MongoRepository as OrderRepo } from '../../repo/order';
3
4
  import type { MongoRepository as OwnershipInfoRepo } from '../../repo/ownershipInfo';
@@ -5,6 +6,7 @@ import type { MongoRepository as TaskRepo } from '../../repo/task';
5
6
  import type { MongoRepository as TransactionRepo } from '../../repo/transaction';
6
7
  import * as factory from '../../factory';
7
8
  type ISendOperation<T> = (repos: {
9
+ acceptedOffer: AcceptedOfferRepo;
8
10
  action: ActionRepo;
9
11
  order: OrderRepo;
10
12
  ownershipInfo: OwnershipInfoRepo;
@@ -37,7 +37,7 @@ function sendOrder(params) {
37
37
  let order = yield repos.order.findByOrderNumber({
38
38
  orderNumber,
39
39
  project: { id: params.project.id },
40
- inclusion: [],
40
+ inclusion: ['confirmationNumber', 'project', 'typeOf', 'seller', 'orderNumber', 'price', 'priceCurrency', 'orderDate', 'customer', '_id'],
41
41
  exclusion: []
42
42
  });
43
43
  // プロジェクト条件検証
@@ -76,7 +76,12 @@ function sendOrder(params) {
76
76
  let ownershipInfos;
77
77
  try {
78
78
  // 所有権作成
79
- ownershipInfos = (0, factory_1.createOwnershipInfosFromOrder)({ order });
79
+ ownershipInfos = (0, factory_1.createOwnershipInfosFromOrder)({
80
+ order: Object.assign(Object.assign({}, order), { acceptedOffers: yield repos.acceptedOffer.searchAcceptedOffersByOrderNumber({
81
+ orderNumber: { $eq: order.orderNumber },
82
+ project: { id: { $eq: order.project.id } }
83
+ }) })
84
+ });
80
85
  ownershipInfos = yield Promise.all(ownershipInfos.map((ownershipInfo) => __awaiter(this, void 0, void 0, function* () {
81
86
  return repos.ownershipInfo.createIfNotExistByIdentifier(ownershipInfo);
82
87
  })));
@@ -10,6 +10,7 @@ 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 acceptedOffer_1 = require("../../repo/acceptedOffer");
13
14
  const accountingReport_1 = require("../../repo/accountingReport");
14
15
  const action_1 = require("../../repo/action");
15
16
  const assetTransaction_1 = require("../../repo/assetTransaction");
@@ -26,6 +27,7 @@ const TransactionService = require("../transaction");
26
27
  function call(data) {
27
28
  return (settings) => __awaiter(this, void 0, void 0, function* () {
28
29
  yield TransactionService.deleteTransaction(data)({
30
+ acceptedOffer: new acceptedOffer_1.MongoRepository(settings.connection),
29
31
  accountingReport: new accountingReport_1.MongoRepository(settings.connection),
30
32
  action: new action_1.MongoRepository(settings.connection),
31
33
  assetTransaction: new assetTransaction_1.MongoRepository(settings.connection),
@@ -10,6 +10,7 @@ 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 acceptedOffer_1 = require("../../repo/acceptedOffer");
13
14
  const assetTransaction_1 = require("../../repo/assetTransaction");
14
15
  const order_1 = require("../../repo/order");
15
16
  const task_1 = require("../../repo/task");
@@ -24,6 +25,7 @@ function call(data) {
24
25
  // throw new factory.errors.Argument('settings', 'redisClient required');
25
26
  // }
26
27
  yield (0, onAssetTransactionStatusChanged_1.onAssetTransactionStatusChanged)(data)({
28
+ acceptedOffer: new acceptedOffer_1.MongoRepository(settings.connection),
27
29
  assetTransaction: new assetTransaction_1.MongoRepository(settings.connection),
28
30
  order: new order_1.MongoRepository(settings.connection),
29
31
  task: new task_1.MongoRepository(settings.connection),
@@ -10,6 +10,7 @@ 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 acceptedOffer_1 = require("../../repo/acceptedOffer");
13
14
  const order_1 = require("../../repo/order");
14
15
  const task_1 = require("../../repo/task");
15
16
  const transaction_1 = require("../../repo/transaction");
@@ -23,6 +24,7 @@ function call(data) {
23
24
  // throw new factory.errors.Argument('settings', 'redisClient required');
24
25
  // }
25
26
  yield (0, payOrder_1.payOrder)(data)({
27
+ acceptedOffer: new acceptedOffer_1.MongoRepository(settings.connection),
26
28
  order: new order_1.MongoRepository(settings.connection),
27
29
  task: new task_1.MongoRepository(settings.connection),
28
30
  transaction: new transaction_1.MongoRepository(settings.connection)
@@ -10,6 +10,7 @@ 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 acceptedOffer_1 = require("../../repo/acceptedOffer");
13
14
  const accountingReport_1 = require("../../repo/accountingReport");
14
15
  const action_1 = require("../../repo/action");
15
16
  const order_1 = require("../../repo/order");
@@ -25,6 +26,7 @@ function call(data) {
25
26
  // throw new factory.errors.Argument('settings', 'redisClient required');
26
27
  // }
27
28
  yield OrderService.placeOrder(Object.assign(Object.assign({}, data), { useOnOrderStatusChanged: true }))({
29
+ acceptedOffer: new acceptedOffer_1.MongoRepository(settings.connection),
28
30
  accountingReport: new accountingReport_1.MongoRepository(settings.connection),
29
31
  action: new action_1.MongoRepository(settings.connection),
30
32
  order: new order_1.MongoRepository(settings.connection),
@@ -10,6 +10,7 @@ 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 acceptedOffer_1 = require("../../repo/acceptedOffer");
13
14
  const action_1 = require("../../repo/action");
14
15
  const order_1 = require("../../repo/order");
15
16
  const ownershipInfo_1 = require("../../repo/ownershipInfo");
@@ -24,17 +25,13 @@ function call(data) {
24
25
  // if (settings.redisClient === undefined) {
25
26
  // throw new factory.errors.Argument('settings', 'redisClient required');
26
27
  // }
27
- const actionRepo = new action_1.MongoRepository(settings.connection);
28
- const orderRepo = new order_1.MongoRepository(settings.connection);
29
- const ownershipInfoRepo = new ownershipInfo_1.MongoRepository(settings.connection);
30
- const taskRepo = new task_1.MongoRepository(settings.connection);
31
- const transactionRepo = new transaction_1.MongoRepository(settings.connection);
32
28
  yield OrderService.sendOrder(Object.assign(Object.assign({}, data), { useOnOrderStatusChanged: true }))({
33
- action: actionRepo,
34
- order: orderRepo,
35
- ownershipInfo: ownershipInfoRepo,
36
- task: taskRepo,
37
- transaction: transactionRepo
29
+ acceptedOffer: new acceptedOffer_1.MongoRepository(settings.connection),
30
+ action: new action_1.MongoRepository(settings.connection),
31
+ order: new order_1.MongoRepository(settings.connection),
32
+ ownershipInfo: new ownershipInfo_1.MongoRepository(settings.connection),
33
+ task: new task_1.MongoRepository(settings.connection),
34
+ transaction: new transaction_1.MongoRepository(settings.connection)
38
35
  });
39
36
  });
40
37
  }
@@ -1,4 +1,5 @@
1
1
  import * as factory from '../../factory';
2
+ import type { MongoRepository as AcceptedOfferRepo } from '../../repo/acceptedOffer';
2
3
  import type { MongoRepository as AccountingReportRepo } from '../../repo/accountingReport';
3
4
  import type { MongoRepository as ActionRepo } from '../../repo/action';
4
5
  import type { MongoRepository as AssetTransactionRepo } from '../../repo/assetTransaction';
@@ -13,6 +14,7 @@ import type { MongoRepository as TransactionRepo } from '../../repo/transaction'
13
14
  * 冪等性を確保すること
14
15
  */
15
16
  export declare function deleteTransaction(params: factory.task.IData<factory.taskName.DeleteTransaction>): (repos: {
17
+ acceptedOffer: AcceptedOfferRepo;
16
18
  accountingReport: AccountingReportRepo;
17
19
  action: ActionRepo;
18
20
  assetTransaction: AssetTransactionRepo;
package/package.json CHANGED
@@ -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": "21.18.0-alpha.14"
118
+ "version": "21.18.0-alpha.16"
119
119
  }