@justins-home/api-services 1.0.0

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/index.mjs ADDED
@@ -0,0 +1,573 @@
1
+ // src/api-client.ts
2
+ import { authClient } from "@justins-home/http-client";
3
+ var api = {
4
+ async post(operation, url, payload) {
5
+ const res = await authClient.post(url, payload ?? {});
6
+ return res.data;
7
+ },
8
+ async get(operation, url, query) {
9
+ const res = await authClient.get(url, {
10
+ params: query
11
+ });
12
+ return res.data;
13
+ }
14
+ };
15
+
16
+ // src/generated/admin.ts
17
+ var admin = {
18
+ new: (payload) => {
19
+ return api.post("newAdmin", "/api/v1/portal/admin/create-admin", payload);
20
+ },
21
+ getSubmittedListing: () => {
22
+ return api.get("getSubmittedListing", "/api/v1/portal/admin/listing/review");
23
+ },
24
+ approveListing: (params) => {
25
+ return api.post("approveListing", `/api/v1/portal/admin/listing/${params.listing_uid}/approve`);
26
+ },
27
+ rejectListing: (params, payload) => {
28
+ return api.post("rejectListing", `/api/v1/portal/admin/listing/${params.listing_uid}/reject`, payload);
29
+ },
30
+ unpublishListing: (params) => {
31
+ return api.post("unpublishListing", `/api/v1/portal/admin/listing/${params.listing_uid}/unpublish`);
32
+ },
33
+ republishListing: (params) => {
34
+ return api.post("republishListing", `/api/v1/portal/admin/listing/${params.listing_uid}/republish`);
35
+ },
36
+ getFeatures: () => {
37
+ return api.post("getFeaturesAdmin", "/api/v1/portal/admin/feature/fetch-all");
38
+ },
39
+ createFeature: (payload) => {
40
+ return api.post("createFeature", "/api/v1/portal/admin/feature/create", payload);
41
+ },
42
+ updateFeature: (params, payload) => {
43
+ return api.post("updateFeature", `/api/v1/portal/admin/feature/${params.feature_id}/update`, payload);
44
+ },
45
+ toggleFeature: (params) => {
46
+ return api.post("toggleFeature", `/api/v1/portal/admin/feature/${params.feature_id}/toggle`);
47
+ },
48
+ getFeatureCategories: () => {
49
+ return api.get("getFeatureCategories", "/api/v1/portal/admin/feature/category/fetch-all");
50
+ },
51
+ createFeatureCategory: (payload) => {
52
+ return api.post("createFeatureCategory", "/api/v1/portal/admin/feature/category/create", payload);
53
+ },
54
+ updateFeatureCategory: (params, payload) => {
55
+ return api.post("updateFeatureCategory", `/api/v1/portal/admin/feature/category/${params.category_id}/update`, payload);
56
+ },
57
+ toggleFeatureCategory: (params) => {
58
+ return api.post("toggleFeatureCategory", `/api/v1/portal/admin/feature/category/${params.category_id}/toggle`);
59
+ },
60
+ getVerificationLayers: () => {
61
+ return api.get("getVerificationLayers", "/api/v1/portal/admin/verification/layers/fetch-all");
62
+ },
63
+ createVerificationLayer: (payload) => {
64
+ return api.post("createVerificationLayer", "/api/v1/portal/admin/verification/layers/create", payload);
65
+ },
66
+ updateVerificationLayer: (params, payload) => {
67
+ return api.post("updateVerificationLayer", `/api/v1/portal/admin/verification/layers/update/${params.verificationLayer_id}`, payload);
68
+ },
69
+ getVerificationFlows: () => {
70
+ return api.get("getVerificationFlows", "/api/v1/portal/admin/verification/flows/fetch-all");
71
+ },
72
+ createVerificationFlow: (payload) => {
73
+ return api.post("createVerificationFlow", "/api/v1/portal/admin/verification/flows/create", payload);
74
+ },
75
+ reorderVerificationFlow: (payload) => {
76
+ return api.post("reorderVerificationFlow", "/api/v1/portal/admin/verification/flows/reorder", payload);
77
+ },
78
+ getUserVerifications: (query) => {
79
+ return api.get("getUserVerifications", "/api/v1/portal/admin/verification/fetch-all", query);
80
+ },
81
+ getUserVerificationHistory: (params) => {
82
+ return api.get("getUserVerificationHistory", `/api/v1/portal/admin/verification/user/${params.userId}`);
83
+ },
84
+ reviewUserVerification: (params, payload) => {
85
+ return api.post("reviewUserVerification", `/api/v1/portal/admin/verification/reviews/${params.userVerificationId}`, payload);
86
+ },
87
+ resetUserVerification: (params, payload) => {
88
+ return api.post("resetUserVerification", `/api/v1/portal/admin/verification/reset/${params.userVerificationId}`, payload);
89
+ },
90
+ getListingComplianceSubmissions: () => {
91
+ return api.get("getListingComplianceSubmissions", "/api/v1/portal/admin/verification/fetch-compliances");
92
+ },
93
+ getTenancyComplianceSubmissions: () => {
94
+ return api.get("getTenancyComplianceSubmissions", "/api/v1/portal/admin/verification/fetch-tenancy-compliances");
95
+ },
96
+ reviewListingComplianceSubmission: (params, payload) => {
97
+ return api.post("reviewListingComplianceSubmission", `/api/v1/portal/admin/verification/review-compliance/${params.submissionId}`, payload);
98
+ },
99
+ reviewTenancyComplianceSubmission: (params, payload) => {
100
+ return api.post("reviewTenancyComplianceSubmission", `/api/v1/portal/admin/verification/review-tenancy-compliance/${params.submissionId}`, payload);
101
+ },
102
+ getPlans: () => {
103
+ return api.get("getPlans", "/api/v1/portal/admin/plans/fetch-all");
104
+ },
105
+ createPlan: (payload) => {
106
+ return api.post("createPlan", "/api/v1/portal/admin/plans/create", payload);
107
+ },
108
+ updatePlan: (params, payload) => {
109
+ return api.post("updatePlan", `/api/v1/portal/admin/plans/update/${params.plan_id}`, payload);
110
+ },
111
+ assignPlanToUser: (params, payload) => {
112
+ return api.post("assignPlanToUser", `/api/v1/portal/admin/plans/assign-to-user/${params.user_id}`, payload);
113
+ },
114
+ deactivateUserPlan: (params, payload) => {
115
+ return api.post("deactivateUserPlan", `/api/v1/portal/admin/plans/deactivate-from-user/${params.user_id}`, payload);
116
+ },
117
+ attachPlanVerificationRequirements: (params, payload) => {
118
+ return api.post("attachPlanVerificationRequirements", `/api/v1/portal/admin/plans/${params.plan_id}/requirements`, payload);
119
+ },
120
+ attachPlanCapabilities: (params, payload) => {
121
+ return api.post("attachPlanCapabilities", `/api/v1/portal/admin/plans/${params.plan_id}/capabilities`, payload);
122
+ },
123
+ getPlanEntitlements: () => {
124
+ return api.get("getPlanEntitlements", "/api/v1/portal/admin/plans/entitlements/fetch-all");
125
+ },
126
+ createPlanEntitlement: (payload) => {
127
+ return api.post("createPlanEntitlement", "/api/v1/portal/admin/plans/entitlements/create", payload);
128
+ },
129
+ updatePlanEntitlement: (params, payload) => {
130
+ return api.post("updatePlanEntitlement", `/api/v1/portal/admin/plans/entitlements/update/${params.entitlement_key}`, payload);
131
+ },
132
+ syncPlanEntitlements: (params, payload) => {
133
+ return api.post("syncPlanEntitlements", `/api/v1/portal/admin/plans/entitlements/sync/${params.plan_id}`, payload);
134
+ },
135
+ getCapabilities: () => {
136
+ return api.get("getCapabilities", "/api/v1/portal/admin/capability/fetch-all");
137
+ },
138
+ createCapability: (payload) => {
139
+ return api.post("createCapability", "/api/v1/portal/admin/capability/create", payload);
140
+ },
141
+ updateCapability: (params, payload) => {
142
+ return api.post("updateCapability", `/api/v1/portal/admin/capability/update/${params.capability_id}`, payload);
143
+ },
144
+ getComplianceDefinitions: () => {
145
+ return api.get("getComplianceDefinitions", "/api/v1/portal/admin/compliances/fetch-all");
146
+ },
147
+ createComplianceDefinition: (payload) => {
148
+ return api.post("createComplianceDefinition", "/api/v1/portal/admin/compliances/create", payload);
149
+ },
150
+ updateComplianceDefinition: (params, payload) => {
151
+ return api.post("updateComplianceDefinition", `/api/v1/portal/admin/compliances/update/${params.compliance_id}`, payload);
152
+ },
153
+ syncComplianceRequirements: (params, payload) => {
154
+ return api.post("syncComplianceRequirements", `/api/v1/portal/admin/compliances/${params.compliance_id}/sync-requirements`, payload);
155
+ },
156
+ assignGlobalCompliance: (params) => {
157
+ return api.post("assignGlobalCompliance", `/api/v1/portal/admin/compliances/${params.compliance_id}/assign-global`);
158
+ },
159
+ assignComplianceToCategory: (params) => {
160
+ return api.post("assignComplianceToCategory", `/api/v1/portal/admin/compliances/${params.compliance_id}/assign-category/${params.categoryId}`);
161
+ },
162
+ assignComplianceToListing: (params) => {
163
+ return api.post("assignComplianceToListing", `/api/v1/portal/admin/compliances/${params.compliance_id}/assign-to-listing/${params.listingId}`);
164
+ },
165
+ assignComplianceToTenancy: (params) => {
166
+ return api.post("assignComplianceToTenancy", `/api/v1/portal/admin/compliances/${params.compliance_id}/assign-to-tenancy/${params.tenancy_id}`);
167
+ },
168
+ listingHistoryInspection: (params) => {
169
+ return api.get("listingHistoryInspectionAdmin", `/api/v1/portal/admin/inspections/fetch-history/${params.listing_uid}`);
170
+ },
171
+ scheduleInspection: (payload) => {
172
+ return api.post("scheduleInspection", "/api/v1/portal/admin/inspections/schedule", payload);
173
+ },
174
+ completeInspection: (params, payload) => {
175
+ return api.post("completeInspection", `/api/v1/portal/admin/inspections/${params.uid}/complete`, payload);
176
+ },
177
+ rescheduleInspection: (params, payload) => {
178
+ return api.post("rescheduleInspection", `/api/v1/portal/admin/inspections/${params.uid}/reschedule`, payload);
179
+ },
180
+ cancelInspection: (params, payload) => {
181
+ return api.post("cancelInspection", `/api/v1/portal/admin/inspections/${params.uid}/cancel`, payload);
182
+ },
183
+ assignMaintenanceTechnician: (params, payload) => {
184
+ return api.post("assignMaintenanceTechnician", `/api/v1/portal/admin/maintenance/${params.uid}/assign`, payload);
185
+ },
186
+ startMaintenanceRepair: (params, payload) => {
187
+ return api.post("startMaintenanceRepair", `/api/v1/portal/admin/maintenance/${params.uid}/start`, payload);
188
+ },
189
+ completeMaintenanceRepair: (params, payload) => {
190
+ return api.post("completeMaintenanceRepair", `/api/v1/portal/admin/maintenance/${params.uid}/complete`, payload);
191
+ },
192
+ cancelMaintenanceRequest: (params, payload) => {
193
+ return api.post("cancelMaintenanceRequest", `/api/v1/portal/admin/maintenance/${params.uid}/cancel`, payload);
194
+ },
195
+ assignComplianceToListingVertical: (params, payload) => {
196
+ return api.post("assignComplianceToListingVertical", `/api/v1/portal/admin/compliances/${params.compliance_id}/assign-to-listing-vertical`, payload);
197
+ },
198
+ assignComplianceToListingType: (params, payload) => {
199
+ return api.post("assignComplianceToListingType", `/api/v1/portal/admin/compliances/${params.compliance_id}/assign-to-listing-type`, payload);
200
+ }
201
+ };
202
+
203
+ // src/generated/appointment.ts
204
+ var appointment = {
205
+ create: (payload) => {
206
+ return api.post("createAppointment", "/api/v1/public/appointment/create", payload);
207
+ },
208
+ fetchOne: (params) => {
209
+ return api.get("fetchOneAppointment", `/api/v1/public/appointment/fetch-one/${params.appointment_id}`);
210
+ },
211
+ fetchAll: () => {
212
+ return api.get("fetchAllAppointment", "/api/v1/public/appointment/fetch-all");
213
+ },
214
+ reschedule: (params, payload) => {
215
+ return api.post("rescheduleAppointment", `/api/v1/public/appointment/${params.appointment_id}/reschedule`, payload);
216
+ },
217
+ cancel: (params) => {
218
+ return api.post("cancelAppointment", `/api/v1/public/appointment/${params.appointment_id}/confirm`);
219
+ },
220
+ confirm: (params) => {
221
+ return api.post("confirmAppointment", `/api/v1/public/appointment/${params.appointment_id}/cancel`);
222
+ }
223
+ };
224
+
225
+ // src/generated/auth.ts
226
+ var auth = {
227
+ loginUser: (payload) => {
228
+ return api.post("loginUser", "/api/v1/public/auth/basic-login", payload);
229
+ },
230
+ logoutUser: () => {
231
+ return api.post("logoutUser", "/api/v1/public/auth/logout");
232
+ },
233
+ generateOTP: (payload) => {
234
+ return api.post("generateOTP", "/api/v1/public/auth/send-otp", payload);
235
+ },
236
+ verifyOTP: (payload) => {
237
+ return api.post("verifyOTP", "/api/v1/public/auth/verify-otp", payload);
238
+ }
239
+ };
240
+
241
+ // src/generated/agent.ts
242
+ var agent = {
243
+ getApiV1PortalAgentTest: () => {
244
+ return api.get("getApiV1PortalAgentTest", "/api/v1/portal/agent/test");
245
+ }
246
+ };
247
+
248
+ // src/generated/tenant.ts
249
+ var tenant = {
250
+ getApiV1PortalTenantTest: () => {
251
+ return api.get("getApiV1PortalTenantTest", "/api/v1/portal/tenant/test");
252
+ },
253
+ postApiV1PortalTenantCreate: (payload) => {
254
+ return api.post("postApiV1PortalTenantCreate", "/api/v1/portal/tenant/create", payload);
255
+ },
256
+ postApiV1PortalTenantCreateWithGithub: () => {
257
+ return api.post("postApiV1PortalTenantCreateWithGithub", "/api/v1/portal/tenant/create-with-github");
258
+ },
259
+ postApiV1PortalTenantSendOtp: () => {
260
+ return api.post("postApiV1PortalTenantSendOtp", "/api/v1/portal/tenant/send-otp");
261
+ },
262
+ postApiV1PortalTenantVerifyOtp: (payload) => {
263
+ return api.post("postApiV1PortalTenantVerifyOtp", "/api/v1/portal/tenant/verify-otp", payload);
264
+ }
265
+ };
266
+
267
+ // src/generated/customer.ts
268
+ var customer = {
269
+ getApiV1PortalCustomerTest: () => {
270
+ return api.get("getApiV1PortalCustomerTest", "/api/v1/portal/customer/test");
271
+ },
272
+ postApiV1PortalCustomerCreate: (payload) => {
273
+ return api.post("postApiV1PortalCustomerCreate", "/api/v1/portal/customer/create", payload);
274
+ },
275
+ postApiV1PortalCustomerCreateWithGithub: () => {
276
+ return api.post("postApiV1PortalCustomerCreateWithGithub", "/api/v1/portal/customer/create-with-github");
277
+ },
278
+ postApiV1PortalCustomerSendOtp: () => {
279
+ return api.post("postApiV1PortalCustomerSendOtp", "/api/v1/portal/customer/send-otp");
280
+ },
281
+ postApiV1PortalCustomerVerifyOtp: (payload) => {
282
+ return api.post("postApiV1PortalCustomerVerifyOtp", "/api/v1/portal/customer/verify-otp", payload);
283
+ }
284
+ };
285
+
286
+ // src/generated/google.ts
287
+ var google = {
288
+ getApiV1SocialAuthGoogleRedirect: () => {
289
+ return api.get("getApiV1SocialAuthGoogleRedirect", "/api/v1/social-auth/google/redirect");
290
+ },
291
+ getApiV1SocialAuthGoogleCallback: () => {
292
+ return api.get("getApiV1SocialAuthGoogleCallback", "/api/v1/social-auth/google/callback");
293
+ }
294
+ };
295
+
296
+ // src/generated/github.ts
297
+ var github = {
298
+ getApiV1SocialAuthGithubRedirect: () => {
299
+ return api.get("getApiV1SocialAuthGithubRedirect", "/api/v1/social-auth/github/redirect");
300
+ },
301
+ getApiV1SocialAuthGithubCallback: () => {
302
+ return api.get("getApiV1SocialAuthGithubCallback", "/api/v1/social-auth/github/callback");
303
+ }
304
+ };
305
+
306
+ // src/generated/feature.ts
307
+ var feature = {
308
+ getFeatures: (query) => {
309
+ return api.get("getFeatures", "/api/v1/public/feature/fetch-all", query);
310
+ }
311
+ };
312
+
313
+ // src/generated/inspection.ts
314
+ var inspection = {
315
+ listingHistory: (params) => {
316
+ return api.get("listingHistoryInspection", `/api/v1/public/inspection/listing/${params.listing_uid}`);
317
+ }
318
+ };
319
+
320
+ // src/generated/landlord.ts
321
+ var landlord = {
322
+ new: (payload) => {
323
+ return api.post("newLandlord", "/api/v1/portal/landlord/create-landlord", payload);
324
+ },
325
+ createListingDraft: (payload) => {
326
+ return api.post("createListingDraft", "/api/v1/portal/landlord/listing", payload);
327
+ },
328
+ getDraftListings: () => {
329
+ return api.get("getDraftListings", "/api/v1/portal/landlord/listing/drafts");
330
+ },
331
+ getSubmittedListings: () => {
332
+ return api.get("getSubmittedListings", "/api/v1/portal/landlord/listing/fetch-submitted");
333
+ },
334
+ getOwnerListings: () => {
335
+ return api.get("getOwnerListings", "/api/v1/portal/landlord/listing/fetch-all");
336
+ },
337
+ getOwnerListing: (params) => {
338
+ return api.get("getOwnerListing", `/api/v1/portal/landlord/listing/fetch-one/${params.listing_uid}`);
339
+ },
340
+ savePropertyBasics: (params, payload) => {
341
+ return api.post("savePropertyBasics", `/api/v1/portal/landlord/listing/${params.listing_uid}/property-basics`, payload);
342
+ },
343
+ saveTenancyDetails: (params, payload) => {
344
+ return api.post("saveTenancyDetails", `/api/v1/portal/landlord/listing/${params.listing_uid}/tenancy-details`, payload);
345
+ },
346
+ saveListingFeatures: (params, payload) => {
347
+ return api.post("saveListingFeatures", `/api/v1/portal/landlord/listing/${params.listing_uid}/features`, payload);
348
+ },
349
+ saveTenantPreferences: (params, payload) => {
350
+ return api.post("saveTenantPreferences", `/api/v1/portal/landlord/listing/${params.listing_uid}/tenant-preferences`, payload);
351
+ },
352
+ saveViewingAvailability: (params, payload) => {
353
+ return api.post("saveViewingAvailability", `/api/v1/portal/landlord/listing/${params.listing_uid}/viewing-availability`, payload);
354
+ },
355
+ saveUsedItemDetails: (params, payload) => {
356
+ return api.post("saveUsedItemDetails", `/api/v1/portal/landlord/listing/${params.listing_uid}/item-details`, payload);
357
+ },
358
+ uploadListingMedia: (params) => {
359
+ return api.post("uploadListingMedia", `/api/v1/portal/landlord/listing/${params.listing_uid}/media`);
360
+ },
361
+ reorderListingMedia: (params, payload) => {
362
+ return api.post("reorderListingMedia", `/api/v1/portal/landlord/listing/${params.listing_uid}/media/order`, payload);
363
+ },
364
+ setListingCoverMedia: (params) => {
365
+ return api.post("setListingCoverMedia", `/api/v1/portal/landlord/listing/${params.listing_uid}/media/${params.media_uid}/cover`);
366
+ },
367
+ submitListing: (params) => {
368
+ return api.post("submitListing", `/api/v1/portal/landlord/listing/${params.listing_uid}/submit`);
369
+ },
370
+ getListingCompliance: (params) => {
371
+ return api.get("getListingCompliance", `/api/v1/portal/landlord/listing/compliance/fetch/${params.listing_uid}`);
372
+ },
373
+ submitListingCompliance: (params, payload) => {
374
+ return api.post("submitListingCompliance", `/api/v1/portal/landlord/listing/compliance/submit/${params.listing_uid}`, payload);
375
+ },
376
+ resolveListingCompliance: (params) => {
377
+ return api.post("resolveListingCompliance", `/api/v1/portal/landlord/listing/compliance/resolve/${params.listing_uid}`);
378
+ },
379
+ getLandlordTenancies: () => {
380
+ return api.get("getLandlordTenancies", "/api/v1/portal/landlord/tenancy/fetch-all");
381
+ },
382
+ submitTenancyCompliance: (params, payload) => {
383
+ return api.post("submitTenancyCompliance", `/api/v1/portal/landlord/tenancy/compliance/submit/${params.tenancy_uid}`, payload);
384
+ },
385
+ resolveTenancyCompliance: (params) => {
386
+ return api.post("resolveTenancyCompliance", `/api/v1/portal/landlord/tenancy/compliance/resolve/${params.tenancy_uid}`);
387
+ }
388
+ };
389
+
390
+ // src/generated/listings.ts
391
+ var listings = {
392
+ search: (query) => {
393
+ return api.get("searchListings", "/api/v1/public/listings/search", query);
394
+ },
395
+ discover: (query) => {
396
+ return api.get("discoverListings", "/api/v1/public/listings/discover", query);
397
+ },
398
+ fetchOne: (params) => {
399
+ return api.get("fetchOne", `/api/v1/public/listings/fetch-one/${params.listing_uid}`);
400
+ }
401
+ };
402
+
403
+ // src/generated/maintenance.ts
404
+ var maintenance = {
405
+ listingHistory: (params) => {
406
+ return api.get("listingHistoryMaintenance", `/api/v1/public/maintenance/listing/${params.listing_uid}`);
407
+ },
408
+ report: (payload) => {
409
+ return api.post("reportMaintenance", "/api/v1/public/maintenance/report", payload);
410
+ },
411
+ uploadAttachment: (params) => {
412
+ return api.post("uploadAttachmentMaintenance", `/api/v1/public/maintenance/${params.maintenance_uid}/attachments`);
413
+ }
414
+ };
415
+
416
+ // src/generated/conversations.ts
417
+ var conversations = {
418
+ createConversation: (payload) => {
419
+ return api.post("createConversation", "/api/v1/public/conversations/create", payload);
420
+ },
421
+ list: () => {
422
+ return api.get("listConversations", "/api/v1/public/conversations/fetch-all");
423
+ },
424
+ listConversationMessages: (params) => {
425
+ return api.get("listConversationMessages", `/api/v1/public/conversations/${params.conversation_id}/messages`);
426
+ },
427
+ sendConversationMessage: (payload) => {
428
+ return api.post("sendConversationMessage", "/api/v1/public/conversations/send-message", payload);
429
+ },
430
+ markConversationAsRead: (params) => {
431
+ return api.post("markConversationAsRead", `/api/v1/public/conversations/${params.conversation_id}/read-message`);
432
+ }
433
+ };
434
+
435
+ // src/generated/notification.ts
436
+ var notification = {
437
+ fetch: () => {
438
+ return api.get("fetchNotification", "/api/v1/public/notification/fetch-all");
439
+ },
440
+ read: (params) => {
441
+ return api.post("readNotification", `/api/v1/public/notification/${params.notification_id}/read`);
442
+ },
443
+ readAll: () => {
444
+ return api.post("readAllNotification", "/api/v1/public/notification/read-all");
445
+ },
446
+ countUnRead: () => {
447
+ return api.get("countUnReadNotification", "/api/v1/public/notification/unread-count");
448
+ },
449
+ registerDeviceToken: () => {
450
+ return api.post("registerDeviceTokenNotification", "/api/v1/public/notification/device-token");
451
+ }
452
+ };
453
+
454
+ // src/generated/plan.ts
455
+ var plan = {
456
+ myCapabilities: () => {
457
+ return api.get("myCapabilitiesPlan", "/api/v1/public/plan/me/capabilities");
458
+ },
459
+ checkCapability: (params) => {
460
+ return api.get("checkCapabilityPlan", `/api/v1/public/plan/me/capabilities/${params.capability}`);
461
+ }
462
+ };
463
+
464
+ // src/generated/review.ts
465
+ var review = {
466
+ fetchAll: () => {
467
+ return api.get("fetchAllReview", "/api/v1/public/review/fetch-all");
468
+ },
469
+ ratingSummary: () => {
470
+ return api.get("ratingSummaryReview", "/api/v1/public/review/summary");
471
+ },
472
+ createListing: (payload) => {
473
+ return api.post("createListingReview", "/api/v1/public/review/create-listing", payload);
474
+ },
475
+ createUser: (payload) => {
476
+ return api.post("createUserReview", "/api/v1/public/review/create-user", payload);
477
+ },
478
+ update: (params, payload) => {
479
+ return api.post("updateReview", `/api/v1/public/review/update/${params.review_id}`, payload);
480
+ },
481
+ delete: (params) => {
482
+ return api.post("deleteReview", `/api/v1/public/review/delete/${params.review_id}`);
483
+ }
484
+ };
485
+
486
+ // src/generated/tenancy.ts
487
+ var tenancy = {
488
+ fetchOne: (params) => {
489
+ return api.get("fetchOneTenancy", `/api/v1/public/tenancy/fetch-one/${params.tenancy_uid}`);
490
+ },
491
+ create: (payload) => {
492
+ return api.post("createTenancy", "/api/v1/public/tenancy/create-tenancy", payload);
493
+ },
494
+ transition: (params, payload) => {
495
+ return api.post("transitionTenancy", `/api/v1/public/tenancy/${params.tenancy_uid}/transition`, payload);
496
+ },
497
+ complianceStatus: (params) => {
498
+ return api.get("complianceStatusTenancy", `/api/v1/public/tenancy/${params.tenancy_uid}/compliance-status`);
499
+ },
500
+ renew: (params) => {
501
+ return api.post("renewTenancy", `/api/v1/public/tenancy/${params.tenancy_uid}/renewal`);
502
+ },
503
+ convert: (params) => {
504
+ return api.post("convertTenancy", `/api/v1/public/tenancy/${params.tenancy_uid}/convert-to-periodic`);
505
+ },
506
+ serveNotice: (params, payload) => {
507
+ return api.post("serveNoticeTenancy", `/api/v1/public/tenancy/${params.tenancy_uid}/serve-notice`, payload);
508
+ },
509
+ terminate: (params, payload) => {
510
+ return api.post("terminateTenancy", `/api/v1/public/tenancy/${params.tenancy_uid}/terminate`, payload);
511
+ },
512
+ fetchTransitions: (params) => {
513
+ return api.get("fetchTransitionsTenancy", `/api/v1/public/tenancy/${params.tenancy_uid}/transitions`);
514
+ },
515
+ uploadDocument: (params) => {
516
+ return api.post("uploadDocumentTenancy", `/api/v1/public/tenancy/${params.tenancy_uid}/documents`);
517
+ },
518
+ downloadDocument: (params) => {
519
+ return api.get("downloadDocumentTenancy", `/api/v1/public/tenancy/${params.tenancy_uid}/documents/${params.document_id}`);
520
+ }
521
+ };
522
+
523
+ // src/generated/userverification.ts
524
+ var userverification = {
525
+ overview: () => {
526
+ return api.get("overviewUserVerification", "/api/v1/public/userverification/overview");
527
+ },
528
+ submit: (params, payload) => {
529
+ return api.post("submitUserVerification", `/api/v1/public/userverification/submit/${params.layerKey}`, payload);
530
+ },
531
+ fetchFlow: () => {
532
+ return api.get("fetchFlowUserVerification", "/api/v1/public/userverification/fetch-flow");
533
+ },
534
+ resubmit: (params, payload) => {
535
+ return api.post("resubmitUserVerification", `/api/v1/public/userverification/${params.layerKey}/retry`, payload);
536
+ }
537
+ };
538
+
539
+ // src/generated/wishlist.ts
540
+ var wishlist = {
541
+ create: (payload) => {
542
+ return api.post("createWishlist", "/api/v1/public/wishlist", payload);
543
+ },
544
+ remove: (params) => {
545
+ return api.post("removeWishlist", `/api/v1/public/wishlist/remove/${params.listing_uid}`);
546
+ },
547
+ get: (query) => {
548
+ return api.get("getWishlist", "/api/v1/public/wishlist/fetch-all", query);
549
+ }
550
+ };
551
+ export {
552
+ admin,
553
+ agent,
554
+ api,
555
+ appointment,
556
+ auth,
557
+ conversations,
558
+ customer,
559
+ feature,
560
+ github,
561
+ google,
562
+ inspection,
563
+ landlord,
564
+ listings,
565
+ maintenance,
566
+ notification,
567
+ plan,
568
+ review,
569
+ tenancy,
570
+ tenant,
571
+ userverification,
572
+ wishlist
573
+ };
package/package.json ADDED
@@ -0,0 +1,19 @@
1
+ {
2
+ "name": "@justins-home/api-services",
3
+ "version": "1.0.0",
4
+ "private": false,
5
+ "main": "src/index.ts",
6
+ "dependencies": {
7
+ "@justins-home/types": "0.0.2",
8
+ "@justins-home/http-client": "0.1.0"
9
+ },
10
+ "publishConfig": {
11
+ "access": "public"
12
+ },
13
+ "scripts": {
14
+ "lint": "eslint src",
15
+ "check-types": "tsc --noEmit -p ../../tsconfig.base.json",
16
+ "build": "tsup src/index.ts --format esm,cjs",
17
+ "test": "vitest"
18
+ }
19
+ }
@@ -0,0 +1,43 @@
1
+ import { authClient } from '@justins-home/http-client';
2
+ import type { operations } from '@justins-home/types/generated/api-types';
3
+
4
+ type OperationId = keyof operations;
5
+
6
+ type ApiRequest<T extends OperationId> = operations[T] extends {
7
+ requestBody: { content: { 'application/json': infer R } };
8
+ }
9
+ ? R
10
+ : operations[T] extends {
11
+ parameters: { query?: infer Q };
12
+ }
13
+ ? Q
14
+ : never;
15
+
16
+ type ApiResponse<T extends OperationId> = operations[T] extends {
17
+ responses: { 200: { content: { 'application/json': infer R } } };
18
+ }
19
+ ? R
20
+ : unknown;
21
+
22
+ export const api = {
23
+ async post<T extends OperationId>(
24
+ operation: T,
25
+ url: string,
26
+ payload?: ApiRequest<T>,
27
+ ): Promise<ApiResponse<T>> {
28
+ const res = await authClient.post(url, payload ?? {});
29
+ return res.data;
30
+ },
31
+
32
+ async get<T extends OperationId>(
33
+ operation: T,
34
+ url: string,
35
+ query?: ApiRequest<T>,
36
+ ): Promise<ApiResponse<T>> {
37
+ const res = await authClient.get(url, {
38
+ params: query,
39
+ });
40
+
41
+ return res.data;
42
+ },
43
+ };
@@ -0,0 +1,11 @@
1
+ import { publicClient, request } from '@justins-home/http-client';
2
+
3
+ export const authService = {
4
+ async login(data: { email: string; password: string }) {
5
+ return request(publicClient, publicClient.post('/auth/login', data));
6
+ },
7
+
8
+ async logout() {
9
+ return request(publicClient, publicClient.post('/auth/logout'));
10
+ },
11
+ };