@myrjfa/state 3.0.7 → 3.0.9
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/lib/actions/adminDashboard.d.ts.map +1 -1
- package/dist/lib/actions/adminDashboard.js +2 -1
- package/dist/lib/actions/adventure.d.ts.map +1 -1
- package/dist/lib/actions/adventure.js +3 -2
- package/dist/lib/actions/application.d.ts +5 -3
- package/dist/lib/actions/application.d.ts.map +1 -1
- package/dist/lib/actions/application.js +46 -2
- package/dist/lib/actions/auth.d.ts +18 -3
- package/dist/lib/actions/auth.d.ts.map +1 -1
- package/dist/lib/actions/auth.js +22 -0
- package/dist/lib/actions/blog.d.ts.map +1 -1
- package/dist/lib/actions/blog.js +4 -2
- package/dist/lib/actions/booking.d.ts +29 -1
- package/dist/lib/actions/booking.d.ts.map +1 -1
- package/dist/lib/actions/booking.js +186 -0
- package/dist/lib/actions/brand.d.ts +7 -0
- package/dist/lib/actions/brand.d.ts.map +1 -1
- package/dist/lib/actions/brand.js +4 -0
- package/dist/lib/actions/chat.d.ts +3 -0
- package/dist/lib/actions/chat.d.ts.map +1 -1
- package/dist/lib/actions/chat.js +40 -1
- package/dist/lib/actions/community.d.ts +5 -2
- package/dist/lib/actions/community.d.ts.map +1 -1
- package/dist/lib/actions/community.js +16 -4
- package/dist/lib/actions/companion.d.ts +27 -15
- package/dist/lib/actions/companion.d.ts.map +1 -1
- package/dist/lib/actions/companion.js +22 -15
- package/dist/lib/actions/companionUpload.d.ts +11 -0
- package/dist/lib/actions/companionUpload.d.ts.map +1 -0
- package/dist/lib/actions/companionUpload.js +14 -0
- package/dist/lib/actions/event.d.ts +1 -1
- package/dist/lib/actions/event.d.ts.map +1 -1
- package/dist/lib/actions/event.js +8 -4
- package/dist/lib/actions/fetcher.d.ts +9 -3
- package/dist/lib/actions/fetcher.d.ts.map +1 -1
- package/dist/lib/actions/fetcher.js +60 -15
- package/dist/lib/actions/guide.d.ts.map +1 -1
- package/dist/lib/actions/guide.js +4 -2
- package/dist/lib/actions/homeBanner.d.ts +8 -0
- package/dist/lib/actions/homeBanner.d.ts.map +1 -0
- package/dist/lib/actions/homeBanner.js +33 -0
- package/dist/lib/actions/hostDashboard.d.ts +1 -11
- package/dist/lib/actions/hostDashboard.d.ts.map +1 -1
- package/dist/lib/actions/hostDashboard.js +1 -146
- package/dist/lib/actions/itinerary.d.ts +1 -1
- package/dist/lib/actions/itinerary.d.ts.map +1 -1
- package/dist/lib/actions/itinerary.js +2 -2
- package/dist/lib/actions/listingInterest.d.ts +2 -5
- package/dist/lib/actions/listingInterest.d.ts.map +1 -1
- package/dist/lib/actions/listingInterest.js +18 -3
- package/dist/lib/actions/location.d.ts +4 -0
- package/dist/lib/actions/location.d.ts.map +1 -1
- package/dist/lib/actions/location.js +10 -6
- package/dist/lib/actions/marketplaceContract.d.ts.map +1 -1
- package/dist/lib/actions/marketplaceContract.js +3 -2
- package/dist/lib/actions/nativeTransport.d.ts +25 -0
- package/dist/lib/actions/nativeTransport.d.ts.map +1 -0
- package/dist/lib/actions/nativeTransport.js +50 -0
- package/dist/lib/actions/notification.d.ts +54 -2
- package/dist/lib/actions/notification.d.ts.map +1 -1
- package/dist/lib/actions/notification.js +13 -1
- package/dist/lib/actions/opportunity.d.ts.map +1 -1
- package/dist/lib/actions/opportunity.js +3 -2
- package/dist/lib/actions/package.d.ts +5 -3
- package/dist/lib/actions/package.d.ts.map +1 -1
- package/dist/lib/actions/package.js +15 -9
- package/dist/lib/actions/portfolio.d.ts.map +1 -1
- package/dist/lib/actions/portfolio.js +2 -1
- package/dist/lib/actions/profile.d.ts +5 -0
- package/dist/lib/actions/profile.d.ts.map +1 -1
- package/dist/lib/actions/profile.js +15 -2
- package/dist/lib/actions/rental.d.ts.map +1 -1
- package/dist/lib/actions/rental.js +3 -2
- package/dist/lib/actions/review.d.ts +7 -0
- package/dist/lib/actions/review.d.ts.map +1 -1
- package/dist/lib/actions/review.js +65 -31
- package/dist/lib/actions/room.d.ts +0 -4
- package/dist/lib/actions/room.d.ts.map +1 -1
- package/dist/lib/actions/room.js +3 -2
- package/dist/lib/actions/serverActions.native.d.ts +4 -0
- package/dist/lib/actions/serverActions.native.d.ts.map +1 -0
- package/dist/lib/actions/serverActions.native.js +5 -0
- package/dist/lib/actions/socialAutomation.d.ts.map +1 -1
- package/dist/lib/actions/socialAutomation.js +3 -2
- package/dist/lib/actions/socket.d.ts.map +1 -1
- package/dist/lib/actions/socket.js +6 -5
- package/dist/lib/actions/stay.d.ts +14 -1
- package/dist/lib/actions/stay.d.ts.map +1 -1
- package/dist/lib/actions/stay.js +32 -4
- package/dist/lib/actions/store.d.ts +1 -0
- package/dist/lib/actions/store.d.ts.map +1 -1
- package/dist/lib/actions/store.js +9 -0
- package/dist/lib/actions/user.d.ts +2 -0
- package/dist/lib/actions/user.d.ts.map +1 -1
- package/dist/lib/actions/user.js +5 -0
- package/dist/lib/companion/discoveryPrefill.d.ts +17 -0
- package/dist/lib/companion/discoveryPrefill.d.ts.map +1 -1
- package/dist/lib/companion/discoveryPrefill.js +20 -0
- package/dist/lib/context/ChatContext.d.ts.map +1 -1
- package/dist/lib/context/ChatContext.js +59 -51
- package/dist/lib/data/catalogueLocations.d.ts +3 -0
- package/dist/lib/data/catalogueLocations.d.ts.map +1 -0
- package/dist/lib/data/catalogueLocations.js +21 -0
- package/dist/lib/data/skills.d.ts +5 -0
- package/dist/lib/data/skills.d.ts.map +1 -0
- package/dist/lib/data/skills.js +97 -0
- package/dist/lib/forms/application.d.ts +4 -0
- package/dist/lib/forms/application.d.ts.map +1 -0
- package/dist/lib/forms/application.js +17 -0
- package/dist/lib/forms/packageEnquiry.d.ts +4 -0
- package/dist/lib/forms/packageEnquiry.d.ts.map +1 -0
- package/dist/lib/forms/packageEnquiry.js +12 -0
- package/dist/lib/forms/review.d.ts +6 -0
- package/dist/lib/forms/review.d.ts.map +1 -0
- package/dist/lib/forms/review.js +20 -0
- package/dist/lib/hooks/useSubmissionGuard.d.ts +2 -0
- package/dist/lib/hooks/useSubmissionGuard.d.ts.map +1 -0
- package/dist/lib/hooks/useSubmissionGuard.js +12 -0
- package/dist/lib/hooks/useUploadTasks.d.ts +7 -0
- package/dist/lib/hooks/useUploadTasks.d.ts.map +1 -0
- package/dist/lib/hooks/useUploadTasks.js +11 -0
- package/dist/lib/models/application.d.ts +21 -0
- package/dist/lib/models/application.d.ts.map +1 -1
- package/dist/lib/models/authorization.d.ts +1 -1
- package/dist/lib/models/authorization.d.ts.map +1 -1
- package/dist/lib/models/authorization.js +2 -0
- package/dist/lib/models/blog.d.ts +2 -2
- package/dist/lib/models/booking.d.ts +3 -0
- package/dist/lib/models/booking.d.ts.map +1 -1
- package/dist/lib/models/chat.d.ts +8 -0
- package/dist/lib/models/chat.d.ts.map +1 -1
- package/dist/lib/models/chat.js +10 -0
- package/dist/lib/models/community.d.ts +15 -0
- package/dist/lib/models/community.d.ts.map +1 -1
- package/dist/lib/models/community.js +2 -1
- package/dist/lib/models/companion.d.ts +46 -0
- package/dist/lib/models/companion.d.ts.map +1 -1
- package/dist/lib/models/discount.d.ts +20 -20
- package/dist/lib/models/enquiry.d.ts +13 -0
- package/dist/lib/models/enquiry.d.ts.map +1 -1
- package/dist/lib/models/homeBanner.d.ts +17 -0
- package/dist/lib/models/homeBanner.d.ts.map +1 -0
- package/dist/lib/models/homeBanner.js +1 -0
- package/dist/lib/models/interest.d.ts +42 -0
- package/dist/lib/models/interest.d.ts.map +1 -0
- package/dist/lib/models/interest.js +1 -0
- package/dist/lib/models/location.d.ts +1 -0
- package/dist/lib/models/location.d.ts.map +1 -1
- package/dist/lib/models/notifications.d.ts +30 -2
- package/dist/lib/models/notifications.d.ts.map +1 -1
- package/dist/lib/models/notifications.js +6 -0
- package/dist/lib/models/opportunities/freelance.d.ts +37 -4
- package/dist/lib/models/opportunities/freelance.d.ts.map +1 -1
- package/dist/lib/models/opportunities/internship.d.ts +37 -4
- package/dist/lib/models/opportunities/internship.d.ts.map +1 -1
- package/dist/lib/models/opportunities/job.d.ts +37 -4
- package/dist/lib/models/opportunities/job.d.ts.map +1 -1
- package/dist/lib/models/opportunities/opportunity.d.ts +38 -5
- package/dist/lib/models/opportunities/opportunity.d.ts.map +1 -1
- package/dist/lib/models/opportunities/opportunity.js +1 -1
- package/dist/lib/models/opportunities/volunteerJob.d.ts +37 -4
- package/dist/lib/models/opportunities/volunteerJob.d.ts.map +1 -1
- package/dist/lib/models/pricing.d.ts +2 -0
- package/dist/lib/models/pricing.d.ts.map +1 -1
- package/dist/lib/models/pricing.js +4 -0
- package/dist/lib/models/props.d.ts +4 -43
- package/dist/lib/models/props.d.ts.map +1 -1
- package/dist/lib/models/props.js +3 -121
- package/dist/lib/models/question.d.ts +14 -0
- package/dist/lib/models/question.d.ts.map +1 -0
- package/dist/lib/models/question.js +6 -0
- package/dist/lib/models/review.d.ts +13 -1
- package/dist/lib/models/review.d.ts.map +1 -1
- package/dist/lib/models/review.js +4 -0
- package/dist/lib/models/tile.d.ts +7 -1
- package/dist/lib/models/tile.d.ts.map +1 -1
- package/dist/lib/models/travelPackage.d.ts +37 -4
- package/dist/lib/models/travelPackage.d.ts.map +1 -1
- package/dist/lib/models/travelPackage.js +1 -1
- package/dist/lib/models/user.d.ts +25 -2
- package/dist/lib/models/user.d.ts.map +1 -1
- package/dist/lib/models/user.js +1 -0
- package/dist/lib/userAtom.d.ts +30 -5
- package/dist/lib/userAtom.d.ts.map +1 -1
- package/dist/lib/utils/entityTiles.d.ts.map +1 -1
- package/dist/lib/utils/entityTiles.js +3 -2
- package/dist/lib/utils/htmlDescription.d.ts +3 -0
- package/dist/lib/utils/htmlDescription.d.ts.map +1 -0
- package/dist/lib/utils/htmlDescription.js +7 -0
- package/dist/lib/utils/htmlDescription.native.d.ts +3 -0
- package/dist/lib/utils/htmlDescription.native.d.ts.map +1 -0
- package/dist/lib/utils/htmlDescription.native.js +7 -0
- package/dist/lib/utils/text.d.ts +5 -1
- package/dist/lib/utils/text.d.ts.map +1 -1
- package/dist/lib/utils/text.js +18 -6
- package/dist/lib/utils/uploadFile.d.ts +9 -0
- package/dist/lib/utils/uploadFile.d.ts.map +1 -0
- package/dist/lib/utils/uploadFile.js +9 -0
- package/dist/lib/utils/uploadTasks.d.ts +76 -0
- package/dist/lib/utils/uploadTasks.d.ts.map +1 -0
- package/dist/lib/utils/uploadTasks.js +102 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adminDashboard.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/adminDashboard.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"adminDashboard.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/adminDashboard.ts"],"names":[],"mappings":"AAKA,YAAY,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,wBAAsB,mBAAmB,iBAOxC;AAED,wBAAsB,gBAAgB,iBAOrC;AAED,wBAAsB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,gBAO1D;AAED,wBAAsB,mBAAmB;;;;;;;;GAOxC;AAED,wBAAsB,sBAAsB;;;;;;;;GAO3C;AAED,wBAAsB,kBAAkB,CAAC,YAAY,EAAE,GAAG,EAAE;;;;;;;;GAO3D;AAED,wBAAsB,yBAAyB,CAAC,mBAAmB,EAAE,GAAG,EAAE;;;;;;;;GAOzE;AAED,wBAAsB,4BAA4B,CAAC,sBAAsB,EAAE,GAAG,EAAE;;;;;;;;GAO/E;AAED,wBAAsB,qBAAqB,CAAC,KAAK,EAAE;IAAE,cAAc,CAAC,EAAE,GAAG,CAAC;IAAC,kBAAkB,CAAC,EAAE,GAAG,CAAA;CAAE;;;;;;;;GAOpG;AAED,wBAAsB,wBAAwB,CAAC,OAAO,CAAC,EAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE;;;;;;;;GAW5F;AAED,wBAAsB,kBAAkB,CAAC,OAAO,CAAC,EAAE;IACjD,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;IAC/B,MAAM,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,KAAK,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;;;;;;;;GAYA;AAED,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,MAAM;;;;;;;;GAO7D;AAED,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;;;;;;;;GAO7E;AAED,wBAAsB,uBAAuB,CAAC,QAAQ,EAAE,MAAM;;;;;;;;GAO7D;AAED,wBAAsB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM;;;;;;;;GAO7E"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// --- Payouts actions --- //
|
|
2
2
|
import { get, post, put } from "./fetcher";
|
|
3
|
+
import { runUploadTask } from "../utils/uploadTasks";
|
|
3
4
|
export async function getPayoutRecipients() {
|
|
4
5
|
try {
|
|
5
6
|
const data = await get("/admin/payouts/recipients");
|
|
@@ -20,7 +21,7 @@ export async function getPayoutHistory() {
|
|
|
20
21
|
}
|
|
21
22
|
export async function recordManualPayout(formData) {
|
|
22
23
|
try {
|
|
23
|
-
const data = await post("/admin/payouts/record", formData);
|
|
24
|
+
const data = await runUploadTask({ title: "Payout receipt", body: formData, href: typeof window === "undefined" ? undefined : window.location.pathname, operation: ({ progress }) => post("/admin/payouts/record", formData, true, { onUploadProgress: progress }) });
|
|
24
25
|
return { success: true, ...data };
|
|
25
26
|
}
|
|
26
27
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adventure.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/adventure.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"adventure.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/adventure.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { runUploadTask } from "../utils/uploadTasks";
|
|
1
2
|
import { get, patch, post, del } from "./fetcher";
|
|
2
3
|
import { calculatePricingStrategyDisplayUnitPrice, getPrimaryPricingStrategy, getPricingCurrency } from "../models/pricing";
|
|
3
4
|
// ─── Public ───────────────────────────────────────────────────────────────────
|
|
@@ -92,7 +93,7 @@ export async function adventuresByHost() {
|
|
|
92
93
|
}
|
|
93
94
|
export async function createAdventure(formData) {
|
|
94
95
|
try {
|
|
95
|
-
const data = await post(`/adventures/create`, formData);
|
|
96
|
+
const data = await runUploadTask({ title: 'Adventure listing', retrySafe: false, href: "/dashboard/host/adventures", body: formData, operation: ({ progress }) => post(`/adventures/create`, formData, true, { onUploadProgress: progress }) });
|
|
96
97
|
return { success: true, slug: data.data, message: data.message };
|
|
97
98
|
}
|
|
98
99
|
catch (error) {
|
|
@@ -101,7 +102,7 @@ export async function createAdventure(formData) {
|
|
|
101
102
|
}
|
|
102
103
|
export async function editAdventure(formData, slug) {
|
|
103
104
|
try {
|
|
104
|
-
const data = await patch(`/adventures/update/${slug}`, formData);
|
|
105
|
+
const data = await runUploadTask({ title: 'Adventure listing', retrySafe: false, href: "/dashboard/host/adventures", body: formData, operation: ({ progress }) => patch(`/adventures/update/${slug}`, formData, { onUploadProgress: progress }) });
|
|
105
106
|
return { success: true, message: data.message };
|
|
106
107
|
}
|
|
107
108
|
catch (error) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { Application } from "../models/application";
|
|
1
|
+
import type { Application, ApplicationInput } from "../models/application";
|
|
2
2
|
export declare function getVolunteerApplicationForm(slug: string): Promise<{
|
|
3
3
|
success: boolean;
|
|
4
4
|
message?: string;
|
|
@@ -17,20 +17,22 @@ export declare function getApplicationsForOpportunity(slug: string): Promise<{
|
|
|
17
17
|
error?: string;
|
|
18
18
|
applications: Application[];
|
|
19
19
|
}>;
|
|
20
|
-
export declare function saveApplicationForm(formData: FormData): Promise<{
|
|
20
|
+
export declare function saveApplicationForm(formData: FormData | ApplicationInput): Promise<{
|
|
21
21
|
success: boolean;
|
|
22
22
|
message?: string;
|
|
23
23
|
error?: string;
|
|
24
|
+
application?: Application;
|
|
24
25
|
}>;
|
|
25
26
|
export declare function updateApplicationStatus(status: string, id: string): Promise<{
|
|
26
27
|
success: boolean;
|
|
27
28
|
message?: string;
|
|
28
29
|
error?: string;
|
|
29
30
|
}>;
|
|
30
|
-
export declare function editApplication(formData: FormData, id: string): Promise<{
|
|
31
|
+
export declare function editApplication(formData: FormData | ApplicationInput, id: string): Promise<{
|
|
31
32
|
success: boolean;
|
|
32
33
|
message?: string;
|
|
33
34
|
error?: string;
|
|
35
|
+
application?: Application;
|
|
34
36
|
}>;
|
|
35
37
|
export declare function getApplicationsOfVolunteer(): Promise<{
|
|
36
38
|
success: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/application.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/application.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG3E,wBAAsB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvE,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;CACjC,CAAC,CA2BD;AACD,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC;IACvE,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,WAAW,GAAG,IAAI,CAAC;CACjC,CAAC,CAmBD;AAED,wBAAsB,6BAA6B,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACzE,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B,CAAC,CAYD;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,QAAQ,GAAG,gBAAgB,GACpC,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC,CA0BD;AAED,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,EAAE,EAAE,MAAM,GACT,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAgBjE;AAED,wBAAsB,eAAe,CACnC,QAAQ,EAAE,QAAQ,GAAG,gBAAgB,EACrC,EAAE,EAAE,MAAM,GACT,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B,CAAC,CA4BD;AAED,wBAAsB,0BAA0B,IAAI,OAAO,CAAC;IAC1D,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,WAAW,EAAE,CAAC;CAC7B,CAAC,CAsBD;AAED,wBAAsB,uBAAuB,CAC3C,EAAE,EAAE,MAAM,GACT,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAcjE"}
|
|
@@ -1,11 +1,25 @@
|
|
|
1
|
+
import { runUploadTask } from "../utils/uploadTasks";
|
|
1
2
|
import { del, get, patch, post } from "./fetcher";
|
|
3
|
+
import { getNativeTransport } from "./nativeTransport";
|
|
4
|
+
import { applicationFormData } from "../forms/application";
|
|
2
5
|
export async function getVolunteerApplicationForm(slug) {
|
|
3
6
|
try {
|
|
4
7
|
const endpoint = `/applications/getApplicationByUserAndSlug/${slug}`;
|
|
5
8
|
const data = await get(endpoint);
|
|
9
|
+
if (data.data !== null &&
|
|
10
|
+
(!data.data ||
|
|
11
|
+
typeof data.data._id !== "string" ||
|
|
12
|
+
typeof data.data.opportunityId !== "string"))
|
|
13
|
+
throw new Error("Application response could not be read.");
|
|
6
14
|
return { success: true, message: data.message, application: data.data };
|
|
7
15
|
}
|
|
8
16
|
catch (error) {
|
|
17
|
+
// The deployed legacy controller wraps its precise not-found outcome in
|
|
18
|
+
// HTTP500. Only this exact outcome is absence; outages/auth remain errors.
|
|
19
|
+
if (getNativeTransport() &&
|
|
20
|
+
[404, 500].includes(error.statusCode) &&
|
|
21
|
+
error.message === "Application not found")
|
|
22
|
+
return { success: true, application: null };
|
|
9
23
|
return {
|
|
10
24
|
success: false,
|
|
11
25
|
error: error.message,
|
|
@@ -17,6 +31,11 @@ export async function applicationDetails(applicationId) {
|
|
|
17
31
|
try {
|
|
18
32
|
const endpoint = `/applications/getSingleApplication/${applicationId}`;
|
|
19
33
|
const data = await get(endpoint);
|
|
34
|
+
if (data.data !== null &&
|
|
35
|
+
(!data.data ||
|
|
36
|
+
typeof data.data._id !== "string" ||
|
|
37
|
+
typeof data.data.opportunityId !== "string"))
|
|
38
|
+
throw new Error("Application response could not be read.");
|
|
20
39
|
return { success: true, message: data.message, application: data.data };
|
|
21
40
|
}
|
|
22
41
|
catch (error) {
|
|
@@ -43,9 +62,18 @@ export async function getApplicationsForOpportunity(slug) {
|
|
|
43
62
|
}
|
|
44
63
|
export async function saveApplicationForm(formData) {
|
|
45
64
|
try {
|
|
65
|
+
const body = formData instanceof FormData ? formData : applicationFormData(formData);
|
|
46
66
|
const endpoint = `/applications/applyForOpportunity`;
|
|
47
|
-
const data = await
|
|
67
|
+
const data = await runUploadTask({
|
|
68
|
+
title: "Application",
|
|
69
|
+
retrySafe: false,
|
|
70
|
+
href: typeof window === "undefined" || !window.location
|
|
71
|
+
? "/applications"
|
|
72
|
+
: window.location.pathname,
|
|
73
|
+
operation: ({ progress }) => post(endpoint, body, true, { onUploadProgress: progress }),
|
|
74
|
+
});
|
|
48
75
|
return {
|
|
76
|
+
application: data.data,
|
|
49
77
|
success: true,
|
|
50
78
|
message: data.message,
|
|
51
79
|
};
|
|
@@ -77,9 +105,20 @@ export async function updateApplicationStatus(status, id) {
|
|
|
77
105
|
}
|
|
78
106
|
export async function editApplication(formData, id) {
|
|
79
107
|
try {
|
|
108
|
+
const body = formData instanceof FormData
|
|
109
|
+
? formData
|
|
110
|
+
: applicationFormData(formData, true);
|
|
80
111
|
const endpoint = `/applications/updateApplication/${id}`;
|
|
81
|
-
const data = await
|
|
112
|
+
const data = await runUploadTask({
|
|
113
|
+
title: "Application",
|
|
114
|
+
retrySafe: !getNativeTransport(),
|
|
115
|
+
href: typeof window === "undefined" || !window.location
|
|
116
|
+
? "/applications"
|
|
117
|
+
: window.location.pathname,
|
|
118
|
+
operation: ({ progress }) => patch(endpoint, body, { onUploadProgress: progress }),
|
|
119
|
+
});
|
|
82
120
|
return {
|
|
121
|
+
application: data.data,
|
|
83
122
|
success: true,
|
|
84
123
|
message: data.message,
|
|
85
124
|
};
|
|
@@ -95,6 +134,11 @@ export async function getApplicationsOfVolunteer() {
|
|
|
95
134
|
try {
|
|
96
135
|
const endpoint = `/applications/getApplicationsOfVolunteer`;
|
|
97
136
|
const data = await get(endpoint);
|
|
137
|
+
if (!Array.isArray(data.data) ||
|
|
138
|
+
data.data.some((row) => !row ||
|
|
139
|
+
typeof row._id !== "string" ||
|
|
140
|
+
typeof row.opportunityId !== "string"))
|
|
141
|
+
throw new Error("Application list could not be read.");
|
|
98
142
|
return { success: true, message: data.message, applications: data.data };
|
|
99
143
|
}
|
|
100
144
|
catch (error) {
|
|
@@ -40,6 +40,11 @@ export declare function signIn(formData: {
|
|
|
40
40
|
accessToken?: string | undefined;
|
|
41
41
|
refreshToken?: string | undefined;
|
|
42
42
|
verifiedIdCard?: boolean | undefined;
|
|
43
|
+
identityVerification?: {
|
|
44
|
+
documentSubmitted: boolean;
|
|
45
|
+
selfieSubmitted: boolean;
|
|
46
|
+
verified: boolean;
|
|
47
|
+
} | undefined;
|
|
43
48
|
permissions?: string[] | undefined;
|
|
44
49
|
baseUserId?: string | null | undefined;
|
|
45
50
|
baseHostId?: string | null | undefined;
|
|
@@ -73,7 +78,7 @@ export declare function signIn(formData: {
|
|
|
73
78
|
businessDocument?: string | undefined;
|
|
74
79
|
businessIdType?: "PAN" | "GST" | "Udyam" | "PersonalPAN" | undefined;
|
|
75
80
|
businessIdNumber?: string | undefined;
|
|
76
|
-
businessApiVerificationStatus?: "
|
|
81
|
+
businessApiVerificationStatus?: "verified" | "pending" | "failed" | undefined;
|
|
77
82
|
businessVerificationDenialReason?: string | undefined;
|
|
78
83
|
};
|
|
79
84
|
message: string;
|
|
@@ -128,6 +133,11 @@ export declare function signInStaff(formData: {
|
|
|
128
133
|
accessToken?: string | undefined;
|
|
129
134
|
refreshToken?: string | undefined;
|
|
130
135
|
verifiedIdCard?: boolean | undefined;
|
|
136
|
+
identityVerification?: {
|
|
137
|
+
documentSubmitted: boolean;
|
|
138
|
+
selfieSubmitted: boolean;
|
|
139
|
+
verified: boolean;
|
|
140
|
+
} | undefined;
|
|
131
141
|
permissions?: string[] | undefined;
|
|
132
142
|
baseUserId?: string | null | undefined;
|
|
133
143
|
baseHostId?: string | null | undefined;
|
|
@@ -161,7 +171,7 @@ export declare function signInStaff(formData: {
|
|
|
161
171
|
businessDocument?: string | undefined;
|
|
162
172
|
businessIdType?: "PAN" | "GST" | "Udyam" | "PersonalPAN" | undefined;
|
|
163
173
|
businessIdNumber?: string | undefined;
|
|
164
|
-
businessApiVerificationStatus?: "
|
|
174
|
+
businessApiVerificationStatus?: "verified" | "pending" | "failed" | undefined;
|
|
165
175
|
businessVerificationDenialReason?: string | undefined;
|
|
166
176
|
};
|
|
167
177
|
message: string;
|
|
@@ -218,6 +228,11 @@ export declare function verifyEmailOtp(email: string, otp: string, role: "user"
|
|
|
218
228
|
accessToken?: string | undefined;
|
|
219
229
|
refreshToken?: string | undefined;
|
|
220
230
|
verifiedIdCard?: boolean | undefined;
|
|
231
|
+
identityVerification?: {
|
|
232
|
+
documentSubmitted: boolean;
|
|
233
|
+
selfieSubmitted: boolean;
|
|
234
|
+
verified: boolean;
|
|
235
|
+
} | undefined;
|
|
221
236
|
permissions?: string[] | undefined;
|
|
222
237
|
baseUserId?: string | null | undefined;
|
|
223
238
|
baseHostId?: string | null | undefined;
|
|
@@ -251,7 +266,7 @@ export declare function verifyEmailOtp(email: string, otp: string, role: "user"
|
|
|
251
266
|
businessDocument?: string | undefined;
|
|
252
267
|
businessIdType?: "PAN" | "GST" | "Udyam" | "PersonalPAN" | undefined;
|
|
253
268
|
businessIdNumber?: string | undefined;
|
|
254
|
-
businessApiVerificationStatus?: "
|
|
269
|
+
businessApiVerificationStatus?: "verified" | "pending" | "failed" | undefined;
|
|
255
270
|
businessVerificationDenialReason?: string | undefined;
|
|
256
271
|
};
|
|
257
272
|
message: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/auth.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EACR,yBAAyB,EAEzB,eAAe,EACf,cAAc,EACjB,MAAM,0BAA0B,CAAC;AAGlC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/auth.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/actions/auth.js
CHANGED
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import { del, get, patch, post } from "./fetcher";
|
|
2
2
|
import { getAccountType } from "./serverActions";
|
|
3
3
|
import { isExpectedSignedOutError } from "../authSessionPolicy";
|
|
4
|
+
import { acceptNativeSession, getNativeTransport, invalidateNativeSession, nativeSessionGeneration } from "./nativeTransport";
|
|
4
5
|
function clearSensitiveBrowserState() {
|
|
6
|
+
if (getNativeTransport())
|
|
7
|
+
return;
|
|
5
8
|
if (typeof window === "undefined")
|
|
6
9
|
return;
|
|
7
10
|
window.sessionStorage.removeItem("latest_booking_confirmation");
|
|
@@ -24,6 +27,9 @@ function getDeviceRecoveryEndpoint(accountType) {
|
|
|
24
27
|
return "/users/device-recovery/devices";
|
|
25
28
|
}
|
|
26
29
|
export async function signIn(formData) {
|
|
30
|
+
if (getNativeTransport())
|
|
31
|
+
invalidateNativeSession();
|
|
32
|
+
const nativeGeneration = nativeSessionGeneration();
|
|
27
33
|
try {
|
|
28
34
|
// A cache-miss cleanup may still be reconciling stale cookies when the
|
|
29
35
|
// public form becomes interactive. Abort it before issuing the login
|
|
@@ -33,6 +39,7 @@ export async function signIn(formData) {
|
|
|
33
39
|
if (formData.role === 'host')
|
|
34
40
|
endpoint = '/hosts/login';
|
|
35
41
|
const data = await post(endpoint, formData);
|
|
42
|
+
await acceptNativeSession(data.data.session, nativeGeneration, true);
|
|
36
43
|
// console.log('Response:', data);
|
|
37
44
|
return {
|
|
38
45
|
user: data.data.user,
|
|
@@ -62,6 +69,11 @@ export async function signInStaff(formData) {
|
|
|
62
69
|
}
|
|
63
70
|
export async function logoutUser(role, accountTypeHint) {
|
|
64
71
|
clearSensitiveBrowserState();
|
|
72
|
+
const native = getNativeTransport();
|
|
73
|
+
if (native)
|
|
74
|
+
invalidateNativeSession();
|
|
75
|
+
const logoutGeneration = nativeSessionGeneration();
|
|
76
|
+
const ownsLogout = () => getNativeTransport() === native && nativeSessionGeneration() === logoutGeneration;
|
|
65
77
|
try {
|
|
66
78
|
const accountType = accountTypeHint ?? await getAccountType();
|
|
67
79
|
let endpoint = '/users/logout';
|
|
@@ -69,6 +81,8 @@ export async function logoutUser(role, accountTypeHint) {
|
|
|
69
81
|
endpoint = '/auth/staff/logout';
|
|
70
82
|
else if (accountType === 'host' || (!accountType && role === 'host'))
|
|
71
83
|
endpoint = '/hosts/logout';
|
|
84
|
+
if (native && !ownsLogout())
|
|
85
|
+
throw new Error("Session changed");
|
|
72
86
|
const response = await get(endpoint);
|
|
73
87
|
return {
|
|
74
88
|
success: true,
|
|
@@ -79,13 +93,21 @@ export async function logoutUser(role, accountTypeHint) {
|
|
|
79
93
|
console.error(error.message);
|
|
80
94
|
return { success: false, error: error.message };
|
|
81
95
|
}
|
|
96
|
+
finally {
|
|
97
|
+
if (native && ownsLogout())
|
|
98
|
+
await native.clearSession();
|
|
99
|
+
}
|
|
82
100
|
}
|
|
83
101
|
export async function verifyEmailOtp(email, otp, role) {
|
|
102
|
+
if (getNativeTransport())
|
|
103
|
+
invalidateNativeSession();
|
|
104
|
+
const nativeGeneration = nativeSessionGeneration();
|
|
84
105
|
try {
|
|
85
106
|
let endpoint = `/users/verify-otp`;
|
|
86
107
|
if (role === 'host')
|
|
87
108
|
endpoint = `/hosts/verify-otp`;
|
|
88
109
|
const data = await post(endpoint, { email: email, emailOtp: otp });
|
|
110
|
+
await acceptNativeSession(data.data.session, nativeGeneration, true);
|
|
89
111
|
// console.log('Response:', data);
|
|
90
112
|
return {
|
|
91
113
|
user: data.data.user,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"blog.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/blog.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"blog.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/blog.ts"],"names":[],"mappings":"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"}
|
package/dist/lib/actions/blog.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { getNativeTransport } from './nativeTransport';
|
|
2
|
+
import { runUploadTask } from "../utils/uploadTasks";
|
|
1
3
|
import { del, get, patch, post } from "./fetcher";
|
|
2
4
|
import { convertBlogToTileProps } from "../utils/entityTiles";
|
|
3
5
|
export async function getBlogTilesByStatus(status, limit) {
|
|
@@ -191,7 +193,7 @@ export async function blogMetaData(slug) {
|
|
|
191
193
|
export async function createBlog(formData) {
|
|
192
194
|
try {
|
|
193
195
|
const endpoint = `/blog/create`;
|
|
194
|
-
const data = await post(endpoint, formData);
|
|
196
|
+
const data = await runUploadTask({ title: 'Blog', retrySafe: false, href: getNativeTransport() ? "/blogs" : "/dashboard/host/blogs", body: formData, operation: ({ progress }) => post(endpoint, formData, true, { onUploadProgress: progress }) });
|
|
195
197
|
return {
|
|
196
198
|
success: true,
|
|
197
199
|
slug: data.data,
|
|
@@ -209,7 +211,7 @@ export async function createBlog(formData) {
|
|
|
209
211
|
export async function editBlog(formData, slug) {
|
|
210
212
|
try {
|
|
211
213
|
const endpoint = `/blog/update/${slug}`;
|
|
212
|
-
const data = await patch(endpoint, formData);
|
|
214
|
+
const data = await runUploadTask({ title: 'Blog', retrySafe: false, href: getNativeTransport() ? "/blogs" : "/dashboard/host/blogs", body: formData, operation: ({ progress }) => patch(endpoint, formData, { onUploadProgress: progress }) });
|
|
213
215
|
return {
|
|
214
216
|
success: true,
|
|
215
217
|
slug: data.data,
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import { Booking, CreateBookingRequest } from "../models/booking";
|
|
1
|
+
import type { Booking, CreateBookingRequest } from "../models/booking";
|
|
2
|
+
export declare function isConfirmedWithoutOnlinePayment(booking: Pick<Booking, 'status' | 'paymentStatus' | 'totalPrice' | 'entityType' | 'upfrontPaymentAmount'>): boolean;
|
|
2
3
|
export declare function createBooking(bookingData: CreateBookingRequest): Promise<{
|
|
3
4
|
success: boolean;
|
|
4
5
|
booking: Booking | null;
|
|
@@ -83,4 +84,31 @@ export declare function updateBookingStatus(bookingId: string, statusData: {
|
|
|
83
84
|
message?: string;
|
|
84
85
|
error?: string;
|
|
85
86
|
}>;
|
|
87
|
+
export declare function getMyBookings(options?: {
|
|
88
|
+
paymentEvidence?: "legacy" | "server";
|
|
89
|
+
}): Promise<{
|
|
90
|
+
success: boolean;
|
|
91
|
+
bookings: any[];
|
|
92
|
+
packageEnquiries: any[];
|
|
93
|
+
allPackageEnquiries: any[];
|
|
94
|
+
warnings: string[];
|
|
95
|
+
error?: undefined;
|
|
96
|
+
} | {
|
|
97
|
+
success: boolean;
|
|
98
|
+
bookings: never[];
|
|
99
|
+
packageEnquiries: never[];
|
|
100
|
+
allPackageEnquiries: never[];
|
|
101
|
+
error: any;
|
|
102
|
+
warnings?: undefined;
|
|
103
|
+
}>;
|
|
104
|
+
/** Resolve only the chosen history domain. A legacy ID is never a generic Booking ID. */
|
|
105
|
+
export declare function getTravellerHistoryRecord(id: string, source: "generic" | "stay" | "event" | "enquiry"): Promise<{
|
|
106
|
+
success: boolean;
|
|
107
|
+
booking: Booking | null;
|
|
108
|
+
message?: string;
|
|
109
|
+
error?: string;
|
|
110
|
+
} | {
|
|
111
|
+
success: boolean;
|
|
112
|
+
booking: any;
|
|
113
|
+
}>;
|
|
86
114
|
//# sourceMappingURL=booking.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"booking.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/booking.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"booking.d.ts","sourceRoot":"","sources":["../../../src/lib/actions/booking.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
import { get, patch, post } from "./fetcher";
|
|
2
|
+
export function isConfirmedWithoutOnlinePayment(booking) {
|
|
3
|
+
return booking.status === 'confirmed' && (booking.totalPrice === 0 && booking.paymentStatus === 'paid' || booking.entityType === 'Rental' && booking.totalPrice > 0 && booking.upfrontPaymentAmount === 0 && booking.paymentStatus === 'pending');
|
|
4
|
+
}
|
|
2
5
|
function normalizeBookingCreation(data) {
|
|
3
6
|
return {
|
|
4
7
|
success: true,
|
|
@@ -106,3 +109,186 @@ export async function updateBookingStatus(bookingId, statusData) {
|
|
|
106
109
|
};
|
|
107
110
|
}
|
|
108
111
|
}
|
|
112
|
+
function resolvePaymentStatus(record, evidence = "legacy") {
|
|
113
|
+
if (evidence === "server")
|
|
114
|
+
return record.paymentStatus || "unknown";
|
|
115
|
+
if (record.paymentStatus === "paid" || record.paymentStatus === "refunded" || record.paymentStatus === "failed") {
|
|
116
|
+
return record.paymentStatus;
|
|
117
|
+
}
|
|
118
|
+
if (record.paymentId && record.paymentStatus !== "failed") {
|
|
119
|
+
return "paid";
|
|
120
|
+
}
|
|
121
|
+
if (["confirmed", "completed", "attended"].includes(record.status)) {
|
|
122
|
+
return "paid";
|
|
123
|
+
}
|
|
124
|
+
return "pending";
|
|
125
|
+
}
|
|
126
|
+
function normalizeGenericBooking(booking, evidence = "legacy") {
|
|
127
|
+
const rawHostId = booking.hostId || booking.operatorId || booking.entityId?.host || booking.entityId?.hostId || booking.host;
|
|
128
|
+
const hostId = typeof rawHostId === "object" ? (rawHostId?._id || "") : (rawHostId || "");
|
|
129
|
+
return {
|
|
130
|
+
...booking,
|
|
131
|
+
recordSource: "generic",
|
|
132
|
+
hostId: hostId || booking.hostId,
|
|
133
|
+
paymentStatus: resolvePaymentStatus(booking, evidence),
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
function normalizeStayBooking(booking, evidence = "legacy") {
|
|
137
|
+
const rawHostId = booking.hostId || booking.stayId?.host || booking.stayId?.hostId || booking.entityId?.host || booking.host;
|
|
138
|
+
const hostId = typeof rawHostId === "object" ? (rawHostId?._id || "") : (rawHostId || "");
|
|
139
|
+
return {
|
|
140
|
+
...booking,
|
|
141
|
+
recordSource: "stay",
|
|
142
|
+
hostId: hostId || booking.hostId,
|
|
143
|
+
entityId: booking.entityId || booking.stayId,
|
|
144
|
+
entityType: "Stay",
|
|
145
|
+
startDate: booking.startDate || booking.checkIn,
|
|
146
|
+
endDate: booking.endDate || booking.checkOut,
|
|
147
|
+
numberOfPeople: booking.numberOfPeople || booking.guests || 1,
|
|
148
|
+
totalPrice: booking.totalPrice || 0,
|
|
149
|
+
currency: booking.currency || "INR",
|
|
150
|
+
paymentStatus: resolvePaymentStatus(booking, evidence),
|
|
151
|
+
bookingCode: booking.bookingCode,
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
function normalizeEventBooking(booking, evidence = "legacy") {
|
|
155
|
+
const rawHostId = booking.hostId || booking.eventId?.host || booking.eventId?.hostId || booking.entityId?.host || booking.host;
|
|
156
|
+
const hostId = typeof rawHostId === "object" ? (rawHostId?._id || "") : (rawHostId || "");
|
|
157
|
+
return {
|
|
158
|
+
...booking,
|
|
159
|
+
recordSource: "event",
|
|
160
|
+
hostId: hostId || booking.hostId,
|
|
161
|
+
entityId: booking.entityId || booking.eventId,
|
|
162
|
+
entityType: "Event",
|
|
163
|
+
startDate: booking.startDate || booking.eventDate,
|
|
164
|
+
numberOfPeople: booking.numberOfPeople || booking.numberOfSeats || 1,
|
|
165
|
+
totalPrice: booking.totalPrice || 0,
|
|
166
|
+
currency: booking.currency || "INR",
|
|
167
|
+
paymentStatus: resolvePaymentStatus(booking, evidence),
|
|
168
|
+
bookingCode: booking.bookingCode,
|
|
169
|
+
};
|
|
170
|
+
}
|
|
171
|
+
function normalizePackageEnquiry(enquiry) {
|
|
172
|
+
const rawHostId = enquiry.operatorId || enquiry.hostId || enquiry.packageId?.host || enquiry.packageId?.hostId;
|
|
173
|
+
const hostId = typeof rawHostId === "object" ? (rawHostId?._id || "") : (rawHostId || "");
|
|
174
|
+
return {
|
|
175
|
+
...enquiry,
|
|
176
|
+
enquirySnapshot: {
|
|
177
|
+
_id: enquiry._id,
|
|
178
|
+
packageSlug: enquiry.packageSlug,
|
|
179
|
+
status: enquiry.status,
|
|
180
|
+
males: enquiry.males,
|
|
181
|
+
females: enquiry.females,
|
|
182
|
+
desiredStartDate: enquiry.desiredStartDate,
|
|
183
|
+
message: enquiry.message,
|
|
184
|
+
selectedActivities: enquiry.selectedActivities,
|
|
185
|
+
createdAt: enquiry.createdAt,
|
|
186
|
+
updatedAt: enquiry.updatedAt,
|
|
187
|
+
},
|
|
188
|
+
recordSource: "enquiry",
|
|
189
|
+
hostId: hostId || enquiry.operatorId,
|
|
190
|
+
operatorId: hostId || enquiry.operatorId,
|
|
191
|
+
entityId: {
|
|
192
|
+
_id: enquiry.packageId?._id || enquiry.packageId,
|
|
193
|
+
title: enquiry.packageTitle,
|
|
194
|
+
slug: enquiry.packageSlug,
|
|
195
|
+
host: hostId || enquiry.operatorId,
|
|
196
|
+
},
|
|
197
|
+
entityType: "TravelPackage",
|
|
198
|
+
bookingKind: "package_enquiry",
|
|
199
|
+
entityLabel: "Package Enquiry",
|
|
200
|
+
startDate: enquiry.createdAt,
|
|
201
|
+
endDate: undefined,
|
|
202
|
+
numberOfPeople: (Number(enquiry.males) || 0) + (Number(enquiry.females) || 0) || 1,
|
|
203
|
+
totalPrice: enquiry.totalPrice || 0,
|
|
204
|
+
currency: enquiry.currency || "INR",
|
|
205
|
+
paymentStatus: "not_applicable",
|
|
206
|
+
bookingCode: enquiry.bookingCode,
|
|
207
|
+
status: enquiry.status === "denied" ? "cancelled" : enquiry.status,
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
function dedupeBookings(bookings) {
|
|
211
|
+
const seen = new Set();
|
|
212
|
+
return bookings.filter((booking) => {
|
|
213
|
+
const key = String(booking._id || "") || `${booking.entityType}:${booking.bookingCode || booking.startDate}`;
|
|
214
|
+
if (seen.has(key))
|
|
215
|
+
return false;
|
|
216
|
+
seen.add(key);
|
|
217
|
+
return true;
|
|
218
|
+
});
|
|
219
|
+
}
|
|
220
|
+
function hideSupersededPackageEnquiries(bookings) {
|
|
221
|
+
const bookedPackageIds = new Set(bookings
|
|
222
|
+
.filter((booking) => booking.entityType === "TravelPackage" &&
|
|
223
|
+
booking.bookingKind !== "package_enquiry")
|
|
224
|
+
.map((booking) => {
|
|
225
|
+
const packageId = booking.entityId?._id || booking.entityId;
|
|
226
|
+
return String(packageId || "");
|
|
227
|
+
})
|
|
228
|
+
.filter(Boolean));
|
|
229
|
+
return bookings.filter((booking) => {
|
|
230
|
+
if (booking.bookingKind !== "package_enquiry")
|
|
231
|
+
return true;
|
|
232
|
+
const packageId = booking.entityId?._id || booking.packageId || booking.entityId;
|
|
233
|
+
return !bookedPackageIds.has(String(packageId || ""));
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
export async function getMyBookings(options = {}) {
|
|
237
|
+
try {
|
|
238
|
+
const [genericResult, stayResult, eventResult, packageResult] = await Promise.allSettled([
|
|
239
|
+
get("/bookings/my"),
|
|
240
|
+
get("/stays/bookings/me"),
|
|
241
|
+
get("/events/bookings/me"),
|
|
242
|
+
get("/enquiries/my"),
|
|
243
|
+
]);
|
|
244
|
+
const failures = [genericResult, stayResult, eventResult, packageResult].flatMap((result, index) => result.status === "rejected" ? [["bookings", "stay bookings", "event bookings", "package enquiries"][index]] : []);
|
|
245
|
+
const malformedPackage = packageResult.status === "fulfilled" && !Array.isArray(packageResult.value?.data);
|
|
246
|
+
if (options.paymentEvidence === "server" && malformedPackage)
|
|
247
|
+
failures.push("package enquiries");
|
|
248
|
+
if (options.paymentEvidence === "server" && failures.length === 4)
|
|
249
|
+
throw new Error("Booking history could not be loaded");
|
|
250
|
+
const genericBookings = genericResult.status === "fulfilled"
|
|
251
|
+
? (genericResult.value?.data || []).map((booking) => ({
|
|
252
|
+
...normalizeGenericBooking(booking, options.paymentEvidence),
|
|
253
|
+
entityLabel: booking.entityType === "TravelPackage"
|
|
254
|
+
? "Package Booking"
|
|
255
|
+
: booking.entityType,
|
|
256
|
+
}))
|
|
257
|
+
: [];
|
|
258
|
+
const stayBookings = stayResult.status === "fulfilled"
|
|
259
|
+
? (stayResult.value?.data || []).map(item => normalizeStayBooking(item, options.paymentEvidence))
|
|
260
|
+
: [];
|
|
261
|
+
const eventBookings = eventResult.status === "fulfilled"
|
|
262
|
+
? (eventResult.value?.data || []).map(item => normalizeEventBooking(item, options.paymentEvidence))
|
|
263
|
+
: [];
|
|
264
|
+
const packageBookings = packageResult.status === "fulfilled"
|
|
265
|
+
? (options.paymentEvidence === "server" && malformedPackage ? [] : packageResult.value?.data || []).map(normalizePackageEnquiry)
|
|
266
|
+
: [];
|
|
267
|
+
const combined = hideSupersededPackageEnquiries(dedupeBookings([
|
|
268
|
+
...genericBookings,
|
|
269
|
+
...stayBookings,
|
|
270
|
+
...eventBookings,
|
|
271
|
+
...packageBookings,
|
|
272
|
+
])).sort((a, b) => new Date(b.createdAt || b.startDate || 0).getTime() -
|
|
273
|
+
new Date(a.createdAt || a.startDate || 0).getTime());
|
|
274
|
+
const packageEnquiries = combined.filter((booking) => booking.bookingKind === "package_enquiry");
|
|
275
|
+
const bookings = combined.filter((booking) => booking.bookingKind !== "package_enquiry");
|
|
276
|
+
const allPackageEnquiries = dedupeBookings(packageBookings).sort((left, right) => new Date(right.createdAt || 0).getTime() - new Date(left.createdAt || 0).getTime());
|
|
277
|
+
return { success: true, bookings, packageEnquiries, allPackageEnquiries, warnings: failures };
|
|
278
|
+
}
|
|
279
|
+
catch (error) {
|
|
280
|
+
return { success: false, bookings: [], packageEnquiries: [], allPackageEnquiries: [], error: error.message };
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
/** Resolve only the chosen history domain. A legacy ID is never a generic Booking ID. */
|
|
284
|
+
export async function getTravellerHistoryRecord(id, source) {
|
|
285
|
+
if (source === 'generic')
|
|
286
|
+
return getBookingById(id);
|
|
287
|
+
const history = await getMyBookings({ paymentEvidence: 'server' });
|
|
288
|
+
const domain = source === 'stay' ? 'stay bookings' : source === 'event' ? 'event bookings' : 'package enquiries';
|
|
289
|
+
if (!history.success || history.warnings?.includes(domain))
|
|
290
|
+
return { success: false, booking: null, error: `The selected ${domain} record could not be loaded. Please retry.` };
|
|
291
|
+
const records = source === 'enquiry' ? history.allPackageEnquiries : history.bookings;
|
|
292
|
+
const booking = records.find(record => record._id === id && record.recordSource === source);
|
|
293
|
+
return booking ? { success: true, booking } : { success: false, booking: null, error: 'This record is no longer available.' };
|
|
294
|
+
}
|
|
@@ -1,4 +1,11 @@
|
|
|
1
1
|
import type { AdOfferDetail, BrandPageData, CreatorPlacementReviewItem } from "../models/brand";
|
|
2
|
+
import type { BrandSummary } from "../models/place";
|
|
3
|
+
export declare function fetchBrands(page?: number, location?: string): Promise<{
|
|
4
|
+
items: BrandSummary[];
|
|
5
|
+
total: number;
|
|
6
|
+
page: number;
|
|
7
|
+
totalPages: number;
|
|
8
|
+
}>;
|
|
2
9
|
export type { AdOfferDetail, BrandPageData, CreatorPlacementReviewItem, } from "../models/brand";
|
|
3
10
|
export declare function fetchBrandPage(slug: string): Promise<{
|
|
4
11
|
success: boolean;
|