Добавление проектов
Добавили возможность создавания разных проектов.
This commit is contained in:
86
backend/api/project.php
Normal file
86
backend/api/project.php
Normal file
@@ -0,0 +1,86 @@
|
||||
<?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]);
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
@@ -7,24 +7,6 @@ if ($method === 'POST') {
|
||||
$action = $data['action'] ?? null;
|
||||
$task = new Task();
|
||||
|
||||
// Получение колонок
|
||||
if ($action === 'get_columns') {
|
||||
$result = $task->getColumns();
|
||||
RestApi::response(['success' => true, 'data' => $result]);
|
||||
}
|
||||
|
||||
// Получение департаментов
|
||||
if ($action === 'get_departments') {
|
||||
$result = $task->getDepartments();
|
||||
RestApi::response(['success' => true, 'data' => $result]);
|
||||
}
|
||||
|
||||
// Получение меток
|
||||
if ($action === 'get_labels') {
|
||||
$result = $task->getLabels();
|
||||
RestApi::response(['success' => true, 'data' => $result]);
|
||||
}
|
||||
|
||||
// Загрузка изображения
|
||||
if ($action === 'upload_image') {
|
||||
$task_id = $data['task_id'] ?? null;
|
||||
@@ -73,6 +55,7 @@ if ($method === 'POST') {
|
||||
|
||||
// Создание задачи
|
||||
if ($action === 'create') {
|
||||
$task->id_project = $data['id_project'] ?? null;
|
||||
$task->id_department = $data['id_department'] ?? null;
|
||||
$task->id_label = $data['id_label'] ?? null;
|
||||
$task->id_account = $data['id_account'] ?? null;
|
||||
@@ -110,8 +93,15 @@ if ($method === 'POST') {
|
||||
}
|
||||
|
||||
if ($method === 'GET') {
|
||||
// Получение всех задач
|
||||
// Получение задач проекта
|
||||
// ?id_project=1 (обязательный)
|
||||
// ?archive=0 (неархивные, по умолчанию), ?archive=1 (архивные), ?archive=all (все)
|
||||
$id_project = $_GET['id_project'] ?? null;
|
||||
|
||||
if (!$id_project) {
|
||||
RestApi::response(['success' => false, 'errors' => ['id_project' => 'Проект не указан']], 400);
|
||||
}
|
||||
|
||||
$archive = $_GET['archive'] ?? 0;
|
||||
if ($archive === 'all') {
|
||||
$archive = null;
|
||||
@@ -120,7 +110,7 @@ if ($method === 'GET') {
|
||||
}
|
||||
|
||||
$task = new Task();
|
||||
$tasks = $task->getAll($archive);
|
||||
$tasks = $task->getAll($id_project, $archive);
|
||||
|
||||
RestApi::response(['success' => true, 'data' => $tasks]);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user