@driveflux/api-functions 0.0.4 → 0.0.5

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.
Files changed (56) hide show
  1. package/dist/auth/confirm.js +327 -73
  2. package/dist/auth/emails.js +210 -43
  3. package/dist/auth/formatter.js +11 -11
  4. package/dist/auth/otp.js +392 -122
  5. package/dist/auth/register.js +396 -100
  6. package/dist/auth/tokens.js +430 -115
  7. package/dist/auth/verifications.js +512 -154
  8. package/dist/constants.js +4 -5
  9. package/dist/mailjet/calls/manage-contacts-in-list.js +166 -22
  10. package/dist/mailjet/calls/manage-subscription-status.js +153 -13
  11. package/dist/mailjet/calls/request-service.js +183 -18
  12. package/dist/mailjet/refresh-email-preferences.d.ts +10 -10
  13. package/dist/mailjet/refresh-email-preferences.d.ts.map +1 -1
  14. package/dist/mailjet/refresh-email-preferences.js +226 -27
  15. package/dist/mailjet/refresh-email-preferences.js.map +1 -1
  16. package/dist/mailjet/set-contact.d.ts +10 -10
  17. package/dist/mailjet/set-contact.d.ts.map +1 -1
  18. package/dist/mailjet/set-contact.js +215 -24
  19. package/dist/mailjet/set-contact.js.map +1 -1
  20. package/dist/mailjet/types.js +1 -2
  21. package/dist/mailjet/utils/convert-to-array.js +58 -9
  22. package/dist/mailjet/utils/extract-email-preferences.d.ts +8 -8
  23. package/dist/mailjet/utils/extract-email-preferences.d.ts.map +1 -1
  24. package/dist/mailjet/utils/extract-email-preferences.js +218 -42
  25. package/dist/mailjet/utils/extract-email-preferences.js.map +1 -1
  26. package/dist/mailjet/utils/lists.js +249 -30
  27. package/dist/mailjet/utils/update-email-references.js +208 -27
  28. package/dist/notion/client.js +197 -48
  29. package/dist/notion/helpful.js +170 -29
  30. package/dist/notion/schemas/block.js +43 -49
  31. package/dist/notion/schemas/common.js +14 -17
  32. package/dist/notion/schemas/database.js +159 -125
  33. package/dist/notion/schemas/emoji.js +2 -3
  34. package/dist/notion/schemas/file.js +10 -10
  35. package/dist/notion/schemas/kb.js +8 -9
  36. package/dist/notion/schemas/page.js +171 -126
  37. package/dist/notion/schemas/parent.js +8 -9
  38. package/dist/notion/schemas/user.js +20 -21
  39. package/dist/reservation/agree.js +158 -19
  40. package/dist/reservation/checks.js +178 -23
  41. package/dist/reservation/display-vehicle.js +514 -142
  42. package/dist/reservation/fetch-or-create.js +482 -197
  43. package/dist/reservation/invoice.js +496 -198
  44. package/dist/reservation/payer.js +177 -28
  45. package/dist/reservation/reserve.js +191 -31
  46. package/dist/reservation/types.js +1 -2
  47. package/dist/reservation/vehicle.js +186 -24
  48. package/dist/slack.js +273 -67
  49. package/dist/validation.d.ts +19 -13
  50. package/dist/validation.d.ts.map +1 -1
  51. package/dist/validation.js +144 -63
  52. package/dist/validation.js.map +1 -1
  53. package/dist/vehicle/vehicle-pricing/constants.js +36 -33
  54. package/dist/vehicle/vehicle-pricing/index.js +257 -99
  55. package/dist/vehicle/vehicle-pricing/types.js +1 -2
  56. package/package.json +9 -9
