@chevre/domain 23.1.0-alpha.4 → 23.1.0-alpha.5
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/eventOffer/adminEventOffers.ts +67 -0
- package/example/src/chevre/member/migrateMemberIdentifier.ts +94 -0
- package/lib/chevre/repo/eventOffer.d.ts +1 -1
- package/lib/chevre/repo/eventOffer.js +5 -3
- package/lib/chevre/repo/member.d.ts +4 -0
- package/lib/chevre/repo/member.js +1 -1
- package/lib/chevre/service/offer/event/authorize/factory.d.ts +1 -0
- package/lib/chevre/service/offer/event/authorize/factory.js +6 -2
- package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre.d.ts +1 -0
- package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre.js +9 -4
- package/lib/chevre/service/offer/event/authorize.js +7 -2
- package/package.json +2 -2
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// tslint:disable:no-console
|
|
2
|
+
import * as moment from 'moment';
|
|
3
|
+
import * as mongoose from 'mongoose';
|
|
4
|
+
|
|
5
|
+
import { chevre } from '../../../../lib/index';
|
|
6
|
+
|
|
7
|
+
const project = { id: String(process.env.PROJECT_ID) };
|
|
8
|
+
|
|
9
|
+
async function main() {
|
|
10
|
+
await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
|
|
11
|
+
|
|
12
|
+
const eventOfferRepo = await chevre.repository.EventOffer.createInstance(mongoose.connection);
|
|
13
|
+
|
|
14
|
+
const validFrom = moment()
|
|
15
|
+
.toDate();
|
|
16
|
+
const validThrough = moment(validFrom)
|
|
17
|
+
.add(1, 'hour')
|
|
18
|
+
.toDate();
|
|
19
|
+
const eventOffer: chevre.factory.eventOffer.IEventOffer = {
|
|
20
|
+
typeOf: chevre.factory.offerType.Offer,
|
|
21
|
+
identifier: '20251113eventOffer',
|
|
22
|
+
itemOffered: {
|
|
23
|
+
id: '69151228ad580da66c8b5068',
|
|
24
|
+
typeOf: chevre.factory.eventType.ScreeningEvent
|
|
25
|
+
},
|
|
26
|
+
availableAtOrFrom: {
|
|
27
|
+
identifier: 'SmartTheaterTXN'
|
|
28
|
+
},
|
|
29
|
+
validFrom,
|
|
30
|
+
validThrough,
|
|
31
|
+
seller: {
|
|
32
|
+
id: '59d20831e53ebc2b4e774466',
|
|
33
|
+
typeOf: chevre.factory.organizationType.Corporation
|
|
34
|
+
},
|
|
35
|
+
project: { id: project.id, typeOf: chevre.factory.organizationType.Project }
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
let result = await eventOfferRepo.upsertEventOffersByIdentifier(
|
|
39
|
+
[
|
|
40
|
+
{
|
|
41
|
+
$set: eventOffer,
|
|
42
|
+
$unset: {}
|
|
43
|
+
}
|
|
44
|
+
],
|
|
45
|
+
{
|
|
46
|
+
update: false
|
|
47
|
+
}
|
|
48
|
+
);
|
|
49
|
+
console.log(result);
|
|
50
|
+
|
|
51
|
+
result = await eventOfferRepo.upsertEventOffersByIdentifier(
|
|
52
|
+
[
|
|
53
|
+
{
|
|
54
|
+
$set: eventOffer,
|
|
55
|
+
$unset: {}
|
|
56
|
+
}
|
|
57
|
+
],
|
|
58
|
+
{
|
|
59
|
+
update: true
|
|
60
|
+
}
|
|
61
|
+
);
|
|
62
|
+
console.log(result);
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
main()
|
|
66
|
+
.then()
|
|
67
|
+
.catch(console.error);
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
// tslint:disable:no-console
|
|
2
|
+
// import * as moment from 'moment';
|
|
3
|
+
import * as mongoose from 'mongoose';
|
|
4
|
+
|
|
5
|
+
import { chevre } from '../../../../lib/index';
|
|
6
|
+
|
|
7
|
+
// const project = { id: String(process.env.PROJECT_ID) };
|
|
8
|
+
// const EXCLUDED_PROJECT_ID = process.env.EXCLUDED_PROJECT_ID;
|
|
9
|
+
const identifierMap = [
|
|
10
|
+
{
|
|
11
|
+
id: '7divuoimobsfgq95tp1csorjqq',
|
|
12
|
+
identifier: 'SmartTheaterTXNMember'
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
id: '51qbjcfr72h62m06vtv5kkhgje',
|
|
16
|
+
identifier: 'SmartTheaterTXN'
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
id: 'ckevmf3fueqcunnideu6artt',
|
|
20
|
+
identifier: 'SmartTheaterPOS'
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
id: '3eo6okferrsdpfd9j2ce1iv9k7',
|
|
24
|
+
identifier: 'SmartTheaterTVM'
|
|
25
|
+
}
|
|
26
|
+
];
|
|
27
|
+
|
|
28
|
+
// tslint:disable-next-line:max-func-body-length
|
|
29
|
+
async function main() {
|
|
30
|
+
await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
|
|
31
|
+
|
|
32
|
+
const memberRepo = await chevre.repository.Member.createInstance(mongoose.connection);
|
|
33
|
+
|
|
34
|
+
const cursor = memberRepo.getCursor(
|
|
35
|
+
{
|
|
36
|
+
// typeOf: { $eq: chevre.factory.placeType.ScreeningRoom }
|
|
37
|
+
'project.id': { $eq: '*' }
|
|
38
|
+
// 'project.id': { $ne: EXCLUDED_PROJECT_ID },
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
project: 1,
|
|
42
|
+
member: 1
|
|
43
|
+
// paymentMethods: 1,
|
|
44
|
+
// project: 1,
|
|
45
|
+
// orderDate: 1
|
|
46
|
+
}
|
|
47
|
+
);
|
|
48
|
+
console.log('docs found');
|
|
49
|
+
|
|
50
|
+
let updated: number = 0;
|
|
51
|
+
let i = 0;
|
|
52
|
+
await cursor.eachAsync(async (doc) => {
|
|
53
|
+
i += 1;
|
|
54
|
+
const iamMember: chevre.factory.iam.IMember = doc.toObject();
|
|
55
|
+
|
|
56
|
+
const identifierExists = typeof (<any>iamMember.member).identifier === 'string';
|
|
57
|
+
|
|
58
|
+
if (identifierExists) {
|
|
59
|
+
console.log(
|
|
60
|
+
'identifier exists',
|
|
61
|
+
iamMember.project.id,
|
|
62
|
+
iamMember.member.name,
|
|
63
|
+
(<any>iamMember.member).identifier
|
|
64
|
+
);
|
|
65
|
+
} else {
|
|
66
|
+
const updatingIdentifier = identifierMap.find(({ id }) => id === iamMember.member.id)?.identifier;
|
|
67
|
+
if (typeof updatingIdentifier !== 'string') {
|
|
68
|
+
throw new Error(`map not found. ${iamMember.member.name}`);
|
|
69
|
+
}
|
|
70
|
+
console.log(
|
|
71
|
+
'migrating identifier...',
|
|
72
|
+
iamMember.project.id,
|
|
73
|
+
iamMember.member.name,
|
|
74
|
+
updatingIdentifier
|
|
75
|
+
);
|
|
76
|
+
// await memberRepo.updateByMemberId({
|
|
77
|
+
// project: { id: iamMember.project.id },
|
|
78
|
+
// member: {
|
|
79
|
+
// id: iamMember.member.id,
|
|
80
|
+
// memberOf: iamMember.member.memberOf,
|
|
81
|
+
// identifier: updatingIdentifier
|
|
82
|
+
// },
|
|
83
|
+
// $unset: {}
|
|
84
|
+
// });
|
|
85
|
+
updated += 1;
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
console.log(i, 'docs checked');
|
|
89
|
+
console.log('updated:', updated);
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
main()
|
|
93
|
+
.then()
|
|
94
|
+
.catch(console.error);
|
|
@@ -21,7 +21,7 @@ export declare class EventOfferRepo {
|
|
|
21
21
|
* オファーコードとイベントIDをキーにして冪等置換
|
|
22
22
|
*/
|
|
23
23
|
upsertEventOffersByIdentifier(params: {
|
|
24
|
-
$set: Pick<IDocType, 'identifier' | 'itemOffered' | 'offeredBy' | 'seller' | 'project' | 'typeOf' | 'validFrom' | 'validThrough'> & {
|
|
24
|
+
$set: Pick<IDocType, 'identifier' | 'itemOffered' | 'offeredBy' | 'seller' | 'project' | 'typeOf' | 'validFrom' | 'validThrough' | 'availableAtOrFrom'> & {
|
|
25
25
|
id?: never;
|
|
26
26
|
};
|
|
27
27
|
$unset: IUnset;
|
|
@@ -112,7 +112,7 @@ class EventOfferRepo {
|
|
|
112
112
|
const queryFilters = [];
|
|
113
113
|
if (Array.isArray(params)) {
|
|
114
114
|
params.forEach(({ $set, $unset }) => {
|
|
115
|
-
const { identifier, itemOffered, offeredBy, seller, project, validFrom, validThrough } = $set;
|
|
115
|
+
const { identifier, itemOffered, offeredBy, seller, project, validFrom, validThrough, availableAtOrFrom } = $set;
|
|
116
116
|
if (typeof identifier !== 'string' || identifier === '') {
|
|
117
117
|
throw new factory.errors.ArgumentNull('identifier');
|
|
118
118
|
}
|
|
@@ -132,7 +132,8 @@ class EventOfferRepo {
|
|
|
132
132
|
});
|
|
133
133
|
if (update === true) {
|
|
134
134
|
const setFields = Object.assign({ validFrom,
|
|
135
|
-
validThrough
|
|
135
|
+
validThrough,
|
|
136
|
+
availableAtOrFrom }, (typeof (offeredBy === null || offeredBy === void 0 ? void 0 : offeredBy.identifier) === 'string') ? { offeredBy } : undefined);
|
|
136
137
|
const updateFilter = Object.assign({ $set: setFields }, ($unset !== undefined) ? { $unset } : undefined);
|
|
137
138
|
const updateOne = {
|
|
138
139
|
filter,
|
|
@@ -143,7 +144,8 @@ class EventOfferRepo {
|
|
|
143
144
|
}
|
|
144
145
|
else {
|
|
145
146
|
const setOnInsert = Object.assign({ itemOffered, identifier, project, seller, typeOf: factory.offerType.Offer, validFrom,
|
|
146
|
-
validThrough
|
|
147
|
+
validThrough,
|
|
148
|
+
availableAtOrFrom }, (typeof (offeredBy === null || offeredBy === void 0 ? void 0 : offeredBy.identifier) === 'string') ? { offeredBy } : undefined);
|
|
147
149
|
const updateFilter = {
|
|
148
150
|
$setOnInsert: setOnInsert
|
|
149
151
|
};
|
|
@@ -259,7 +259,7 @@ class MemberRepo {
|
|
|
259
259
|
'member.memberOf.id': { $eq: params.member.memberOf.id },
|
|
260
260
|
'member.memberOf.typeOf': { $eq: params.member.memberOf.typeOf }
|
|
261
261
|
}, {
|
|
262
|
-
$set: Object.assign(Object.assign(Object.assign({}, (Array.isArray(params.member.hasRole)) ? { 'member.hasRole': params.member.hasRole } : undefined), (typeof params.member.image === 'string') ? { 'member.image': params.member.image } : undefined), (typeof params.member.name === 'string') ? { 'member.name': params.member.name } : undefined
|
|
262
|
+
$set: Object.assign(Object.assign(Object.assign(Object.assign({}, (Array.isArray(params.member.hasRole)) ? { 'member.hasRole': params.member.hasRole } : undefined), (typeof params.member.image === 'string') ? { 'member.image': params.member.image } : undefined), (typeof params.member.name === 'string') ? { 'member.name': params.member.name } : undefined), (typeof params.member.identifier === 'string') ? { 'member.identifier': params.member.identifier } : undefined
|
|
263
263
|
// discontinue(2025-01-14~)
|
|
264
264
|
// ...(Array.isArray(params.member.member)) ? { 'member.member': params.member.member } : undefined
|
|
265
265
|
),
|
|
@@ -9,6 +9,7 @@ declare function createReserveTransactionStartParams(params: {
|
|
|
9
9
|
id: string;
|
|
10
10
|
offers?: {
|
|
11
11
|
validForMemberTier?: factory.assetTransaction.reserve.ITokenizedMemberProgramTier;
|
|
12
|
+
identifier?: string;
|
|
12
13
|
};
|
|
13
14
|
};
|
|
14
15
|
broker?: factory.reservation.IBroker<factory.reservationType>;
|
|
@@ -8,7 +8,7 @@ exports.responseBody2acceptedOffers4result = responseBody2acceptedOffers4result;
|
|
|
8
8
|
const moment = require("moment");
|
|
9
9
|
const factory = require("../../../../factory");
|
|
10
10
|
function createReserveTransactionStartParams(params) {
|
|
11
|
-
var _a, _b;
|
|
11
|
+
var _a, _b, _c;
|
|
12
12
|
const { transaction, transactionNumber } = params;
|
|
13
13
|
const { seller } = transaction;
|
|
14
14
|
const acceptedTicketOffersWithoutDetail = (Array.isArray(params.acceptedOffers))
|
|
@@ -49,7 +49,11 @@ function createReserveTransactionStartParams(params) {
|
|
|
49
49
|
// ]
|
|
50
50
|
};
|
|
51
51
|
const validForMemberTier = (_b = params.event.offers) === null || _b === void 0 ? void 0 : _b.validForMemberTier;
|
|
52
|
-
const
|
|
52
|
+
const eventOfferIdentifier = (_c = params.event.offers) === null || _c === void 0 ? void 0 : _c.identifier;
|
|
53
|
+
const object = Object.assign({ acceptedOffer: acceptedTicketOffersWithoutDetail, reservationFor: {
|
|
54
|
+
id: params.event.id,
|
|
55
|
+
offers: Object.assign(Object.assign({}, (typeof (validForMemberTier === null || validForMemberTier === void 0 ? void 0 : validForMemberTier.token) === 'string') ? { validForMemberTier } : undefined), (typeof eventOfferIdentifier === 'string') ? { identifier: eventOfferIdentifier } : undefined)
|
|
56
|
+
} }, (params.broker !== undefined) ? { broker: params.broker } : undefined);
|
|
53
57
|
return {
|
|
54
58
|
project: { typeOf: factory.organizationType.Project, id: params.project.id },
|
|
55
59
|
typeOf: factory.assetTransactionType.Reserve,
|
|
@@ -29,6 +29,7 @@ declare function processStartReserve4chevre(params: {
|
|
|
29
29
|
event: Pick<IMinimizedIndividualEvent, 'id'> & {
|
|
30
30
|
offers?: {
|
|
31
31
|
validForMemberTier?: factory.assetTransaction.reserve.ITokenizedMemberProgramTier;
|
|
32
|
+
identifier?: string;
|
|
32
33
|
};
|
|
33
34
|
};
|
|
34
35
|
broker?: factory.reservation.IBroker<factory.reservationType>;
|
|
@@ -20,15 +20,20 @@ function processStartReserve4chevre(params, options) {
|
|
|
20
20
|
// jwt: JWTCredentials;
|
|
21
21
|
// }
|
|
22
22
|
) => __awaiter(this, void 0, void 0, function* () {
|
|
23
|
-
var _a, _b;
|
|
23
|
+
var _a, _b, _c;
|
|
24
24
|
const { event, transaction, transactionNumber } = params;
|
|
25
25
|
let acceptedOffers4result = [];
|
|
26
26
|
// 予約取引開始
|
|
27
27
|
const startParams = (0, factory_1.createReserveTransactionStartParams)(Object.assign({ project: transaction.project,
|
|
28
28
|
// object: <IObjectWithDetail>action.object,
|
|
29
|
-
acceptedOffers: params.acceptedOffers, event:
|
|
30
|
-
|
|
31
|
-
:
|
|
29
|
+
acceptedOffers: params.acceptedOffers, event: {
|
|
30
|
+
id: event.id,
|
|
31
|
+
offers: Object.assign(Object.assign({}, (typeof ((_b = (_a = event.offers) === null || _a === void 0 ? void 0 : _a.validForMemberTier) === null || _b === void 0 ? void 0 : _b.token) === 'string')
|
|
32
|
+
? { validForMemberTier: event.offers.validForMemberTier }
|
|
33
|
+
: undefined), (typeof ((_c = event.offers) === null || _c === void 0 ? void 0 : _c.identifier) === 'string')
|
|
34
|
+
? { identifier: event.offers.identifier }
|
|
35
|
+
: undefined)
|
|
36
|
+
}, transaction,
|
|
32
37
|
transactionNumber }, (params.broker !== undefined) ? { broker: params.broker } : undefined));
|
|
33
38
|
const startParamObject = yield validateObjectWithoutDetail(startParams, { id: params.transaction.id })(repos);
|
|
34
39
|
const startReserveTransactionResult = yield ReserveTransactionService.start(Object.assign(Object.assign({}, startParams), { object: startParamObject,
|
|
@@ -82,7 +82,7 @@ function authorize(params, options) {
|
|
|
82
82
|
}
|
|
83
83
|
function validateCreateRequest(params) {
|
|
84
84
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
85
|
-
var _a, _b, _c;
|
|
85
|
+
var _a, _b, _c, _d;
|
|
86
86
|
const transaction = yield repos.transaction.projectFieldsInProgressById({
|
|
87
87
|
typeOf: factory.transactionType.PlaceOrder,
|
|
88
88
|
id: params.transaction.id
|
|
@@ -100,7 +100,12 @@ function validateCreateRequest(params) {
|
|
|
100
100
|
}
|
|
101
101
|
// support validForMemberTier(2025-05-14~)
|
|
102
102
|
const validForMemberTier = (_c = params.object.reservationFor.offers) === null || _c === void 0 ? void 0 : _c.validForMemberTier;
|
|
103
|
-
const
|
|
103
|
+
const eventOfferIdentifier = (_d = params.object.reservationFor.offers) === null || _d === void 0 ? void 0 : _d.identifier;
|
|
104
|
+
const event = {
|
|
105
|
+
id: params.object.reservationFor.id,
|
|
106
|
+
typeOf: factory.eventType.ScreeningEvent, // ひとまずfix(2024-07-17~)
|
|
107
|
+
offers: Object.assign(Object.assign({}, (typeof (validForMemberTier === null || validForMemberTier === void 0 ? void 0 : validForMemberTier.token) === 'string') ? { validForMemberTier } : undefined), (typeof eventOfferIdentifier === 'string') ? { identifier: eventOfferIdentifier } : undefined)
|
|
108
|
+
};
|
|
104
109
|
return { transaction, event };
|
|
105
110
|
});
|
|
106
111
|
}
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@aws-sdk/client-cognito-identity-provider": "3.600.0",
|
|
13
13
|
"@aws-sdk/credential-providers": "3.600.0",
|
|
14
|
-
"@chevre/factory": "5.2.0-alpha.
|
|
14
|
+
"@chevre/factory": "5.2.0-alpha.10",
|
|
15
15
|
"@cinerino/sdk": "12.7.0-alpha.4",
|
|
16
16
|
"@motionpicture/coa-service": "9.6.0",
|
|
17
17
|
"@motionpicture/gmo-service": "5.4.0-alpha.1",
|
|
@@ -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": "23.1.0-alpha.
|
|
118
|
+
"version": "23.1.0-alpha.5"
|
|
119
119
|
}
|