Skip to content

Commit 9707c15

Browse files
committed
add complete task functionality
1 parent be0fd5e commit 9707c15

2 files changed

Lines changed: 22 additions & 7 deletions

File tree

src/main/java/com/taskmanagerapi/controller/TaskController.java

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -13,14 +13,13 @@ public class TaskController {
1313

1414
private final TaskService taskService;
1515

16-
public TaskController(TaskService taskService){
16+
public TaskController(TaskService taskService) {
1717
this.taskService = taskService;
1818
}
1919

2020
@PostMapping("/tasks")
21-
public ResponseEntity<Task> addTask(@RequestBody Map<String, String> request){
22-
try
23-
{
21+
public ResponseEntity<Task> addTask(@RequestBody Map<String, String> request) {
22+
try {
2423
String name = request.get("name");
2524
String description = request.get("description");
2625

@@ -32,19 +31,26 @@ public ResponseEntity<Task> addTask(@RequestBody Map<String, String> request){
3231
}
3332

3433
@GetMapping("/tasks")
35-
public ResponseEntity<List<Task>> getAllTasks(){
34+
public ResponseEntity<List<Task>> getAllTasks() {
3635
return ResponseEntity.ok(taskService.getAllTasks());
3736
}
3837

3938
@GetMapping("/tasks/{id}")
40-
public ResponseEntity<Task> getTask(@PathVariable String id){
39+
public ResponseEntity<Task> getTask(@PathVariable String id) {
4140
return taskService.getTask(id)
4241
.map(ResponseEntity::ok)
4342
.orElse(ResponseEntity.notFound().build());
4443
}
4544

45+
@PatchMapping("/tasks/{id}/complete")
46+
public ResponseEntity<Task> completeTask(@PathVariable String id) {
47+
return taskService.completeTask(id)
48+
.map(ResponseEntity::ok)
49+
.orElse(ResponseEntity.notFound().build());
50+
}
51+
4652
@DeleteMapping("/tasks/{id}")
47-
public ResponseEntity<Void> deleteTask(@PathVariable String id){
53+
public ResponseEntity<Void> deleteTask(@PathVariable String id) {
4854
taskService.deleteTask(id);
4955
return ResponseEntity.notFound().build();
5056
}

src/main/java/com/taskmanagerapi/service/TaskService.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import java.util.Optional;
1111

1212
import static com.taskmanagerapi.model.TaskStatus.DELETED;
13+
import static com.taskmanagerapi.model.TaskStatus.DONE;
1314

1415
@Service
1516
public class TaskService {
@@ -31,6 +32,14 @@ public Optional<Task> getTask(String id) {
3132
return taskRepository.findTaskById(id);
3233
}
3334

35+
public Optional<Task> completeTask(String id){
36+
return taskRepository.findTaskById(id).map(task -> {
37+
task.setStatus(DONE);
38+
taskRepository.save(task);
39+
return task;
40+
});
41+
}
42+
3443
public void deleteTask(String id){
3544
taskRepository.findTaskById(id).ifPresent(task -> {
3645
if (task.getStatus() == DELETED){

0 commit comments

Comments
 (0)