@chevre/domain 22.4.0-alpha.4 → 22.4.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/searchOfferCatalogItemAvailability.ts +3 -2
- package/lib/chevre/repo/offer.d.ts +1 -0
- package/lib/chevre/repo/offer.js +8 -10
- package/lib/chevre/service/offer/event/searchEventTicketOffers.d.ts +6 -0
- package/lib/chevre/service/offer/event/searchEventTicketOffers.js +7 -4
- package/package.json +1 -1
|
@@ -18,11 +18,12 @@ async function main() {
|
|
|
18
18
|
|
|
19
19
|
const result = await (await chevre.service.offer.createService()).event.searchOfferCatalogItemAvailability({
|
|
20
20
|
event: {
|
|
21
|
-
id: '
|
|
21
|
+
id: 'bm0f0cadh'
|
|
22
22
|
},
|
|
23
23
|
limit: 10,
|
|
24
24
|
page: 1,
|
|
25
|
-
availableAtOrFrom: { id: '3eo6okferrsdpfd9j2ce1iv9k7' }
|
|
25
|
+
availableAtOrFrom: { id: '3eo6okferrsdpfd9j2ce1iv9k7' },
|
|
26
|
+
options: { considerUnacceptedPaymentMethod: true }
|
|
26
27
|
})({
|
|
27
28
|
event: eventRepo,
|
|
28
29
|
offer: offerRepo,
|
package/lib/chevre/repo/offer.js
CHANGED
|
@@ -675,24 +675,22 @@ class OfferRepo {
|
|
|
675
675
|
*/
|
|
676
676
|
searchAvailableCatalogs(params) {
|
|
677
677
|
return __awaiter(this, void 0, void 0, function* () {
|
|
678
|
+
const { unacceptedPaymentMethod } = params;
|
|
678
679
|
const aggregate = this.aggregateOfferModel.aggregate([
|
|
679
680
|
{ $unwind: { path: '$offers' } },
|
|
680
|
-
// { $unwind: { path: '$offers.includedInDataCatalog' } },
|
|
681
681
|
{ $unwind: { path: '$includedInDataCatalog' } },
|
|
682
682
|
{
|
|
683
|
-
$match: {
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
683
|
+
$match: Object.assign({ 'project.id': { $eq: params.project.id }, 'includedInDataCatalog.id': { $exists: true, $in: params.includedInDataCatalog.id }, 'offers.availableAtOrFrom.id': { $exists: true, $eq: params.availableAtOrFrom.id } }, (Array.isArray(unacceptedPaymentMethod) && unacceptedPaymentMethod.length > 0)
|
|
684
|
+
? {
|
|
685
|
+
'offers.priceSpecification.appliesToMovieTicket.serviceOutput.typeOf': {
|
|
686
|
+
$nin: unacceptedPaymentMethod
|
|
687
|
+
}
|
|
688
|
+
}
|
|
689
|
+
: undefined)
|
|
689
690
|
},
|
|
690
691
|
{
|
|
691
692
|
$group: {
|
|
692
|
-
// _id: '$offers.includedInDataCatalog.id',
|
|
693
|
-
// includedInDataCatalog: { $first: '$offers.includedInDataCatalog' }
|
|
694
693
|
_id: '$includedInDataCatalog.id'
|
|
695
|
-
// includedInDataCatalog: { $first: '$includedInDataCatalog' }
|
|
696
694
|
}
|
|
697
695
|
},
|
|
698
696
|
{
|
|
@@ -129,6 +129,12 @@ declare function searchOfferCatalogItemAvailability(params: {
|
|
|
129
129
|
};
|
|
130
130
|
limit: number;
|
|
131
131
|
page: number;
|
|
132
|
+
options: {
|
|
133
|
+
/**
|
|
134
|
+
* イベントの利用不可決済方法区分を考慮するかどうか(2024-09-26~)
|
|
135
|
+
*/
|
|
136
|
+
considerUnacceptedPaymentMethod: boolean;
|
|
137
|
+
};
|
|
132
138
|
}): (repos: {
|
|
133
139
|
event: EventRepo;
|
|
134
140
|
offer: OfferRepo;
|
|
@@ -205,9 +205,9 @@ function searchEventTicketOffersByEvent(params) {
|
|
|
205
205
|
});
|
|
206
206
|
}
|
|
207
207
|
function getUnacceptedPaymentMethodByEvent(params) {
|
|
208
|
+
var _a;
|
|
208
209
|
let unacceptedPaymentMethod = [];
|
|
209
|
-
const
|
|
210
|
-
const unacceptedPaymentMethodByEvent = eventOffers === null || eventOffers === void 0 ? void 0 : eventOffers.unacceptedPaymentMethod;
|
|
210
|
+
const unacceptedPaymentMethodByEvent = (_a = params.event.offers) === null || _a === void 0 ? void 0 : _a.unacceptedPaymentMethod;
|
|
211
211
|
// 施設コンテンツを参照する必要はない(2022-10-31~)
|
|
212
212
|
if (Array.isArray(unacceptedPaymentMethodByEvent)) {
|
|
213
213
|
unacceptedPaymentMethod = unacceptedPaymentMethodByEvent;
|
|
@@ -489,6 +489,7 @@ exports.searchOfferCatalogItems = searchOfferCatalogItems;
|
|
|
489
489
|
function searchOfferCatalogItemAvailability(params) {
|
|
490
490
|
return (repos) => __awaiter(this, void 0, void 0, function* () {
|
|
491
491
|
var _a, _b;
|
|
492
|
+
const { considerUnacceptedPaymentMethod } = params.options;
|
|
492
493
|
if (typeof params.limit !== 'number') {
|
|
493
494
|
throw new factory.errors.Argument('limit', 'must be number');
|
|
494
495
|
}
|
|
@@ -497,7 +498,7 @@ function searchOfferCatalogItemAvailability(params) {
|
|
|
497
498
|
}
|
|
498
499
|
let availabilities = [];
|
|
499
500
|
// optimize(2024-07-18~)
|
|
500
|
-
const event = yield repos.event.projectEventFieldsById({ id: params.event.id }, ['project', 'offers.itemOffered.id']);
|
|
501
|
+
const event = yield repos.event.projectEventFieldsById({ id: params.event.id }, ['project', 'offers.itemOffered.id', 'offers.unacceptedPaymentMethod']);
|
|
501
502
|
// 興行設定があれば興行のカタログを参照する
|
|
502
503
|
const eventOffers = event.offers;
|
|
503
504
|
let catalogId;
|
|
@@ -524,12 +525,14 @@ function searchOfferCatalogItemAvailability(params) {
|
|
|
524
525
|
limit: params.limit,
|
|
525
526
|
page: params.page
|
|
526
527
|
});
|
|
528
|
+
const unacceptedPaymentMethod = getUnacceptedPaymentMethodByEvent({ event });
|
|
527
529
|
if (catalogItemListElements.length > 0) {
|
|
528
530
|
// 単価オファーから利用可能なサブカタログを検索
|
|
529
531
|
const availableCatalogs = yield repos.offer.searchAvailableCatalogs({
|
|
530
532
|
project: { id: event.project.id },
|
|
531
533
|
includedInDataCatalog: { id: catalogItemListElements.map((element) => element.id) },
|
|
532
|
-
availableAtOrFrom: { id: params.availableAtOrFrom.id }
|
|
534
|
+
availableAtOrFrom: { id: params.availableAtOrFrom.id },
|
|
535
|
+
unacceptedPaymentMethod: (considerUnacceptedPaymentMethod) ? unacceptedPaymentMethod : []
|
|
533
536
|
});
|
|
534
537
|
availabilities = catalogItemListElements.map((element) => {
|
|
535
538
|
return {
|
package/package.json
CHANGED