File tree Expand file tree Collapse file tree
src/main/java/com/taskmanagerapi Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -82,6 +82,16 @@ curl -s http://localhost:8080/tasks/{id}
8282
8383---
8484
85+ ### GET /tasks/search/{name} — Fetch a task by name
86+
87+ ``` bash
88+ curl -s http://localhost:8080/tasks/search/{name}
89+ ```
90+
91+ ** Expected:** ` 200 OK ` with the matching task, or ` 404 ` if not found.
92+
93+ ---
94+
8595### PATCH /tasks/{id}/complete — Mark a task as completed
8696
8797``` bash
Original file line number Diff line number Diff line change @@ -42,6 +42,13 @@ public ResponseEntity<Task> getTask(@PathVariable String id) {
4242 .orElse (ResponseEntity .notFound ().build ());
4343 }
4444
45+ @ GetMapping ("/tasks/search/{name}" )
46+ public ResponseEntity <Task > searchTaskByName (@ PathVariable String name ) {
47+ return taskService .searchTaskByName (name )
48+ .map (ResponseEntity ::ok )
49+ .orElse (ResponseEntity .notFound ().build ());
50+ }
51+
4552 @ PatchMapping ("/tasks/{id}/complete" )
4653 public ResponseEntity <Task > completeTask (@ PathVariable String id ) {
4754 return taskService .completeTask (id )
Original file line number Diff line number Diff line change @@ -24,6 +24,12 @@ public Optional<Task> findTaskById(String id) {
2424 return Optional .ofNullable (taskStore .get (id ));
2525 }
2626
27+ public Optional <Task > findTaskByName (String name ){
28+ return taskStore .values ().stream ()
29+ .filter (task -> task .getName ().equals (name ))
30+ .findFirst ();
31+ }
32+
2733 public void delete (String id ){
2834 taskStore .remove (id );
2935 }
Original file line number Diff line number Diff line change @@ -32,6 +32,10 @@ public Optional<Task> getTask(String id) {
3232 return taskRepository .findTaskById (id );
3333 }
3434
35+ public Optional <Task > searchTaskByName (String name ){
36+ return taskRepository .findTaskByName (name );
37+ }
38+
3539 public Optional <Task > completeTask (String id ) {
3640 return taskRepository .findTaskById (id ).map (task -> {
3741 task .setStatus (DONE );
You can’t perform that action at this time.
0 commit comments