Добавить управление рефлектором и дашборд статистики

Этот коммит содержится в:
2026-05-18 07:08:08 +09:00
родитель 2f80c4322c
Коммит 837541b022
11 изменённых файлов: 421 добавлений и 16 удалений
+16
Просмотреть файл
@@ -8,6 +8,7 @@ use Xlx\Domain\IdAllocator;
use Xlx\Domain\PaymentService;
use Xlx\Domain\RegistrationService;
use Xlx\Domain\XlxdConfigFileService;
use Xlx\Domain\XlxdRuntimeService;
use Xlx\Domain\XlxdSettingsService;
use Xlx\Domain\YooKassaClient;
use Xlx\Support\Database;
@@ -36,6 +37,10 @@ try {
Response::json(['ok' => true, 'service' => 'xlx-panel']);
}
if ($method === 'GET' && $path === '/api/dashboard/stats') {
Response::json(['ok' => true, 'data' => (new XlxdRuntimeService($config))->dashboard($pdo)]);
}
if ($method === 'GET' && $path === '/api/callsigns/check') {
$paymentService = new PaymentService($config, new IdAllocator($config), new AccessCredentialService($config), new YooKassaClient($config));
$service = new RegistrationService($config, $paymentService);
@@ -130,6 +135,17 @@ try {
Response::json(['ok' => true, 'data' => $service->save((string) ($input['file'] ?? ''), (string) ($input['content'] ?? ''))]);
}
if ($method === 'GET' && $path === '/api/admin/xlxd/runtime') {
Security::requireAdminToken($config);
Response::json(['ok' => true, 'data' => (new XlxdRuntimeService($config))->dashboard($pdo)]);
}
if ($method === 'POST' && $path === '/api/admin/xlxd/runtime') {
Security::requireAdminToken($config);
$input = Input::json();
Response::json(['ok' => true, 'data' => (new XlxdRuntimeService($config))->control((string) ($input['action'] ?? ''))]);
}
Response::error('Route not found.', 404);
} catch (Throwable $throwable) {
Response::error($throwable->getMessage(), 400);