Korjaa todo status/assign: suora UPDATE dbSaveTodo:n sijaan
dbSaveTodo kaatui koska dbLoadTodo palauttaa ylimääräisiä kenttiä (comments, time_entries, total_hours). Vaihdettu suoraan UPDATE-lauseeksi + lisätty JSON-virhevastaukset kaikkiin virhetilanteisiin (404/403/500). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
31
api.php
31
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;
|
||||
}
|
||||
$todo['status'] = $status;
|
||||
$todo['muokkaaja'] = currentUser();
|
||||
dbSaveTodo($companyId, $todo);
|
||||
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()]);
|
||||
}
|
||||
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;
|
||||
}
|
||||
$todo['assigned_to'] = $input['assigned_to'] ?? '';
|
||||
$todo['muokkaaja'] = currentUser();
|
||||
dbSaveTodo($companyId, $todo);
|
||||
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()]);
|
||||
}
|
||||
break;
|
||||
|
||||
case 'todo_comment':
|
||||
|
||||
Reference in New Issue
Block a user