@@ -1,38 +1,187 @@
1
- import { prisma } from '@driveflux/db';
2
- import { makeProblem, PROBLEM_CONDITION_FAILED, PROBLEM_NOT_FOUND, } from '@driveflux/problem';
3
- import { Err, Ok } from '@driveflux/result';
4
- export const getPayer = async ({ subscribingUser, asBusiness, }) => {
5
- let business = null;
6
- let payer = subscribingUser;
7
- if (asBusiness) {
8
- if (!subscribingUser.businessId) {
9
- return new Err(makeProblem(PROBLEM_CONDITION_FAILED, 'You are not associated with any business'));
10
- }
11
- // load business
12
- business = await prisma.business.findUnique({
13
- where: {
14
- id: subscribingUser.businessId,
15
- },
1
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
2
+ try {
3
+ var info = gen[key](arg);
4
+ var value = info.value;
5
+ } catch (error) {
6
+ reject(error);
7
+ return;
8
+ }
9
+ if (info.done) {
10
+ resolve(value);
11
+ } else {
12
+ Promise.resolve(value).then(_next, _throw);
13
+ }
14
+ }
15
+ function _async_to_generator(fn) {
16
+ return function() {
17
+ var self = this, args = arguments;
18
+ return new Promise(function(resolve, reject) {
19
+ var gen = fn.apply(self, args);
20
+ function _next(value) {
21
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
22
+ }
23
+ function _throw(err) {
24
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
25
+ }
26
+ _next(undefined);
16
27
  });
17
- if (!business) {
18
- return new Err(makeProblem(PROBLEM_NOT_FOUND, `The business ${subscribingUser.businessId} was not found.`));
19
- }
20
- payer = business;
28
+ };
29
+ }
30
+ function _ts_generator(thisArg, body) {
31
+ var f, y, t, _ = {
32
+ label: 0,
33
+ sent: function() {
34
+ if (t[0] & 1) throw t[1];
35
+ return t[1];
36
+ },
37
+ trys: [],
38
+ ops: []
39
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
40
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
41
+ return this;
42
+ }), g;
43
+ function verb(n) {
44
+ return function(v) {
45
+ return step([
46
+ n,
47
+ v
48
+ ]);
49
+ };
21
50
  }
22
- // Sanity check
23
- const subscriberSanityResult = checkPayerObjectSanity(payer);
24
- if (subscriberSanityResult.err) {
25
- return subscriberSanityResult;
51
+ function step(op) {
52
+ if (f) throw new TypeError("Generator is already executing.");
53
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
54
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
55
+ if (y = 0, t) op = [
56
+ op[0] & 2,
57
+ t.value
58
+ ];
59
+ switch(op[0]){
60
+ case 0:
61
+ case 1:
62
+ t = op;
63
+ break;
64
+ case 4:
65
+ _.label++;
66
+ return {
67
+ value: op[1],
68
+ done: false
69
+ };
70
+ case 5:
71
+ _.label++;
72
+ y = op[1];
73
+ op = [
74
+ 0
75
+ ];
76
+ continue;
77
+ case 7:
78
+ op = _.ops.pop();
79
+ _.trys.pop();
80
+ continue;
81
+ default:
82
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
83
+ _ = 0;
84
+ continue;
85
+ }
86
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
87
+ _.label = op[1];
88
+ break;
89
+ }
90
+ if (op[0] === 6 && _.label < t[1]) {
91
+ _.label = t[1];
92
+ t = op;
93
+ break;
94
+ }
95
+ if (t && _.label < t[2]) {
96
+ _.label = t[2];
97
+ _.ops.push(op);
98
+ break;
99
+ }
100
+ if (t[2]) _.ops.pop();
101
+ _.trys.pop();
102
+ continue;
103
+ }
104
+ op = body.call(thisArg, _);
105
+ } catch (e) {
106
+ op = [
107
+ 6,
108
+ e
109
+ ];
110
+ y = 0;
111
+ } finally{
112
+ f = t = 0;
113
+ }
114
+ if (op[0] & 5) throw op[1];
115
+ return {
116
+ value: op[0] ? op[1] : void 0,
117
+ done: true
118
+ };
26
119
  }
27
- return new Ok(payer);
120
+ }
121
+ import { prisma } from '@driveflux/db';
122
+ import { makeProblem, PROBLEM_CONDITION_FAILED, PROBLEM_NOT_FOUND } from '@driveflux/problem';
123
+ import { Err, Ok } from '@driveflux/result';
124
+ export var getPayer = function(param) {
125
+ var subscribingUser = param.subscribingUser, asBusiness = param.asBusiness;
126
+ return _async_to_generator(function() {
127
+ var business, payer, subscriberSanityResult;
128
+ return _ts_generator(this, function(_state) {
129
+ switch(_state.label){
130
+ case 0:
131
+ business = null;
132
+ payer = subscribingUser;
133
+ if (!asBusiness) return [
134
+ 3,
135
+ 2
136
+ ];
137
+ if (!subscribingUser.businessId) {
138
+ return [
139
+ 2,
140
+ new Err(makeProblem(PROBLEM_CONDITION_FAILED, 'You are not associated with any business'))
141
+ ];
142
+ }
143
+ return [
144
+ 4,
145
+ prisma.business.findUnique({
146
+ where: {
147
+ id: subscribingUser.businessId
148
+ }
149
+ })
150
+ ];
151
+ case 1:
152
+ // load business
153
+ business = _state.sent();
154
+ if (!business) {
155
+ return [
156
+ 2,
157
+ new Err(makeProblem(PROBLEM_NOT_FOUND, "The business ".concat(subscribingUser.businessId, " was not found.")))
158
+ ];
159
+ }
160
+ payer = business;
161
+ _state.label = 2;
162
+ case 2:
163
+ // Sanity check
164
+ subscriberSanityResult = checkPayerObjectSanity(payer);
165
+ if (subscriberSanityResult.err) {
166
+ return [
167
+ 2,
168
+ subscriberSanityResult
169
+ ];
170
+ }
171
+ return [
172
+ 2,
173
+ new Ok(payer)
174
+ ];
175
+ }
176
+ });
177
+ })();
28
178
  };
