Your IP : 216.73.217.78


Current Path : /home/seto/indexator.pm/
Upload File :
Current File : /home/seto/indexator.pm/index.php

<?php

// Apache front controller (equivalent to router.php for PHP built-in server)

require __DIR__ . '/bootstrap.php';

use App\Core\Request;
use App\Core\Router;
use App\Controllers\AuthController;
use App\Controllers\ProjectController;
use App\Controllers\ExportController;
use App\Controllers\ApiController;
use App\Controllers\SettingsController;
use App\Controllers\BulkImportController;
use App\Controllers\IndexingController;
use App\Controllers\StatsController;
use App\Controllers\ExternalApiController;

$request = new Request();
$router  = new Router();

$router->get('/login',  [AuthController::class, 'showLogin']);
$router->post('/login', [AuthController::class, 'processLogin']);
$router->get('/logout', [AuthController::class, 'logout']);

$router->get('/',                          [ProjectController::class, 'index']);
$router->get('/projects',                  [ProjectController::class, 'index']);
$router->get('/projects/create',           [ProjectController::class, 'create']);
$router->post('/projects',                 [ProjectController::class, 'store']);
$router->get('/projects/{id}',             [ProjectController::class, 'show']);
$router->post('/projects/{id}/delete',     [ProjectController::class, 'delete']);
$router->post('/projects/{id}/check',      [ProjectController::class, 'startCheck']);
$router->post('/projects/{id}/recheck',    [ProjectController::class, 'recheck']);

$router->get('/export/all',           [ExportController::class, 'exportAll']);
$router->get('/projects/{id}/export', [ExportController::class, 'export']);

$router->post('/api/worker/run',               [ApiController::class, 'runWorker']);
$router->post('/api/projects/recheck-all',     [ApiController::class, 'recheckAll']);
$router->post('/api/projects/{id}/recheck',    [ApiController::class, 'recheck']);
$router->post('/api/projects/stop-all',        [ApiController::class, 'stopAll']);
$router->get('/api/projects/{id}/progress',    [ApiController::class, 'progress']);
$router->post('/api/projects/{id}/stop',       [ApiController::class, 'stop']);
$router->post('/api/projects/{id}/reset-jobs', [ApiController::class, 'resetJobs']);

$router->get('/stats', [StatsController::class, 'index']);

$router->get('/settings',  [SettingsController::class, 'show']);
$router->post('/settings', [SettingsController::class, 'update']);

$router->post('/api/bulk-import/start',         [BulkImportController::class, 'start']);
$router->get('/api/bulk-import/{jobId}/status', [BulkImportController::class, 'status']);

$router->post('/api/projects/{id}/submit-indexing',    [IndexingController::class, 'submit']);
$router->get('/api/projects/{id}/indexing',            [IndexingController::class, 'history']);
$router->post('/api/indexing/{submissionId}/refresh',  [IndexingController::class, 'refresh']);
$router->get('/api/indexing/balance',                  [IndexingController::class, 'balance']);

$router->post('/api/external/projects',              [ExternalApiController::class, 'createProject']);
$router->post('/api/external/projects/{id}/recheck', [ExternalApiController::class, 'recheck']);
$router->get('/api/external/projects/{id}',          [ExternalApiController::class, 'progress']);
$router->get('/api/external/projects/{id}/urls',     [ExternalApiController::class, 'urlStatuses']);
$router->post('/api/external/projects/{id}/delete', [ExternalApiController::class, 'deleteProject']);

$router->dispatch($request);