diff options
author | Adrián Oliva <adrian.oliva@cimat.mx> | 2023-05-25 19:29:46 -0600 |
---|---|---|
committer | Adrián Oliva <adrian.oliva@cimat.mx> | 2023-05-25 19:29:46 -0600 |
commit | f48cf17ecedade7502c4d09f6f7a90e84f3776f3 (patch) | |
tree | 10347681442bcafede777eab2fd9a331c3780d2f /src | |
parent | 7bf30fc960b07a7cdc93ac469a5c2982f6cf53aa (diff) | |
download | ToDo-App-BE-f48cf17ecedade7502c4d09f6f7a90e84f3776f3.tar.gz ToDo-App-BE-f48cf17ecedade7502c4d09f6f7a90e84f3776f3.zip |
POST to set done.
POST on /todos/{id}/done to set the to do with {id} done. :3
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/com/encora/Main.java | 16 | ||||
-rw-r--r-- | src/main/java/com/encora/ToDosRepository.java | 20 |
2 files changed, 31 insertions, 5 deletions
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); + } } diff --git a/src/main/java/com/encora/ToDosRepository.java b/src/main/java/com/encora/ToDosRepository.java index 5b8b292..f19d1ce 100644 --- a/src/main/java/com/encora/ToDosRepository.java +++ b/src/main/java/com/encora/ToDosRepository.java @@ -66,6 +66,21 @@ public class ToDosRepository implements JpaRepository<ToDos, Integer> { return null; } + // Retrieve a to do. + @Override + public ToDos getById(Integer integer) { + ToDos selectedToDo; + + for (int index = 0; index < this.todos.size(); index++) { + selectedToDo = this.todos.get(index); + if (Objects.equals(selectedToDo.getId(), integer)) { + return selectedToDo; + } + } + + return null; + } + /* * N O T Y E T D E F I N E D . */ @@ -105,11 +120,6 @@ public class ToDosRepository implements JpaRepository<ToDos, Integer> { } @Override - public ToDos getById(Integer integer) { - return null; - } - - @Override public ToDos getReferenceById(Integer integer) { return null; } |