@chevre/domain 21.7.0-alpha.0 → 21.7.0-alpha.10
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/migrateAuthorizePaymentActionResult.ts +83 -0
- package/example/src/chevre/searchOffers.ts +20 -20
- package/example/src/chevre/unsetUnnecessaryFields.ts +17 -11
- package/lib/chevre/emailMessageBuilder.d.ts +1 -1
- package/lib/chevre/repo/action.d.ts +4 -0
- package/lib/chevre/repo/action.js +6 -0
- package/lib/chevre/repo/event.d.ts +12 -0
- package/lib/chevre/repo/event.js +11 -0
- package/lib/chevre/repo/mongoose/schemas/offer.d.ts +4 -4
- package/lib/chevre/repo/mongoose/schemas/offer.js +6 -6
- package/lib/chevre/repo/offer.js +11 -7
- package/lib/chevre/repo/product.d.ts +1 -1
- package/lib/chevre/repo/product.js +1 -0
- package/lib/chevre/repo/transaction.d.ts +4 -1
- package/lib/chevre/repo/transaction.js +7 -1
- package/lib/chevre/service/assetTransaction/pay/factory.d.ts +1 -1
- package/lib/chevre/service/assetTransaction/pay/factory.js +49 -27
- package/lib/chevre/service/assetTransaction/pay/potentialActions.js +39 -18
- package/lib/chevre/service/assetTransaction/refund/factory.js +2 -2
- package/lib/chevre/service/order/deleteOrder.d.ts +2 -0
- package/lib/chevre/service/order/deleteOrder.js +42 -0
- package/lib/chevre/service/payment/any/factory.js +18 -7
- package/lib/chevre/service/payment/creditCard.js +3 -1
- package/lib/chevre/service/payment/paymentCard.js +6 -2
- package/lib/chevre/service/task/deleteTransaction.js +2 -0
- package/lib/chevre/service/transaction/deleteTransaction.d.ts +2 -0
- package/lib/chevre/service/transaction/moneyTransfer/factory.js +1 -5
- package/lib/chevre/service/transaction/moneyTransfer.js +0 -1
- package/lib/chevre/service/transaction/placeOrderInProgress/result/acceptedOffers.js +0 -4
- package/lib/chevre/service/transaction/placeOrderInProgress/result.js +11 -9
- package/lib/chevre/service/transaction/placeOrderInProgress/validation/validateMovieTicket.js +6 -4
- package/lib/chevre/service/transaction/placeOrderInProgress/validation.js +6 -20
- package/lib/chevre/service/transaction/placeOrderInProgress.js +0 -3
- package/lib/chevre/service/transaction/returnOrder.js +0 -1
- package/lib/chevre/settings.d.ts +2 -0
- package/lib/chevre/settings.js +3 -1
- package/package.json +3 -3
- package/example/src/chevre/migrateReservationProvider.ts +0 -119
|
@@ -0,0 +1,83 @@
|
|
|
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
|
+
|
|
10
|
+
// tslint:disable-next-line:max-func-body-length
|
|
11
|
+
async function main() {
|
|
12
|
+
await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
|
|
13
|
+
|
|
14
|
+
const actionRepo = new chevre.repository.Action(mongoose.connection);
|
|
15
|
+
|
|
16
|
+
const cursor = actionRepo.getCursor(
|
|
17
|
+
{
|
|
18
|
+
typeOf: { $eq: chevre.factory.actionType.AuthorizeAction },
|
|
19
|
+
actionStatus: { $eq: chevre.factory.actionStatusType.CompletedActionStatus },
|
|
20
|
+
'object.typeOf': { $exists: true, $eq: chevre.factory.action.authorize.paymentMethod.any.ResultType.Payment },
|
|
21
|
+
'result.typeOf': { $exists: true, $eq: chevre.factory.action.authorize.paymentMethod.any.ResultType.Payment },
|
|
22
|
+
startDate: {
|
|
23
|
+
$gte: moment('2022-08-16T00:00:00Z')
|
|
24
|
+
.toDate()
|
|
25
|
+
// $lte: moment('2023-08-01T00:00:00Z')
|
|
26
|
+
// .toDate()
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
_id: 1,
|
|
31
|
+
typeOf: 1,
|
|
32
|
+
result: 1,
|
|
33
|
+
project: 1,
|
|
34
|
+
startDate: 1,
|
|
35
|
+
actionStatus: 1
|
|
36
|
+
}
|
|
37
|
+
);
|
|
38
|
+
console.log('actions found');
|
|
39
|
+
|
|
40
|
+
let i = 0;
|
|
41
|
+
let updateCount = 0;
|
|
42
|
+
await cursor.eachAsync(async (doc) => {
|
|
43
|
+
i += 1;
|
|
44
|
+
const action: Pick<
|
|
45
|
+
chevre.factory.action.authorize.paymentMethod.any.IAction,
|
|
46
|
+
'id' | 'project' | 'result' | 'typeOf' | 'startDate' | 'actionStatus'
|
|
47
|
+
> = doc.toObject();
|
|
48
|
+
|
|
49
|
+
const oldPaymentMethodType = action.result?.paymentMethod;
|
|
50
|
+
const paymentMethodType = action.result?.paymentMethodAsObject?.typeOf;
|
|
51
|
+
const alreadyMigrated = typeof paymentMethodType === 'string' && oldPaymentMethodType === paymentMethodType;
|
|
52
|
+
|
|
53
|
+
if (alreadyMigrated) {
|
|
54
|
+
console.log('already exist...', action.project.id, action.id, action.startDate, paymentMethodType, i);
|
|
55
|
+
} else {
|
|
56
|
+
if (typeof oldPaymentMethodType !== 'string') {
|
|
57
|
+
console.error('updating action...', action.project.id, action.id, action.startDate, oldPaymentMethodType, i, updateCount);
|
|
58
|
+
throw new Error('oldPaymentMethodType undefined');
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
const newPaymentMethodAsObject: chevre.factory.action.authorize.paymentMethod.any.IResultPaymentMethod = {
|
|
62
|
+
typeOf: oldPaymentMethodType
|
|
63
|
+
};
|
|
64
|
+
console.log(
|
|
65
|
+
'updating action...', action.project.id, action.id, action.startDate, newPaymentMethodAsObject.typeOf, i, updateCount);
|
|
66
|
+
await actionRepo.updateById({
|
|
67
|
+
id: action.id,
|
|
68
|
+
update: {
|
|
69
|
+
'result.paymentMethodAsObject': newPaymentMethodAsObject
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
updateCount += 1;
|
|
73
|
+
console.log('updated.', action.project.id, action.id, action.startDate, newPaymentMethodAsObject.typeOf, i, updateCount);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
console.log(i, 'actions checked');
|
|
78
|
+
console.log(updateCount, 'actions updated');
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
main()
|
|
82
|
+
.then()
|
|
83
|
+
.catch(console.error);
|
|
@@ -1,37 +1,37 @@
|
|
|
1
1
|
// tslint:disable:no-console
|
|
2
|
-
// import * as redis from 'redis';
|
|
3
2
|
import * as mongoose from 'mongoose';
|
|
4
3
|
|
|
5
4
|
import { chevre } from '../../../lib/index';
|
|
6
5
|
|
|
7
6
|
async function main() {
|
|
8
|
-
await mongoose.connect(<string>process.env.MONGOLAB_URI);
|
|
7
|
+
await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
|
|
9
8
|
|
|
10
9
|
const offerRepo = new chevre.repository.Offer(mongoose.connection);
|
|
11
10
|
|
|
12
11
|
const offers = await offerRepo.search({
|
|
13
|
-
|
|
12
|
+
limit: 1,
|
|
14
13
|
// page: 1,
|
|
15
14
|
project: { id: { $eq: String(process.env.PROJECT_ID) } },
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
15
|
+
availability: { $eq: chevre.factory.itemAvailability.InStock }
|
|
16
|
+
// additionalProperty: {
|
|
17
|
+
// $all: [
|
|
18
|
+
// {
|
|
19
|
+
// $elemMatch: {
|
|
20
|
+
// name: { $eq: 'theaterCode' },
|
|
21
|
+
// value: { $in: ['120'] }
|
|
22
|
+
// }
|
|
23
|
+
// },
|
|
24
|
+
// {
|
|
25
|
+
// $elemMatch: {
|
|
26
|
+
// name: { $eq: 'ticketCode' },
|
|
27
|
+
// value: { $in: ['10', '1001'] }
|
|
28
|
+
// }
|
|
29
|
+
// }
|
|
30
|
+
// ]
|
|
31
|
+
// }
|
|
32
32
|
});
|
|
33
33
|
console.log(offers.map((offer) => {
|
|
34
|
-
return `${offer.
|
|
34
|
+
return `${offer.project.id} ${offer.id} ${offer.identifier} ${offer.name.ja}`;
|
|
35
35
|
}));
|
|
36
36
|
console.log(offers.length);
|
|
37
37
|
}
|
|
@@ -1,25 +1,31 @@
|
|
|
1
1
|
// tslint:disable:no-console
|
|
2
|
+
import * as moment from 'moment';
|
|
2
3
|
import * as mongoose from 'mongoose';
|
|
3
4
|
|
|
4
5
|
import { chevre } from '../../../lib/index';
|
|
5
6
|
|
|
7
|
+
const PROJECT_ID = String(process.env.PROJECT_ID);
|
|
8
|
+
|
|
6
9
|
async function main() {
|
|
7
10
|
await mongoose.connect(<string>process.env.MONGOLAB_URI, { autoIndex: false });
|
|
8
11
|
|
|
9
|
-
const
|
|
12
|
+
const transactionRepo = new chevre.repository.Transaction(mongoose.connection);
|
|
10
13
|
|
|
11
14
|
let updateResult: any;
|
|
12
|
-
updateResult = await
|
|
13
|
-
filter: {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
15
|
+
updateResult = await transactionRepo.unsetUnnecessaryFields({
|
|
16
|
+
filter: {
|
|
17
|
+
'project.id': { $eq: PROJECT_ID },
|
|
18
|
+
typeOf: { $eq: chevre.factory.transactionType.PlaceOrder },
|
|
19
|
+
status: { $eq: chevre.factory.transactionStatusType.Confirmed },
|
|
20
|
+
startDate: {
|
|
21
|
+
$lte: moment('2023-08-16T07:26:00Z')
|
|
22
|
+
.toDate()
|
|
23
|
+
},
|
|
24
|
+
'object.authorizeActions': { $exists: true }
|
|
25
|
+
},
|
|
26
|
+
$unset: { 'object.authorizeActions': 1 }
|
|
21
27
|
});
|
|
22
|
-
console.log('unset processed.', updateResult);
|
|
28
|
+
console.log('unset processed.', updateResult, 'PROJECT_ID:', PROJECT_ID);
|
|
23
29
|
}
|
|
24
30
|
|
|
25
31
|
main()
|
|
@@ -24,6 +24,6 @@ export declare function createReturnOrderMessage(params: {
|
|
|
24
24
|
*/
|
|
25
25
|
export declare function createRefundMessage(params: {
|
|
26
26
|
order: factory.order.IOrder;
|
|
27
|
-
paymentMethods: factory.order.
|
|
27
|
+
paymentMethods: factory.order.IReferencedInvoice[];
|
|
28
28
|
email?: factory.creativeWork.message.email.ICustomization;
|
|
29
29
|
}): Promise<factory.creativeWork.message.email.ICreativeWork>;
|
|
@@ -150,6 +150,10 @@ export declare class MongoRepository {
|
|
|
150
150
|
object: factory.action.authorize.offer.seatReservation.IObject<T>;
|
|
151
151
|
result: factory.action.authorize.offer.seatReservation.IResult<T>;
|
|
152
152
|
}): Promise<factory.action.authorize.offer.seatReservation.IAction<T>>;
|
|
153
|
+
updateById(params: {
|
|
154
|
+
id: string;
|
|
155
|
+
update: any;
|
|
156
|
+
}): Promise<void>;
|
|
153
157
|
findByIdAndUpdate<T extends factory.actionType>(params: {
|
|
154
158
|
id: string;
|
|
155
159
|
update: any;
|
|
@@ -643,6 +643,12 @@ class MongoRepository {
|
|
|
643
643
|
});
|
|
644
644
|
});
|
|
645
645
|
}
|
|
646
|
+
updateById(params) {
|
|
647
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
648
|
+
yield this.actionModel.updateOne({ _id: { $eq: params.id } }, params.update)
|
|
649
|
+
.exec();
|
|
650
|
+
});
|
|
651
|
+
}
|
|
646
652
|
findByIdAndUpdate(params) {
|
|
647
653
|
return __awaiter(this, void 0, void 0, function* () {
|
|
648
654
|
return this.actionModel.findOneAndUpdate({ _id: params.id }, params.update, { new: true })
|
|
@@ -252,6 +252,18 @@ export declare class MongoRepository {
|
|
|
252
252
|
};
|
|
253
253
|
};
|
|
254
254
|
}): Promise<import("mongodb").DeleteResult>;
|
|
255
|
+
deleteManyEndedByIds(params: {
|
|
256
|
+
typeOf: {
|
|
257
|
+
$in: factory.eventType[];
|
|
258
|
+
};
|
|
259
|
+
project: {
|
|
260
|
+
id: string;
|
|
261
|
+
};
|
|
262
|
+
ids: string[];
|
|
263
|
+
endDate: {
|
|
264
|
+
$lte: Date;
|
|
265
|
+
};
|
|
266
|
+
}): Promise<import("mongodb").DeleteResult>;
|
|
255
267
|
deleteByProject(params: {
|
|
256
268
|
project: {
|
|
257
269
|
id: string;
|
package/lib/chevre/repo/event.js
CHANGED
|
@@ -966,6 +966,17 @@ class MongoRepository {
|
|
|
966
966
|
.exec();
|
|
967
967
|
});
|
|
968
968
|
}
|
|
969
|
+
deleteManyEndedByIds(params) {
|
|
970
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
971
|
+
return this.eventModel.deleteMany({
|
|
972
|
+
typeOf: { $in: params.typeOf.$in },
|
|
973
|
+
'project.id': { $eq: params.project.id },
|
|
974
|
+
_id: { $in: params.ids },
|
|
975
|
+
endDate: { $lte: params.endDate.$lte }
|
|
976
|
+
})
|
|
977
|
+
.exec();
|
|
978
|
+
});
|
|
979
|
+
}
|
|
969
980
|
deleteByProject(params) {
|
|
970
981
|
return __awaiter(this, void 0, void 0, function* () {
|
|
971
982
|
yield this.eventModel.deleteMany({
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
import { Schema } from 'mongoose';
|
|
26
26
|
declare const modelName = "Offer";
|
|
27
27
|
/**
|
|
28
|
-
*
|
|
28
|
+
* 単価オファースキーマ
|
|
29
29
|
*/
|
|
30
30
|
declare const schema: Schema<any, import("mongoose").Model<any, any, any, any, any, any>, {}, {}, {}, {}, {
|
|
31
31
|
collection: string;
|
|
@@ -53,6 +53,7 @@ declare const schema: Schema<any, import("mongoose").Model<any, any, any, any, a
|
|
|
53
53
|
}, {
|
|
54
54
|
additionalProperty: any[];
|
|
55
55
|
addOn: any[];
|
|
56
|
+
availability: string;
|
|
56
57
|
availableAtOrFrom: any[];
|
|
57
58
|
_id?: string | undefined;
|
|
58
59
|
name?: any;
|
|
@@ -68,7 +69,6 @@ declare const schema: Schema<any, import("mongoose").Model<any, any, any, any, a
|
|
|
68
69
|
validFrom?: Date | undefined;
|
|
69
70
|
category?: any;
|
|
70
71
|
advanceBookingRequirement?: any;
|
|
71
|
-
availability?: string | undefined;
|
|
72
72
|
hasMerchantReturnPolicy?: any;
|
|
73
73
|
priceSpecification?: any;
|
|
74
74
|
eligibleCustomerType?: any;
|
|
@@ -84,6 +84,7 @@ declare const schema: Schema<any, import("mongoose").Model<any, any, any, any, a
|
|
|
84
84
|
}, import("mongoose").Document<unknown, {}, import("mongoose").FlatRecord<{
|
|
85
85
|
additionalProperty: any[];
|
|
86
86
|
addOn: any[];
|
|
87
|
+
availability: string;
|
|
87
88
|
availableAtOrFrom: any[];
|
|
88
89
|
_id?: string | undefined;
|
|
89
90
|
name?: any;
|
|
@@ -99,7 +100,6 @@ declare const schema: Schema<any, import("mongoose").Model<any, any, any, any, a
|
|
|
99
100
|
validFrom?: Date | undefined;
|
|
100
101
|
category?: any;
|
|
101
102
|
advanceBookingRequirement?: any;
|
|
102
|
-
availability?: string | undefined;
|
|
103
103
|
hasMerchantReturnPolicy?: any;
|
|
104
104
|
priceSpecification?: any;
|
|
105
105
|
eligibleCustomerType?: any;
|
|
@@ -115,6 +115,7 @@ declare const schema: Schema<any, import("mongoose").Model<any, any, any, any, a
|
|
|
115
115
|
}>> & Omit<import("mongoose").FlatRecord<{
|
|
116
116
|
additionalProperty: any[];
|
|
117
117
|
addOn: any[];
|
|
118
|
+
availability: string;
|
|
118
119
|
availableAtOrFrom: any[];
|
|
119
120
|
_id?: string | undefined;
|
|
120
121
|
name?: any;
|
|
@@ -130,7 +131,6 @@ declare const schema: Schema<any, import("mongoose").Model<any, any, any, any, a
|
|
|
130
131
|
validFrom?: Date | undefined;
|
|
131
132
|
category?: any;
|
|
132
133
|
advanceBookingRequirement?: any;
|
|
133
|
-
availability?: string | undefined;
|
|
134
134
|
hasMerchantReturnPolicy?: any;
|
|
135
135
|
priceSpecification?: any;
|
|
136
136
|
eligibleCustomerType?: any;
|
|
@@ -6,7 +6,7 @@ const writeConcern_1 = require("../writeConcern");
|
|
|
6
6
|
const modelName = 'Offer';
|
|
7
7
|
exports.modelName = modelName;
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* 単価オファースキーマ
|
|
10
10
|
*/
|
|
11
11
|
const schema = new mongoose_1.Schema({
|
|
12
12
|
project: mongoose_1.SchemaTypes.Mixed,
|
|
@@ -22,14 +22,13 @@ const schema = new mongoose_1.Schema({
|
|
|
22
22
|
alternateName: mongoose_1.SchemaTypes.Mixed,
|
|
23
23
|
// acceptedPaymentMethod: SchemaTypes.Mixed, // 削除(2023-02-27~)
|
|
24
24
|
addOn: [mongoose_1.SchemaTypes.Mixed],
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
25
|
+
availability: {
|
|
26
|
+
type: String,
|
|
27
|
+
required: true
|
|
28
|
+
},
|
|
29
29
|
availableAtOrFrom: [mongoose_1.SchemaTypes.Mixed],
|
|
30
30
|
hasMerchantReturnPolicy: mongoose_1.SchemaTypes.Mixed,
|
|
31
31
|
itemOffered: mongoose_1.SchemaTypes.Mixed,
|
|
32
|
-
// price: Number, // 削除(2023-02-27~)
|
|
33
32
|
priceCurrency: String,
|
|
34
33
|
priceSpecification: mongoose_1.SchemaTypes.Mixed,
|
|
35
34
|
eligibleCustomerType: mongoose_1.SchemaTypes.Mixed,
|
|
@@ -208,3 +207,4 @@ schema.index({ validThrough: 1, 'priceSpecification.price': 1 }, {
|
|
|
208
207
|
validThrough: { $exists: true }
|
|
209
208
|
}
|
|
210
209
|
});
|
|
210
|
+
schema.index({ availability: 1, 'priceSpecification.price': 1 }, { name: 'searchByAvailability' });
|
package/lib/chevre/repo/offer.js
CHANGED
|
@@ -36,7 +36,7 @@ class MongoRepository {
|
|
|
36
36
|
}
|
|
37
37
|
// tslint:disable-next-line:cyclomatic-complexity max-func-body-length
|
|
38
38
|
static CREATE_OFFER_MONGO_CONDITIONS(params) {
|
|
39
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32;
|
|
39
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18, _19, _20, _21, _22, _23, _24, _25, _26, _27, _28, _29, _30, _31, _32, _33;
|
|
40
40
|
// MongoDB検索条件
|
|
41
41
|
const andConditions = [];
|
|
42
42
|
const projectIdEq = (_b = (_a = params.project) === null || _a === void 0 ? void 0 : _a.id) === null || _b === void 0 ? void 0 : _b.$eq;
|
|
@@ -266,7 +266,11 @@ class MongoRepository {
|
|
|
266
266
|
});
|
|
267
267
|
}
|
|
268
268
|
}
|
|
269
|
-
const
|
|
269
|
+
const availabilityEq = (_22 = params.availability) === null || _22 === void 0 ? void 0 : _22.$eq;
|
|
270
|
+
if (typeof availabilityEq === 'string') {
|
|
271
|
+
andConditions.push({ availability: { $eq: availabilityEq } });
|
|
272
|
+
}
|
|
273
|
+
const availableAtOrFromIdEq = (_24 = (_23 = params.availableAtOrFrom) === null || _23 === void 0 ? void 0 : _23.id) === null || _24 === void 0 ? void 0 : _24.$eq;
|
|
270
274
|
if (typeof availableAtOrFromIdEq === 'string') {
|
|
271
275
|
andConditions.push({
|
|
272
276
|
'availableAtOrFrom.id': {
|
|
@@ -275,7 +279,7 @@ class MongoRepository {
|
|
|
275
279
|
}
|
|
276
280
|
});
|
|
277
281
|
}
|
|
278
|
-
const availableAtOrFromIdIn = (
|
|
282
|
+
const availableAtOrFromIdIn = (_26 = (_25 = params.availableAtOrFrom) === null || _25 === void 0 ? void 0 : _25.id) === null || _26 === void 0 ? void 0 : _26.$in;
|
|
279
283
|
if (Array.isArray(availableAtOrFromIdIn)) {
|
|
280
284
|
andConditions.push({
|
|
281
285
|
'availableAtOrFrom.id': {
|
|
@@ -284,7 +288,7 @@ class MongoRepository {
|
|
|
284
288
|
}
|
|
285
289
|
});
|
|
286
290
|
}
|
|
287
|
-
const addOnItemOfferedIdEq = (
|
|
291
|
+
const addOnItemOfferedIdEq = (_29 = (_28 = (_27 = params.addOn) === null || _27 === void 0 ? void 0 : _27.itemOffered) === null || _28 === void 0 ? void 0 : _28.id) === null || _29 === void 0 ? void 0 : _29.$eq;
|
|
288
292
|
if (typeof addOnItemOfferedIdEq === 'string') {
|
|
289
293
|
andConditions.push({
|
|
290
294
|
'addOn.itemOffered.id': {
|
|
@@ -293,7 +297,7 @@ class MongoRepository {
|
|
|
293
297
|
}
|
|
294
298
|
});
|
|
295
299
|
}
|
|
296
|
-
const hasMerchantReturnPolicyIdEq = (
|
|
300
|
+
const hasMerchantReturnPolicyIdEq = (_31 = (_30 = params.hasMerchantReturnPolicy) === null || _30 === void 0 ? void 0 : _30.id) === null || _31 === void 0 ? void 0 : _31.$eq;
|
|
297
301
|
if (typeof hasMerchantReturnPolicyIdEq === 'string') {
|
|
298
302
|
andConditions.push({
|
|
299
303
|
'hasMerchantReturnPolicy.id': {
|
|
@@ -302,7 +306,7 @@ class MongoRepository {
|
|
|
302
306
|
}
|
|
303
307
|
});
|
|
304
308
|
}
|
|
305
|
-
const additionalPropertyAll = (
|
|
309
|
+
const additionalPropertyAll = (_32 = params.additionalProperty) === null || _32 === void 0 ? void 0 : _32.$all;
|
|
306
310
|
if (Array.isArray(additionalPropertyAll)) {
|
|
307
311
|
andConditions.push({
|
|
308
312
|
additionalProperty: {
|
|
@@ -311,7 +315,7 @@ class MongoRepository {
|
|
|
311
315
|
}
|
|
312
316
|
});
|
|
313
317
|
}
|
|
314
|
-
const additionalPropertyElemMatch = (
|
|
318
|
+
const additionalPropertyElemMatch = (_33 = params.additionalProperty) === null || _33 === void 0 ? void 0 : _33.$elemMatch;
|
|
315
319
|
if (additionalPropertyElemMatch !== undefined && additionalPropertyElemMatch !== null) {
|
|
316
320
|
andConditions.push({
|
|
317
321
|
additionalProperty: {
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
import { Connection } from 'mongoose';
|
|
26
26
|
import * as factory from '../factory';
|
|
27
27
|
export type IProduct = factory.product.IProduct | factory.service.paymentService.IService;
|
|
28
|
-
export type IPaymentServiceByProvider = Pick<factory.service.paymentService.IService, 'name' | 'description' | 'typeOf' | 'id' | 'productID' | 'serviceType' | 'additionalProperty'> & {
|
|
28
|
+
export type IPaymentServiceByProvider = Pick<factory.service.paymentService.IService, 'name' | 'description' | 'typeOf' | 'id' | 'productID' | 'serviceType' | 'serviceOutput' | 'additionalProperty'> & {
|
|
29
29
|
provider?: Pick<factory.service.paymentService.IProvider, 'credentials'>;
|
|
30
30
|
};
|
|
31
31
|
/**
|
|
@@ -98,7 +98,6 @@ export declare class MongoRepository {
|
|
|
98
98
|
confirm<T extends factory.transactionType>(params: {
|
|
99
99
|
typeOf: T;
|
|
100
100
|
id: string;
|
|
101
|
-
authorizeActions: factory.action.authorize.IAction<factory.action.authorize.IAttributes<any, any>>[];
|
|
102
101
|
result: factory.transaction.IResult<T>;
|
|
103
102
|
potentialActions: factory.transaction.IPotentialActions<T>;
|
|
104
103
|
}): Promise<void>;
|
|
@@ -190,6 +189,10 @@ export declare class MongoRepository {
|
|
|
190
189
|
findByIdAndDelete(params: {
|
|
191
190
|
id: string;
|
|
192
191
|
}): Promise<void>;
|
|
192
|
+
unsetUnnecessaryFields(params: {
|
|
193
|
+
filter: any;
|
|
194
|
+
$unset: any;
|
|
195
|
+
}): Promise<import("mongodb").UpdateResult>;
|
|
193
196
|
aggregatePlaceOrder(params: {
|
|
194
197
|
project?: {
|
|
195
198
|
id?: {
|
|
@@ -438,7 +438,7 @@ class MongoRepository {
|
|
|
438
438
|
}, {
|
|
439
439
|
status: factory.transactionStatusType.Confirmed,
|
|
440
440
|
endDate: new Date(),
|
|
441
|
-
'object.authorizeActions': params.authorizeActions,
|
|
441
|
+
// 'object.authorizeActions': params.authorizeActions,
|
|
442
442
|
result: params.result,
|
|
443
443
|
potentialActions: params.potentialActions // resultを更新
|
|
444
444
|
}, {
|
|
@@ -770,6 +770,12 @@ class MongoRepository {
|
|
|
770
770
|
.exec();
|
|
771
771
|
});
|
|
772
772
|
}
|
|
773
|
+
unsetUnnecessaryFields(params) {
|
|
774
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
775
|
+
return this.transactionModel.updateMany(params.filter, { $unset: params.$unset })
|
|
776
|
+
.exec();
|
|
777
|
+
});
|
|
778
|
+
}
|
|
773
779
|
aggregatePlaceOrder(params) {
|
|
774
780
|
return __awaiter(this, void 0, void 0, function* () {
|
|
775
781
|
const statuses = yield Promise.all([
|
|
@@ -6,6 +6,6 @@ export declare function createStartParams(params: factory.assetTransaction.pay.I
|
|
|
6
6
|
transactionNumber: string;
|
|
7
7
|
paymentServiceType: factory.service.paymentService.PaymentServiceType;
|
|
8
8
|
amount: number;
|
|
9
|
-
paymentService?: factory.service.paymentService.IService;
|
|
9
|
+
paymentService?: factory.service.paymentService.IService | factory.product.IProduct;
|
|
10
10
|
location?: factory.action.trade.pay.ILocation;
|
|
11
11
|
}): factory.assetTransaction.IStartParams<factory.assetTransactionType.Pay>;
|
|
@@ -5,9 +5,10 @@ exports.createStartParams = void 0;
|
|
|
5
5
|
* 決済取引ファクトリー
|
|
6
6
|
*/
|
|
7
7
|
const factory = require("../../../factory");
|
|
8
|
+
const settings_1 = require("../../../settings");
|
|
8
9
|
// tslint:disable-next-line:cyclomatic-complexity max-func-body-length
|
|
9
10
|
function createStartParams(params) {
|
|
10
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x;
|
|
11
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1;
|
|
11
12
|
const paymentServiceId = (params.paymentService !== undefined)
|
|
12
13
|
? String(params.paymentService.id)
|
|
13
14
|
: '';
|
|
@@ -25,14 +26,14 @@ function createStartParams(params) {
|
|
|
25
26
|
totalPaymentDue = {
|
|
26
27
|
typeOf: 'MonetaryAmount',
|
|
27
28
|
currency: factory.priceCurrency.JPY,
|
|
28
|
-
value:
|
|
29
|
+
value: params.amount
|
|
29
30
|
};
|
|
30
31
|
break;
|
|
31
32
|
case factory.service.paymentService.PaymentServiceType.CreditCard:
|
|
32
33
|
totalPaymentDue = {
|
|
33
34
|
typeOf: 'MonetaryAmount',
|
|
34
35
|
currency: factory.priceCurrency.JPY,
|
|
35
|
-
value:
|
|
36
|
+
value: params.amount
|
|
36
37
|
};
|
|
37
38
|
break;
|
|
38
39
|
case factory.service.paymentService.PaymentServiceType.MovieTicket:
|
|
@@ -54,36 +55,57 @@ function createStartParams(params) {
|
|
|
54
55
|
default:
|
|
55
56
|
// no op
|
|
56
57
|
}
|
|
57
|
-
const informPaymentParams = createInformPaymentParams({
|
|
58
|
+
const informPaymentParams = createInformPaymentParams({
|
|
59
|
+
paymentService: params.paymentService
|
|
60
|
+
});
|
|
58
61
|
const accountId = (_g = params.object.paymentMethod) === null || _g === void 0 ? void 0 : _g.accountId;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
62
|
+
// currencyはデフォルトでJPY
|
|
63
|
+
let paymentMethodCurrency = factory.priceCurrency.JPY;
|
|
64
|
+
if (params.paymentServiceType === factory.service.paymentService.PaymentServiceType.PaymentCard) {
|
|
65
|
+
const paymentCardServiceOutputCurrency = (_k = (_j = (_h = params.paymentService) === null || _h === void 0 ? void 0 : _h.serviceOutput) === null || _j === void 0 ? void 0 : _j.amount) === null || _k === void 0 ? void 0 : _k.currency;
|
|
66
|
+
if (typeof paymentCardServiceOutputCurrency === 'string') {
|
|
67
|
+
paymentMethodCurrency = paymentCardServiceOutputCurrency;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
else if (params.paymentServiceType === factory.service.paymentService.PaymentServiceType.CreditCard) {
|
|
71
|
+
// カード通貨区分が存在すれば適用
|
|
72
|
+
const creditCardAsPaymentServiceOutputCurrency = (_p = (_o = (_m = (_l = params.paymentService) === null || _l === void 0 ? void 0 : _l.serviceOutput) === null || _m === void 0 ? void 0 : _m.paymentMethod) === null || _o === void 0 ? void 0 : _o.amount) === null || _p === void 0 ? void 0 : _p.currency;
|
|
73
|
+
if (typeof creditCardAsPaymentServiceOutputCurrency === 'string') {
|
|
74
|
+
paymentMethodCurrency = creditCardAsPaymentServiceOutputCurrency;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
const paymentMethodAmount = {
|
|
78
|
+
typeOf: 'MonetaryAmount',
|
|
79
|
+
currency: paymentMethodCurrency,
|
|
80
|
+
value: params.amount
|
|
81
|
+
};
|
|
82
|
+
const paymentMethod = Object.assign(Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({ additionalProperty: (Array.isArray((_q = params.object.paymentMethod) === null || _q === void 0 ? void 0 : _q.additionalProperty))
|
|
83
|
+
? (_r = params.object.paymentMethod) === null || _r === void 0 ? void 0 : _r.additionalProperty
|
|
84
|
+
: [], name: (typeof ((_s = params.object.paymentMethod) === null || _s === void 0 ? void 0 : _s.name) === 'string')
|
|
63
85
|
? params.object.paymentMethod.name
|
|
64
|
-
: paymentMethodType,
|
|
65
|
-
|
|
86
|
+
: paymentMethodType,
|
|
87
|
+
// MonetaryAmount対応(2023-08-14~)
|
|
88
|
+
amount: (settings_1.USE_OBJECT_AS_PAY_TRANSACTION_AMOUNT) ? paymentMethodAmount : params.amount, paymentMethodId: params.transactionNumber, typeOf: paymentMethodType }, (typeof ((_t = params.object.paymentMethod) === null || _t === void 0 ? void 0 : _t.description) === 'string')
|
|
89
|
+
? { description: (_u = params.object.paymentMethod) === null || _u === void 0 ? void 0 : _u.description }
|
|
66
90
|
: undefined), (totalPaymentDue !== undefined)
|
|
67
91
|
? { totalPaymentDue: totalPaymentDue }
|
|
68
|
-
: undefined), (typeof accountId === 'string') ? { accountId: accountId } : undefined), (typeof ((
|
|
69
|
-
? { method: (
|
|
70
|
-
: undefined), (((
|
|
71
|
-
? { creditCard: (
|
|
72
|
-
: undefined), (Array.isArray((
|
|
73
|
-
? { movieTickets: (
|
|
92
|
+
: undefined), (typeof accountId === 'string') ? { accountId: accountId } : undefined), (typeof ((_v = params.object.paymentMethod) === null || _v === void 0 ? void 0 : _v.method) === 'string')
|
|
93
|
+
? { method: (_w = params.object.paymentMethod) === null || _w === void 0 ? void 0 : _w.method }
|
|
94
|
+
: undefined), (((_x = params.object.paymentMethod) === null || _x === void 0 ? void 0 : _x.creditCard) !== undefined)
|
|
95
|
+
? { creditCard: (_y = params.object.paymentMethod) === null || _y === void 0 ? void 0 : _y.creditCard }
|
|
96
|
+
: undefined), (Array.isArray((_z = params.object.paymentMethod) === null || _z === void 0 ? void 0 : _z.movieTickets))
|
|
97
|
+
? { movieTickets: (_0 = params.object.paymentMethod) === null || _0 === void 0 ? void 0 : _0.movieTickets }
|
|
74
98
|
: undefined);
|
|
75
|
-
const
|
|
76
|
-
? {
|
|
77
|
-
amount: {
|
|
78
|
-
currency: creditCardAsPaymentServiceOutputCurrency,
|
|
79
|
-
value: paymentMethod.amount // 通貨区分としての金額
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
: undefined;
|
|
83
|
-
const object = Object.assign({
|
|
99
|
+
const object = {
|
|
84
100
|
// パラメータから必要なもののみ取り込む
|
|
85
|
-
accountId: (typeof accountId === 'string') ? accountId : '',
|
|
86
|
-
|
|
101
|
+
accountId: (typeof accountId === 'string') ? accountId : '',
|
|
102
|
+
paymentMethodId: params.transactionNumber,
|
|
103
|
+
typeOf: params.paymentServiceType,
|
|
104
|
+
id: paymentServiceId,
|
|
105
|
+
onPaymentStatusChanged: { informPayment: informPaymentParams },
|
|
106
|
+
paymentMethod
|
|
107
|
+
};
|
|
108
|
+
return Object.assign({ project: { typeOf: factory.organizationType.Project, id: params.project.id }, transactionNumber: params.transactionNumber, typeOf: factory.assetTransactionType.Pay, agent: params.agent, recipient: params.recipient, object, expires: params.expires }, (typeof ((_1 = params.location) === null || _1 === void 0 ? void 0 : _1.typeOf) === 'string')
|
|
87
109
|
? { location: params.location }
|
|
88
110
|
: undefined);
|
|
89
111
|
}
|