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 / routes / api.php

api.php in Yatra – Travel Booking & Tour Operator Software trunk, at routes/api.php

127 lines 4.2 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 declare(strict_types=1);
4
5 /**
6 * REST API Routes Registry
7 *
8 * All API routes are registered under the 'yatra/v1' namespace.
9 * Each controller defines its own routes in register_routes() method.
10 *
11 * This file provides a central registry of all API controllers.
12 *
13 * @package Yatra
14 */
15
16 // Ensure we're in WordPress context
17 if (!defined('ABSPATH')) {
18 exit;
19 }
20
21 /**
22 * API Controllers Registry
23 *
24 * Organized by domain/module for easy navigation.
25 * Comment out a controller to disable its endpoints.
26 */
27 $controllers = [
28
29 // =============================================
30 // CORE RESOURCES
31 // =============================================
32 \Yatra\Controllers\TripController::class,
33 \Yatra\Controllers\ActivityController::class,
34 \Yatra\Controllers\DestinationController::class,
35
36 // =============================================
37 // TAXONOMY & CLASSIFICATION
38 // =============================================
39 \Yatra\Controllers\TripCategoryController::class,
40 \Yatra\Controllers\DifficultyLevelController::class,
41 \Yatra\Controllers\TravelerCategoryController::class,
42
43 // =============================================
44 // ITEMS & INVENTORY
45 // =============================================
46 \Yatra\Controllers\ItemTypeController::class,
47 \Yatra\Controllers\ItemController::class,
48
49 // =============================================
50 // TRIP DETAILS
51 // =============================================
52 \Yatra\Controllers\AvailabilityController::class,
53 \Yatra\Controllers\RecurringAvailabilityController::class,
54 \Yatra\Controllers\TripAvailabilityController::class, // Departures System (FREE)
55 \Yatra\Controllers\TripDownloadController::class, // Downloads System (FREE)
56 \Yatra\Controllers\AttributeController::class, // Attributes System (FREE)
57 \Yatra\Controllers\ItineraryController::class,
58 \Yatra\Controllers\DiscountController::class,
59
60 // =============================================
61 // BOOKING & PAYMENTS
62 // =============================================
63 \Yatra\Controllers\BookingsController::class,
64 \Yatra\Controllers\PaymentController::class, // Payment records management
65 \Yatra\Controllers\BookingSessionController::class,
66 \Yatra\Controllers\PaymentGatewayController::class, // Payment gateway operations
67
68 // =============================================
69 // CUSTOMERS & CRM
70 // =============================================
71 \Yatra\Controllers\CustomerController::class,
72 \Yatra\Controllers\ReviewController::class,
73 \Yatra\Controllers\EnquiryController::class,
74 \Yatra\Controllers\SavedTripController::class,
75
76 // =============================================
77 // AUTHENTICATION
78 // =============================================
79 \Yatra\Controllers\AuthController::class,
80
81 // =============================================
82 // ADMIN & SETTINGS
83 // =============================================
84 \Yatra\Controllers\SettingsController::class,
85 \Yatra\Controllers\ModuleController::class,
86 // White Label routes live in yatra-pro/app/Modules/WhiteLabel/Controllers/
87 // and are registered by Pro's WhiteLabelModule::boot() at rest_api_init.
88 \Yatra\Controllers\ReportsController::class,
89 \Yatra\Controllers\ToolsController::class,
90 \Yatra\Controllers\SampleDataController::class,
91 \Yatra\Controllers\UsageTrackingController::class,
92 \Yatra\Controllers\NoticeController::class,
93 \Yatra\Controllers\NotificationCountsController::class, // Sidebar "new since last seen" badges
94
95 ];
96
97 // Debug: Check if BookingsController is in the array
98 if (defined('WP_DEBUG') && WP_DEBUG) {
99 }
100
101 /**
102 * Register all controller routes
103 *
104 * Each controller's register_routes() method is called to register
105 * its endpoints with WordPress REST API.
106 */
107 foreach ($controllers as $controllerClass) {
108 if (!class_exists($controllerClass)) {
109 continue;
110 }
111
112 try {
113 $controller = new $controllerClass();
114
115 if (method_exists($controller, 'register_routes')) {
116 $controller->register_routes();
117 }
118 } catch (\Throwable $e) {
119 continue;
120 }
121 }
122
123 try {
124 (new \Yatra\Controllers\BlockEditorChoicesController())->register_routes();
125 } catch (\Throwable $e) {
126 }
127