PluginProbe
Yatra – Travel Booking & Tour Operator Software / 3.0.8
Yatra – Travel Booking & Tour Operator Software v3.0.8
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.8, at resources/js/lib/api-endpoints.ts

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