PluginProbe
Yatra – Travel Booking & Tour Operator Software / 3.0.11
Yatra – Travel Booking & Tour Operator Software v3.0.11
3.0.16 3.0.15 3.0.14 3.0.14.1 3.0.14.2 3.0.12 3.0.13 3.0.11 3.0.10 3.0.9 3.0.8 3.0.7 3.0.6 3.0.5 3.0.5.1 3.0.4 3.0.3 3.0.2.9 3.0.2.7 3.0.2.8 3.0.2.6 trunk 1.0.0 2.0.0 2.0.1 All 84 releases
yatra / resources / js / lib / api-endpoints.ts

api-endpoints.ts in Yatra – Travel Booking & Tour Operator Software 3.0.11, at resources/js/lib/api-endpoints.ts

239 lines 9.6 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * API Endpoints Configuration
3 *
4 * Central path definitions for `yatra/v1`. Use `resources/js/api/*-api.ts`
5 * modules for typed `apiClient` calls instead of hardcoding strings in pages.
6 */
7
8 export const API_ENDPOINTS = {
9 // Bookings
10 BOOKINGS: "/bookings",
11 BOOKING_GET: (id: string | number) => `/bookings/${id}`,
12 BOOKING_STATUS: (id: string | number) => `/bookings/${id}/status`,
13 BOOKING_DELETE: (id: string | number) => `/bookings/${id}`,
14 BOOKINGS_BULK: "/bookings/bulk",
15 BOOKINGS_STATS: "/bookings/stats",
16 /** POST body: `{ booking_id }` — returns `{ checkout_url }` in `data`. */
17 PAYMENT_REMAINING_SESSION: "/payment/remaining/session",
18 BOOKING_CONSENT_STATUS: (id: string | number) =>
19 `/bookings/${id}/consent-status`,
20
21 // Customers
22 CUSTOMERS: "/customers",
23 CUSTOMER_GET: (id: string | number) => `/customers/${id}`,
24 CUSTOMER_DELETE: (id: string | number) => `/customers/${id}`,
25 CUSTOMERS_BULK: "/customers/bulk",
26 CUSTOMER_STATS: "/customers/stats",
27 CUSTOMER_BOOKINGS: (id: string | number) => `/customers/${id}/bookings`,
28 CUSTOMER_ME: "/customers/me",
29 CUSTOMER_CHANGE_PASSWORD: "/customers/me/password",
30 CUSTOMER_CHANGE_EMAIL: "/customers/me/email",
31 CUSTOMER_RESEND_EMAIL_CHANGE: "/customers/me/email/resend",
32 CUSTOMER_MY_BOOKINGS: "/customers/my-bookings",
33 CUSTOMER_MY_PAYMENTS: "/customers/my-payments",
34 CUSTOMER_MY_DOCUMENTS: "/customers/my-documents",
35 CUSTOMER_MY_SUPPORT_TICKETS: "/customers/my-support-tickets",
36 /** GET single booking for current user (details view). */
37 CUSTOMER_MY_BOOKING: (id: string | number) => `/customers/my-bookings/${id}`,
38
39 // Travelers
40 TRAVELERS: "/travelers",
41 TRAVELERS_BULK: "/travelers/bulk",
42
43 // Reviews
44 REVIEWS: "/reviews",
45 REVIEW_DELETE: (id: string | number) => `/reviews/${id}`,
46 REVIEW_STATUS: (id: string | number) => `/reviews/${id}/status`,
47 REVIEWS_BULK: "/reviews/bulk",
48
49 // Trips
50 TRIPS: "/trips",
51 TRIP_GET: (id: string | number) => `/trips/${id}`,
52 TRIP_DELETE: (id: string | number) => `/trips/${id}`,
53 TRIP_PERMANENT_DELETE: (id: string | number) =>
54 `/trips/${id}/permanent-delete`,
55 TRIP_DUPLICATE: (id: string | number) => `/trips/${id}/duplicate`,
56 TRIPS_STATS: "/trips/stats",
57 TRIP_ATTRIBUTES: (id: string | number) => `/trips/${id}/attributes`,
58
59 // Departures
60 DEPARTURES: "/departures",
61 TRIP_DEPARTURES: (tripId: string | number) => `/trips/${tripId}/departures`,
62 DEPARTURE_GET: (tripId: string | number, id: string | number) =>
63 `/trips/${tripId}/departures/${id}`,
64 DEPARTURE_UPDATE: (tripId: string | number, id: string | number) =>
65 `/trips/${tripId}/departures/${id}`,
66 DEPARTURE_DELETE: (tripId: string | number, id: string | number) =>
67 `/trips/${tripId}/departures/${id}`,
68 TRIP_DEPARTURES_PAST: (tripId: string | number) =>
69 `/trips/${tripId}/departures/past`,
70
71 // Recurring Rules
72 RECURRING_RULES: (tripId: string | number) =>
73 `/trips/${tripId}/recurring-rules`,
74 RECURRING_RULE_GET: (tripId: string | number, ruleId: string | number) =>
75 `/trips/${tripId}/recurring-rules/${ruleId}`,
76
77 // Payments
78 PAYMENTS: "/payments",
79 PAYMENTS_STATS: "/payments/stats",
80 PAYMENT_GET: (id: string | number) => `/payments/${id}`,
81 PAYMENT_DELETE: (id: string | number) => `/payments/${id}`,
82
83 // Usage tracking (opt-in telemetry)
84 USAGE_TRACKING_STATUS: "/usage-tracking/status",
85 USAGE_TRACKING_SETTINGS: "/usage-tracking/settings",
86 USAGE_TRACKING_SEND: "/usage-tracking/send",
87 USAGE_TRACKING_PREVIEW: "/usage-tracking/preview",
88 USAGE_TRACKING_CLEAR_CACHE: "/usage-tracking/clear-cache",
89 USAGE_TRACKING_DELETE_SNAPSHOTS: "/usage-tracking/delete-snapshots",
90
91 // Settings
92 SETTINGS: "/settings",
93 SETTINGS_GROUP: (group: string) => `/settings?group=${group}`,
94 SETTINGS_PAGES: "/settings/pages",
95 SETTINGS_FLUSH_REWRITE_RULES: "/settings/flush-rewrite-rules",
96 SETTINGS_CHECK_SHORTCODE: (pageId: string | number) =>
97 `/settings/check-shortcode/${pageId}`,
98 SETTINGS_INSERT_SHORTCODE: (pageId: string | number) =>
99 `/settings/insert-shortcode/${pageId}`,
100 SETTINGS_EMAIL_TEMPLATE_PREVIEW: "/settings/email-template-preview",
101
102 // Payment (definitions for admin Settings UI)
103 PAYMENT_GATEWAY_DEFINITIONS: "/payment/gateways/definitions",
104
105 // Enquiries
106 ENQUIRIES: "/enquiries",
107 ENQUIRY_GET: (id: string | number) => `/enquiries/${id}`,
108 ENQUIRY_DELETE: (id: string | number) => `/enquiries/${id}`,
109 ENQUIRIES_BULK: "/enquiries/bulk",
110 ENQUIRY_STATS: "/enquiries/stats",
111 ENQUIRY_RESPOND: (id: string | number) => `/enquiries/${id}/respond`,
112
113 // Reports
114 REPORTS: "/reports",
115 REPORTS_EXPORT: (type: string) => `/reports/export?type=${type}`,
116
117 // Modules
118 MODULES: "/modules",
119
120 // Facebook Pixel
121 FACEBOOK_PIXEL_SETTINGS: "/facebook-pixel/settings",
122 FACEBOOK_PIXEL_TEST: "/facebook-pixel/test",
123 FACEBOOK_PIXEL_TEST_TOKEN: "/facebook-pixel/test-token",
124 FACEBOOK_PIXEL_EVENTS: "/facebook-pixel/events",
125 FACEBOOK_PIXEL_EVENT_LOGS: "/facebook-pixel/event-logs",
126
127 // Google Analytics 4
128 GOOGLE_ANALYTICS_SETTINGS: "/google-analytics/settings",
129 GOOGLE_ANALYTICS_TEST: "/google-analytics/test",
130 GOOGLE_ANALYTICS_VALIDATE_MEASUREMENT_ID:
131 "/google-analytics/validate/measurement-id",
132 GOOGLE_ANALYTICS_VALIDATE_API_SECRET: "/google-analytics/validate/api-secret",
133 GOOGLE_ANALYTICS_EVENTS: "/google-analytics/events",
134 GOOGLE_ANALYTICS_EVENT_LOGS: "/google-analytics/logs",
135
136 // Abandoned Bookings
137 ABANDONED_BOOKINGS: "/abandoned-bookings",
138 ABANDONED_BOOKING_GET: (id: string | number) => `/abandoned-bookings/${id}`,
139 ABANDONED_BOOKING_DELETE: (id: string | number) =>
140 `/abandoned-bookings/${id}`,
141 ABANDONED_BOOKINGS_SETTINGS: "/abandoned-bookings/settings",
142 ABANDONED_BOOKINGS_STATISTICS: "/abandoned-bookings/statistics",
143 ABANDONED_BOOKING_SEND_EMAIL: (id: string | number) =>
144 `/abandoned-bookings/${id}/send-email`,
145 ABANDONED_BOOKINGS_CAMPAIGNS: "/abandoned-bookings/campaigns",
146 ABANDONED_BOOKINGS_CAMPAIGN_GET: (id: string | number) =>
147 `/abandoned-bookings/campaigns/${id}`,
148
149 // Google Calendar
150 GOOGLE_CALENDAR_SETTINGS: "/google-calendar/settings",
151 GOOGLE_CALENDAR_CONNECT: "/google-calendar/connect",
152 GOOGLE_CALENDAR_DISCONNECT: "/google-calendar/disconnect",
153 GOOGLE_CALENDAR_SYNC_ALL: "/google-calendar/sync-all",
154
155 // Tools
156 TOOLS_SYSTEM_STATUS: "/tools/system-status",
157 TOOLS_ACTIVE_JOBS: "/tools/active-jobs",
158 TOOLS_LOGS: (type: string, page: number) =>
159 `/tools/logs/${type}?page=${page}`,
160 TOOLS_LOGS_CLEAR: (type: string) => `/tools/logs/${type}/clear`,
161 TOOLS_EXPORT_JOB: "/tools/export-job",
162 TOOLS_JOB_ACTION: (endpoint: string, jobId: string) =>
163 `/tools/${endpoint}/${jobId}`,
164 TOOLS_EXPORT_DOWNLOAD: (jobId: string) =>
165 `/tools/export-job/${jobId}/download`,
166 TOOLS_EXPORT_DELETE: (jobId: string) => `/tools/export-job/${jobId}`,
167 TOOLS_EXPORT_STATUS: (jobId: string) => `/tools/export-job/${jobId}`,
168 TOOLS_IMPORT_JOB: "/tools/import-job",
169 TOOLS_IMPORT_JOB_GET: (jobId: string) => `/tools/import-job/${jobId}`,
170 TOOLS_ALL_JOBS: "/tools/all-jobs",
171 TOOLS_CRON_JOBS: "/tools/cron-jobs",
172 TOOLS_CRON_RUN: (hook: string) => `/tools/cron-jobs/${hook}/run`,
173 TOOLS_CLEAR_CACHE: "/tools/clear-cache",
174 TOOLS_CACHE_VIEW: "/cache/view",
175 TOOLS_CACHE_CLEAR_ITEM: "/cache/clear-item",
176
177 // Migration
178 MIGRATION_STATUS: "/migration/status",
179 MIGRATION_CLEAR: "/migration/clear",
180 MIGRATION_PROGRESS: "/migration/progress",
181 MIGRATION_MIGRATE_ALL: "/migration/migrate-all",
182 MIGRATION_CANCEL: "/migration/cancel",
183
184 // Payment Gateways
185 PAYMENT_GATEWAYS: "/payment/gateways",
186
187 // Signed Consents
188 SIGNED_CONSENTS: "/signed-consents",
189 SIGNED_CONSENT_GET: (id: string | number) => `/signed-consents/${id}`,
190 SIGNED_CONSENT_PDF: (id: string | number) => `/signed-consents/${id}/pdf`,
191 SIGNED_CONSENTS_PREVIEW: "/signed-consents/preview",
192
193 // Dynamic Pricing
194 DYNAMIC_PRICING_SETTINGS: "/dynamic-pricing/settings",
195
196 // Availability
197 AVAILABILITY: (tripId: string | number) => `/trips/${tripId}/availability`,
198
199 // Itinerary
200 ITINERARY: "/itinerary",
201 ITINERARY_GET: (id: string | number, mode?: string) =>
202 mode ? `/itinerary/${id}?mode=${mode}` : `/itinerary/${id}`,
203 ITINERARY_DELETE: (id: string | number, mode?: string) =>
204 mode ? `/itinerary/${id}?mode=${mode}` : `/itinerary/${id}`,
205 ITINERARY_BY_TRIP: (tripId: string | number) =>
206 `/itinerary?trip_id=${tripId}`,
207 ITINERARY_DAY_ENTRY_BY_DAY_ID: (dayId: string | number) =>
208 `/itinerary/day-entry-by-day-id/${dayId}`,
209 // One-shot save of every activity for a single day. Replaces N sequential
210 // PUTs (one per activity) with a single batch request — the controller
211 // dispatches each row to update/create and returns per-row results.
212 ITINERARY_DAY_ACTIVITIES_BULK: (dayId: string | number) =>
213 `/itinerary/day/${dayId}/activities/bulk`,
214
215 // Saved Trips
216 SAVED_TRIPS: "/saved-trips",
217
218 // Email automation (Yatra Pro module — routes registered when module is active)
219 EMAIL_TEMPLATES: "/email-templates",
220 EMAIL_TEMPLATE_GET: (id: string | number) => `/email-templates/${id}`,
221 EMAIL_TEMPLATE_PREVIEW: (id: string | number) =>
222 `/email-templates/${id}/preview`,
223 EMAIL_TEMPLATE_TEST: (id: string | number) => `/email-templates/${id}/test`,
224 EMAIL_TEMPLATE_DUPLICATE: (id: string | number) =>
225 `/email-templates/${id}/duplicate`,
226 EMAIL_TEMPLATE_VARIABLES: "/email-templates/variables",
227 EMAIL_TEMPLATE_EVENTS: "/email-templates/events",
228 EMAIL_SEQUENCES: "/email-sequences",
229 EMAIL_SEQUENCE_GET: (id: string | number) => `/email-sequences/${id}`,
230 EMAIL_LOGS: "/email-logs",
231
232 // Notices (Admin UI + WP notices)
233 NOTICES: "/notices",
234 NOTICE_DISMISS: (id: string) => `/notices/${id}/dismiss`,
235 } as const;
236
237 // Type for endpoint keys
238 export type ApiEndpointKey = keyof typeof API_ENDPOINTS;
239