| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- <?php
- declare(strict_types=1);
- /**
- * EKSRelay – single entry point.
- *
- * Run: php -S 0.0.0.0:8080 -t public
- */
- require_once __DIR__ . '/../vendor/autoload.php';
- use EKSRelay\Core\Env;
- use EKSRelay\Core\Logger;
- use EKSRelay\Core\Router;
- use EKSRelay\Handlers\ChatwootWebhookHandler;
- use EKSRelay\Handlers\NewTicketHandler;
- use EKSRelay\Handlers\WooToolsHandler;
- // ── Bootstrap ──────────────────────────────────────────────────────
- Env::load(__DIR__ . '/../.env');
- Logger::init();
- // ── Routes ─────────────────────────────────────────────────────────
- $router = new Router();
- // Chatwoot webhook
- $router->post('/webhooks/chatwoot', [ChatwootWebhookHandler::class, 'handle']);
- // Tools (called by Flowise or external)
- $router->post('/tools/new_ticket', [NewTicketHandler::class, 'handle']);
- $router->post('/tools/get_order_data', [WooToolsHandler::class, 'getOrderData']);
- $router->post('/tools/get_product_data', [WooToolsHandler::class, 'getProductData']);
- $router->post('/tools/get_shipping_data', [WooToolsHandler::class, 'getShippingData']);
- $router->post('/tools/get_payment_methods', [WooToolsHandler::class, 'getPaymentMethods']);
- $router->post('/tools/get_product_compatibility', [WooToolsHandler::class, 'getProductCompatibility']);
- $router->post('/tools/get_car_data', [WooToolsHandler::class, 'getCarData']);
- // ── Dispatch ───────────────────────────────────────────────────────
- $method = $_SERVER['REQUEST_METHOD'] ?? 'GET';
- $uri = $_SERVER['REQUEST_URI'] ?? '/';
- Logger::info('Request received', ['method' => $method, 'uri' => $uri]);
- $router->dispatch($method, $uri);
|