@chevre/domain 28.0.0-alpha.16 → 28.0.0-alpha.17
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.
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { IndexDefinition, IndexOptions, Model, Schema, SchemaDefinition } from 'mongoose';
|
|
2
2
|
import { IVirtuals } from '../virtuals';
|
|
3
3
|
import { factory } from '../../../factory';
|
|
4
|
-
type IDocType =
|
|
4
|
+
type IDocType = Pick<factory.seller.ISeller, 'additionalProperty' | 'branchCode' | 'hasMerchantReturnPolicy' | 'makesOffer' | 'name' | 'project' | 'telephone' | 'typeOf' | 'url'> & {
|
|
5
|
+
paymentAccepted?: factory.seller.IPaymentAccepted[];
|
|
6
|
+
};
|
|
5
7
|
type IModel = Model<IDocType, Record<string, never>, Record<string, never>, IVirtuals>;
|
|
6
8
|
type ISchemaDefinition = SchemaDefinition<IDocType>;
|
|
7
9
|
type ISchema = Schema<IDocType, IModel, Record<string, never>, Record<string, never>, IVirtuals, Record<string, never>, ISchemaDefinition, IDocType>;
|
|
@@ -9,12 +9,10 @@ const modelName = 'Seller';
|
|
|
9
9
|
exports.modelName = modelName;
|
|
10
10
|
const schemaDefinition = {
|
|
11
11
|
additionalProperty: [mongoose_1.SchemaTypes.Mixed],
|
|
12
|
-
// areaServed: [SchemaTypes.Mixed],
|
|
13
12
|
branchCode: String,
|
|
14
13
|
hasMerchantReturnPolicy: [mongoose_1.SchemaTypes.Mixed],
|
|
15
14
|
makesOffer: [mongoose_1.SchemaTypes.Mixed],
|
|
16
15
|
name: mongoose_1.SchemaTypes.Mixed,
|
|
17
|
-
// parentOrganization: SchemaTypes.Mixed,
|
|
18
16
|
paymentAccepted: [mongoose_1.SchemaTypes.Mixed],
|
|
19
17
|
project: mongoose_1.SchemaTypes.Mixed,
|
|
20
18
|
typeOf: {
|
|
@@ -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, "project" | "name" | "typeOf" | "url" | "additionalProperty" | "telephone" | "branchCode" | "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, "project" | "name" | "typeOf" | "url" | "additionalProperty" | "telephone" | "branchCode" | "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
|
/**
|
package/package.json
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@aws-sdk/client-cognito-identity-provider": "3.1090.0",
|
|
13
13
|
"@aws-sdk/credential-providers": "3.1090.0",
|
|
14
|
-
"@chevre/factory": "11.0.0
|
|
14
|
+
"@chevre/factory": "11.0.0",
|
|
15
15
|
"@motionpicture/coa-service": "10.0.0",
|
|
16
16
|
"@motionpicture/gmo-service": "6.1.0-alpha.0",
|
|
17
17
|
"@sendgrid/client": "8.1.4",
|
|
@@ -88,5 +88,5 @@
|
|
|
88
88
|
"postversion": "git push origin --tags",
|
|
89
89
|
"prepublishOnly": "npm run clean && npm run build"
|
|
90
90
|
},
|
|
91
|
-
"version": "28.0.0-alpha.
|
|
91
|
+
"version": "28.0.0-alpha.17"
|
|
92
92
|
}
|