@sellout/models 0.0.62 → 0.0.64
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/.dist/enums/OrderItemTypeEnum.d.ts +4 -0
- package/.dist/enums/OrderItemTypeEnum.js +10 -0
- package/.dist/enums/OrderItemTypeEnum.js.map +1 -0
- package/.dist/graphql/fragments/order.fragment.js +4 -0
- package/.dist/graphql/fragments/order.fragment.js.map +1 -1
- package/.dist/graphql/mutations/attachStripePaymentMethod.mutation.js +10 -1
- package/.dist/graphql/mutations/attachStripePaymentMethod.mutation.js.map +1 -1
- package/.dist/graphql/mutations/breakApartOrder.d.ts +2 -0
- package/.dist/graphql/mutations/breakApartOrder.js +43 -0
- package/.dist/graphql/mutations/breakApartOrder.js.map +1 -0
- package/.dist/graphql/mutations/register.mutation.js +2 -9
- package/.dist/graphql/mutations/register.mutation.js.map +1 -1
- package/.dist/graphql/queries/order.query.js +2 -0
- package/.dist/graphql/queries/order.query.js.map +1 -1
- package/.dist/graphql/queries/publicEvent.query.js +1 -0
- package/.dist/graphql/queries/publicEvent.query.js.map +1 -1
- package/.dist/graphql/queries/userProfile.query.js +3 -2
- package/.dist/graphql/queries/userProfile.query.js.map +1 -1
- package/.dist/interfaces/ICreateOrderParams.d.ts +1 -2
- package/.dist/interfaces/IOrder.d.ts +0 -2
- package/.dist/interfaces/IOrder.js.map +1 -1
- package/.dist/interfaces/IOrderTicket.d.ts +1 -0
- package/.dist/interfaces/IOrderTicket.js.map +1 -1
- package/.dist/interfaces/IOrderUpgrade.d.ts +1 -0
- package/.dist/interfaces/IStripeCustomer.d.ts +2 -2
- package/.dist/interfaces/IStripePaymentMethod.d.ts +10 -0
- package/.dist/interfaces/IStripePaymentMethod.js +3 -0
- package/.dist/interfaces/IStripePaymentMethod.js.map +1 -0
- package/.dist/schemas/Order.d.ts +10 -4
- package/.dist/schemas/Order.js +10 -4
- package/.dist/schemas/Order.js.map +1 -1
- package/.dist/sellout-proto.js +1008 -116
- package/.dist/utils/PaymentUtil.js +129 -26
- package/.dist/utils/PaymentUtil.js.map +1 -1
- package/package.json +4 -4
- package/src/enums/OrderItemTypeEnum.ts +4 -0
- package/src/graphql/fragments/order.fragment.ts +4 -0
- package/src/graphql/mutations/attachStripePaymentMethod.mutation.ts +10 -1
- package/src/graphql/mutations/breakApartOrder.ts +39 -0
- package/src/graphql/mutations/register.mutation.ts +2 -9
- package/src/graphql/queries/order.query.ts +2 -0
- package/src/graphql/queries/publicEvent.query.ts +1 -0
- package/src/graphql/queries/userProfile.query.ts +3 -2
- package/src/interfaces/ICreateOrderParams.ts +1 -2
- package/src/interfaces/IOrder.ts +0 -2
- package/src/interfaces/IOrderTicket.ts +1 -0
- package/src/interfaces/IOrderUpgrade.ts +1 -0
- package/src/interfaces/IStripeCustomer.ts +2 -2
- package/src/interfaces/{IStripeSource.ts → IStripePaymentMethod.ts} +2 -2
- package/src/proto/order.proto +21 -5
- package/src/proto/stripe.proto +14 -3
- package/src/schemas/Order.ts +10 -4
- package/src/utils/PaymentUtil.ts +159 -34
- package/src/enums/OrderDeliveryMethodEnum.ts +0 -5
|
@@ -2,38 +2,139 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
const IFee_1 = require("../interfaces/IFee");
|
|
4
4
|
const PaymentMethodTypeEnum_1 = require("../enums/PaymentMethodTypeEnum");
|
|
5
|
+
// interface IOrderItems {
|
|
6
|
+
// tickets: ICreateOrderTicketParams[];
|
|
7
|
+
// upgrades: ICreateOrderUpgradeParams[];
|
|
8
|
+
// }
|
|
5
9
|
exports.default = {
|
|
10
|
+
// DOES NOT WORK! Work in Progress :)
|
|
11
|
+
// calculateOrderItemPrices(params: IPaymentCalculatorParams): IOrderItems {
|
|
12
|
+
// let {
|
|
13
|
+
// tickets = [],
|
|
14
|
+
// upgrades = [],
|
|
15
|
+
// fees = [],
|
|
16
|
+
// paymentMethodType,
|
|
17
|
+
// } = params;
|
|
18
|
+
// // Filter fees
|
|
19
|
+
// fees = fees.filter((fee: IFee) => {
|
|
20
|
+
// // Ignore card reader fees for non card reader payemnts
|
|
21
|
+
// if (fee.filters && fee.filters.includes(FeeFiltersEnum.CardReader) && paymentMethodType !== PaymentMethodTypeEnum.CardReader) {
|
|
22
|
+
// return false;
|
|
23
|
+
// }
|
|
24
|
+
// // Ignore card entry fees for non card entry payemnts
|
|
25
|
+
// if (fee.filters && fee.filters.includes(FeeFiltersEnum.CardEntry) && paymentMethodType !== PaymentMethodTypeEnum.CardEntry) {
|
|
26
|
+
// return false;
|
|
27
|
+
// }
|
|
28
|
+
// return true;
|
|
29
|
+
// });
|
|
30
|
+
// const ticketFees = fees.filter(f => f.appliedTo === FeeAppliedToEnum.Ticket)
|
|
31
|
+
// .sort(({ type }) => {
|
|
32
|
+
// if (type === FeeTypeEnum.Flat) return -1;
|
|
33
|
+
// else return 1;
|
|
34
|
+
// });
|
|
35
|
+
// const upgradeFees = fees.filter(f => f.appliedTo === FeeAppliedToEnum.Upgrade);
|
|
36
|
+
// // Orders mattes here. Flat type fees must be applied before Percent type fees
|
|
37
|
+
// const orderFees = fees.filter(f => f.appliedTo === FeeAppliedToEnum.Order)
|
|
38
|
+
// .sort(({ type }) => {
|
|
39
|
+
// if (type === FeeTypeEnum.Percent) return -1;
|
|
40
|
+
// else return 1;
|
|
41
|
+
// })
|
|
42
|
+
// .map(fee => {
|
|
43
|
+
// if(fee.type === FeeTypeEnum.Flat) {
|
|
44
|
+
// return {
|
|
45
|
+
// ...fee,
|
|
46
|
+
// value: fee.value / tickets.length,
|
|
47
|
+
// }
|
|
48
|
+
// }
|
|
49
|
+
// else return fee;
|
|
50
|
+
// });
|
|
51
|
+
// const reverseApplyFee = (price: number, ticket: ICreateOrderTicketParams, fee: IFee): number => {
|
|
52
|
+
// // Ignore seated fees
|
|
53
|
+
// if (fee.filters && fee.filters.includes(FeeFiltersEnum.Seated) && !ticket.seat) {
|
|
54
|
+
// return price;
|
|
55
|
+
// }
|
|
56
|
+
// const minFee = fee.minAppliedToPrice || 0;
|
|
57
|
+
// const maxFee = fee.maxAppliedToPrice || Infinity;
|
|
58
|
+
// if (minFee <= price && price <= maxFee) {
|
|
59
|
+
// console.log(fee);
|
|
60
|
+
// if (fee.type === FeeTypeEnum.Flat) {
|
|
61
|
+
// return price - fee.value;
|
|
62
|
+
// } if (fee.type === FeeTypeEnum.Percent) {
|
|
63
|
+
// return price * (1 - fee.value / 100);
|
|
64
|
+
// }
|
|
65
|
+
// }
|
|
66
|
+
// // if(fee.type === FeeTypeEnum.Percent) {
|
|
67
|
+
// // return price * (1 - fee.value / 100);
|
|
68
|
+
// // }
|
|
69
|
+
// // if(fee.type === FeeTypeEnum.Flat) {
|
|
70
|
+
// // return price - fee.value;
|
|
71
|
+
// // }
|
|
72
|
+
// return price;
|
|
73
|
+
// }
|
|
74
|
+
// function calculateTicketPrice(ticket: ICreateOrderTicketParams): number {
|
|
75
|
+
// if(!ticket.rollFees) return ticket.price;
|
|
76
|
+
// const allFees = [...orderFees, ...ticketFees];
|
|
77
|
+
// return allFees.reduce((cur, fee) => {
|
|
78
|
+
// const next = reverseApplyFee(cur, ticket, fee);
|
|
79
|
+
// return next;
|
|
80
|
+
// }, ticket.price);
|
|
81
|
+
// }
|
|
82
|
+
// tickets = tickets.map((ticket: ICreateOrderTicketParams): ICreateOrderTicketParams => {
|
|
83
|
+
// const price = Math.floor(calculateTicketPrice(ticket));
|
|
84
|
+
// console.log(`Ticket Price: `, price);
|
|
85
|
+
// return {
|
|
86
|
+
// ...ticket,
|
|
87
|
+
// price,
|
|
88
|
+
// }
|
|
89
|
+
// });
|
|
90
|
+
// // upgrades = upgrades.map((upgrade: ICreateOrderUpgradeParams): ICreateOrderUpgradeParams => {
|
|
91
|
+
// // return {
|
|
92
|
+
// // ...upgrade,
|
|
93
|
+
// // price: calculateUpgradePrice(upgrade),
|
|
94
|
+
// // }
|
|
95
|
+
// // });
|
|
96
|
+
// return {
|
|
97
|
+
// tickets,
|
|
98
|
+
// upgrades,
|
|
99
|
+
// };
|
|
100
|
+
// },
|
|
6
101
|
calculateTotal(params) {
|
|
7
|
-
|
|
8
|
-
console.log(fees);
|
|
102
|
+
let { tickets = [], upgrades = [], fees = [], paymentMethodType, } = params;
|
|
9
103
|
// No items, total is always 0
|
|
10
104
|
if (!tickets.length && !upgrades.length)
|
|
11
105
|
return 0;
|
|
12
|
-
|
|
106
|
+
// Filter fees
|
|
107
|
+
fees = fees.filter((fee) => {
|
|
108
|
+
// Ignore card reader fees for non card reader payemnts
|
|
109
|
+
if (fee.filters && fee.filters.includes(IFee_1.FeeFiltersEnum.CardReader) && paymentMethodType !== PaymentMethodTypeEnum_1.PaymentMethodTypeEnum.CardReader) {
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
// Ignore card entry fees for non card entry payemnts
|
|
113
|
+
if (fee.filters && fee.filters.includes(IFee_1.FeeFiltersEnum.CardEntry) && paymentMethodType !== PaymentMethodTypeEnum_1.PaymentMethodTypeEnum.CardEntry) {
|
|
114
|
+
return false;
|
|
115
|
+
}
|
|
116
|
+
return true;
|
|
117
|
+
});
|
|
118
|
+
const ticketFees = fees.filter(f => f.appliedTo === IFee_1.FeeAppliedToEnum.Ticket)
|
|
119
|
+
.sort(({ type }) => {
|
|
120
|
+
if (type === IFee_1.FeeTypeEnum.Flat)
|
|
121
|
+
return -1;
|
|
122
|
+
else
|
|
123
|
+
return 1;
|
|
124
|
+
});
|
|
13
125
|
const upgradeFees = fees.filter(f => f.appliedTo === IFee_1.FeeAppliedToEnum.Upgrade);
|
|
14
126
|
// Orders mattes here. Flat type fees must be applied before Percent type fees
|
|
15
127
|
const orderFees = fees.filter(f => f.appliedTo === IFee_1.FeeAppliedToEnum.Order).sort(({ type }) => {
|
|
16
128
|
if (type === 'Flat')
|
|
17
129
|
return -1;
|
|
18
|
-
|
|
130
|
+
else
|
|
131
|
+
return 1;
|
|
19
132
|
});
|
|
20
133
|
function applyTicketFee(ticket, fee) {
|
|
21
|
-
//
|
|
22
|
-
// if (ticket.rollFees) {
|
|
23
|
-
// return 0;
|
|
24
|
-
// }
|
|
25
|
-
// Ignore seated fees
|
|
134
|
+
// Ignore seated fees if not seated
|
|
26
135
|
if (fee.filters && fee.filters.includes(IFee_1.FeeFiltersEnum.Seated) && !ticket.seat) {
|
|
27
136
|
return 0;
|
|
28
137
|
}
|
|
29
|
-
// Ignore card reader fees for non card reader payemnts
|
|
30
|
-
if (fee.filters && fee.filters.includes(IFee_1.FeeFiltersEnum.CardReader) && paymentMethodType !== PaymentMethodTypeEnum_1.PaymentMethodTypeEnum.CardReader) {
|
|
31
|
-
return 0;
|
|
32
|
-
}
|
|
33
|
-
// Ignore card entry fees for non card entry payemnts
|
|
34
|
-
if (fee.filters && fee.filters.includes(IFee_1.FeeFiltersEnum.CardEntry) && paymentMethodType !== PaymentMethodTypeEnum_1.PaymentMethodTypeEnum.CardEntry) {
|
|
35
|
-
return 0;
|
|
36
|
-
}
|
|
37
138
|
const minFee = fee.minAppliedToPrice || 0;
|
|
38
139
|
const maxFee = fee.maxAppliedToPrice || Infinity;
|
|
39
140
|
if (minFee <= ticket.price && ticket.price <= maxFee) {
|
|
@@ -50,18 +151,14 @@ exports.default = {
|
|
|
50
151
|
return 0;
|
|
51
152
|
}
|
|
52
153
|
function applyUpgradeFee(upgrade, fee) {
|
|
53
|
-
// // Ignore rolled fees
|
|
54
|
-
// if (upgrade.rollFees) {
|
|
55
|
-
// return 0;
|
|
56
|
-
// }
|
|
57
154
|
const minFee = fee.minAppliedToPrice || 0;
|
|
58
155
|
const maxFee = fee.maxAppliedToPrice || Infinity;
|
|
59
156
|
if (minFee <= upgrade.price && upgrade.price <= maxFee) {
|
|
60
157
|
if (fee.type === IFee_1.FeeTypeEnum.Flat) {
|
|
61
|
-
return fee.value;
|
|
158
|
+
return upgrade.price + fee.value;
|
|
62
159
|
}
|
|
63
160
|
if (fee.type === IFee_1.FeeTypeEnum.Percent) {
|
|
64
|
-
return (upgrade.price
|
|
161
|
+
return (upgrade.price / (1 - fee.value / 100));
|
|
65
162
|
}
|
|
66
163
|
}
|
|
67
164
|
else {
|
|
@@ -79,17 +176,23 @@ exports.default = {
|
|
|
79
176
|
}
|
|
80
177
|
const ticketTotal = tickets.reduce((cur, ticket) => cur + ticket.price, 0);
|
|
81
178
|
const ticketFeeTotal = tickets.reduce((cur, ticket) => {
|
|
82
|
-
return cur + ticketFees.reduce((cur, fee) =>
|
|
179
|
+
return cur + ticketFees.reduce((cur, fee) => {
|
|
180
|
+
const value = cur + applyTicketFee(ticket, fee);
|
|
181
|
+
// console.log(`${fee.name}: ${value}`);
|
|
182
|
+
return value;
|
|
183
|
+
}, 0);
|
|
83
184
|
}, 0);
|
|
84
185
|
const upgradeTotal = upgrades.reduce((cur, upgrade) => cur + upgrade.price, 0);
|
|
85
186
|
const upgradeFeeTotal = upgrades.reduce((cur, upgrade) => {
|
|
86
187
|
return cur + upgradeFees.reduce((cur, fee) => cur + applyUpgradeFee(upgrade, fee), 0);
|
|
87
188
|
}, 0);
|
|
88
|
-
const orderSubtotal = ticketTotal + ticketFeeTotal + upgradeTotal + upgradeFeeTotal;
|
|
189
|
+
const orderSubtotal = Math.round(ticketTotal + ticketFeeTotal + upgradeTotal + upgradeFeeTotal);
|
|
190
|
+
// console.log(`Order SubTotal:`, orderSubtotal);
|
|
89
191
|
const orderTotal = orderFees.reduce((cur, fee) => {
|
|
90
192
|
return applyOrderFee(cur, fee);
|
|
91
193
|
}, orderSubtotal);
|
|
92
|
-
|
|
194
|
+
// console.log(`Order Total`, orderTotal);
|
|
195
|
+
return orderTotal;
|
|
93
196
|
}
|
|
94
197
|
};
|
|
95
198
|
//# sourceMappingURL=PaymentUtil.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PaymentUtil.js","sourceRoot":"","sources":["../../src/utils/PaymentUtil.ts"],"names":[],"mappings":";;AACA,6CAAyF;AACzF,0EAAuE;
|
|
1
|
+
{"version":3,"file":"PaymentUtil.js","sourceRoot":"","sources":["../../src/utils/PaymentUtil.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sellout/models",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.64",
|
|
4
4
|
"description": "Sellout.io models",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"scripts": {
|
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
"author": "samheutmaker@gmail.com",
|
|
17
17
|
"license": "MIT",
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@sellout/service": "^0.0.
|
|
20
|
-
"@sellout/utils": "^0.0.
|
|
19
|
+
"@sellout/service": "^0.0.64",
|
|
20
|
+
"@sellout/utils": "^0.0.64",
|
|
21
21
|
"@types/shortid": "0.0.29",
|
|
22
22
|
"apollo-link-debounce": "^2.1.0",
|
|
23
23
|
"graphql": "^14.6.0",
|
|
@@ -30,5 +30,5 @@
|
|
|
30
30
|
"protobufjs": "~6.10.1",
|
|
31
31
|
"typescript": "^3.8.3"
|
|
32
32
|
},
|
|
33
|
-
"gitHead": "
|
|
33
|
+
"gitHead": "33349f3d3da7633d43b091f233c5de22b6df6ee1"
|
|
34
34
|
}
|
|
@@ -28,6 +28,8 @@ Order.fragments = {
|
|
|
28
28
|
ticketTierId
|
|
29
29
|
price
|
|
30
30
|
seat
|
|
31
|
+
qrCodeUrl
|
|
32
|
+
state
|
|
31
33
|
refund {
|
|
32
34
|
refunded
|
|
33
35
|
refundedAt
|
|
@@ -49,6 +51,8 @@ Order.fragments = {
|
|
|
49
51
|
name
|
|
50
52
|
upgradeId
|
|
51
53
|
price
|
|
54
|
+
qrCodeUrl
|
|
55
|
+
state
|
|
52
56
|
refund {
|
|
53
57
|
refunded
|
|
54
58
|
refundedAt
|
|
@@ -2,7 +2,16 @@ import gql from 'graphql-tag';
|
|
|
2
2
|
|
|
3
3
|
const mutation = gql`
|
|
4
4
|
mutation attachStripePaymentMethod($paymentMethodId: String!) {
|
|
5
|
-
attachStripePaymentMethod(paymentMethodId: $paymentMethodId)
|
|
5
|
+
attachStripePaymentMethod(paymentMethodId: $paymentMethodId) {
|
|
6
|
+
paymentMethodId
|
|
7
|
+
brand
|
|
8
|
+
last4
|
|
9
|
+
expMonth
|
|
10
|
+
expYear
|
|
11
|
+
funding
|
|
12
|
+
country
|
|
13
|
+
type
|
|
14
|
+
}
|
|
6
15
|
}
|
|
7
16
|
`;
|
|
8
17
|
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import gql from "graphql-tag";
|
|
2
|
+
import Order from '../fragments/order.fragment';
|
|
3
|
+
|
|
4
|
+
const mutation = gql`
|
|
5
|
+
mutation breakApartOrder($orderId: String!) {
|
|
6
|
+
breakApartOrder(orderId: $orderId) {
|
|
7
|
+
_id
|
|
8
|
+
event {
|
|
9
|
+
_id
|
|
10
|
+
name
|
|
11
|
+
subtitle
|
|
12
|
+
performances {
|
|
13
|
+
schedule {
|
|
14
|
+
doorsAt
|
|
15
|
+
startsAt
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
venue {
|
|
19
|
+
name
|
|
20
|
+
address {
|
|
21
|
+
state
|
|
22
|
+
city
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
organization {
|
|
26
|
+
orgName
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
state
|
|
30
|
+
type
|
|
31
|
+
...OrderTickets
|
|
32
|
+
...OrderUpgrades
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
${Order.fragments.tickets}
|
|
36
|
+
${Order.fragments.upgrades}
|
|
37
|
+
`;
|
|
38
|
+
|
|
39
|
+
export default mutation;
|
|
@@ -3,15 +3,8 @@ import gql from 'graphql-tag';
|
|
|
3
3
|
const mutation = gql`
|
|
4
4
|
mutation Register($user: UserInput!) {
|
|
5
5
|
register(user: $user) {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
firstName
|
|
9
|
-
lastName
|
|
10
|
-
email
|
|
11
|
-
phoneNumber
|
|
12
|
-
createdAt
|
|
13
|
-
}
|
|
14
|
-
token
|
|
6
|
+
registered
|
|
7
|
+
emailVerified
|
|
15
8
|
}
|
|
16
9
|
}
|
|
17
10
|
`;
|
|
@@ -4,6 +4,7 @@ const query = gql`
|
|
|
4
4
|
query userProfile {
|
|
5
5
|
userProfile {
|
|
6
6
|
user {
|
|
7
|
+
_id
|
|
7
8
|
firstName
|
|
8
9
|
lastName
|
|
9
10
|
phoneNumber
|
|
@@ -11,8 +12,8 @@ const query = gql`
|
|
|
11
12
|
}
|
|
12
13
|
stripeCustomerId
|
|
13
14
|
stripeCustomer {
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
paymentMethods {
|
|
16
|
+
paymentMethodId
|
|
16
17
|
brand
|
|
17
18
|
last4
|
|
18
19
|
expMonth
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import IOrderCustomField from "../interfaces/IOrderCustomField";
|
|
2
2
|
import { OrderTypeEnum } from "../interfaces/IOrderType";
|
|
3
|
-
import { OrderDeliveryMethodEnum } from "../enums/OrderDeliveryMethodEnum";
|
|
4
3
|
import { PaymentMethodTypeEnum } from '../enums/PaymentMethodTypeEnum';
|
|
5
4
|
|
|
6
5
|
export default interface ICreateOrderParams {
|
|
@@ -12,8 +11,8 @@ export default interface ICreateOrderParams {
|
|
|
12
11
|
type: OrderTypeEnum;
|
|
13
12
|
promotionCode: string;
|
|
14
13
|
customFields: IOrderCustomField[];
|
|
15
|
-
deliveryMethod: OrderDeliveryMethodEnum;
|
|
16
14
|
paymentMethodType: PaymentMethodTypeEnum;
|
|
15
|
+
paymentMethodId: string;
|
|
17
16
|
holdToken?: string;
|
|
18
17
|
}
|
|
19
18
|
|
package/src/interfaces/IOrder.ts
CHANGED
|
@@ -5,7 +5,6 @@ import IOrderUpgrade from './IOrderUpgrade';
|
|
|
5
5
|
import IOrderCustomField from './IOrderCustomField'
|
|
6
6
|
import { OrderStateEnum } from './IOrderState';
|
|
7
7
|
import { OrderTypeEnum } from './IOrderType';
|
|
8
|
-
import { OrderDeliveryMethodEnum } from "../enums/OrderDeliveryMethodEnum";
|
|
9
8
|
|
|
10
9
|
export default interface IOrder {
|
|
11
10
|
_id?: string;
|
|
@@ -33,5 +32,4 @@ export default interface IOrder {
|
|
|
33
32
|
customFields?: IOrderCustomField[];
|
|
34
33
|
refundReason?: string; // BACKFILL
|
|
35
34
|
payments: IPayment[];
|
|
36
|
-
deliveryMethod: OrderDeliveryMethodEnum,
|
|
37
35
|
};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import
|
|
1
|
+
import IStripePaymentMethod from './IStripePaymentMethod';
|
|
2
2
|
|
|
3
3
|
export default interface IStripeCustomer {
|
|
4
4
|
stripeCustomerId: string;
|
|
5
5
|
email: string;
|
|
6
|
-
|
|
6
|
+
paymentMethods: IStripePaymentMethod[];
|
|
7
7
|
}
|
package/src/proto/order.proto
CHANGED
|
@@ -32,7 +32,6 @@ message Order {
|
|
|
32
32
|
repeated OrderCustomField customFields = 21;
|
|
33
33
|
string refundReason = 22;
|
|
34
34
|
repeated Payment payments = 23;
|
|
35
|
-
string deliveryMethod = 24;
|
|
36
35
|
}
|
|
37
36
|
|
|
38
37
|
message OrderTicket {
|
|
@@ -47,6 +46,7 @@ message OrderTicket {
|
|
|
47
46
|
Refund refund = 8;
|
|
48
47
|
Scan scan = 9;
|
|
49
48
|
string state = 10;
|
|
49
|
+
string qrCodeUrl = 11;
|
|
50
50
|
}
|
|
51
51
|
|
|
52
52
|
message OrderUpgrade {
|
|
@@ -59,6 +59,7 @@ message OrderUpgrade {
|
|
|
59
59
|
Refund refund = 6;
|
|
60
60
|
Scan scan = 7;
|
|
61
61
|
string state = 8;
|
|
62
|
+
string qrCodeUrl = 9;
|
|
62
63
|
}
|
|
63
64
|
|
|
64
65
|
message Scan {
|
|
@@ -108,10 +109,9 @@ message CreateOrderParams {
|
|
|
108
109
|
string type = 5;
|
|
109
110
|
string promotionCode = 6;
|
|
110
111
|
repeated OrderCustomField customFields = 7;
|
|
111
|
-
string
|
|
112
|
-
string
|
|
113
|
-
string
|
|
114
|
-
string ipAddress = 11;
|
|
112
|
+
string paymentMethodType = 8;
|
|
113
|
+
string holdToken = 9;
|
|
114
|
+
string ipAddress = 10;
|
|
115
115
|
}
|
|
116
116
|
|
|
117
117
|
message CreateOrderTicketParams {
|
|
@@ -327,6 +327,21 @@ message QueryOrderAnalyticsResponse {
|
|
|
327
327
|
repeated Analytics analytics = 2;
|
|
328
328
|
}
|
|
329
329
|
|
|
330
|
+
/****************************************************************************************
|
|
331
|
+
Break Apart Order
|
|
332
|
+
****************************************************************************************/
|
|
333
|
+
|
|
334
|
+
message BreakApartOrderRequest {
|
|
335
|
+
string spanContext = 0;
|
|
336
|
+
string orderId = 1;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
message BreakApartOrderResponse {
|
|
340
|
+
StatusCode status = 0;
|
|
341
|
+
repeated Error errors = 1;
|
|
342
|
+
Order order = 2;
|
|
343
|
+
}
|
|
344
|
+
|
|
330
345
|
service OrderService {
|
|
331
346
|
// Create
|
|
332
347
|
rpc createOrder(CreateOrderRequest) returns (CreateOrderResponse) {}
|
|
@@ -335,6 +350,7 @@ service OrderService {
|
|
|
335
350
|
rpc sendOrderReceiptEmail(SendOrderReceiptEmailRequest) returns (SendOrderReceiptEmailResponse) {}
|
|
336
351
|
rpc sendOrderRefundEmail(SendOrderRefundEmailRequest) returns (SendOrderRefundEmailResponse) {}
|
|
337
352
|
rpc scanOrder(ScanOrderRequest) returns (ScanOrderResponse) {}
|
|
353
|
+
rpc breakApartOrder(BreakApartOrderRequest) returns (BreakApartOrderResponse) {}
|
|
338
354
|
// Refund
|
|
339
355
|
rpc refundOrder(RefundOrderRequest) returns (RefundOrderResponse) {}
|
|
340
356
|
rpc refundEventOrders(RefundEventOrdersRequest) returns (RefundEventOrdersResponse) {}
|
package/src/proto/stripe.proto
CHANGED
|
@@ -22,7 +22,7 @@ message StripeCharge {
|
|
|
22
22
|
message StripeCustomer {
|
|
23
23
|
string stripeCustomerId = 0;
|
|
24
24
|
string email = 1;
|
|
25
|
-
repeated
|
|
25
|
+
repeated StripePaymentMethod paymentMethods = 2;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
28
|
message StripeSource {
|
|
@@ -36,6 +36,17 @@ message StripeSource {
|
|
|
36
36
|
string type = 7;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
+
message StripePaymentMethod {
|
|
40
|
+
string paymentMethodId = 0;
|
|
41
|
+
string brand = 1;
|
|
42
|
+
string last4 = 2;
|
|
43
|
+
string expMonth = 3;
|
|
44
|
+
string expYear = 4;
|
|
45
|
+
string funding = 5;
|
|
46
|
+
string country = 6;
|
|
47
|
+
string type = 7;
|
|
48
|
+
}
|
|
49
|
+
|
|
39
50
|
/***************************************************************************************
|
|
40
51
|
Connect Account
|
|
41
52
|
****************************************************************************************/
|
|
@@ -122,7 +133,6 @@ message RetrieveStripeChargeResponse {
|
|
|
122
133
|
message CreateStripeCustomerRequest {
|
|
123
134
|
string spanContext = 0;
|
|
124
135
|
string userId = 1;
|
|
125
|
-
string stripeToken = 2;
|
|
126
136
|
}
|
|
127
137
|
|
|
128
138
|
message CreateStripeCustomerResponse {
|
|
@@ -189,7 +199,7 @@ message AttachStripePaymentMethodRequest {
|
|
|
189
199
|
message AttachStripePaymentMethodResponse {
|
|
190
200
|
StatusCode status = 0;
|
|
191
201
|
repeated Error errors = 1;
|
|
192
|
-
|
|
202
|
+
StripePaymentMethod paymentMethod = 2;
|
|
193
203
|
}
|
|
194
204
|
|
|
195
205
|
/***************************************************************************************
|
|
@@ -210,6 +220,7 @@ message CreateStripePaymentIntentRequest {
|
|
|
210
220
|
int32 feeAmount = 5;
|
|
211
221
|
string description = 6;
|
|
212
222
|
string currency = 7;
|
|
223
|
+
string paymentMethodId = 8;
|
|
213
224
|
}
|
|
214
225
|
|
|
215
226
|
message CreateStripePaymentIntentResponse {
|
package/src/schemas/Order.ts
CHANGED
|
@@ -82,6 +82,11 @@ const OrderTicket = {
|
|
|
82
82
|
type: String,
|
|
83
83
|
required: true,
|
|
84
84
|
},
|
|
85
|
+
qrCodeUrl: {
|
|
86
|
+
type: String,
|
|
87
|
+
required: false,
|
|
88
|
+
default: null,
|
|
89
|
+
},
|
|
85
90
|
};
|
|
86
91
|
|
|
87
92
|
const OrderUpgrade = {
|
|
@@ -118,6 +123,11 @@ const OrderUpgrade = {
|
|
|
118
123
|
type: String,
|
|
119
124
|
required: true,
|
|
120
125
|
},
|
|
126
|
+
qrCodeUrl: {
|
|
127
|
+
type: String,
|
|
128
|
+
required: false,
|
|
129
|
+
default: null,
|
|
130
|
+
},
|
|
121
131
|
};
|
|
122
132
|
|
|
123
133
|
const OrderCustomField = {
|
|
@@ -280,10 +290,6 @@ export default {
|
|
|
280
290
|
type: String,
|
|
281
291
|
required: true,
|
|
282
292
|
},
|
|
283
|
-
deliveryMethod: {
|
|
284
|
-
type: String,
|
|
285
|
-
required: true,
|
|
286
|
-
},
|
|
287
293
|
address: Address,
|
|
288
294
|
customFields: [OrderCustomField],
|
|
289
295
|
payments: [Payment],
|