@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.
- package/example/src/chevre/acceptedPaymentMethodOffer/adminAcceptedPaymentMethodOffers.ts +25 -17
- package/example/src/chevre/settings/addOrderNumberSetting.ts +1 -1
- package/lib/chevre/repo/acceptedPaymentMethod.d.ts +10 -7
- package/lib/chevre/repo/acceptedPaymentMethod.js +37 -27
- package/lib/chevre/repo/orderNumber.js +9 -2
- package/package.json +2 -2
|
@@ -16,27 +16,17 @@ async function main() {
|
|
|
16
16
|
const validThrough = moment(validFrom)
|
|
17
17
|
.add(1, 'hour')
|
|
18
18
|
.toDate();
|
|
19
|
-
const settingOffer:
|
|
20
|
-
|
|
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.
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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);
|
|
@@ -20,22 +20,25 @@ export declare class AcceptedPaymentMethodRepo {
|
|
|
20
20
|
/**
|
|
21
21
|
* オファーコードと提供リソースIDをキーにして冪等置換
|
|
22
22
|
*/
|
|
23
|
-
|
|
24
|
-
$set: Pick<IDocType, 'identifier' | '
|
|
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
|
-
|
|
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
|
|
36
|
-
|
|
38
|
+
bulkWriteResult?: BulkWriteResult;
|
|
39
|
+
modifiedOffers: {
|
|
37
40
|
id: string;
|
|
38
41
|
}[];
|
|
39
|
-
}
|
|
42
|
+
}>;
|
|
40
43
|
}
|
|
41
44
|
export {};
|
|
@@ -108,14 +108,15 @@ class AcceptedPaymentMethodRepo {
|
|
|
108
108
|
/**
|
|
109
109
|
* オファーコードと提供リソースIDをキーにして冪等置換
|
|
110
110
|
*/
|
|
111
|
-
|
|
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 {
|
|
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,
|
|
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
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
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:
|
|
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
|
-
//
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
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
|
-
|
|
81
|
-
|
|
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.
|
|
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.
|
|
121
|
+
"version": "23.2.0-alpha.52"
|
|
122
122
|
}
|