@chevre/domain 20.2.0-alpha.12 → 20.2.0-alpha.13
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/aggregateEventReservation.ts +37 -0
- package/example/src/chevre/importEventsFromCOA.ts +8 -1
- package/lib/chevre/service/event.d.ts +2 -0
- package/lib/chevre/service/event.js +20 -8
- package/lib/chevre/service/offer/event/searchEventTicketOffers.js +1 -5
- package/lib/chevre/service/task/importEventsFromCOA.js +3 -1
- package/package.json +3 -3
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// tslint:disable:no-console
|
|
2
|
+
import * as mongoose from 'mongoose';
|
|
3
|
+
import * as redis from 'redis';
|
|
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);
|
|
11
|
+
const client = redis.createClient({
|
|
12
|
+
host: process.env.REDIS_HOST,
|
|
13
|
+
port: Number(process.env.REDIS_PORT),
|
|
14
|
+
password: process.env.REDIS_KEY
|
|
15
|
+
});
|
|
16
|
+
|
|
17
|
+
// const now = new Date();
|
|
18
|
+
await chevre.service.aggregation.event.aggregateScreeningEvent({
|
|
19
|
+
id: 'alb35u7m4'
|
|
20
|
+
})({
|
|
21
|
+
event: new chevre.repository.Event(mongoose.connection),
|
|
22
|
+
eventAvailability: new chevre.repository.itemAvailability.ScreeningEvent(client),
|
|
23
|
+
offer: new chevre.repository.Offer(mongoose.connection),
|
|
24
|
+
offerRateLimit: new chevre.repository.rateLimit.Offer(client),
|
|
25
|
+
place: new chevre.repository.Place(mongoose.connection),
|
|
26
|
+
product: new chevre.repository.Product(mongoose.connection),
|
|
27
|
+
project: new chevre.repository.Project(mongoose.connection),
|
|
28
|
+
reservation: new chevre.repository.Reservation(mongoose.connection),
|
|
29
|
+
task: new chevre.repository.Task(mongoose.connection)
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
main()
|
|
34
|
+
.then(() => {
|
|
35
|
+
console.log('success!');
|
|
36
|
+
})
|
|
37
|
+
.catch(console.error);
|
|
@@ -14,6 +14,7 @@ async function main() {
|
|
|
14
14
|
const categoryCodeRepo = new chevre.repository.CategoryCode(mongoose.connection);
|
|
15
15
|
const eventRepo = new chevre.repository.Event(mongoose.connection);
|
|
16
16
|
const placeRepo = new chevre.repository.Place(mongoose.connection);
|
|
17
|
+
const sellerRepo = new chevre.repository.Seller(mongoose.connection);
|
|
17
18
|
|
|
18
19
|
await chevre.service.event.importFromCOA({
|
|
19
20
|
project: {
|
|
@@ -28,7 +29,13 @@ async function main() {
|
|
|
28
29
|
.toDate(),
|
|
29
30
|
saveMovieTheater: false,
|
|
30
31
|
saveScreeningEventSeries: false
|
|
31
|
-
})({
|
|
32
|
+
})({
|
|
33
|
+
action: actionRepo,
|
|
34
|
+
categoryCode: categoryCodeRepo,
|
|
35
|
+
event: eventRepo,
|
|
36
|
+
place: placeRepo,
|
|
37
|
+
seller: sellerRepo
|
|
38
|
+
});
|
|
32
39
|
console.log('imported');
|
|
33
40
|
}
|
|
34
41
|
|
|
@@ -3,6 +3,7 @@ import { MongoRepository as CategoryCodeRepo } from '../repo/categoryCode';
|
|
|
3
3
|
import { MongoRepository as EventRepo } from '../repo/event';
|
|
4
4
|
import { MongoRepository as PlaceRepo } from '../repo/place';
|
|
5
5
|
import { MongoRepository as ProjectRepo } from '../repo/project';
|
|
6
|
+
import { MongoRepository as SellerRepo } from '../repo/seller';
|
|
6
7
|
import { MongoRepository as TaskRepo } from '../repo/task';
|
|
7
8
|
import * as factory from '../factory';
|
|
8
9
|
/**
|
|
@@ -32,6 +33,7 @@ export declare function importFromCOA(params: {
|
|
|
32
33
|
categoryCode: CategoryCodeRepo;
|
|
33
34
|
event: EventRepo;
|
|
34
35
|
place: PlaceRepo;
|
|
36
|
+
seller: SellerRepo;
|
|
35
37
|
}) => Promise<void>;
|
|
36
38
|
/**
|
|
37
39
|
* COA情報からイベントIDを作成する
|
|
@@ -89,8 +89,18 @@ function importFromCOA(params) {
|
|
|
89
89
|
endpoint: credentials_1.credentials.coa.endpoint,
|
|
90
90
|
auth: coaAuthClient
|
|
91
91
|
}, { timeout: credentials_1.credentials.coa.timeout });
|
|
92
|
+
// 同ブランチコードの販売者を検索する
|
|
93
|
+
const sellersWithSameBranchCode = yield repos.seller.search({
|
|
94
|
+
limit: 1,
|
|
95
|
+
page: 1,
|
|
96
|
+
branchCode: { $eq: params.locationBranchCode }
|
|
97
|
+
});
|
|
98
|
+
const seller = sellersWithSameBranchCode.shift();
|
|
99
|
+
if (typeof (seller === null || seller === void 0 ? void 0 : seller.id) !== 'string') {
|
|
100
|
+
throw new factory.errors.NotFound('Seller', `Seller with branchCod '${params.locationBranchCode}' not found`);
|
|
101
|
+
}
|
|
92
102
|
// 施設取得
|
|
93
|
-
let movieTheater = createMovieTheaterFromCOA(project, yield masterService.theater({ theaterCode: params.locationBranchCode }), yield masterService.screen({ theaterCode: params.locationBranchCode }));
|
|
103
|
+
let movieTheater = createMovieTheaterFromCOA(project, { id: seller.id }, yield masterService.theater({ theaterCode: params.locationBranchCode }), yield masterService.screen({ theaterCode: params.locationBranchCode }));
|
|
94
104
|
// saveMovieTheater:trueの場合のみ、施設保管(2022-10-10~)
|
|
95
105
|
if (params.saveMovieTheater === true) {
|
|
96
106
|
movieTheater = yield repos.place.saveMovieTheaterByBranchCode4coa(movieTheater);
|
|
@@ -539,11 +549,12 @@ function createScreeningEventSeriesFromCOA(params) {
|
|
|
539
549
|
kanaName: params.movieTheater.kanaName,
|
|
540
550
|
typeOf: params.movieTheater.typeOf
|
|
541
551
|
},
|
|
542
|
-
|
|
543
|
-
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
552
|
+
// 不要なので廃止(2023-01-12~)
|
|
553
|
+
// organizer: {
|
|
554
|
+
// typeOf: factory.organizationType.Corporation,
|
|
555
|
+
// identifier: params.movieTheater.id,
|
|
556
|
+
// name: params.movieTheater.name
|
|
557
|
+
// },
|
|
547
558
|
videoFormat: params.eizouKubuns.filter((kubun) => kubun.kubunCode === params.filmFromCOA.kbnEizou)[0],
|
|
548
559
|
soundFormat: [],
|
|
549
560
|
workPerformed: {
|
|
@@ -617,7 +628,7 @@ function createScreeningEventSeriesId(params) {
|
|
|
617
628
|
*/
|
|
618
629
|
// tslint:disable-next-line:no-single-line-block-comment
|
|
619
630
|
/* istanbul ignore next */
|
|
620
|
-
function createMovieTheaterFromCOA(project, theaterFromCOA, screensFromCOA) {
|
|
631
|
+
function createMovieTheaterFromCOA(project, seller, theaterFromCOA, screensFromCOA) {
|
|
621
632
|
const id = `MovieTheater-${theaterFromCOA.theaterCode}`;
|
|
622
633
|
return {
|
|
623
634
|
project: { typeOf: project.typeOf, id: project.id },
|
|
@@ -663,7 +674,8 @@ function createMovieTheaterFromCOA(project, theaterFromCOA, screensFromCOA) {
|
|
|
663
674
|
value: 2678400,
|
|
664
675
|
unitCode: factory.unitCode.Sec
|
|
665
676
|
}
|
|
666
|
-
}
|
|
677
|
+
},
|
|
678
|
+
parentOrganization: { id: seller.id, typeOf: factory.organizationType.Corporation }
|
|
667
679
|
};
|
|
668
680
|
}
|
|
669
681
|
/**
|
|
@@ -39,10 +39,6 @@ function searchTransportationEventTicketOffers(params) {
|
|
|
39
39
|
throw new factory.errors.NotFound('event.offers.itemOffered.id');
|
|
40
40
|
}
|
|
41
41
|
const { soundFormatChargeSpecifications, videoFormatChargeSpecifications, movieTicketTypeChargeSpecs } = yield searchPriceSpecs4event({ project: { id: screeningEvent.project.id }, soundFormatTypes, videoFormatTypes })(repos);
|
|
42
|
-
const screeningEventOfferSettings = screeningEvent.offers;
|
|
43
|
-
if (screeningEventOfferSettings === undefined) {
|
|
44
|
-
throw new factory.errors.NotFound('event.offers');
|
|
45
|
-
}
|
|
46
42
|
const unacceptedPaymentMethod = getUnacceptedPaymentMethodByEvent({ event: screeningEvent });
|
|
47
43
|
// 不許可決済方法があれば、該当オファーを除外
|
|
48
44
|
if (Array.isArray(unacceptedPaymentMethod) && unacceptedPaymentMethod.length > 0) {
|
|
@@ -94,7 +90,7 @@ function searchTransportationEventTicketOffers(params) {
|
|
|
94
90
|
});
|
|
95
91
|
let offers4event = availableOffers.map((availableOffer) => {
|
|
96
92
|
return (0, factory_1.createCompoundPriceSpec4event)({
|
|
97
|
-
eligibleQuantity:
|
|
93
|
+
eligibleQuantity: eventOffers.eligibleQuantity,
|
|
98
94
|
offer: availableOffer,
|
|
99
95
|
videoFormatChargeSpecifications,
|
|
100
96
|
soundFormatChargeSpecifications,
|
|
@@ -14,6 +14,7 @@ const action_1 = require("../../repo/action");
|
|
|
14
14
|
const categoryCode_1 = require("../../repo/categoryCode");
|
|
15
15
|
const event_1 = require("../../repo/event");
|
|
16
16
|
const place_1 = require("../../repo/place");
|
|
17
|
+
const seller_1 = require("../../repo/seller");
|
|
17
18
|
const EventService = require("../event");
|
|
18
19
|
/**
|
|
19
20
|
* タスク実行関数
|
|
@@ -24,7 +25,8 @@ function call(data) {
|
|
|
24
25
|
action: new action_1.MongoRepository(settings.connection),
|
|
25
26
|
categoryCode: new categoryCode_1.MongoRepository(settings.connection),
|
|
26
27
|
event: new event_1.MongoRepository(settings.connection),
|
|
27
|
-
place: new place_1.MongoRepository(settings.connection)
|
|
28
|
+
place: new place_1.MongoRepository(settings.connection),
|
|
29
|
+
seller: new seller_1.MongoRepository(settings.connection)
|
|
28
30
|
});
|
|
29
31
|
});
|
|
30
32
|
}
|
package/package.json
CHANGED
|
@@ -9,8 +9,8 @@
|
|
|
9
9
|
}
|
|
10
10
|
],
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@chevre/factory": "4.281.0
|
|
13
|
-
"@cinerino/sdk": "3.135.0
|
|
12
|
+
"@chevre/factory": "4.281.0",
|
|
13
|
+
"@cinerino/sdk": "3.135.0",
|
|
14
14
|
"@motionpicture/coa-service": "9.2.0",
|
|
15
15
|
"@motionpicture/gmo-service": "5.2.0",
|
|
16
16
|
"@sendgrid/mail": "6.4.0",
|
|
@@ -120,5 +120,5 @@
|
|
|
120
120
|
"postversion": "git push origin --tags",
|
|
121
121
|
"prepublishOnly": "npm run clean && npm run build && npm test && npm run doc"
|
|
122
122
|
},
|
|
123
|
-
"version": "20.2.0-alpha.
|
|
123
|
+
"version": "20.2.0-alpha.13"
|
|
124
124
|
}
|