1
0
Files
TaskBoard/backend/api/project.php
Falknat 719aecd09e Добавление проектов
Добавили возможность создавания разных проектов.
2026-01-14 10:46:38 +07:00

87 lines
2.7 KiB
PHP

<?php
$method = $_SERVER['REQUEST_METHOD'];
if ($method === 'POST') {
$data = RestApi::getInput();
$action = $data['action'] ?? null;
$project = new Project();
// Получение данных проекта (проект + колонки + отделы)
if ($action === 'get_project_data') {
$project_id = $data['id_project'] ?? null;
$result = Project::getProjectData($project_id);
if ($result) {
RestApi::response(['success' => true, 'data' => $result]);
} else {
RestApi::response(['success' => false, 'errors' => ['project' => 'Проект не найден']], 404);
}
}
// Установка колонки "Готово" для проекта
if ($action === 'set_ready_column') {
$project_id = $data['id_project'] ?? null;
$column_id = $data['column_id'] ?? null;
$result = Project::setReadyColumn($project_id, $column_id);
RestApi::response($result);
}
// Создание проекта
if ($action === 'create') {
$project->name = $data['name'] ?? '';
$project->id_ready = $data['id_ready'] ?? null;
$result = $project->create();
RestApi::response($result);
}
// Обновление проекта
if ($action === 'update') {
$project->id = $data['id'] ?? null;
$project->name = $data['name'] ?? '';
$project->id_ready = $data['id_ready'] ?? null;
$project->id_order = $data['id_order'] ?? null;
$result = $project->update();
RestApi::response($result);
}
// Удаление проекта
if ($action === 'delete') {
$id = $data['id'] ?? null;
$result = Project::delete($id);
RestApi::response($result);
}
// Метод не указан
if (!$action) {
RestApi::response(['success' => false, 'error' => 'Укажите метод'], 400);
}
}
if ($method === 'GET') {
// Получение всех проектов
// ?active=ID — дополнительно вернуть данные активного проекта
$project = new Project();
$projects = $project->getAll();
$active_id = $_GET['active'] ?? null;
if ($active_id) {
// Возвращаем список проектов + данные активного
$activeData = Project::getProjectData((int)$active_id);
RestApi::response([
'success' => true,
'data' => [
'projects' => $projects,
'active' => $activeData
]
]);
} else {
// Только список проектов
RestApi::response(['success' => true, 'data' => $projects]);
}
}
?>