PluginProbe
Yatra – Travel Booking & Tour Operator Software / trunk
Yatra – Travel Booking & Tour Operator Software vtrunk
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 2.0.10 2.0.11 All 82 releases
yatra / resources / js / lib / api-endpoints.ts

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

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