@driveflux/api-functions 1.0.77-next.0 → 1.0.77
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/auth/confirm.d.ts +5 -2
- package/dist/auth/confirm.d.ts.map +1 -1
- package/dist/auth/confirm.js +52 -36
- package/dist/auth/confirm.js.map +1 -1
- package/dist/auth/consent.d.ts +17 -0
- package/dist/auth/consent.d.ts.map +1 -0
- package/dist/auth/consent.js +58 -0
- package/dist/auth/consent.js.map +1 -0
- package/dist/auth/emails.js +13 -12
- package/dist/auth/formatter.js +5 -5
- package/dist/auth/otp.js +51 -67
- package/dist/auth/otp.js.map +1 -1
- package/dist/auth/register.d.ts +10 -5
- package/dist/auth/register.d.ts.map +1 -1
- package/dist/auth/register.js +77 -74
- package/dist/auth/register.js.map +1 -1
- package/dist/auth/tokens.js +55 -58
- package/dist/auth/verifications.js +52 -53
- package/dist/constants.js +1 -0
- package/dist/create-logger.js +2 -1
- package/dist/mailjet/calls/manage-contacts-in-list.js +6 -5
- package/dist/mailjet/calls/manage-subscription-status.js +5 -4
- package/dist/mailjet/calls/request-service.js +6 -7
- package/dist/mailjet/refresh-email-preferences.js +12 -11
- package/dist/mailjet/set-contact.js +12 -11
- package/dist/mailjet/types.js +2 -1
- package/dist/mailjet/utils/convert-to-array.js +6 -8
- package/dist/mailjet/utils/extract-email-preferences.js +15 -14
- package/dist/mailjet/utils/lists.js +8 -7
- package/dist/mailjet/utils/update-email-references.js +15 -16
- package/dist/notion/client.js +19 -22
- package/dist/notion/helpful.js +9 -6
- package/dist/notion/schemas/block.js +48 -42
- package/dist/notion/schemas/common.js +14 -9
- package/dist/notion/schemas/database.js +60 -62
- package/dist/notion/schemas/emoji.js +2 -1
- package/dist/notion/schemas/file.js +9 -9
- package/dist/notion/schemas/kb.js +6 -5
- package/dist/notion/schemas/page.js +61 -72
- package/dist/notion/schemas/parent.js +5 -4
- package/dist/notion/schemas/user.js +19 -18
- package/dist/reservation/agree.d.ts +2 -308
- package/dist/reservation/agree.d.ts.map +1 -1
- package/dist/reservation/agree.js +23 -21
- package/dist/reservation/agree.js.map +1 -1
- package/dist/reservation/checks.js +4 -3
- package/dist/reservation/display-vehicle.d.ts +36 -36
- package/dist/reservation/display-vehicle.js +83 -73
- package/dist/reservation/display-vehicle.js.map +1 -1
- package/dist/reservation/ensure-user-billing-address.js +11 -9
- package/dist/reservation/fetch-or-create.d.ts +1 -1
- package/dist/reservation/fetch-or-create.d.ts.map +1 -1
- package/dist/reservation/fetch-or-create.js +56 -51
- package/dist/reservation/fetch-or-create.js.map +1 -1
- package/dist/reservation/invoice.js +88 -77
- package/dist/reservation/payer.js +6 -5
- package/dist/reservation/payment-intent-sync.js +6 -4
- package/dist/reservation/reserve.d.ts.map +1 -1
- package/dist/reservation/reserve.js +9 -5
- package/dist/reservation/reserve.js.map +1 -1
- package/dist/reservation/types.d.ts +9 -1
- package/dist/reservation/types.d.ts.map +1 -1
- package/dist/reservation/types.js +2 -1
- package/dist/reservation/vehicle.js +16 -13
- package/dist/slack.js +29 -24
- package/dist/validation.js +79 -77
- package/dist/vehicle/vehicle-pricing/constants.js +19 -22
- package/dist/vehicle/vehicle-pricing/index.js +42 -28
- package/dist/vehicle/vehicle-pricing/types.js +2 -1
- package/package.json +10 -10
|
@@ -1,75 +1,73 @@
|
|
|
1
1
|
import { config } from '@driveflux/config/backend';
|
|
2
|
-
import { prisma } from '@driveflux/db';
|
|
2
|
+
import { prisma, } from '@driveflux/db';
|
|
3
3
|
import { generateId } from '@driveflux/db/id';
|
|
4
4
|
import { createPricingController } from '@driveflux/db/models/vehicle';
|
|
5
|
-
import { getFluxExcessMileage, getFluxPiceMatrix, getHostExcessMileage, getHostsMatrix, getRecommendedMotorcycleDeposit, getStartFeeMatrix } from '../vehicle/vehicle-pricing/index.js';
|
|
6
|
-
export const fetchDisplayVehicle = async (displayVehicle)=>{
|
|
7
|
-
return typeof displayVehicle === 'string'
|
|
8
|
-
where: {
|
|
9
|
-
|
|
10
|
-
}
|
|
11
|
-
}) : displayVehicle;
|
|
5
|
+
import { getFluxExcessMileage, getFluxPiceMatrix, getHostExcessMileage, getHostsMatrix, getRecommendedMotorcycleDeposit, getStartFeeMatrix, } from '../vehicle/vehicle-pricing/index.js';
|
|
6
|
+
export const fetchDisplayVehicle = async (displayVehicle) => {
|
|
7
|
+
return typeof displayVehicle === 'string'
|
|
8
|
+
? await prisma.displayVehicle.findFirst({ where: { id: displayVehicle } })
|
|
9
|
+
: displayVehicle;
|
|
12
10
|
};
|
|
13
|
-
export const createVehicleFromDisplayVehicle = async (displayVehicle, selectedColor)=>{
|
|
11
|
+
export const createVehicleFromDisplayVehicle = async (displayVehicle, selectedColor) => {
|
|
14
12
|
const dv = await fetchDisplayVehicle(displayVehicle);
|
|
15
|
-
if (!dv || typeof dv !== 'object')
|
|
16
|
-
|
|
17
|
-
|
|
13
|
+
if (!dv || typeof dv !== 'object')
|
|
14
|
+
return;
|
|
15
|
+
if (!dv.details)
|
|
16
|
+
return;
|
|
17
|
+
const mainImage = dv.images.main.find((m) => m.variant === selectedColor)?.url;
|
|
18
18
|
const vehicleData = {
|
|
19
19
|
id: generateId('Vehicle'),
|
|
20
20
|
...transformBasicVehicleData(dv),
|
|
21
21
|
images: [
|
|
22
|
-
...mainImage ? [
|
|
23
|
-
|
|
24
|
-
] : [],
|
|
25
|
-
...transformImages(dv.images)
|
|
22
|
+
...(mainImage ? [transfromSingleImage(mainImage)] : []),
|
|
23
|
+
...transformImages(dv.images),
|
|
26
24
|
],
|
|
27
25
|
...transformBasePrices(dv.pricing),
|
|
28
26
|
pricing: transformPriceMatrix(dv.type, dv.pricing),
|
|
29
27
|
details: transformDetails(dv.details, selectedColor),
|
|
30
28
|
host: {
|
|
31
29
|
connect: {
|
|
32
|
-
id: dv.defaultHostId
|
|
33
|
-
}
|
|
30
|
+
id: dv.defaultHostId,
|
|
31
|
+
},
|
|
34
32
|
},
|
|
35
33
|
displayVehicle: {
|
|
36
34
|
connect: {
|
|
37
|
-
id: dv.id
|
|
38
|
-
}
|
|
39
|
-
}
|
|
35
|
+
id: dv.id,
|
|
36
|
+
},
|
|
37
|
+
},
|
|
40
38
|
};
|
|
41
39
|
return await prisma.vehicle.create({
|
|
42
40
|
data: vehicleData,
|
|
43
41
|
include: {
|
|
44
|
-
host: true
|
|
45
|
-
}
|
|
42
|
+
host: true,
|
|
43
|
+
},
|
|
46
44
|
});
|
|
47
45
|
};
|
|
48
|
-
export const transfromVehicleDisplayToVehicle = async (displayVehicle, selectedColor)=>{
|
|
46
|
+
export const transfromVehicleDisplayToVehicle = async (displayVehicle, selectedColor) => {
|
|
49
47
|
const dv = await fetchDisplayVehicle(displayVehicle);
|
|
50
|
-
if (!dv || typeof dv !== 'object')
|
|
51
|
-
|
|
52
|
-
|
|
48
|
+
if (!dv || typeof dv !== 'object')
|
|
49
|
+
return;
|
|
50
|
+
if (!dv.details)
|
|
51
|
+
return;
|
|
52
|
+
const mainImage = dv.images.main.find((m) => m.variant === selectedColor)?.url;
|
|
53
53
|
return {
|
|
54
54
|
id: dv.id,
|
|
55
55
|
...transformBasicVehicleData(dv),
|
|
56
56
|
images: [
|
|
57
|
-
...mainImage ? [
|
|
58
|
-
|
|
59
|
-
] : [],
|
|
60
|
-
...transformImages(dv.images)
|
|
57
|
+
...(mainImage ? [transfromSingleImage(mainImage)] : []),
|
|
58
|
+
...transformImages(dv.images),
|
|
61
59
|
],
|
|
62
60
|
...transformBasePrices(dv.pricing),
|
|
63
61
|
pricing: transformPriceMatrix(dv.type, dv.pricing),
|
|
64
62
|
details: transformDetails(dv.details, selectedColor),
|
|
65
63
|
host: {
|
|
66
64
|
address: {
|
|
67
|
-
state: 'Kuala Lumpur'
|
|
68
|
-
}
|
|
69
|
-
}
|
|
65
|
+
state: 'Kuala Lumpur',
|
|
66
|
+
},
|
|
67
|
+
},
|
|
70
68
|
};
|
|
71
69
|
};
|
|
72
|
-
export const transformBasicVehicleData = (dv)=>{
|
|
70
|
+
export const transformBasicVehicleData = (dv) => {
|
|
73
71
|
return {
|
|
74
72
|
registrationNumber: null,
|
|
75
73
|
featured: false,
|
|
@@ -87,20 +85,22 @@ export const transformBasicVehicleData = (dv)=>{
|
|
|
87
85
|
type: dv.type,
|
|
88
86
|
niceName: `${dv.make} ${dv.vehicleModel} ${dv.variant} ${dv.year}`,
|
|
89
87
|
niceNameShort: `${dv.make} ${dv.vehicleModel}`,
|
|
90
|
-
appliedCoupon: dv.appliedCoupon
|
|
88
|
+
appliedCoupon: dv.appliedCoupon,
|
|
91
89
|
};
|
|
92
90
|
};
|
|
93
|
-
export const transformImages = (images)=>{
|
|
94
|
-
const exterior = images.exterior[0]?.url
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
91
|
+
export const transformImages = (images) => {
|
|
92
|
+
const exterior = images.exterior[0]?.url
|
|
93
|
+
? transfromSingleImage(images.exterior[0].url, 'exterior')
|
|
94
|
+
: null;
|
|
95
|
+
const interior = images.interior[0]?.url
|
|
96
|
+
? transfromSingleImage(images.interior[0].url, 'interior')
|
|
97
|
+
: null;
|
|
98
|
+
const gallery = images.gallery
|
|
99
|
+
.map((i) => (i.url ? transfromSingleImage(i.url) : null))
|
|
100
|
+
.filter(Boolean);
|
|
101
|
+
return [exterior, interior, ...gallery].filter(Boolean);
|
|
102
102
|
};
|
|
103
|
-
const transfromSingleImage = (imageUrl, inspectionType)=>{
|
|
103
|
+
const transfromSingleImage = (imageUrl, inspectionType) => {
|
|
104
104
|
return {
|
|
105
105
|
default: imageUrl,
|
|
106
106
|
blurBase64: null,
|
|
@@ -111,20 +111,20 @@ const transfromSingleImage = (imageUrl, inspectionType)=>{
|
|
|
111
111
|
description: null,
|
|
112
112
|
inspection: !!inspectionType,
|
|
113
113
|
inspectionType: inspectionType || null,
|
|
114
|
-
notActualPhoto: true
|
|
114
|
+
notActualPhoto: true,
|
|
115
115
|
};
|
|
116
116
|
};
|
|
117
|
-
const transformBasePrices = (pricing)=>{
|
|
117
|
+
const transformBasePrices = (pricing) => {
|
|
118
118
|
return {
|
|
119
119
|
basePrice: pricing.matrix.plan36.lite,
|
|
120
120
|
basePricePlan1: pricing.matrix.plan1.lite,
|
|
121
121
|
basePricePlan12: pricing.matrix.plan12.lite,
|
|
122
122
|
basePricePlan24: pricing.matrix.plan24.lite,
|
|
123
123
|
basePricePlan36: pricing.matrix.plan36.lite,
|
|
124
|
-
basePricePlan60: pricing.matrix.plan60.lite
|
|
124
|
+
basePricePlan60: pricing.matrix.plan60.lite,
|
|
125
125
|
};
|
|
126
126
|
};
|
|
127
|
-
const transformPriceMatrix = (vehicleType, pricing)=>{
|
|
127
|
+
const transformPriceMatrix = (vehicleType, pricing) => {
|
|
128
128
|
const baseline = pricing?.matrix.plan36.lite;
|
|
129
129
|
const ultraTier = 'tier1';
|
|
130
130
|
const fluxPriceCoefficient = 25;
|
|
@@ -137,14 +137,18 @@ const transformPriceMatrix = (vehicleType, pricing)=>{
|
|
|
137
137
|
const { availablePlans, availableMileagePackages } = getNonZeroKeys(priceMatrix);
|
|
138
138
|
const pricingController = createPricingController({
|
|
139
139
|
coefficient: fluxPriceCoefficient,
|
|
140
|
-
vehicleType
|
|
140
|
+
vehicleType,
|
|
141
141
|
});
|
|
142
142
|
const startFeeMatrix = excludeServiceFeesFrom(getStartFeeMatrix(pricingController, baseline, flatPricing));
|
|
143
143
|
const hostMatrix = excludeServiceFeesFrom(getHostsMatrix(pricingController, baseline, ultraTier, flatPricing));
|
|
144
144
|
const hostExcessMileage = getHostExcessMileage(pricingController, baseline);
|
|
145
|
-
const fluxPriceMatrix = pricing.keepPricingIntact
|
|
145
|
+
const fluxPriceMatrix = pricing.keepPricingIntact
|
|
146
|
+
? priceMatrix
|
|
147
|
+
: excludeServiceFeesFrom(getFluxPiceMatrix(pricingController, vehicleType, baseline, hostMatrix, ultraTier, flatPricing));
|
|
146
148
|
const fluxExcessMileage = getFluxExcessMileage(pricingController, baseline);
|
|
147
|
-
const recommendedDeposit = pricing.refundableDeposit || vehicleType === 'motorcycle'
|
|
149
|
+
const recommendedDeposit = pricing.refundableDeposit || vehicleType === 'motorcycle'
|
|
150
|
+
? getRecommendedMotorcycleDeposit(baseline)
|
|
151
|
+
: null;
|
|
148
152
|
return {
|
|
149
153
|
tmv,
|
|
150
154
|
gfv,
|
|
@@ -163,31 +167,31 @@ const transformPriceMatrix = (vehicleType, pricing)=>{
|
|
|
163
167
|
excessMileage: fluxExcessMileage,
|
|
164
168
|
originalExcessMileage: fluxExcessMileage,
|
|
165
169
|
matrixComments: null,
|
|
166
|
-
add: null
|
|
170
|
+
add: null,
|
|
167
171
|
},
|
|
168
172
|
hostTake: {
|
|
169
173
|
matrix: hostMatrix,
|
|
170
174
|
originalMatrix: hostMatrix,
|
|
171
175
|
excessMileage: hostExcessMileage,
|
|
172
176
|
originalExcessMileage: hostExcessMileage,
|
|
173
|
-
matrixComments: null
|
|
177
|
+
matrixComments: null,
|
|
174
178
|
},
|
|
175
179
|
startFee: {
|
|
176
180
|
matrix: startFeeMatrix,
|
|
177
181
|
originalMatrix: startFeeMatrix,
|
|
178
|
-
matrixComments: null
|
|
179
|
-
}
|
|
182
|
+
matrixComments: null,
|
|
183
|
+
},
|
|
180
184
|
};
|
|
181
185
|
};
|
|
182
|
-
const getNonZeroKeys = (matrix)=>{
|
|
186
|
+
const getNonZeroKeys = (matrix) => {
|
|
183
187
|
const planKeys = new Set();
|
|
184
188
|
const mileageKeys = new Set();
|
|
185
|
-
for (const [plan, mileageMap] of Object.entries(matrix)){
|
|
189
|
+
for (const [plan, mileageMap] of Object.entries(matrix)) {
|
|
186
190
|
const entries = Object.entries(mileageMap ?? {});
|
|
187
|
-
const hasNonZero = entries.some(([_, value])=>(value ?? 0) > 0);
|
|
191
|
+
const hasNonZero = entries.some(([_, value]) => (value ?? 0) > 0);
|
|
188
192
|
if (hasNonZero) {
|
|
189
193
|
planKeys.add(plan);
|
|
190
|
-
for (const [mileage, value] of entries){
|
|
194
|
+
for (const [mileage, value] of entries) {
|
|
191
195
|
if ((value ?? 0) > 0) {
|
|
192
196
|
mileageKeys.add(mileage);
|
|
193
197
|
}
|
|
@@ -196,20 +200,20 @@ const getNonZeroKeys = (matrix)=>{
|
|
|
196
200
|
}
|
|
197
201
|
return {
|
|
198
202
|
availablePlans: Array.from(planKeys),
|
|
199
|
-
availableMileagePackages: Array.from(mileageKeys)
|
|
203
|
+
availableMileagePackages: Array.from(mileageKeys),
|
|
200
204
|
};
|
|
201
205
|
};
|
|
202
|
-
const _getInspection = ()=>{
|
|
206
|
+
const _getInspection = () => {
|
|
203
207
|
return {
|
|
204
208
|
exterior: 5,
|
|
205
209
|
interior: 5,
|
|
206
210
|
engine: 5,
|
|
207
211
|
frame: 5,
|
|
208
212
|
total: 5,
|
|
209
|
-
comment: 'COMMENT HERE'
|
|
213
|
+
comment: 'COMMENT HERE',
|
|
210
214
|
};
|
|
211
215
|
};
|
|
212
|
-
const transformDetails = (details, selectColor)=>{
|
|
216
|
+
const transformDetails = (details, selectColor) => {
|
|
213
217
|
const color = selectColor || details.colors[0].name || '';
|
|
214
218
|
return {
|
|
215
219
|
numberOfSeats: details.numberOfSeats,
|
|
@@ -217,25 +221,31 @@ const transformDetails = (details, selectColor)=>{
|
|
|
217
221
|
bodyType: details.bodyType,
|
|
218
222
|
transmission: details.transmission,
|
|
219
223
|
engineType: details.fuelType,
|
|
220
|
-
engineCapacity: details.fuelType === 'electric'
|
|
224
|
+
engineCapacity: details.fuelType === 'electric'
|
|
225
|
+
? details.batteryCapacity
|
|
226
|
+
: details.engineCapacity,
|
|
221
227
|
drivetrain: details.drivetrain,
|
|
222
228
|
accelerationTo100km: details.accelerationTo100km,
|
|
223
229
|
fuelConsumptionLitersPer100Km: details.fuelConsumptionLitersPer100Km,
|
|
224
230
|
color,
|
|
225
231
|
features: details.features,
|
|
226
|
-
condition: 'new'
|
|
232
|
+
condition: 'new',
|
|
227
233
|
};
|
|
228
234
|
};
|
|
229
|
-
const excludeServiceFeesFrom = (originalMatrix)=>{
|
|
235
|
+
const excludeServiceFeesFrom = (originalMatrix) => {
|
|
230
236
|
const matrix = {};
|
|
231
|
-
for (const [planKey, planValue] of Object.entries(originalMatrix)){
|
|
232
|
-
if (!planValue)
|
|
233
|
-
|
|
234
|
-
|
|
237
|
+
for (const [planKey, planValue] of Object.entries(originalMatrix)) {
|
|
238
|
+
if (!planValue)
|
|
239
|
+
continue;
|
|
240
|
+
if (!matrix[planKey])
|
|
241
|
+
matrix[planKey] = {};
|
|
242
|
+
for (const [mileageKey, price] of Object.entries(planValue)) {
|
|
235
243
|
if (typeof price === 'number') {
|
|
236
|
-
matrix[planKey][mileageKey] =
|
|
244
|
+
matrix[planKey][mileageKey] =
|
|
245
|
+
price / (1 + config.taxRate);
|
|
237
246
|
}
|
|
238
247
|
}
|
|
239
248
|
}
|
|
240
249
|
return matrix;
|
|
241
250
|
};
|
|
251
|
+
//# sourceMappingURL=display-vehicle.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"display-vehicle.js","sourceRoot":"","sources":["../../src/reservation/display-vehicle.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"display-vehicle.js","sourceRoot":"","sources":["../../src/reservation/display-vehicle.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,27 +3,29 @@ import { makeProblem, PROBLEM_INTERNAL } from '@driveflux/problem';
|
|
|
3
3
|
import { Err, Ok } from '@driveflux/result';
|
|
4
4
|
import { createScopedLogger } from '../create-logger.js';
|
|
5
5
|
const log = createScopedLogger('reservation:ensure-user-billing-address');
|
|
6
|
-
export const ensureUserBillingAddress = async (userOrBusiness, deliveryAddresses)=>{
|
|
6
|
+
export const ensureUserBillingAddress = async (userOrBusiness, deliveryAddresses) => {
|
|
7
7
|
if (userOrBusiness.addresses?.billing) {
|
|
8
8
|
return new Ok(userOrBusiness);
|
|
9
9
|
}
|
|
10
10
|
try {
|
|
11
11
|
const fullQuery = {
|
|
12
|
-
where: {
|
|
13
|
-
id: userOrBusiness.id
|
|
14
|
-
},
|
|
12
|
+
where: { id: userOrBusiness.id },
|
|
15
13
|
data: {
|
|
16
14
|
addresses: {
|
|
17
15
|
home: deliveryAddresses.home,
|
|
18
|
-
billing: deliveryAddresses.billing
|
|
19
|
-
}
|
|
20
|
-
}
|
|
16
|
+
billing: deliveryAddresses.billing,
|
|
17
|
+
},
|
|
18
|
+
},
|
|
21
19
|
};
|
|
22
20
|
// Use the delivery addresses
|
|
23
|
-
const updatedUserOrBusiness = userOrBusiness.object === 'user'
|
|
21
|
+
const updatedUserOrBusiness = userOrBusiness.object === 'user'
|
|
22
|
+
? await prisma.user.update(fullQuery)
|
|
23
|
+
: await prisma.business.update(fullQuery);
|
|
24
24
|
return new Ok(updatedUserOrBusiness);
|
|
25
|
-
}
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
26
27
|
log.error(error, 'Failed to ensure user billing address');
|
|
27
28
|
return new Err(makeProblem(PROBLEM_INTERNAL, 'Failed to ensure user billing address'));
|
|
28
29
|
}
|
|
29
30
|
};
|
|
31
|
+
//# sourceMappingURL=ensure-user-billing-address.js.map
|
|
@@ -4,7 +4,7 @@ import type { ReserveVehicleParams } from './types.js';
|
|
|
4
4
|
type FetchOrCreateReservationParams = {
|
|
5
5
|
vehicle: Pick<Vehicle, 'id' | 'make' | 'vehicleModel' | 'variant' | 'year' | 'type' | 'pricing'>;
|
|
6
6
|
payer: User | Business;
|
|
7
|
-
body: Pick<ReserveVehicleParams, 'subscribingUser' | 'plan' | 'mileagePackage' | 'couponCode' | 'referralCode' | 'asBusiness' | 'source' | 'paymentIntentId' | 'analytics' | 'deliveryAddresses' | 'deliveryDate' | 'requestUser' | '
|
|
7
|
+
body: Pick<ReserveVehicleParams, 'subscribingUser' | 'plan' | 'mileagePackage' | 'couponCode' | 'referralCode' | 'asBusiness' | 'source' | 'paymentIntentId' | 'analytics' | 'deliveryAddresses' | 'deliveryDate' | 'requestUser' | 'freeReservation' | 'freeReservationReason' | 'fullBooking'>;
|
|
8
8
|
};
|
|
9
9
|
export declare const fetchOrCreateReservation: ({ vehicle, payer, body, }: FetchOrCreateReservationParams) => PromisedResult<SubscriptionReservation & {
|
|
10
10
|
invoice: Invoice;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-or-create.d.ts","sourceRoot":"","sources":["../../src/reservation/fetch-or-create.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,QAAQ,EACb,KAAK,OAAO,EAGZ,KAAK,uBAAuB,EAC5B,KAAK,IAAI,EACT,KAAK,OAAO,EACZ,MAAM,eAAe,CAAA;AAItB,OAAO,EAAW,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAMhE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEtD,KAAK,8BAA8B,GAAG;IACrC,OAAO,EAAE,IAAI,CACZ,OAAO,EACP,IAAI,GAAG,MAAM,GAAG,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CACxE,CAAA;IACD,KAAK,EAAE,IAAI,GAAG,QAAQ,CAAA;IACtB,IAAI,EAAE,IAAI,CACT,oBAAoB,EAClB,iBAAiB,GACjB,MAAM,GACN,gBAAgB,GAChB,YAAY,GACZ,cAAc,GACd,YAAY,GACZ,QAAQ,GACR,iBAAiB,GACjB,WAAW,GACX,mBAAmB,GACnB,cAAc,GACd,aAAa,GACb,
|
|
1
|
+
{"version":3,"file":"fetch-or-create.d.ts","sourceRoot":"","sources":["../../src/reservation/fetch-or-create.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,QAAQ,EACb,KAAK,OAAO,EAGZ,KAAK,uBAAuB,EAC5B,KAAK,IAAI,EACT,KAAK,OAAO,EACZ,MAAM,eAAe,CAAA;AAItB,OAAO,EAAW,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAA;AAMhE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEtD,KAAK,8BAA8B,GAAG;IACrC,OAAO,EAAE,IAAI,CACZ,OAAO,EACP,IAAI,GAAG,MAAM,GAAG,cAAc,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CACxE,CAAA;IACD,KAAK,EAAE,IAAI,GAAG,QAAQ,CAAA;IACtB,IAAI,EAAE,IAAI,CACT,oBAAoB,EAClB,iBAAiB,GACjB,MAAM,GACN,gBAAgB,GAChB,YAAY,GACZ,cAAc,GACd,YAAY,GACZ,QAAQ,GACR,iBAAiB,GACjB,WAAW,GACX,mBAAmB,GACnB,cAAc,GACd,aAAa,GACb,iBAAiB,GACjB,uBAAuB,GACvB,aAAa,CACf,CAAA;CACD,CAAA;AAED,eAAO,MAAM,wBAAwB,GAAU,2BAI5C,8BAA8B,KAAG,cAAc,CACjD,uBAAuB,GAAG;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CA6J9C,CAAA"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { prisma } from '@driveflux/db';
|
|
1
|
+
import { prisma, } from '@driveflux/db';
|
|
2
2
|
import { generateId } from '@driveflux/db/id';
|
|
3
3
|
import { makeProblem, PROBLEM_UNKNOWN } from '@driveflux/problem';
|
|
4
4
|
import { reportError } from '@driveflux/reporter';
|
|
5
5
|
import { Err, Ok } from '@driveflux/result';
|
|
6
6
|
import { slackLater } from '../slack.js';
|
|
7
|
-
import { createReservationInvoice, updateReservationInvoiceIfNeeded } from './invoice.js';
|
|
8
|
-
export const fetchOrCreateReservation = async ({ vehicle, payer, body })=>{
|
|
9
|
-
const { subscribingUser, plan, mileagePackage, couponCode, referralCode, asBusiness, source, deliveryAddresses, deliveryDate, analytics, paymentIntentId, freeReservation, freeReservationReason, fullBooking } = body;
|
|
7
|
+
import { createReservationInvoice, updateReservationInvoiceIfNeeded, } from './invoice.js';
|
|
8
|
+
export const fetchOrCreateReservation = async ({ vehicle, payer, body, }) => {
|
|
9
|
+
const { subscribingUser, plan, mileagePackage, couponCode, referralCode, asBusiness, source, deliveryAddresses, deliveryDate, analytics, paymentIntentId, freeReservation, freeReservationReason, fullBooking, } = body;
|
|
10
10
|
try {
|
|
11
11
|
const previousReservation = await prisma.subscriptionReservation.findFirst({
|
|
12
12
|
where: {
|
|
@@ -20,17 +20,15 @@ export const fetchOrCreateReservation = async ({ vehicle, payer, body })=>{
|
|
|
20
20
|
source,
|
|
21
21
|
// If the subscription ID was populated, this means that this reservation was consumed into a subsription,
|
|
22
22
|
// so we shouldn't re-use it
|
|
23
|
-
subscription: null
|
|
23
|
+
subscription: null,
|
|
24
24
|
},
|
|
25
25
|
orderBy: {
|
|
26
|
-
updatedAt: 'desc'
|
|
26
|
+
updatedAt: 'desc',
|
|
27
27
|
},
|
|
28
28
|
include: {
|
|
29
|
-
invoice: true
|
|
30
|
-
}
|
|
29
|
+
invoice: true,
|
|
30
|
+
},
|
|
31
31
|
});
|
|
32
|
-
console.log('Previous reservation', previousReservation);
|
|
33
|
-
console.log('Previous reservation amount', previousReservation?.invoice.total);
|
|
34
32
|
if (previousReservation) {
|
|
35
33
|
if (previousReservation.invoice.voided) {
|
|
36
34
|
return recreateReservationInvoiceAndUpdateReservation(previousReservation, body, vehicle, payer);
|
|
@@ -42,7 +40,7 @@ export const fetchOrCreateReservation = async ({ vehicle, payer, body })=>{
|
|
|
42
40
|
'partiallyPaid',
|
|
43
41
|
'partiallyRefunded',
|
|
44
42
|
'refunded',
|
|
45
|
-
'pendingRefund'
|
|
43
|
+
'pendingRefund',
|
|
46
44
|
];
|
|
47
45
|
if (wrongStatuses.includes(previousReservation.invoice.status)) {
|
|
48
46
|
const updatedReservation = await recreateReservationInvoiceAndUpdateReservation(previousReservation, body, vehicle, payer);
|
|
@@ -55,16 +53,16 @@ export const fetchOrCreateReservation = async ({ vehicle, payer, body })=>{
|
|
|
55
53
|
text: {
|
|
56
54
|
type: 'plain_text',
|
|
57
55
|
text: '‼️ Reservation invoice in wrong status',
|
|
58
|
-
emoji: true
|
|
59
|
-
}
|
|
56
|
+
emoji: true,
|
|
57
|
+
},
|
|
60
58
|
},
|
|
61
59
|
{
|
|
62
60
|
type: 'section',
|
|
63
61
|
text: {
|
|
64
62
|
type: 'plain_text',
|
|
65
|
-
text: `The reservation invoice ${previousReservation.invoice.id} was in a wrong status (${previousReservation.invoice.status}), it was discarded and a new invoice (${updatedReservation.val.id}) was created, however, investigate the issue
|
|
66
|
-
}
|
|
67
|
-
}
|
|
63
|
+
text: `The reservation invoice ${previousReservation.invoice.id} was in a wrong status (${previousReservation.invoice.status}), it was discarded and a new invoice (${updatedReservation.val.id}) was created, however, investigate the issue.`,
|
|
64
|
+
},
|
|
65
|
+
},
|
|
68
66
|
]);
|
|
69
67
|
return updatedReservation;
|
|
70
68
|
}
|
|
@@ -76,7 +74,8 @@ export const fetchOrCreateReservation = async ({ vehicle, payer, body })=>{
|
|
|
76
74
|
// Otherwise, we need to create a new reservation
|
|
77
75
|
return new Ok(previousReservation);
|
|
78
76
|
}
|
|
79
|
-
}
|
|
77
|
+
}
|
|
78
|
+
catch (error) {
|
|
80
79
|
// We couldn't fetch the reservation, so we create a new one and just log this
|
|
81
80
|
await reportError(error);
|
|
82
81
|
}
|
|
@@ -97,7 +96,7 @@ export const fetchOrCreateReservation = async ({ vehicle, payer, body })=>{
|
|
|
97
96
|
vehicle,
|
|
98
97
|
payer,
|
|
99
98
|
subscribingUser,
|
|
100
|
-
fullBooking
|
|
99
|
+
fullBooking,
|
|
101
100
|
});
|
|
102
101
|
if (invoiceResult.err) {
|
|
103
102
|
return invoiceResult;
|
|
@@ -116,10 +115,11 @@ export const fetchOrCreateReservation = async ({ vehicle, payer, body })=>{
|
|
|
116
115
|
deliveryAddresses,
|
|
117
116
|
deliveryDate,
|
|
118
117
|
asBusiness,
|
|
119
|
-
source
|
|
118
|
+
source,
|
|
120
119
|
});
|
|
121
120
|
return new Ok(reservation);
|
|
122
|
-
}
|
|
121
|
+
}
|
|
122
|
+
catch (e) {
|
|
123
123
|
await reportError(e);
|
|
124
124
|
if (typeof e === 'object' && e && 'message' in e && e.message) {
|
|
125
125
|
return new Err(makeProblem(PROBLEM_UNKNOWN, e.message));
|
|
@@ -127,62 +127,66 @@ export const fetchOrCreateReservation = async ({ vehicle, payer, body })=>{
|
|
|
127
127
|
return new Err(makeProblem(PROBLEM_UNKNOWN, 'Unknown error'));
|
|
128
128
|
}
|
|
129
129
|
};
|
|
130
|
-
const createReservation = async ({ reservationId, invoiceId, subscribingUserId, vehicleId, businessId, plan, mileagePackage, couponCode, referralCode, analytics, deliveryAddresses, deliveryDate, asBusiness, source })=>{
|
|
130
|
+
const createReservation = async ({ reservationId, invoiceId, subscribingUserId, vehicleId, businessId, plan, mileagePackage, couponCode, referralCode, analytics, deliveryAddresses, deliveryDate, asBusiness, source, }) => {
|
|
131
131
|
return await prisma.subscriptionReservation.create({
|
|
132
132
|
data: {
|
|
133
133
|
id: reservationId,
|
|
134
134
|
invoice: {
|
|
135
135
|
connect: {
|
|
136
|
-
id: invoiceId
|
|
137
|
-
}
|
|
136
|
+
id: invoiceId,
|
|
137
|
+
},
|
|
138
138
|
},
|
|
139
139
|
user: {
|
|
140
140
|
connect: {
|
|
141
|
-
id: subscribingUserId
|
|
142
|
-
}
|
|
141
|
+
id: subscribingUserId,
|
|
142
|
+
},
|
|
143
143
|
},
|
|
144
144
|
vehicle: {
|
|
145
145
|
connect: {
|
|
146
|
-
id: vehicleId
|
|
147
|
-
}
|
|
146
|
+
id: vehicleId,
|
|
147
|
+
},
|
|
148
148
|
},
|
|
149
|
-
...businessId
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
149
|
+
...(businessId
|
|
150
|
+
? {
|
|
151
|
+
business: {
|
|
152
|
+
connect: {
|
|
153
|
+
id: businessId,
|
|
154
|
+
},
|
|
155
|
+
},
|
|
154
156
|
}
|
|
155
|
-
|
|
157
|
+
: undefined),
|
|
156
158
|
plan,
|
|
157
159
|
mileagePackage,
|
|
158
160
|
couponCode: couponCode,
|
|
159
161
|
deliveryAddresses: deliveryAddresses,
|
|
160
162
|
deliveryDate: deliveryDate,
|
|
161
|
-
...referralCode
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
163
|
+
...(referralCode
|
|
164
|
+
? {
|
|
165
|
+
referral: {
|
|
166
|
+
connect: {
|
|
167
|
+
id: referralCode,
|
|
168
|
+
},
|
|
169
|
+
},
|
|
166
170
|
}
|
|
167
|
-
|
|
171
|
+
: undefined),
|
|
168
172
|
asBusiness: !!asBusiness,
|
|
169
173
|
source,
|
|
170
174
|
metadata: {
|
|
171
|
-
analytics
|
|
172
|
-
}
|
|
175
|
+
analytics,
|
|
176
|
+
},
|
|
173
177
|
},
|
|
174
178
|
include: {
|
|
175
|
-
invoice: true
|
|
176
|
-
}
|
|
179
|
+
invoice: true,
|
|
180
|
+
},
|
|
177
181
|
});
|
|
178
182
|
};
|
|
179
|
-
const recreateReservationInvoiceAndUpdateReservation = async (previousReservation, body, vehicle, payer)=>{
|
|
183
|
+
const recreateReservationInvoiceAndUpdateReservation = async (previousReservation, body, vehicle, payer) => {
|
|
180
184
|
const invoiceResult = await createReservationInvoice({
|
|
181
185
|
...body,
|
|
182
186
|
invoiceId: generateId('Invoice'),
|
|
183
187
|
reservationId: previousReservation.id,
|
|
184
188
|
vehicle,
|
|
185
|
-
payer
|
|
189
|
+
payer,
|
|
186
190
|
});
|
|
187
191
|
if (!invoiceResult.ok) {
|
|
188
192
|
return invoiceResult;
|
|
@@ -190,18 +194,19 @@ const recreateReservationInvoiceAndUpdateReservation = async (previousReservatio
|
|
|
190
194
|
const invoice = invoiceResult.val;
|
|
191
195
|
const updatedReservation = await prisma.subscriptionReservation.update({
|
|
192
196
|
where: {
|
|
193
|
-
id: previousReservation.id
|
|
197
|
+
id: previousReservation.id,
|
|
194
198
|
},
|
|
195
199
|
data: {
|
|
196
200
|
invoice: {
|
|
197
201
|
connect: {
|
|
198
|
-
id: invoice.id
|
|
199
|
-
}
|
|
200
|
-
}
|
|
202
|
+
id: invoice.id,
|
|
203
|
+
},
|
|
204
|
+
},
|
|
201
205
|
},
|
|
202
206
|
include: {
|
|
203
|
-
invoice: true
|
|
204
|
-
}
|
|
207
|
+
invoice: true,
|
|
208
|
+
},
|
|
205
209
|
});
|
|
206
210
|
return new Ok(updatedReservation);
|
|
207
211
|
};
|
|
212
|
+
//# sourceMappingURL=fetch-or-create.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fetch-or-create.js","sourceRoot":"","sources":["../../src/reservation/fetch-or-create.ts"],"names":[],"mappings":"AAAA,OAAO,EAIN,MAAM,GAIN,MAAM,eAAe,CAAA;AACtB,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AACjE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACjD,OAAO,EAAE,GAAG,EAAE,EAAE,EAAuB,MAAM,mBAAmB,CAAA;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EACN,wBAAwB,EACxB,gCAAgC,GAChC,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"fetch-or-create.js","sourceRoot":"","sources":["../../src/reservation/fetch-or-create.ts"],"names":[],"mappings":"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"}
|