diff --git a/todo/src/main/java/ru/kamask/pet/todo/TodoApp.java b/todo/src/main/java/ru/kamask/pet/todo/TodoApp.java index e88ab4d..129b22e 100644 --- a/todo/src/main/java/ru/kamask/pet/todo/TodoApp.java +++ b/todo/src/main/java/ru/kamask/pet/todo/TodoApp.java @@ -2,29 +2,25 @@ package ru.kamask.pet.todo; import ru.kamask.pet.todo.model.SimpleTask; import ru.kamask.pet.todo.repo.InMemoryTaskRepository; +import ru.kamask.pet.todo.service.TaskService; public class TodoApp { public static void main(String[] args) { - var repo = new InMemoryTaskRepository(); + var service = new TaskService(new InMemoryTaskRepository()); - repo.save(new SimpleTask("Задача номер один")); - repo.save(new SimpleTask("Задача номер два")); - repo.save(new SimpleTask("Задача номер три")); - repo.save(new SimpleTask("Задача номер четыре")); + service.create("Задача номер один"); + service.create("Задача номер два"); + service.create("Задача номер три"); + service.create("Задача номер четыре"); - System.out.println(repo.findAll()); + System.out.println(service.list()); - var taskOption = repo.findById(2); - if (taskOption.isPresent()) { - SimpleTask task = (SimpleTask) taskOption.get(); - task.markAsCompleted(); - var data = task.data(); - System.out.println(data); - } + service.complete(2); + service.getById(2).ifPresent(task -> System.out.println(((SimpleTask) task).data())); - repo.delete(1); - System.out.println(repo.findAll()); + service.remove(3); + System.out.println(service.list()); } } diff --git a/todo/src/main/java/ru/kamask/pet/todo/service/TaskService.java b/todo/src/main/java/ru/kamask/pet/todo/service/TaskService.java new file mode 100644 index 0000000..5f55928 --- /dev/null +++ b/todo/src/main/java/ru/kamask/pet/todo/service/TaskService.java @@ -0,0 +1,41 @@ +package ru.kamask.pet.todo.service; + +import java.util.List; +import java.util.Optional; + +import ru.kamask.pet.todo.model.Task; +import ru.kamask.pet.todo.model.SimpleTask; +import ru.kamask.pet.todo.repo.TaskRepository; + +public class TaskService { + private final TaskRepository repo; + + public TaskService(TaskRepository repo) { + this.repo = repo; + } + + public void create(String title) { + repo.save(new SimpleTask(title)); + } + + public Optional getById(int id) { + return repo.findById(id); + } + + public boolean complete(int id) { + var taskOpt = repo.findById(id); + if (taskOpt.isPresent()) { + taskOpt.get().markAsCompleted(); + return true; + } + return false; + } + + public List list() { + return repo.findAll(); + } + + public void remove(int id) { + repo.delete(id); + } +}