From f48cf17ecedade7502c4d09f6f7a90e84f3776f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A1n=20Oliva?= Date: Thu, 25 May 2023 19:29:46 -0600 Subject: POST to set done. POST on /todos/{id}/done to set the to do with {id} done. :3 --- src/main/java/com/encora/Main.java | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'src/main/java/com/encora/Main.java') diff --git a/src/main/java/com/encora/Main.java b/src/main/java/com/encora/Main.java index ec23015..108e657 100644 --- a/src/main/java/com/encora/Main.java +++ b/src/main/java/com/encora/Main.java @@ -54,4 +54,20 @@ public class Main { todo.setPriority(toDo.priority()); toDosRepository.save(todo); } + + // Update a to do with "done". + @ResponseStatus(value=HttpStatus.BAD_REQUEST, reason="No to do with such index.") + public static class toDoNotFound extends RuntimeException {} + + @PostMapping("/todos/{id}/done") + @ResponseStatus(value=HttpStatus.OK) + public void setDone(@PathVariable("id") Integer id) { + ToDos selectedToDo = toDosRepository.getById(id); + if (selectedToDo == null) throw new toDoNotFound(); + if (selectedToDo.isDone()) return; + + selectedToDo.setDone(true); + selectedToDo.setDoneDate(new Date()); + toDosRepository.save(selectedToDo); + } } -- cgit v1.2.3