feature: add task delete method

This commit is contained in:
Miguel Nogueira 2025-04-14 00:25:18 +01:00
parent 5b964a4676
commit 713c8e5137
2 changed files with 27 additions and 1 deletions

View File

@ -19,8 +19,11 @@ $routeCollector->setDefaultInvocationStrategy(new RequestResponseArgs());
$app->get('/', [HomeFrontController::class, 'home']);
$app->get('/tasks', [TaskController::class, 'getTasks']);
$app->get('/tasks/{id}', [TaskController::class, 'getTask']);
$app->delete('/tasks/{id}', [TaskController::class, 'delete']);
$app->get('/tasks', [TaskController::class, 'getTasks']);
$app->post('/tasks', [TaskController::class, 'addTask']);

View File

@ -155,4 +155,27 @@ class TaskController
return $errorResponse;
}
}
public function delete(ServerRequestInterface $request, ResponseInterface $response, $id): ResponseInterface
{
try
{
$task = $this->repository->readById((int) $id);
$this->repository->delete($task);
$this->builder->setOptionalMessage('Task deleted.');
$response->getBody()->write($this->builder->build());
return $response;
} catch (TaskNotFoundException $exception)
{
$this->builder->setError()->setErrorMessage($exception->getMessage())->setErrorCode(404);
$errorResponse = $response->withStatus(404);
$errorResponse->getBody()->write($this->builder->build());
return $errorResponse;
}
}
}