29
- const checkPayerObjectSanity = (subscriber) => {
179
+ var checkPayerObjectSanity = function(subscriber) {
30
180
  if (!subscriber.email) {
31
- return new Err(makeProblem(PROBLEM_CONDITION_FAILED, `Subscriber ${subscriber.id} has no email. Please add a verified email first.`));
181
+ return new Err(makeProblem(PROBLEM_CONDITION_FAILED, "Subscriber ".concat(subscriber.id, " has no email. Please add a verified email first.")));
32
182
  }
33
183
  if (!subscriber.phoneNumber) {
34
- return new Err(makeProblem(PROBLEM_CONDITION_FAILED, `Subscriber ${subscriber.id} has no phone number. Please add a phone number first.`));
184
+ return new Err(makeProblem(PROBLEM_CONDITION_FAILED, "Subscriber ".concat(subscriber.id, " has no phone number. Please add a phone number first.")));
35
185
  }
36
186
  return new Ok(true);
37
187
  };
38
- //# sourceMappingURL=payer.js.map
@@ -1,44 +1,204 @@
1
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
2
+ try {
3
+ var info = gen[key](arg);
4
+ var value = info.value;
5
+ } catch (error) {
6
+ reject(error);
7
+ return;
8
+ }
9
+ if (info.done) {
10
+ resolve(value);
11
+ } else {
12
+ Promise.resolve(value).then(_next, _throw);
13
+ }
14
+ }
15
+ function _async_to_generator(fn) {
16
+ return function() {
17
+ var self = this, args = arguments;
18
+ return new Promise(function(resolve, reject) {
19
+ var gen = fn.apply(self, args);
20
+ function _next(value) {
21
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
22
+ }
23
+ function _throw(err) {
24
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
25
+ }
26
+ _next(undefined);
27
+ });
28
+ };
29
+ }
30
+ function _ts_generator(thisArg, body) {
31
+ var f, y, t, _ = {
32
+ label: 0,
33
+ sent: function() {
34
+ if (t[0] & 1) throw t[1];
35
+ return t[1];
36
+ },
37
+ trys: [],
38
+ ops: []
39
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
40
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
41
+ return this;
42
+ }), g;
43
+ function verb(n) {
44
+ return function(v) {
45
+ return step([
46
+ n,
47
+ v
48
+ ]);
49
+ };
50
+ }
51
+ function step(op) {
52
+ if (f) throw new TypeError("Generator is already executing.");
53
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
54
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
55
+ if (y = 0, t) op = [
56
+ op[0] & 2,
57
+ t.value
58
+ ];
59
+ switch(op[0]){
60
+ case 0:
61
+ case 1:
62
+ t = op;
63
+ break;
64
+ case 4:
65
+ _.label++;
66
+ return {
67
+ value: op[1],
68
+ done: false
69
+ };
70
+ case 5:
71
+ _.label++;
72
+ y = op[1];
73
+ op = [
74
+ 0
75
+ ];
76
+ continue;
77
+ case 7:
78
+ op = _.ops.pop();
79
+ _.trys.pop();
80
+ continue;
81
+ default:
82
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
83
+ _ = 0;
84
+ continue;
85
+ }
86
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
87
+ _.label = op[1];
88
+ break;
89
+ }
90
+ if (op[0] === 6 && _.label < t[1]) {
91
+ _.label = t[1];
92
+ t = op;
93
+ break;
94
+ }
95
+ if (t && _.label < t[2]) {
96
+ _.label = t[2];
97
+ _.ops.push(op);
98
+ break;
99
+ }
100
+ if (t[2]) _.ops.pop();
101
+ _.trys.pop();
102
+ continue;
103
+ }
104
+ op = body.call(thisArg, _);
105
+ } catch (e) {
106
+ op = [
107
+ 6,
108
+ e
109
+ ];
110
+ y = 0;
111
+ } finally{
112
+ f = t = 0;
113
+ }
114
+ if (op[0] & 5) throw op[1];
115
+ return {
116
+ value: op[0] ? op[1] : void 0,
117
+ done: true
118
+ };
119
+ }
120
+ }
1
121
  import { Ok } from '@driveflux/result';
