diff --git a/api.php b/api.php index 5dc1e21..f6954aa 100644 --- a/api.php +++ b/api.php @@ -2295,7 +2295,9 @@ switch ($action) { $status = $input['status'] ?? ''; $todo = dbLoadTodo($id); if (!$todo || $todo['company_id'] !== $companyId) { - http_response_code(404); break; + http_response_code(404); + echo json_encode(['error' => 'Tehtävää ei löytynyt']); + break; } // Feature request status: vain admin if ($todo['type'] === 'feature_request' && !isAdmin()) { @@ -2305,12 +2307,17 @@ switch ($action) { } // Task status: vain admin if ($todo['type'] === 'task' && !isAdmin()) { - http_response_code(403); break; + http_response_code(403); + echo json_encode(['error' => 'Vain admin voi muuttaa tehtävän statusta']); + break; + } + try { + _dbExecute("UPDATE todos SET status = ?, muokattu = NOW(), muokkaaja = ? WHERE id = ?", [$status, currentUser(), $id]); + echo json_encode(['success' => true]); + } catch (\Throwable $e) { + http_response_code(500); + echo json_encode(['error' => 'Tallennus epäonnistui: ' . $e->getMessage()]); } - $todo['status'] = $status; - $todo['muokkaaja'] = currentUser(); - dbSaveTodo($companyId, $todo); - echo json_encode(['success' => true]); break; case 'todo_assign': @@ -2322,12 +2329,18 @@ switch ($action) { $id = $input['id'] ?? ''; $todo = dbLoadTodo($id); if (!$todo || $todo['company_id'] !== $companyId) { - http_response_code(404); break; + http_response_code(404); + echo json_encode(['error' => 'Tehtävää ei löytynyt']); + break; + } + try { + $assignedTo = $input['assigned_to'] ?? ''; + _dbExecute("UPDATE todos SET assigned_to = ?, muokattu = NOW(), muokkaaja = ? WHERE id = ?", [$assignedTo, currentUser(), $id]); + echo json_encode(['success' => true]); + } catch (\Throwable $e) { + http_response_code(500); + echo json_encode(['error' => 'Tallennus epäonnistui: ' . $e->getMessage()]); } - $todo['assigned_to'] = $input['assigned_to'] ?? ''; - $todo['muokkaaja'] = currentUser(); - dbSaveTodo($companyId, $todo); - echo json_encode(['success' => true]); break; case 'todo_comment':