PluginProbe
Yatra – Travel Booking & Tour Operator Software / 3.0.3
Yatra – Travel Booking & Tour Operator Software v3.0.3
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 2.0.10 All 83 releases
yatra / resources / js / lib / api-endpoints.ts

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

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