🚀 مُصادَق: الإطلاق الأولي للنظام المتكامل
This commit is contained in:
74
public/index.php
Normal file
74
public/index.php
Normal file
@@ -0,0 +1,74 @@
|
||||
<?php
|
||||
|
||||
declare(strict_types=1);
|
||||
|
||||
require_once __DIR__ . '/../vendor/autoload.php';
|
||||
|
||||
use App\Core\Application;
|
||||
use App\Modules\Auth\AuthController;
|
||||
use App\Middleware\AuthMiddleware;
|
||||
|
||||
$app = new Application(dirname(__DIR__));
|
||||
$router = $app->getRouter();
|
||||
|
||||
// ══ Auth Routes ══════════════════════════════════════════════
|
||||
$router->addRoute('POST', '/api/v1/auth/login', [AuthController::class, 'login']);
|
||||
|
||||
// ══ Company Routes ═══════════════════════════════════════════
|
||||
$router->addRoute('GET', '/api/v1/companies', [
|
||||
'middleware' => [\App\Middleware\AuthMiddleware::class],
|
||||
'handler' => [\App\Modules\Companies\CompanyController::class, 'list']
|
||||
]);
|
||||
$router->addRoute('POST', '/api/v1/companies', [
|
||||
'middleware' => [\App\Middleware\AuthMiddleware::class],
|
||||
'handler' => [\App\Modules\Companies\CompanyController::class, 'create']
|
||||
]);
|
||||
$router->addRoute('PUT', '/api/v1/companies/{id}/jofotara', [
|
||||
'middleware' => [\App\Middleware\AuthMiddleware::class],
|
||||
'handler' => [\App\Modules\Companies\CompanyController::class, 'updateJoFotara']
|
||||
]);
|
||||
|
||||
// ══ Invoice Routes ═══════════════════════════════════════════
|
||||
$router->addRoute('GET', '/api/v1/invoices', [
|
||||
'middleware' => [\App\Middleware\AuthMiddleware::class],
|
||||
'handler' => [\App\Modules\Invoices\InvoiceController::class, 'list']
|
||||
]);
|
||||
$router->addRoute('POST', '/api/v1/invoices/upload', [
|
||||
'middleware' => [\App\Middleware\AuthMiddleware::class],
|
||||
'handler' => [\App\Modules\Invoices\InvoiceController::class, 'upload']
|
||||
]);
|
||||
$router->addRoute('GET', '/api/v1/invoices/{id}', [
|
||||
'middleware' => [\App\Middleware\AuthMiddleware::class],
|
||||
'handler' => [\App\Modules\Invoices\InvoiceController::class, 'detail']
|
||||
]);
|
||||
|
||||
// ══ External API (HMAC) ══════════════════════════════════════
|
||||
$router->addRoute('POST', '/api/v1/external/invoices/upload', [
|
||||
'middleware' => [\App\Middleware\HmacMiddleware::class],
|
||||
'handler' => [\App\Modules\Invoices\InvoiceController::class, 'upload']
|
||||
]);
|
||||
|
||||
// ══ Dashboard ════════════════════════════════════════════════
|
||||
$router->addRoute('GET', '/api/v1/dashboard', [
|
||||
'middleware' => [\App\Middleware\AuthMiddleware::class],
|
||||
'handler' => [\App\Modules\Dashboard\DashboardController::class, 'getStats']
|
||||
]);
|
||||
|
||||
// ══ Health Check ═════════════════════════════════════════════
|
||||
$router->addRoute('GET', '/api/v1/health', function($request) {
|
||||
\App\Core\Response::json([
|
||||
'status' => 'ok',
|
||||
'timestamp' => date('c'),
|
||||
'php' => PHP_VERSION,
|
||||
'db' => 'connected' // Simple check
|
||||
]);
|
||||
});
|
||||
|
||||
// ══ SPA Shell ═══════════════════════════════════════════════
|
||||
$path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
|
||||
if (!str_starts_with($path, '/api/v1/')) {
|
||||
include __DIR__ . '/shell.php';
|
||||
exit;
|
||||
}
|
||||
|
||||
$app->run();
|
||||
Reference in New Issue
Block a user