/
kunda
/
gantt-test-task
Обзор
Документация
Войти
/
kunda
/
gantt-test-task
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
api/bootstrap.php
63 строки
2 KB
Kekovich-kw
init
20 май 2026, 09:48
20 май 2026, 09:48
f395d5f
Код
Авторство
О чём код?
<?php header('Content-Type: application/json; charset=utf-8'); header('Access-Control-Allow-Origin: *'); header('Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS'); header('Access-Control-Allow-Headers: Content-Type'); if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') { http_response_code(204); exit; } $config = require __DIR__ . '/config.php'; $dsn = sprintf( 'mysql:host=%s;port=%s;dbname=%s;charset=%s', $config['host'], $config['port'], $config['name'], $config['charset'], ); try { $pdo = new PDO($dsn, $config['user'], $config['pass'], [ PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC, PDO::ATTR_EMULATE_PREPARES => false, ]); } catch (PDOException $e) { http_response_code(500); echo json_encode(['error' => 'Database connection failed', 'detail' => $e->getMessage()]); exit; } function json_body(): array { $raw = file_get_contents('php://input'); if (!$raw) { return []; } $data = json_decode($raw, true); return is_array($data) ? $data : []; } function respond($payload, int $code = 200): void { http_response_code($code); echo json_encode($payload, JSON_UNESCAPED_UNICODE); exit; } function row_to_task(array $row): array { return [ 'id' => (string) $row['id'], 'name' => $row['name'], 'start' => date('Y-m-d H:i:s', strtotime($row['start_date'])), 'end' => date('Y-m-d H:i:s', strtotime($row['end_date'])), 'progress' => (float) $row['progress'], 'dependencies' => $row['dependencies'] ?: '', 'custom_class' => $row['custom_class'] ?: '', ]; }