Skip to content

Commit 2d00201

Browse files
committed
update delete to soft delete (archive)
1 parent 9707c15 commit 2d00201

3 files changed

Lines changed: 16 additions & 13 deletions

File tree

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,9 @@ public ResponseEntity<Task> completeTask(@PathVariable String id) {
5050
}
5151

5252
@DeleteMapping("/tasks/{id}")
53-
public ResponseEntity<Void> deleteTask(@PathVariable String id) {
54-
taskService.deleteTask(id);
55-
return ResponseEntity.notFound().build();
53+
public ResponseEntity<Task> deleteTask(@PathVariable String id) {
54+
return taskService.deleteTask(id)
55+
.map(ResponseEntity::ok)
56+
.orElse(ResponseEntity.notFound().build());
5657
}
5758
}

src/main/java/com/taskmanagerapi/model/Task.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com.taskmanagerapi.model;
22

33
import java.time.LocalDateTime;
4+
import java.time.temporal.ChronoUnit;
45
import java.util.UUID;
56

67
public class Task {
@@ -15,7 +16,7 @@ public Task(String name, String description) {
1516
this.id = UUID.randomUUID().toString();
1617
this.name = name;
1718
this.description = description;
18-
this.createdAt = LocalDateTime.now();
19+
this.createdAt = LocalDateTime.now().truncatedTo(ChronoUnit.SECONDS);
1920
this.status = TaskStatus.CREATED;
2021
}
2122

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

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,37 +18,38 @@ public class TaskService {
1818

1919
TaskRepository taskRepository = new TaskRepository();
2020

21-
public Task addTask(String name, String description){
21+
public Task addTask(String name, String description) {
2222
Task task = new Task(name, description);
2323
taskRepository.save(task);
2424
return task;
2525
}
2626

27-
public List<Task> getAllTasks(){
28-
return taskRepository.findAllTasks();
29-
}
27+
public List<Task> getAllTasks() {
28+
return taskRepository.findAllTasks();
29+
}
3030

3131
public Optional<Task> getTask(String id) {
3232
return taskRepository.findTaskById(id);
3333
}
3434

35-
public Optional<Task> completeTask(String id){
35+
public Optional<Task> completeTask(String id) {
3636
return taskRepository.findTaskById(id).map(task -> {
3737
task.setStatus(DONE);
3838
taskRepository.save(task);
3939
return task;
4040
});
4141
}
4242

43-
public void deleteTask(String id){
44-
taskRepository.findTaskById(id).ifPresent(task -> {
45-
if (task.getStatus() == DELETED){
43+
public Optional<Task> deleteTask(String id) {
44+
return taskRepository.findTaskById(id).map(task -> {
45+
if (task.getStatus() == DELETED) {
4646
logger.info("Task {} is already deleted", task.getName());
4747
} else {
48-
task.setStatus(DELETED);
48+
task.setStatus(DELETED); // soft delete
4949
taskRepository.save(task);
5050
logger.info("Task {} marked as DELETED", task.getName());
5151
}
52+
return task;
5253
});
5354
}
5455
}

0 commit comments

Comments
 (0)