@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.
@@ -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 }, (typeof (offeredBy === null || offeredBy === void 0 ? void 0 : offeredBy.identifier) === 'string') ? { offeredBy } : undefined);
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 }, (typeof (offeredBy === null || offeredBy === void 0 ? void 0 : offeredBy.identifier) === 'string') ? { offeredBy } : undefined);
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
  };
@@ -87,6 +87,10 @@ export declare class MemberRepo {
87
87
  hasRole?: factory.iam.IMemberRole[];
88
88
  image?: string;
89
89
  name?: string;
90
+ /**
91
+ * アプリケーションコード
92
+ */
93
+ identifier?: string;
90
94
  };
91
95
  $unset: {
92
96
  'member.member'?: 1;
@@ -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 object = Object.assign({ acceptedOffer: acceptedTicketOffersWithoutDetail, reservationFor: Object.assign({ id: params.event.id }, (typeof (validForMemberTier === null || validForMemberTier === void 0 ? void 0 : validForMemberTier.token) === 'string') ? { offers: { validForMemberTier } } : undefined) }, (params.broker !== undefined) ? { broker: params.broker } : undefined);
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: Object.assign({ id: event.id }, (typeof ((_b = (_a = event.offers) === null || _a === void 0 ? void 0 : _a.validForMemberTier) === null || _b === void 0 ? void 0 : _b.token) === 'string')
30
- ? { offers: { validForMemberTier: event.offers.validForMemberTier } }
31
- : undefined), transaction,
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 event = Object.assign({ id: params.object.reservationFor.id, typeOf: factory.eventType.ScreeningEvent }, (typeof (validForMemberTier === null || validForMemberTier === void 0 ? void 0 : validForMemberTier.token) === 'string') ? { offers: { validForMemberTier } } : undefined);
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.9",
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.4"
118
+ "version": "23.1.0-alpha.5"
119
119
  }