/
delphin
/
CatRW
Обзор
Документация
Войти
/
delphin
/
CatRW
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
api/scales.php
68 строк
3 KB
delphin
start project
02 мар 2026, 09:14
Верифицирован
02 мар 2026, 09:14
4b0ee03
Код
Авторство
О чём код?
<?php // API /api/scales.php - упрощённый: header('Content-Type: application/json; charset=utf-8'); require_once __DIR__ . '/../config.php'; require_once __DIR__ . '/Database.php'; function sendJson($data, $status = 200) { http_response_code($status); echo json_encode($data, JSON_UNESCAPED_UNICODE); exit; } try { $method = $_SERVER['REQUEST_METHOD']; if ($method === 'GET') { // Только GET - для отображения в админке и выпадающих списках $scales = Database::select("SELECT * FROM scales ORDER BY code"); sendJson(['success' => true, 'data' => $scales]); } elseif ($method === 'POST') { // POST - только если админ хочет добавить новый редкий типоразмер $input = json_decode(file_get_contents('php://input'), true); if (empty($input['code'])) { sendJson(['success' => false, 'error' => 'Код обязателен'], 400); } // Проверка существования $existing = Database::selectOne("SELECT code FROM scales WHERE code = ?", [strtoupper($input['code'])]); if ($existing) { sendJson(['success' => false, 'error' => 'Типоразмер уже существует'], 400); } Database::insert('scales', [ 'code' => strtoupper($input['code']), 'name_en' => $input['name_en'] ?? null, 'scale_ratio' => $input['scale_ratio'] ?? null, 'track_gauge_mm' => $input['track_gauge_mm'] ?? null, 'description' => $input['description'] ?? null ]); sendJson(['success' => true, 'message' => 'Добавлено']); } elseif ($method === 'DELETE') { // DELETE - с проверкой использования в моделях $code = $_GET['code'] ?? ''; // Проверяем, используется ли в моделях $used = Database::selectOne( "SELECT COUNT(*) as cnt FROM catalog_models WHERE scale_code = ?", [$code] ); if ($used && $used['cnt'] > 0) { sendJson(['success' => false, 'error' => 'Нельзя удалить: используется в моделях'], 400); } Database::delete('scales', 'code = ?', [$code]); sendJson(['success' => true, 'message' => 'Удалено']); } else { sendJson(['success' => false, 'error' => 'Метод не поддерживается'], 405); } } catch(Exception $e) { sendJson(['success' => false, 'error' => $e->getMessage()], 500); }