aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/main/java/com/encora/Main.java16
-rw-r--r--src/main/java/com/encora/ToDosRepository.java20
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;
}