2
122
  import { handleAgreeToTerms } from './agree';
3
123
  import { checkIfUserCanReserve } from './checks';
4
124
  import { fetchOrCreateReservation } from './fetch-or-create';
5
125
  import { getPayer } from './payer';
6
126
  import { getVehicle } from './vehicle';
7
- const processBody = (body) => {
127
+ var processBody = function(body) {
8
128
  // Switch mileage package
9
129
  if (body.plan === 'plan1' || body.plan === 'planWeekly') {
10
130
  body.mileagePackage = 'unlimited';
11
131
  }
12
132
  return body;
13
133
  };
14
- export const reserveVehicle = async (vehicleId, unprocessed) => {
15
- const body = processBody(unprocessed);
16
- // Agree to terms if not done yet
17
- await handleAgreeToTerms(body);
18
- // Check if the user can reserve
19
- const requesterAbility = await checkIfUserCanReserve(body);
20
- // Payer
21
- const payerResult = await getPayer(body);
22
- if (payerResult.err) {
23
- return payerResult;
24
- }
25
- const payer = payerResult.val;
26
- // Vehicle
27
- const vehicleResult = await getVehicle(vehicleId, body, requesterAbility);
28
- if (vehicleResult.err) {
29
- return vehicleResult;
30
- }
31
- const vehicle = vehicleResult.val;
32
- // Make or fetch the reservation
33
- const reservationResult = await fetchOrCreateReservation({
34
- vehicle,
35
- payer,
36
- body,
37
- });
38
- if (reservationResult.err) {
39
- return reservationResult;
40
- }
41
- const reservation = reservationResult.val;
42
- return new Ok(reservation);
134
+ export var reserveVehicle = function(vehicleId, unprocessed) {
135
+ return _async_to_generator(function() {
136
+ var body, requesterAbility, payerResult, payer, vehicleResult, vehicle, reservationResult, reservation;
137
+ return _ts_generator(this, function(_state) {
138
+ switch(_state.label){
139
+ case 0:
140
+ body = processBody(unprocessed);
141
+ // Agree to terms if not done yet
142
+ return [
143
+ 4,
144
+ handleAgreeToTerms(body)
145
+ ];
146
+ case 1:
147
+ _state.sent();
148
+ return [
149
+ 4,
150
+ checkIfUserCanReserve(body)
151
+ ];
152
+ case 2:
153
+ requesterAbility = _state.sent();
154
+ return [
155
+ 4,
156
+ getPayer(body)
157
+ ];
158
+ case 3:
159
+ payerResult = _state.sent();
160
+ if (payerResult.err) {
161
+ return [
162
+ 2,
163
+ payerResult
164
+ ];
165
+ }
166
+ payer = payerResult.val;
167
+ return [
168
+ 4,
169
+ getVehicle(vehicleId, body, requesterAbility)
170
+ ];
171
+ case 4:
172
+ vehicleResult = _state.sent();
173
+ if (vehicleResult.err) {
174
+ return [
175
+ 2,
176
+ vehicleResult
177
+ ];
178
+ }
179
+ vehicle = vehicleResult.val;
180
+ return [
181
+ 4,
182
+ fetchOrCreateReservation({
183
+ vehicle: vehicle,
184
+ payer: payer,
185
+ body: body
186
+ })
187
+ ];
188
+ case 5:
189
+ reservationResult = _state.sent();
190
+ if (reservationResult.err) {
191
+ return [
192
+ 2,
193
+ reservationResult
194
+ ];
195
+ }
196
+ reservation = reservationResult.val;
197
+ return [
198
+ 2,
199
+ new Ok(reservation)
200
+ ];
201
+ }
202
+ });
203
+ })();
43
204
  };
44
- //# sourceMappingURL=reserve.js.map
@@ -1,2 +1 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
1
+ export { };
@@ -1,32 +1,194 @@
1
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
2
+ try {
3
+ var info = gen[key](arg);
4
+ var value = info.value;
5
+ } catch (error) {
6
+ reject(error);
7
+ return;
8
+ }
9
+ if (info.done) {
10
+ resolve(value);
11
+ } else {
12
+ Promise.resolve(value).then(_next, _throw);
13
+ }
14
+ }
15
+ function _async_to_generator(fn) {
16
+ return function() {
17
+ var self = this, args = arguments;
18
+ return new Promise(function(resolve, reject) {
19
+ var gen = fn.apply(self, args);
20
+ function _next(value) {
21
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
22
+ }
23
+ function _throw(err) {
24
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
25
+ }
26
+ _next(undefined);
27
+ });
28
+ };
29
+ }
30
+ function _ts_generator(thisArg, body) {
31
+ var f, y, t, _ = {
32
+ label: 0,
33
+ sent: function() {
34
+ if (t[0] & 1) throw t[1];
35
+ return t[1];
36
+ },
37
+ trys: [],
38
+ ops: []
39
+ }, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
40
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() {
41
+ return this;
42
+ }), g;
43
+ function verb(n) {
44
+ return function(v) {
45
+ return step([
46
+ n,
47
+ v
48
+ ]);
49
+ };
50
+ }
51
+ function step(op) {
52
+ if (f) throw new TypeError("Generator is already executing.");
53
+ while(g && (g = 0, op[0] && (_ = 0)), _)try {
54
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
55
+ if (y = 0, t) op = [
56
+ op[0] & 2,
57
+ t.value
58
+ ];
59
+ switch(op[0]){
60
+ case 0:
61
+ case 1:
62
+ t = op;
63
+ break;
64
+ case 4:
65
+ _.label++;
66
+ return {
67
+ value: op[1],
68
+ done: false
69
+ };
70
+ case 5:
71
+ _.label++;
72
+ y = op[1];
73
+ op = [
74
+ 0
75
+ ];
76
+ continue;
77
+ case 7:
78
+ op = _.ops.pop();
79
+ _.trys.pop();
80
+ continue;
81
+ default:
82
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {
83
+ _ = 0;
84
+ continue;
85
+ }
86
+ if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {
87
+ _.label = op[1];
88
+ break;
89
+ }
90
+ if (op[0] === 6 && _.label < t[1]) {
91
+ _.label = t[1];
92
+ t = op;
93
+ break;
94
+ }
95
+ if (t && _.label < t[2]) {
96
+ _.label = t[2];
97
+ _.ops.push(op);
98
+ break;
99
+ }
100
+ if (t[2]) _.ops.pop();
101
+ _.trys.pop();
102
+ continue;
103
+ }
104
+ op = body.call(thisArg, _);
105
+ } catch (e) {
106
+ op = [
107
+ 6,
108
+ e
109
+ ];
110
+ y = 0;
111
+ } finally{
112
+ f = t = 0;
113
+ }
114
+ if (op[0] & 5) throw op[1];
115
+ return {
116
+ value: op[0] ? op[1] : void 0,
117
+ done: true
118
+ };
119
+ }
120
+ }
1
121
  import { subject } from '@casl/ability';
