@chevre/domain 28.0.0-alpha.4 → 28.0.0-alpha.40
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/lib/chevre/emailMessageBuilder.js +1 -1
- package/lib/chevre/factory/event.d.ts +1 -1
- package/lib/chevre/factory/event.js +1 -5
- package/lib/chevre/repo/acceptedOffer.d.ts +6 -5
- package/lib/chevre/repo/acceptedOffer.js +14 -9
- package/lib/chevre/repo/acceptedOfferInReserve.d.ts +6 -8
- package/lib/chevre/repo/acceptedOfferInReserve.js +13 -7
- package/lib/chevre/repo/adminAcceptedOffer.d.ts +25 -12
- package/lib/chevre/repo/adminAcceptedOffer.js +20 -10
- package/lib/chevre/repo/adminAccountTitle.d.ts +49 -0
- package/lib/chevre/repo/adminAccountTitle.js +212 -0
- package/lib/chevre/repo/adminAccountTitleCategory.d.ts +37 -0
- package/lib/chevre/repo/adminAccountTitleCategory.js +127 -0
- package/lib/chevre/repo/adminAccountTitleSet.d.ts +42 -0
- package/lib/chevre/repo/adminAccountTitleSet.js +149 -0
- package/lib/chevre/repo/adminEvent.d.ts +1 -7
- package/lib/chevre/repo/adminEvent.js +3 -9
- package/lib/chevre/repo/adminEventSeries.d.ts +67 -0
- package/lib/chevre/repo/adminEventSeries.js +178 -0
- package/lib/chevre/repo/{paymentServiceChannel.d.ts → adminPaymentServiceChannel.d.ts} +13 -11
- package/lib/chevre/repo/{paymentServiceChannel.js → adminPaymentServiceChannel.js} +20 -19
- package/lib/chevre/repo/adminTask.d.ts +2 -2
- package/lib/chevre/repo/adminTransaction.d.ts +20 -30
- package/lib/chevre/repo/aggregateEvent.js +0 -1
- package/lib/chevre/repo/categoryCode.js +0 -21
- package/lib/chevre/repo/event.d.ts +2 -2
- package/lib/chevre/repo/event.js +71 -110
- package/lib/chevre/repo/eventSeries.d.ts +5 -84
- package/lib/chevre/repo/eventSeries.js +21 -212
- package/lib/chevre/repo/factory/acceptedOffer/reserveTransaction2itemOffered.d.ts +1 -1
- package/lib/chevre/repo/issuer.d.ts +2 -6
- package/lib/chevre/repo/memberProgram.d.ts +1 -38
- package/lib/chevre/repo/memberProgram.js +1 -62
- package/lib/chevre/repo/mongoose/schemas/accountTitle.d.ts +1 -1
- package/lib/chevre/repo/mongoose/schemas/accountTitle.js +21 -25
- package/lib/chevre/repo/mongoose/schemas/civicStructure.d.ts +1 -0
- package/lib/chevre/repo/mongoose/schemas/event.js +0 -13
- package/lib/chevre/repo/mongoose/schemas/eventSeries.js +1 -18
- package/lib/chevre/repo/mongoose/schemas/issuer.d.ts +1 -3
- package/lib/chevre/repo/mongoose/schemas/issuer.js +0 -10
- package/lib/chevre/repo/mongoose/schemas/offerCatalog.d.ts +0 -1
- package/lib/chevre/repo/mongoose/schemas/offerCatalog.js +3 -12
- package/lib/chevre/repo/mongoose/schemas/offerCatalogItem.d.ts +1 -2
- package/lib/chevre/repo/mongoose/schemas/offerCatalogItem.js +6 -15
- package/lib/chevre/repo/mongoose/schemas/order.d.ts +22 -1
- package/lib/chevre/repo/mongoose/schemas/paymentServiceChannel.d.ts +1 -1
- package/lib/chevre/repo/mongoose/schemas/place.js +0 -9
- package/lib/chevre/repo/mongoose/schemas/project.d.ts +1 -2
- package/lib/chevre/repo/mongoose/schemas/project.js +1 -1
- package/lib/chevre/repo/mongoose/schemas/seller.d.ts +3 -1
- package/lib/chevre/repo/mongoose/schemas/seller.js +0 -2
- package/lib/chevre/repo/mongoose/schemas/transaction.d.ts +1 -1
- package/lib/chevre/repo/mongoose/schemas/transaction.js +51 -52
- package/lib/chevre/repo/offerCatalog.d.ts +0 -2
- package/lib/chevre/repo/offerCatalogItem.d.ts +13 -20
- package/lib/chevre/repo/offerCatalogItem.js +8 -86
- package/lib/chevre/repo/order.d.ts +2 -2
- package/lib/chevre/repo/order.js +0 -31
- package/lib/chevre/repo/orderInTransaction.d.ts +5 -25
- package/lib/chevre/repo/place/movieTheater.d.ts +3 -1
- package/lib/chevre/repo/place/movieTheater.js +3 -1
- package/lib/chevre/repo/place/{hasPOS.d.ts → pos.d.ts} +13 -20
- package/lib/chevre/repo/place/{hasPOS.js → pos.js} +66 -29
- package/lib/chevre/repo/place/screeningRoom.d.ts +24 -3
- package/lib/chevre/repo/place/screeningRoom.js +28 -17
- package/lib/chevre/repo/priceSpecification.d.ts +8 -8
- package/lib/chevre/repo/project.d.ts +2 -8
- package/lib/chevre/repo/project.js +0 -12
- package/lib/chevre/repo/projectMakesOffer.js +2 -2
- package/lib/chevre/repo/role.d.ts +1 -1
- package/lib/chevre/repo/role.js +1 -30
- package/lib/chevre/repo/seller.d.ts +11 -4
- package/lib/chevre/repo/seller.js +31 -58
- package/lib/chevre/repo/sellerPaymentAccepted.d.ts +14 -21
- package/lib/chevre/repo/sellerPaymentAccepted.js +65 -38
- package/lib/chevre/repo/task.d.ts +3 -3
- package/lib/chevre/repo/transaction/placeOrder.d.ts +2 -3
- package/lib/chevre/repo/transaction/placeOrder.js +15 -36
- package/lib/chevre/repository.d.ts +30 -15
- package/lib/chevre/repository.js +63 -30
- package/lib/chevre/service/aggregation/event/aggregateOffers.js +1 -2
- package/lib/chevre/service/aggregation/event/aggregateScreeningEvent.js +2 -2
- package/lib/chevre/service/aggregation.d.ts +0 -2
- package/lib/chevre/service/aggregation.js +1 -3
- package/lib/chevre/service/assetTransaction/pay/start/preStart/validateAcceptedPaymentMethodIfNeeded.js +1 -2
- package/lib/chevre/service/assetTransaction/pay/start/preStart/validateSeller.js +2 -2
- package/lib/chevre/service/assetTransaction/reserve/start.js +2 -1
- package/lib/chevre/service/delivery/reservation/factory.d.ts +1 -1
- package/lib/chevre/service/event/saveScreeningEventSeries.d.ts +2 -2
- package/lib/chevre/service/event/saveScreeningEventSeries.js +2 -3
- package/lib/chevre/service/event/saveScreeningEvents.d.ts +2 -0
- package/lib/chevre/service/event/saveScreeningEvents.js +4 -4
- package/lib/chevre/service/event.d.ts +2 -0
- package/lib/chevre/service/event.js +0 -1
- package/lib/chevre/service/notification/sendEmailMessage.d.ts +2 -0
- package/lib/chevre/service/notification/sendEmailMessage.js +23 -6
- package/lib/chevre/service/offer/any.d.ts +1 -1
- package/lib/chevre/service/offer/event/authorize/factory.d.ts +3 -3
- package/lib/chevre/service/offer/event/authorize/factory.js +1 -8
- package/lib/chevre/service/offer/event/authorize/processStartReserve4chevre.d.ts +1 -1
- package/lib/chevre/service/offer/event/issueEventOfferTicket.js +0 -11
- package/lib/chevre/service/offer/event/searchEventTicketOffers.js +4 -10
- package/lib/chevre/service/offer/event/searchOfferAppliesToMovieTicket.js +2 -8
- package/lib/chevre/service/offer/event/searchOfferCatalogItems.js +2 -2
- package/lib/chevre/service/offer/event/searchOffersByIds.js +3 -9
- package/lib/chevre/service/offer/eventServiceByCOA/acceptOffer.js +0 -1
- package/lib/chevre/service/offer/eventServiceByCOA/authorize/factory.d.ts +1 -1
- package/lib/chevre/service/offer/eventServiceByCOA/authorize/factory.js +0 -7
- package/lib/chevre/service/offer/onEventChanged.js +9 -21
- package/lib/chevre/service/offer.js +1 -2
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.d.ts +4 -6
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderDeliveredPartially/factory.js +23 -4
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/createSendEmailMessageTaskIfNotExist.d.ts +1 -1
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing/processOrder.d.ts +1 -1
- package/lib/chevre/service/order/onOrderStatusChanged/onOrderProcessing.d.ts +1 -1
- package/lib/chevre/service/order/placeOrder/factory/orderedItem.d.ts +1 -1
- package/lib/chevre/service/order/placeOrder/factory.d.ts +1 -1
- package/lib/chevre/service/order/sendOrder.js +2 -14
- package/lib/chevre/service/payment/creditCard/getGMOInfoFromSeller.js +1 -1
- package/lib/chevre/service/payment/factory/createPayObjectServiceOutput.d.ts +3 -3
- package/lib/chevre/service/payment/movieTicket/checkMovieTicket.js +1 -1
- package/lib/chevre/service/payment/movieTicket/payMovieTicket/payActionParams2seatInfoSyncIn.js +1 -1
- package/lib/chevre/service/payment/movieTicket/validation.js +1 -1
- package/lib/chevre/service/project.d.ts +3 -3
- package/lib/chevre/service/project.js +1 -1
- package/lib/chevre/service/task/importEventsFromCOA.js +2 -0
- package/lib/chevre/service/task/onResourceDeleted.js +8 -8
- package/lib/chevre/service/task/onResourceUpdated/onHasPOSUpdated.d.ts +7 -3
- package/lib/chevre/service/task/onResourceUpdated/onHasPOSUpdated.js +51 -50
- package/lib/chevre/service/task/onResourceUpdated/onOfferCatalogUpdated.js +1 -1
- package/lib/chevre/service/task/onResourceUpdated/syncOfferCatalog.js +1 -1
- package/lib/chevre/service/task/onResourceUpdated.js +10 -47
- package/lib/chevre/service/task/sendEmailMessage.js +3 -1
- package/lib/chevre/service/task/syncResourcesFromCOA.js +5 -3
- package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions.d.ts +1 -2
- package/lib/chevre/service/transaction/placeOrder/confirm/potentialActions.js +0 -5
- package/lib/chevre/service/transaction/placeOrder/confirm/prepareUnitPriceOfferConditions.d.ts +1 -1
- package/lib/chevre/service/transaction/placeOrder/confirm/validation/validateInvoiceReferencesOrder.d.ts +1 -1
- package/lib/chevre/service/transaction/placeOrder/confirm/validation/validateMovieTicket.d.ts +1 -1
- package/lib/chevre/service/transaction/placeOrder/confirm/validation.d.ts +2 -2
- package/lib/chevre/service/transaction/placeOrder/confirm.js +0 -5
- package/lib/chevre/service/transaction/returnOrder/preStart/factory.d.ts +1 -1
- package/lib/chevre/service/transaction/returnOrder/preStart.js +1 -2
- package/package.json +2 -2
- package/lib/chevre/repo/accountTitle.d.ts +0 -28
- package/lib/chevre/repo/accountTitle.js +0 -30
- package/lib/chevre/service/aggregation/project.d.ts +0 -17
- package/lib/chevre/service/aggregation/project.js +0 -98
- package/lib/chevre/service/delivery/factory.d.ts +0 -16
- package/lib/chevre/service/delivery/factory.js +0 -124
|
@@ -379,10 +379,15 @@ class ScreeningRoomRepo {
|
|
|
379
379
|
})
|
|
380
380
|
.exec();
|
|
381
381
|
}
|
|
382
|
-
|
|
382
|
+
/**
|
|
383
|
+
* ルーム検索
|
|
384
|
+
* sectionCount,seatCountのprojectが可能
|
|
385
|
+
* sortはbranchCode: factory.sortType.Ascendingで固定
|
|
386
|
+
*/
|
|
387
|
+
async projectRoomFields(params, options) {
|
|
388
|
+
const { minimizeContainedInPlace } = options;
|
|
383
389
|
const aggregate = this.placeModel.aggregate([
|
|
384
|
-
|
|
385
|
-
...ScreeningRoomRepo.CREATE_ROOM_MONGO_CONDITIONS(searchConditions),
|
|
390
|
+
...ScreeningRoomRepo.CREATE_ROOM_MONGO_CONDITIONS(params),
|
|
386
391
|
{
|
|
387
392
|
$project: {
|
|
388
393
|
_id: 0,
|
|
@@ -390,16 +395,20 @@ class ScreeningRoomRepo {
|
|
|
390
395
|
branchCode: '$branchCode',
|
|
391
396
|
name: '$name',
|
|
392
397
|
address: '$address',
|
|
393
|
-
containedInPlace:
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
398
|
+
containedInPlace: (minimizeContainedInPlace)
|
|
399
|
+
? {
|
|
400
|
+
branchCode: '$containedInPlace.branchCode',
|
|
401
|
+
}
|
|
402
|
+
: {
|
|
403
|
+
id: '$containedInPlace.id',
|
|
404
|
+
typeOf: '$containedInPlace.typeOf',
|
|
405
|
+
branchCode: '$containedInPlace.branchCode',
|
|
406
|
+
name: '$containedInPlace.name'
|
|
407
|
+
},
|
|
399
408
|
openSeatingAllowed: '$openSeatingAllowed',
|
|
400
409
|
additionalProperty: '$additionalProperty',
|
|
401
410
|
maximumAttendeeCapacity: '$maximumAttendeeCapacity',
|
|
402
|
-
...(
|
|
411
|
+
...(params.$projection?.sectionCount === 1)
|
|
403
412
|
? {
|
|
404
413
|
sectionCount: {
|
|
405
414
|
$cond: {
|
|
@@ -410,7 +419,7 @@ class ScreeningRoomRepo {
|
|
|
410
419
|
}
|
|
411
420
|
}
|
|
412
421
|
: undefined,
|
|
413
|
-
...(
|
|
422
|
+
...(params.$projection?.seatCount === 1)
|
|
414
423
|
? {
|
|
415
424
|
seatCount: {
|
|
416
425
|
$sum: {
|
|
@@ -429,14 +438,16 @@ class ScreeningRoomRepo {
|
|
|
429
438
|
}
|
|
430
439
|
: undefined
|
|
431
440
|
}
|
|
432
|
-
}
|
|
441
|
+
},
|
|
442
|
+
{ $sort: { branchCode: factory_1.factory.sortType.Ascending } }
|
|
433
443
|
]);
|
|
434
|
-
|
|
435
|
-
if (typeof
|
|
436
|
-
|
|
437
|
-
aggregate.limit(searchConditions.limit * page)
|
|
438
|
-
.skip(searchConditions.limit * (page - 1));
|
|
444
|
+
const { limit, page } = params;
|
|
445
|
+
if (typeof limit !== 'number' || limit === 0) {
|
|
446
|
+
throw new factory_1.factory.errors.ArgumentNull('limit', 'must be number > 0');
|
|
439
447
|
}
|
|
448
|
+
const pageMustBePositive = (typeof page === 'number' && page > 0) ? page : 1;
|
|
449
|
+
aggregate.skip(limit * (pageMustBePositive - 1))
|
|
450
|
+
.limit(limit);
|
|
440
451
|
return aggregate
|
|
441
452
|
.option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
|
|
442
453
|
.exec();
|
|
@@ -37,11 +37,11 @@ export declare class PriceSpecificationRepo {
|
|
|
37
37
|
};
|
|
38
38
|
}): Promise<void>;
|
|
39
39
|
getCursor(conditions: any, projection: any): import("mongoose").Cursor<import("mongoose").Document<unknown, Record<string, never>, IDocType, import("./mongoose/virtuals").IVirtuals, {}> & (({
|
|
40
|
-
project?: Pick<factory.project.IProject, "id" | "typeOf"> | undefined;
|
|
41
40
|
name?: (string | import("@chevre/factory/lib/chevre/multilingualString").IMultilingualString) | undefined;
|
|
41
|
+
typeOf: factory.priceSpecificationType.CategoryCodeChargeSpecification;
|
|
42
|
+
project?: Pick<factory.project.IProject, "id" | "typeOf"> | undefined;
|
|
42
43
|
price: number;
|
|
43
44
|
priceCurrency: factory.priceCurrency;
|
|
44
|
-
typeOf: factory.priceSpecificationType.CategoryCodeChargeSpecification;
|
|
45
45
|
valueAddedTaxIncluded: boolean;
|
|
46
46
|
accounting?: never | undefined;
|
|
47
47
|
appliesToCategoryCode: import("@chevre/factory/lib/chevre/priceSpecification/categoryCodeChargeSpecification").IAppliesToCategoryCode[];
|
|
@@ -53,11 +53,11 @@ export declare class PriceSpecificationRepo {
|
|
|
53
53
|
} & {
|
|
54
54
|
__v: number;
|
|
55
55
|
}) | ({
|
|
56
|
-
project?: Pick<factory.project.IProject, "id" | "typeOf"> | undefined;
|
|
57
56
|
name?: (string | import("@chevre/factory/lib/chevre/multilingualString").IMultilingualString) | undefined;
|
|
57
|
+
typeOf: factory.priceSpecificationType.MovieTicketTypeChargeSpecification;
|
|
58
|
+
project?: Pick<factory.project.IProject, "id" | "typeOf"> | undefined;
|
|
58
59
|
price: number;
|
|
59
60
|
priceCurrency: factory.priceCurrency;
|
|
60
|
-
typeOf: factory.priceSpecificationType.MovieTicketTypeChargeSpecification;
|
|
61
61
|
valueAddedTaxIncluded: boolean;
|
|
62
62
|
accounting?: never | undefined;
|
|
63
63
|
appliesToMovieTicket: import("@chevre/factory/lib/chevre/priceSpecification/movieTicketTypeChargeSpecification").IAppliesToMovieTicket;
|
|
@@ -70,11 +70,11 @@ export declare class PriceSpecificationRepo {
|
|
|
70
70
|
} & {
|
|
71
71
|
__v: number;
|
|
72
72
|
})), import("mongoose").QueryOptions<IDocType>, (import("mongoose").Document<unknown, Record<string, never>, IDocType, import("./mongoose/virtuals").IVirtuals, {}> & (({
|
|
73
|
-
project?: Pick<factory.project.IProject, "id" | "typeOf"> | undefined;
|
|
74
73
|
name?: (string | import("@chevre/factory/lib/chevre/multilingualString").IMultilingualString) | undefined;
|
|
74
|
+
typeOf: factory.priceSpecificationType.CategoryCodeChargeSpecification;
|
|
75
|
+
project?: Pick<factory.project.IProject, "id" | "typeOf"> | undefined;
|
|
75
76
|
price: number;
|
|
76
77
|
priceCurrency: factory.priceCurrency;
|
|
77
|
-
typeOf: factory.priceSpecificationType.CategoryCodeChargeSpecification;
|
|
78
78
|
valueAddedTaxIncluded: boolean;
|
|
79
79
|
accounting?: never | undefined;
|
|
80
80
|
appliesToCategoryCode: import("@chevre/factory/lib/chevre/priceSpecification/categoryCodeChargeSpecification").IAppliesToCategoryCode[];
|
|
@@ -86,11 +86,11 @@ export declare class PriceSpecificationRepo {
|
|
|
86
86
|
} & {
|
|
87
87
|
__v: number;
|
|
88
88
|
}) | ({
|
|
89
|
-
project?: Pick<factory.project.IProject, "id" | "typeOf"> | undefined;
|
|
90
89
|
name?: (string | import("@chevre/factory/lib/chevre/multilingualString").IMultilingualString) | undefined;
|
|
90
|
+
typeOf: factory.priceSpecificationType.MovieTicketTypeChargeSpecification;
|
|
91
|
+
project?: Pick<factory.project.IProject, "id" | "typeOf"> | undefined;
|
|
91
92
|
price: number;
|
|
92
93
|
priceCurrency: factory.priceCurrency;
|
|
93
|
-
typeOf: factory.priceSpecificationType.MovieTicketTypeChargeSpecification;
|
|
94
94
|
valueAddedTaxIncluded: boolean;
|
|
95
95
|
accounting?: never | undefined;
|
|
96
96
|
appliesToMovieTicket: import("@chevre/factory/lib/chevre/priceSpecification/movieTicketTypeChargeSpecification").IAppliesToMovieTicket;
|
|
@@ -40,24 +40,18 @@ export declare class ProjectRepo {
|
|
|
40
40
|
id: string;
|
|
41
41
|
makesOffer: factory.project.IMakesOffer[];
|
|
42
42
|
}): Promise<void>;
|
|
43
|
-
updateAggregateReservation(params: {
|
|
44
|
-
id: string;
|
|
45
|
-
aggregateReservation?: any;
|
|
46
|
-
}): Promise<void>;
|
|
47
43
|
deleteById(params: {
|
|
48
44
|
id: string;
|
|
49
45
|
}): Promise<void>;
|
|
50
|
-
getCursor(conditions: FilterQuery<factory.project.IProject>, projection: any): import("mongoose").Cursor<import("mongoose").Document<unknown, Record<string, never>, IDocType, import("./mongoose/virtuals").IVirtuals, {}> &
|
|
46
|
+
getCursor(conditions: FilterQuery<factory.project.IProject>, projection: any): import("mongoose").Cursor<import("mongoose").Document<unknown, Record<string, never>, IDocType, import("./mongoose/virtuals").IVirtuals, {}> & Pick<factory.project.IProject, "name" | "typeOf" | "logo" | "alternateName" | "hasMerchantReturnPolicy" | "settings" | "subscription"> & {
|
|
51
47
|
_id: string;
|
|
52
|
-
aggregateReservation?: any;
|
|
53
48
|
makesOffer?: factory.project.IMakesOffer[];
|
|
54
49
|
} & Required<{
|
|
55
50
|
_id: string;
|
|
56
51
|
}> & {
|
|
57
52
|
__v: number;
|
|
58
|
-
}, import("mongoose").QueryOptions<IDocType>, (import("mongoose").Document<unknown, Record<string, never>, IDocType, import("./mongoose/virtuals").IVirtuals, {}> &
|
|
53
|
+
}, import("mongoose").QueryOptions<IDocType>, (import("mongoose").Document<unknown, Record<string, never>, IDocType, import("./mongoose/virtuals").IVirtuals, {}> & Pick<factory.project.IProject, "name" | "typeOf" | "logo" | "alternateName" | "hasMerchantReturnPolicy" | "settings" | "subscription"> & {
|
|
59
54
|
_id: string;
|
|
60
|
-
aggregateReservation?: any;
|
|
61
55
|
makesOffer?: factory.project.IMakesOffer[];
|
|
62
56
|
} & Required<{
|
|
63
57
|
_id: string;
|
|
@@ -5,7 +5,6 @@ const project_1 = require("./mongoose/schemas/project");
|
|
|
5
5
|
const factory_1 = require("../factory");
|
|
6
6
|
const settings_1 = require("../settings");
|
|
7
7
|
const AVAILABLE_PROJECT_FIELDS = [
|
|
8
|
-
// 'aggregateReservation',
|
|
9
8
|
'alternateName',
|
|
10
9
|
'logo',
|
|
11
10
|
'hasMerchantReturnPolicy',
|
|
@@ -157,17 +156,6 @@ class ProjectRepo {
|
|
|
157
156
|
}, { projection: { _id: 1 } })
|
|
158
157
|
.exec();
|
|
159
158
|
}
|
|
160
|
-
async updateAggregateReservation(params) {
|
|
161
|
-
await this.projectModel.findOneAndUpdate({ _id: { $eq: params.id } }, {
|
|
162
|
-
$set: {
|
|
163
|
-
...(params.aggregateReservation !== undefined) ? { aggregateReservation: params.aggregateReservation } : undefined
|
|
164
|
-
}
|
|
165
|
-
// $unset: {
|
|
166
|
-
// noExistingAttributeName: 1 // $unsetは空だとエラーになるので
|
|
167
|
-
// }
|
|
168
|
-
}, { new: true, projection: { _id: 1 } })
|
|
169
|
-
.exec();
|
|
170
|
-
}
|
|
171
159
|
async deleteById(params) {
|
|
172
160
|
await this.projectModel.deleteOne({ _id: { $eq: params.id } }, { projection: { _id: 1 } })
|
|
173
161
|
.exec();
|
|
@@ -42,8 +42,8 @@ class ProjectMakesOfferRepo {
|
|
|
42
42
|
]);
|
|
43
43
|
if (typeof params.limit === 'number' && params.limit > 0) {
|
|
44
44
|
const page = (typeof params.page === 'number' && params.page > 0) ? params.page : 1;
|
|
45
|
-
aggregate.
|
|
46
|
-
.
|
|
45
|
+
aggregate.skip(params.limit * (page - 1))
|
|
46
|
+
.limit(params.limit);
|
|
47
47
|
}
|
|
48
48
|
return aggregate.option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
|
|
49
49
|
.exec();
|
|
@@ -59,7 +59,7 @@ export declare class RoleRepo {
|
|
|
59
59
|
} & {
|
|
60
60
|
__v: number;
|
|
61
61
|
}) | null>;
|
|
62
|
-
|
|
62
|
+
addRole(params: Pick<IRole, 'member' | 'memberOf' | 'permissions' | 'roleName'>): Promise<{
|
|
63
63
|
id: string;
|
|
64
64
|
}>;
|
|
65
65
|
deleteByRoleName(params: Pick<IRole, 'roleName'>): Promise<import("mongodb").DeleteResult>;
|
package/lib/chevre/repo/role.js
CHANGED
|
@@ -69,35 +69,6 @@ class RoleRepo {
|
|
|
69
69
|
.lean() // 2024-08-23~
|
|
70
70
|
.exec();
|
|
71
71
|
}
|
|
72
|
-
// migrate to findDistinctPermissionsByRoleName(2025-07-21~)
|
|
73
|
-
// public async aggregatePermissions(params: {
|
|
74
|
-
// roleName: { $in: string[] };
|
|
75
|
-
// }): Promise<{ _id: string }[]> {
|
|
76
|
-
// const matchStages: IMatchStage[] = [
|
|
77
|
-
// { $match: { roleName: { $in: params.roleName.$in } } }
|
|
78
|
-
// ];
|
|
79
|
-
// const aggregate = this.roleModel.aggregate([
|
|
80
|
-
// ...matchStages,
|
|
81
|
-
// {
|
|
82
|
-
// $unwind: {
|
|
83
|
-
// path: '$permissions'
|
|
84
|
-
// }
|
|
85
|
-
// },
|
|
86
|
-
// {
|
|
87
|
-
// $project: {
|
|
88
|
-
// _id: 0,
|
|
89
|
-
// permission: '$permissions'
|
|
90
|
-
// }
|
|
91
|
-
// },
|
|
92
|
-
// {
|
|
93
|
-
// $group: {
|
|
94
|
-
// _id: '$permission'
|
|
95
|
-
// }
|
|
96
|
-
// }
|
|
97
|
-
// ]);
|
|
98
|
-
// return aggregate.option({ maxTimeMS: MONGO_MAX_TIME_MS })
|
|
99
|
-
// .exec();
|
|
100
|
-
// }
|
|
101
72
|
/**
|
|
102
73
|
* distinctコマンドを使用して、ロールから権限を検索する
|
|
103
74
|
*/
|
|
@@ -139,7 +110,7 @@ class RoleRepo {
|
|
|
139
110
|
.lean()
|
|
140
111
|
.exec();
|
|
141
112
|
}
|
|
142
|
-
async
|
|
113
|
+
async addRole(params) {
|
|
143
114
|
const { member, memberOf, permissions, roleName } = params;
|
|
144
115
|
const creatingRole = {
|
|
145
116
|
member, memberOf, permissions, roleName,
|
|
@@ -33,7 +33,7 @@ export declare class SellerRepo {
|
|
|
33
33
|
private readonly sellerModel;
|
|
34
34
|
constructor(connection: Connection);
|
|
35
35
|
static CREATE_MONGO_CONDITIONS(params: factory.seller.ISearchConditions & IMemberSearchConditions): FilterQuery<factory.seller.ISeller>[];
|
|
36
|
-
static CREATE_AGGREGATE_SELLERS_PROJECTION(
|
|
36
|
+
static CREATE_AGGREGATE_SELLERS_PROJECTION(inclusions: (Exclude<keyof ISellerByAggregate, 'id'>)[]): Record<string, AnyExpression>;
|
|
37
37
|
/**
|
|
38
38
|
* 販売者を保管する
|
|
39
39
|
*/
|
|
@@ -46,7 +46,10 @@ export declare class SellerRepo {
|
|
|
46
46
|
/**
|
|
47
47
|
* 集計検索(publicな属性検索が目的)
|
|
48
48
|
*/
|
|
49
|
-
|
|
49
|
+
findSellersPublicFields(conditions: factory.seller.ISearchConditions & IMemberSearchConditions & {
|
|
50
|
+
limit: number;
|
|
51
|
+
page: number;
|
|
52
|
+
}, inclusions: (Exclude<keyof ISellerByAggregate, 'id'>)[]): Promise<ISellerByAggregate[]>;
|
|
50
53
|
/**
|
|
51
54
|
* 販売者検索
|
|
52
55
|
*/
|
|
@@ -72,11 +75,15 @@ export declare class SellerRepo {
|
|
|
72
75
|
id: string;
|
|
73
76
|
makesOffer: factory.seller.IMakesOffer;
|
|
74
77
|
}): Promise<void>;
|
|
75
|
-
getCursor(conditions: FilterQuery<factory.seller.ISeller>, projection: any): import("mongoose").Cursor<import("mongoose").Document<unknown, Record<string, never>, IDocType, import("./mongoose/virtuals").IVirtuals, {}> &
|
|
78
|
+
getCursor(conditions: FilterQuery<factory.seller.ISeller>, projection: any): import("mongoose").Cursor<import("mongoose").Document<unknown, Record<string, never>, IDocType, import("./mongoose/virtuals").IVirtuals, {}> & Pick<factory.seller.ISeller, "name" | "typeOf" | "branchCode" | "additionalProperty" | "project" | "url" | "telephone" | "makesOffer" | "hasMerchantReturnPolicy"> & {
|
|
79
|
+
paymentAccepted?: factory.seller.IPaymentAccepted[];
|
|
80
|
+
} & {
|
|
76
81
|
_id: Types.ObjectId;
|
|
77
82
|
} & {
|
|
78
83
|
__v: number;
|
|
79
|
-
}, QueryOptions<IDocType>, (import("mongoose").Document<unknown, Record<string, never>, IDocType, import("./mongoose/virtuals").IVirtuals, {}> &
|
|
84
|
+
}, QueryOptions<IDocType>, (import("mongoose").Document<unknown, Record<string, never>, IDocType, import("./mongoose/virtuals").IVirtuals, {}> & Pick<factory.seller.ISeller, "name" | "typeOf" | "branchCode" | "additionalProperty" | "project" | "url" | "telephone" | "makesOffer" | "hasMerchantReturnPolicy"> & {
|
|
85
|
+
paymentAccepted?: factory.seller.IPaymentAccepted[];
|
|
86
|
+
} & {
|
|
80
87
|
_id: Types.ObjectId;
|
|
81
88
|
} & {
|
|
82
89
|
__v: number;
|
|
@@ -125,63 +125,38 @@ class SellerRepo {
|
|
|
125
125
|
'hasMerchantReturnPolicy.identifier': { $exists: true, $eq: hasMerchantReturnPolicyIdentifierEq }
|
|
126
126
|
});
|
|
127
127
|
}
|
|
128
|
-
// discontinue(2025-01-22~)
|
|
129
|
-
// const hasMerchantReturnApplicablePaymentMethodEq = params.hasMerchantReturnPolicy?.applicablePaymentMethod?.$eq;
|
|
130
|
-
// if (typeof hasMerchantReturnApplicablePaymentMethodEq === 'string') {
|
|
131
|
-
// andConditions.push({
|
|
132
|
-
// 'hasMerchantReturnPolicy.applicablePaymentMethod': { $exists: true, $eq: hasMerchantReturnApplicablePaymentMethodEq }
|
|
133
|
-
// });
|
|
134
|
-
// }
|
|
135
|
-
// discontinue(2025-01-22~)
|
|
136
|
-
// const hasMerchantReturnPolicyItemConditionIdEq = params.hasMerchantReturnPolicy?.itemCondition?.id?.$eq;
|
|
137
|
-
// if (typeof hasMerchantReturnPolicyItemConditionIdEq === 'string') {
|
|
138
|
-
// andConditions.push({
|
|
139
|
-
// 'hasMerchantReturnPolicy.itemCondition.id': {
|
|
140
|
-
// $exists: true,
|
|
141
|
-
// $eq: hasMerchantReturnPolicyItemConditionIdEq
|
|
142
|
-
// }
|
|
143
|
-
// });
|
|
144
|
-
// }
|
|
145
128
|
return andConditions;
|
|
146
129
|
}
|
|
147
|
-
static CREATE_AGGREGATE_SELLERS_PROJECTION(
|
|
130
|
+
static CREATE_AGGREGATE_SELLERS_PROJECTION(inclusions) {
|
|
131
|
+
const inclusionMap = new Map(inclusions.map(inclusion => [inclusion, 1]));
|
|
148
132
|
const projectStage = {
|
|
149
133
|
_id: 0,
|
|
150
134
|
id: { $toString: '$_id' },
|
|
151
|
-
additionalProperty: '$additionalProperty',
|
|
152
|
-
branchCode: '$branchCode',
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
135
|
+
...((inclusionMap.get('additionalProperty') === 1) && { additionalProperty: '$additionalProperty' }),
|
|
136
|
+
...((inclusionMap.get('branchCode') === 1) && { branchCode: '$branchCode' }),
|
|
137
|
+
...((inclusionMap.get('name') === 1) && { name: '$name' }),
|
|
138
|
+
...((inclusionMap.get('project') === 1) && { project: '$project' }),
|
|
139
|
+
...((inclusionMap.get('typeOf') === 1) && { typeOf: '$typeOf' }),
|
|
140
|
+
...((inclusionMap.get('url') === 1) && { url: '$url' }),
|
|
141
|
+
...((inclusionMap.get('telephone') === 1) && { telephone: '$telephone' }),
|
|
142
|
+
...((inclusionMap.get('hasMerchantReturnPolicy') === 1) && {
|
|
143
|
+
hasMerchantReturnPolicy: {
|
|
144
|
+
$cond: {
|
|
145
|
+
if: { $isArray: '$hasMerchantReturnPolicy' },
|
|
146
|
+
then: {
|
|
147
|
+
$cond: {
|
|
148
|
+
if: { $eq: [{ $size: '$hasMerchantReturnPolicy' }, 0] },
|
|
149
|
+
then: [],
|
|
150
|
+
else: [{
|
|
151
|
+
url: { $first: '$hasMerchantReturnPolicy.url' }
|
|
152
|
+
}]
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
else: []
|
|
156
|
+
}
|
|
167
157
|
}
|
|
168
|
-
},
|
|
169
|
-
name: '$name',
|
|
170
|
-
project: '$project',
|
|
171
|
-
typeOf: '$typeOf',
|
|
172
|
-
url: '$url',
|
|
173
|
-
telephone: '$telephone'
|
|
158
|
+
}),
|
|
174
159
|
};
|
|
175
|
-
// if (inclusion.length > 0) {
|
|
176
|
-
// // no op
|
|
177
|
-
// } else
|
|
178
|
-
if (exclusion.length > 0) {
|
|
179
|
-
exclusion.forEach((field) => {
|
|
180
|
-
if (typeof projectStage[field] === 'string' || typeof projectStage[field] === 'object') {
|
|
181
|
-
delete projectStage[field]; // eslint-disable-line @typescript-eslint/no-dynamic-delete
|
|
182
|
-
}
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
160
|
return projectStage;
|
|
186
161
|
}
|
|
187
162
|
/**
|
|
@@ -233,10 +208,10 @@ class SellerRepo {
|
|
|
233
208
|
/**
|
|
234
209
|
* 集計検索(publicな属性検索が目的)
|
|
235
210
|
*/
|
|
236
|
-
async
|
|
211
|
+
async findSellersPublicFields(conditions, inclusions) {
|
|
237
212
|
const matchStages = SellerRepo.CREATE_MONGO_CONDITIONS(conditions)
|
|
238
213
|
.map((c) => ({ $match: c }));
|
|
239
|
-
const projectStage = SellerRepo.CREATE_AGGREGATE_SELLERS_PROJECTION(
|
|
214
|
+
const projectStage = SellerRepo.CREATE_AGGREGATE_SELLERS_PROJECTION(inclusions);
|
|
240
215
|
const sortByBranchCode = conditions.sort?.branchCode;
|
|
241
216
|
const aggregate = this.sellerModel.aggregate([
|
|
242
217
|
...matchStages,
|
|
@@ -245,12 +220,10 @@ class SellerRepo {
|
|
|
245
220
|
: [],
|
|
246
221
|
{ $project: projectStage }
|
|
247
222
|
]);
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
.skip(conditions.limit * (page - 1));
|
|
253
|
-
}
|
|
223
|
+
const { limit, page } = conditions;
|
|
224
|
+
const pageMustBePositive = (typeof page === 'number' && page > 0) ? page : 1;
|
|
225
|
+
aggregate.skip(limit * (pageMustBePositive - 1))
|
|
226
|
+
.limit(limit);
|
|
254
227
|
return aggregate.exec();
|
|
255
228
|
}
|
|
256
229
|
/**
|
|
@@ -5,29 +5,19 @@ import { Connection } from 'mongoose';
|
|
|
5
5
|
export declare class SellerPaymentAcceptedRepo {
|
|
6
6
|
private readonly sellerModel;
|
|
7
7
|
constructor(connection: Connection);
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
$eq?: string;
|
|
14
|
-
};
|
|
15
|
-
};
|
|
16
|
-
project?: {
|
|
17
|
-
id?: {
|
|
18
|
-
$eq?: string;
|
|
19
|
-
};
|
|
20
|
-
};
|
|
8
|
+
findSellerPaymentAccepted(params: {
|
|
9
|
+
sellerId: string;
|
|
10
|
+
projectId: string;
|
|
11
|
+
limit: number;
|
|
12
|
+
page: number;
|
|
21
13
|
codeValue?: {
|
|
22
14
|
$eq?: string;
|
|
23
15
|
};
|
|
24
16
|
}): Promise<{
|
|
25
17
|
codeValue: string;
|
|
26
|
-
seller: {
|
|
27
|
-
id: string;
|
|
28
|
-
};
|
|
29
18
|
}[]>;
|
|
30
|
-
|
|
19
|
+
private countSellerPaymentAccepted;
|
|
20
|
+
addSellerPaymentAccepted(params: {
|
|
31
21
|
codeValue: string;
|
|
32
22
|
project: {
|
|
33
23
|
id: string;
|
|
@@ -35,8 +25,10 @@ export declare class SellerPaymentAcceptedRepo {
|
|
|
35
25
|
seller: {
|
|
36
26
|
id: string;
|
|
37
27
|
};
|
|
28
|
+
}, options: {
|
|
29
|
+
maxNumSellerPaymentAccepted: number;
|
|
38
30
|
}): Promise<void>;
|
|
39
|
-
|
|
31
|
+
deleteSellerPaymentAccepted(params: {
|
|
40
32
|
codeValue: string;
|
|
41
33
|
project: {
|
|
42
34
|
id: string;
|
|
@@ -46,9 +38,10 @@ export declare class SellerPaymentAcceptedRepo {
|
|
|
46
38
|
};
|
|
47
39
|
}): Promise<void>;
|
|
48
40
|
isAcceptedBySeller(params: {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
41
|
+
sellerId: string;
|
|
42
|
+
/**
|
|
43
|
+
* 決済方法区分
|
|
44
|
+
*/
|
|
52
45
|
codeValue: string;
|
|
53
46
|
}): Promise<boolean>;
|
|
54
47
|
}
|
|
@@ -13,21 +13,21 @@ class SellerPaymentAcceptedRepo {
|
|
|
13
13
|
constructor(connection) {
|
|
14
14
|
this.sellerModel = connection.model(seller_1.modelName, (0, seller_1.createSchema)());
|
|
15
15
|
}
|
|
16
|
-
async
|
|
16
|
+
async findSellerPaymentAccepted(params) {
|
|
17
|
+
const { sellerId, projectId } = params;
|
|
17
18
|
const matchStages = [];
|
|
18
|
-
const projectIdEq = params.project?.id?.$eq;
|
|
19
|
-
if (typeof projectIdEq === 'string') {
|
|
20
|
-
matchStages.push({ $match: { 'project.id': { $eq: projectIdEq } } });
|
|
21
|
-
}
|
|
22
|
-
const sellerIdEq = params.seller?.id?.$eq;
|
|
23
|
-
if (typeof sellerIdEq === 'string') {
|
|
24
|
-
matchStages.push({ $match: { _id: { $eq: new mongoose_1.Types.ObjectId(sellerIdEq) } } });
|
|
25
|
-
}
|
|
26
19
|
const codeValueEq = params.codeValue?.$eq;
|
|
27
20
|
if (typeof codeValueEq === 'string') {
|
|
28
21
|
matchStages.push({ $match: { 'paymentAccepted.paymentMethodType': { $exists: true, $eq: codeValueEq } } });
|
|
29
22
|
}
|
|
30
23
|
const aggregate = this.sellerModel.aggregate([
|
|
24
|
+
// まず販売者ドキュメントで絞る
|
|
25
|
+
{
|
|
26
|
+
$match: {
|
|
27
|
+
_id: { $eq: new mongoose_1.Types.ObjectId(sellerId) },
|
|
28
|
+
'project.id': { $eq: projectId }
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
31
|
{
|
|
32
32
|
$unwind: {
|
|
33
33
|
path: '$paymentAccepted'
|
|
@@ -39,45 +39,81 @@ class SellerPaymentAcceptedRepo {
|
|
|
39
39
|
$project: {
|
|
40
40
|
_id: 0,
|
|
41
41
|
codeValue: '$paymentAccepted.paymentMethodType',
|
|
42
|
-
seller: { id: { $toString: '$_id' } }
|
|
43
42
|
}
|
|
44
43
|
}
|
|
45
44
|
]);
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
45
|
+
const { limit, page } = params;
|
|
46
|
+
const pageMustBePositive = (typeof page === 'number' && page > 0) ? page : 1;
|
|
47
|
+
aggregate.skip(limit * (pageMustBePositive - 1))
|
|
48
|
+
.limit(limit);
|
|
51
49
|
return aggregate.option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
|
|
52
50
|
.exec();
|
|
53
51
|
}
|
|
54
|
-
async
|
|
55
|
-
|
|
52
|
+
async countSellerPaymentAccepted(params) {
|
|
53
|
+
const paymentAcceptedCount = (await this.sellerModel.aggregate([
|
|
54
|
+
{
|
|
55
|
+
$match: {
|
|
56
|
+
_id: { $eq: new mongoose_1.Types.ObjectId(params.seller.id) },
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
$project: {
|
|
61
|
+
paymentAcceptedCount: {
|
|
62
|
+
$cond: {
|
|
63
|
+
if: { $isArray: '$paymentAccepted' },
|
|
64
|
+
then: { $size: '$paymentAccepted' },
|
|
65
|
+
else: 0
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
]).option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
|
|
71
|
+
.exec()).at(0)?.paymentAcceptedCount;
|
|
72
|
+
if (typeof paymentAcceptedCount !== 'number') {
|
|
73
|
+
throw new factory_1.factory.errors.NotFound(factory_1.factory.organizationType.Corporation);
|
|
74
|
+
}
|
|
75
|
+
return { paymentAcceptedCount };
|
|
76
|
+
}
|
|
77
|
+
async addSellerPaymentAccepted(params, options) {
|
|
78
|
+
const sellerDoc = await this.sellerModel.findOne({
|
|
56
79
|
'project.id': { $eq: params.project.id },
|
|
57
80
|
_id: { $eq: params.seller.id }
|
|
58
81
|
}, { _id: 1 })
|
|
82
|
+
.lean()
|
|
59
83
|
.exec();
|
|
60
|
-
if (
|
|
84
|
+
if (sellerDoc === null) {
|
|
61
85
|
throw new factory_1.factory.errors.NotFound(factory_1.factory.organizationType.Corporation);
|
|
62
86
|
}
|
|
87
|
+
// 最大数検証(2026-09-20~)
|
|
88
|
+
const { maxNumSellerPaymentAccepted } = options;
|
|
63
89
|
const creatingPaymentAccepted = {
|
|
64
90
|
paymentMethodType: params.codeValue
|
|
65
91
|
};
|
|
66
|
-
doc = await this.sellerModel.findOneAndUpdate({
|
|
92
|
+
const doc = await this.sellerModel.findOneAndUpdate({
|
|
67
93
|
'project.id': { $eq: params.project.id },
|
|
68
94
|
_id: { $eq: params.seller.id },
|
|
69
|
-
'paymentAccepted.paymentMethodType': { $ne: params.codeValue }
|
|
95
|
+
'paymentAccepted.paymentMethodType': { $ne: params.codeValue },
|
|
96
|
+
// 配列の長さが上限未満であることをアトミックに確認
|
|
97
|
+
$expr: {
|
|
98
|
+
$lt: [{ $size: { $ifNull: ['$paymentAccepted', []] } }, maxNumSellerPaymentAccepted] // 最大数担保(2026-09-22~)
|
|
99
|
+
}
|
|
70
100
|
}, {
|
|
71
101
|
$push: { paymentAccepted: creatingPaymentAccepted }
|
|
72
102
|
}, {
|
|
73
103
|
projection: { _id: 1 }
|
|
74
104
|
})
|
|
105
|
+
.lean()
|
|
75
106
|
.exec();
|
|
76
107
|
if (doc === null) {
|
|
108
|
+
const { paymentAcceptedCount } = await this.countSellerPaymentAccepted({ seller: params.seller });
|
|
109
|
+
if (paymentAcceptedCount >= maxNumSellerPaymentAccepted) {
|
|
110
|
+
throw new factory_1.factory.errors.Argument('seller.id', 'maxNumSellerPaymentAccepted exceeded');
|
|
111
|
+
}
|
|
112
|
+
// 上限以下で追加できない場合は「すでに登録済み」
|
|
77
113
|
throw new factory_1.factory.errors.AlreadyInUse('paymentAccepted', ['paymentMethodType']);
|
|
78
114
|
}
|
|
79
115
|
}
|
|
80
|
-
async
|
|
116
|
+
async deleteSellerPaymentAccepted(params) {
|
|
81
117
|
const doc = await this.sellerModel.findOneAndUpdate({
|
|
82
118
|
'project.id': { $eq: params.project.id },
|
|
83
119
|
_id: { $eq: params.seller.id },
|
|
@@ -87,29 +123,20 @@ class SellerPaymentAcceptedRepo {
|
|
|
87
123
|
}, {
|
|
88
124
|
projection: { _id: 1 }
|
|
89
125
|
})
|
|
126
|
+
.lean()
|
|
90
127
|
.exec();
|
|
91
128
|
if (doc === null) {
|
|
92
129
|
throw new factory_1.factory.errors.NotFound(factory_1.factory.organizationType.Corporation);
|
|
93
130
|
}
|
|
94
131
|
}
|
|
95
132
|
async isAcceptedBySeller(params) {
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
$project: {
|
|
104
|
-
_id: 0,
|
|
105
|
-
codeValue: '$paymentAccepted.paymentMethodType'
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
])
|
|
109
|
-
.limit(1)
|
|
110
|
-
.skip(0);
|
|
111
|
-
return (await aggregate.option({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS })
|
|
112
|
-
.exec()).length > 0;
|
|
133
|
+
const { sellerId, codeValue } = params;
|
|
134
|
+
const doc = await this.sellerModel.exists({
|
|
135
|
+
_id: { $eq: new mongoose_1.Types.ObjectId(sellerId) },
|
|
136
|
+
'paymentAccepted.paymentMethodType': { $exists: true, $eq: codeValue }
|
|
137
|
+
})
|
|
138
|
+
.setOptions({ maxTimeMS: settings_1.MONGO_MAX_TIME_MS });
|
|
139
|
+
return doc !== null;
|
|
113
140
|
}
|
|
114
141
|
}
|
|
115
142
|
exports.SellerPaymentAcceptedRepo = SellerPaymentAcceptedRepo;
|