@chevre/domain 23.2.0-alpha.50 → 23.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.
@@ -16,27 +16,17 @@ async function main() {
16
16
  const validThrough = moment(validFrom)
17
17
  .add(1, 'hour')
18
18
  .toDate();
19
- const settingOffer: Omit<chevre.factory.acceptedPaymentMethodOffer.IAcceptedPaymentMethodOffer, 'id'> = {
20
- typeOf: chevre.factory.offerType.Offer,
21
- identifier: '20251202acceptedPaymentMethod',
22
- itemOffered: {
23
- id: '7k9ayl8hc',
24
- typeOf: chevre.factory.eventType.ScreeningEventSeries
25
- },
19
+ const settingOffer: Pick<chevre.factory.acceptedPaymentMethodOffer.IAcceptedPaymentMethodOffer, 'acceptedPaymentMethod' | 'identifier' | 'validFrom' | 'validThrough'> = {
20
+ identifier: '20260206acceptedPaymentMethod',
26
21
  acceptedPaymentMethod: {
27
22
  id: '5f9a52994f3709000abe6417',
28
23
  typeOf: chevre.factory.service.paymentService.PaymentServiceType.MovieTicket
29
24
  },
30
25
  validFrom,
31
- validThrough,
32
- seller: {
33
- id: '59d20831e53ebc2b4e774466',
34
- typeOf: chevre.factory.organizationType.Corporation
35
- },
36
- project: { id: project.id, typeOf: chevre.factory.organizationType.Project }
26
+ validThrough
37
27
  };
38
28
 
39
- let result = await acceptedPaymentMethodRepo.upsertAcceptedPaymentMethodsByIdentifier(
29
+ let result = await acceptedPaymentMethodRepo.addAcceptedPaymentMethodsByIdentifier(
40
30
  [
41
31
  {
42
32
  $set: settingOffer,
@@ -44,12 +34,21 @@ async function main() {
44
34
  }
45
35
  ],
46
36
  {
47
- update: false
37
+ upsert: false,
38
+ itemOffered: {
39
+ id: '7k9ayl8hc',
40
+ typeOf: chevre.factory.eventType.ScreeningEventSeries
41
+ },
42
+ seller: {
43
+ id: '59d20831e53ebc2b4e774466',
44
+ typeOf: chevre.factory.organizationType.Corporation
45
+ },
46
+ project: { id: project.id, typeOf: chevre.factory.organizationType.Project }
48
47
  }
49
48
  );
50
49
  console.log(result);
51
50
 
52
- result = await acceptedPaymentMethodRepo.upsertAcceptedPaymentMethodsByIdentifier(
51
+ result = await acceptedPaymentMethodRepo.addAcceptedPaymentMethodsByIdentifier(
53
52
  [
54
53
  {
55
54
  $set: settingOffer,
@@ -57,7 +56,16 @@ async function main() {
57
56
  }
58
57
  ],
59
58
  {
60
- update: true
59
+ upsert: true,
60
+ itemOffered: {
61
+ id: '7k9ayl8hc',
62
+ typeOf: chevre.factory.eventType.ScreeningEventSeries
63
+ },
64
+ seller: {
65
+ id: '59d20831e53ebc2b4e774466',
66
+ typeOf: chevre.factory.organizationType.Corporation
67
+ },
68
+ project: { id: project.id, typeOf: chevre.factory.organizationType.Project }
61
69
  }
62
70
  );
63
71
  console.log(result);
@@ -24,7 +24,7 @@ async function main() {
24
24
  { project: { id: { $eq: '*' } } },
25
25
  {
26
26
  orderNumber: {
27
- validFrom: moment('2026-02-05T00:00:00Z')
27
+ validFrom: moment('2027-02-11T15:00:00Z')
28
28
  .toDate(),
29
29
  fpeSecret: FPE_SECRET,
30
30
  version: 'A'
@@ -20,22 +20,25 @@ export declare class AcceptedPaymentMethodRepo {
20
20
  /**
21
21
  * オファーコードと提供リソースIDをキーにして冪等置換
22
22
  */
23
- upsertAcceptedPaymentMethodsByIdentifier(params: {
24
- $set: Pick<IDocType, 'identifier' | 'itemOffered' | 'acceptedPaymentMethod' | 'seller' | 'project' | 'typeOf' | 'validFrom' | 'validThrough'> & {
23
+ addAcceptedPaymentMethodsByIdentifier(params: {
24
+ $set: Pick<IDocType, 'identifier' | 'acceptedPaymentMethod' | 'validFrom' | 'validThrough'> & {
25
25
  id?: never;
26
26
  };
27
27
  $unset: IUnset;
28
28
  }[], options: {
29
29
  /**
30
30
  * falseの場合setOnInsertのみ
31
- * trueの場合setのみ
31
+ * trueの場合setOnInsert+set
32
32
  */
33
- update: boolean;
33
+ upsert: boolean;
34
+ project: factory.acceptedPaymentMethodOffer.IAcceptedPaymentMethodOffer['project'];
35
+ seller: factory.acceptedPaymentMethodOffer.IAcceptedPaymentMethodOffer['seller'];
36
+ itemOffered: factory.acceptedPaymentMethodOffer.IAcceptedPaymentMethodOffer['itemOffered'];
34
37
  }): Promise<{
35
- bulkWriteResult: BulkWriteResult;
36
- modifiedProductOffers: {
38
+ bulkWriteResult?: BulkWriteResult;
39
+ modifiedOffers: {
37
40
  id: string;
38
41
  }[];
39
- } | void>;
42
+ }>;
40
43
  }
41
44
  export {};
@@ -108,14 +108,15 @@ class AcceptedPaymentMethodRepo {
108
108
  /**
109
109
  * オファーコードと提供リソースIDをキーにして冪等置換
110
110
  */
111
- upsertAcceptedPaymentMethodsByIdentifier(params, options) {
111
+ // tslint:disable-next-line:max-func-body-length
112
+ addAcceptedPaymentMethodsByIdentifier(params, options) {
112
113
  return __awaiter(this, void 0, void 0, function* () {
113
- const { update } = options;
114
+ const { upsert, project, seller, itemOffered } = options;
114
115
  const bulkWriteOps = [];
115
116
  const queryFilters = [];
116
117
  if (Array.isArray(params)) {
117
118
  params.forEach(({ $set, $unset }) => {
118
- const { identifier, itemOffered, acceptedPaymentMethod, seller, project, validFrom, validThrough } = $set;
119
+ const { identifier, acceptedPaymentMethod, validFrom, validThrough } = $set;
119
120
  if (typeof identifier !== 'string' || identifier === '') {
120
121
  throw new factory.errors.ArgumentNull('identifier');
121
122
  }
@@ -133,30 +134,27 @@ class AcceptedPaymentMethodRepo {
133
134
  'itemOffered.id': { $eq: itemOffered.id },
134
135
  identifier: { $eq: identifier }
135
136
  });
136
- if (update === true) {
137
- const setFields = {
138
- validFrom,
139
- validThrough,
140
- acceptedPaymentMethod
141
- };
142
- const updateFilter = Object.assign({ $set: setFields }, ($unset !== undefined) ? { $unset } : undefined);
137
+ const setOnInsert = {
138
+ identifier, itemOffered, project, seller,
139
+ typeOf: factory.offerType.Offer
140
+ };
141
+ const setFields = {
142
+ acceptedPaymentMethod,
143
+ validFrom,
144
+ validThrough
145
+ };
146
+ if (upsert) {
147
+ const updateFilter = Object.assign({ $setOnInsert: setOnInsert, $set: setFields }, ($unset !== undefined) ? { $unset } : undefined);
143
148
  const updateOne = {
144
149
  filter,
145
150
  update: updateFilter,
146
- upsert: false
151
+ upsert: true
147
152
  };
148
153
  bulkWriteOps.push({ updateOne });
149
154
  }
150
155
  else {
151
- const setOnInsert = {
152
- itemOffered, identifier, project, seller,
153
- typeOf: factory.offerType.Offer,
154
- validFrom,
155
- validThrough,
156
- acceptedPaymentMethod
157
- };
158
156
  const updateFilter = {
159
- $setOnInsert: setOnInsert
157
+ $setOnInsert: Object.assign(Object.assign({}, setOnInsert), setFields) // 存在しなければ追加のみ
160
158
  };
161
159
  const updateOne = {
162
160
  filter,
@@ -169,15 +167,27 @@ class AcceptedPaymentMethodRepo {
169
167
  }
170
168
  if (bulkWriteOps.length > 0) {
171
169
  const bulkWriteResult = yield this.acceptedPaymentMethodModel.bulkWrite(bulkWriteOps, { ordered: false });
172
- // modifiedの場合upsertedIdsに含まれないので、idを検索する
173
- const modifiedProductOffers = yield this.acceptedPaymentMethodModel.find({ $or: queryFilters }, {
174
- _id: 0,
175
- id: { $toString: '$_id' }
176
- })
177
- .lean()
178
- .exec();
179
- return { bulkWriteResult, modifiedProductOffers };
170
+ // upsert:falseの場合、upsertedIdsのみ返せばよい
171
+ if (!upsert) {
172
+ // BulkWriteResult -> upsertedIds: { '0': '7iri6p4m54k0r3g' }
173
+ return {
174
+ bulkWriteResult,
175
+ modifiedOffers: Object.values(bulkWriteResult.upsertedIds)
176
+ .map((id) => ({ id: String(id) }))
177
+ };
178
+ }
179
+ else {
180
+ // modifiedの場合upsertedIdsに含まれないので、idを検索する
181
+ const modifiedOffers = yield this.acceptedPaymentMethodModel.find({ $or: queryFilters }, {
182
+ _id: 0,
183
+ id: { $toString: '$_id' }
184
+ })
185
+ .lean()
186
+ .exec();
187
+ return { bulkWriteResult, modifiedOffers };
188
+ }
180
189
  }
190
+ return { modifiedOffers: [] };
181
191
  });
182
192
  }
183
193
  }
@@ -22,6 +22,11 @@ const setting_1 = require("./mongoose/schemas/setting");
22
22
  const transactionNumber_2 = require("./mongoose/schemas/transactionNumber");
23
23
  const transactionNumberCounter_1 = require("./transactionNumberCounter");
24
24
  const ORDER_NUMBER_SEPARATOR = '-';
25
+ const versioningForceProjects = [
26
+ 'HMX',
27
+ 'SMT',
28
+ 'KOJ'
29
+ ];
25
30
  /**
26
31
  * 注文番号リポジトリ
27
32
  */
@@ -77,8 +82,10 @@ class OrderNumberRepo {
77
82
  expires: dataFeedExpires
78
83
  });
79
84
  let orderNumber;
80
- const useVersioning = validFrom instanceof Date && moment(validFrom)
81
- .isSameOrBefore(params.orderDate);
85
+ // versioningForceProjectsであれば強制的にversioning(2026-02-05~)
86
+ const useVersioning = (validFrom instanceof Date && moment(validFrom)
87
+ .isSameOrBefore(params.orderDate))
88
+ || versioningForceProjects.includes(projectPrefix);
82
89
  if (typeof fpeSecret === 'string' && typeof version === 'string' && useVersioning) {
83
90
  const transactionFactory = new transactionNumber_1.TransactionNumberFactory({ fpeSecret, version });
84
91
  orderNumber = transactionFactory.generate(timestamp, incrReply);
package/package.json CHANGED
@@ -12,7 +12,7 @@
12
12
  "@aws-sdk/client-cognito-identity-provider": "3.600.0",
13
13
  "@aws-sdk/credential-providers": "3.600.0",
14
14
  "@chevre/factory": "5.4.0-alpha.25",
15
- "@cinerino/sdk": "13.0.0-alpha.1",
15
+ "@cinerino/sdk": "13.0.0-alpha.3",
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",
@@ -118,5 +118,5 @@
118
118
  "postversion": "git push origin --tags",
119
119
  "prepublishOnly": "npm run clean && npm run build && npm test && npm run doc"
120
120
  },
121
- "version": "23.2.0-alpha.50"
121
+ "version": "23.2.0-alpha.52"
122
122
  }