2
122
  import { prisma } from '@driveflux/db';
3
123
  import { makeProblem, PROBLEM_NOT_FOUND } from '@driveflux/problem';
4
124
  import { Err, Ok } from '@driveflux/result';
5
125
  import { checkIfVehicleIsAvailableForReservation } from './checks';
6
126
  import { createVehicleFromDisplayVehicle } from './display-vehicle';
7
- export const getVehicle = async (id, { selectedColor, plan, requestUser, }, requesterAbility) => {
8
- const vehicle = id.startsWith('DV_')
9
- ? await createVehicleFromDisplayVehicle(id, selectedColor || undefined)
10
- : await prisma.vehicle.findUnique({
11
- where: {
12
- id,
13
- },
14
- include: {
15
- host: {
16
- select: {
17
- id: true,
18
- },
19
- },
20
- },
127
+ export var getVehicle = function(id, param, requesterAbility) {
128
+ var selectedColor = param.selectedColor, plan = param.plan, requestUser = param.requestUser;
129
+ return _async_to_generator(function() {
130
+ var vehicle, _tmp, vehicleResult;
131
+ return _ts_generator(this, function(_state) {
132
+ switch(_state.label){
133
+ case 0:
134
+ if (!id.startsWith('DV_')) return [
135
+ 3,
136
+ 2
137
+ ];
138
+ return [
139
+ 4,
140
+ createVehicleFromDisplayVehicle(id, selectedColor || undefined)
141
+ ];
142
+ case 1:
143
+ _tmp = _state.sent();
144
+ return [
145
+ 3,
146
+ 4
147
+ ];
148
+ case 2:
149
+ return [
150
+ 4,
151
+ prisma.vehicle.findUnique({
152
+ where: {
153
+ id: id
154
+ },
155
+ include: {
156
+ host: {
157
+ select: {
158
+ id: true
159
+ }
160
+ }
161
+ }
162
+ })
163
+ ];
164
+ case 3:
165
+ _tmp = _state.sent();
166
+ _state.label = 4;
167
+ case 4:
168
+ vehicle = _tmp;
169
+ if (!vehicle) {
170
+ return [
171
+ 2,
172
+ new Err(makeProblem(PROBLEM_NOT_FOUND, 'Vehicle not found'))
173
+ ];
174
+ }
175
+ return [
176
+ 4,
177
+ checkIfVehicleIsAvailableForReservation(vehicle, plan, requesterAbility.can('reserveDelistedVehicle', subject('User', requestUser)))
178
+ ];
179
+ case 5:
180
+ vehicleResult = _state.sent();
181
+ if (vehicleResult.err) {
182
+ return [
183
+ 2,
184
+ vehicleResult
185
+ ];
186
+ }
187
+ return [
188
+ 2,
189
+ new Ok(vehicle)
190
+ ];
191
+ }
21
192
  });
22
- if (!vehicle) {
23
- return new Err(makeProblem(PROBLEM_NOT_FOUND, 'Vehicle not found'));
24
- }
25
- // Check if the vehicle can be reserved
26
- const vehicleResult = await checkIfVehicleIsAvailableForReservation(vehicle, plan, requesterAbility.can('reserveDelistedVehicle', subject('User', requestUser)));
27
- if (vehicleResult.err) {
28
- return vehicleResult;
29
- }
30
- return new Ok(vehicle);
193
+ })();
31
194
  };
32
- //# sourceMappingURL=vehicle.js.map