Реализованы методы создания, завершения и удаления задач через сервис. #28

Merged
KamaSK merged 1 commits from feature/task-service into dev 2025-05-26 22:38:45 +03:00
2 changed files with 52 additions and 15 deletions
Showing only changes of commit f4483ff951 - Show all commits

View File

@ -2,29 +2,25 @@ package ru.kamask.pet.todo;
import ru.kamask.pet.todo.model.SimpleTask; import ru.kamask.pet.todo.model.SimpleTask;
import ru.kamask.pet.todo.repo.InMemoryTaskRepository; import ru.kamask.pet.todo.repo.InMemoryTaskRepository;
import ru.kamask.pet.todo.service.TaskService;
public class TodoApp { public class TodoApp {
public static void main(String[] args) { public static void main(String[] args) {
var repo = new InMemoryTaskRepository(); var service = new TaskService(new InMemoryTaskRepository());
repo.save(new SimpleTask("Задача номер один")); service.create("Задача номер один");
repo.save(new SimpleTask("Задача номер два")); service.create("Задача номер два");
repo.save(new SimpleTask("Задача номер три")); service.create("Задача номер три");
repo.save(new SimpleTask("Задача номер четыре")); service.create("Задача номер четыре");
System.out.println(repo.findAll()); System.out.println(service.list());
var taskOption = repo.findById(2); service.complete(2);
if (taskOption.isPresent()) { service.getById(2).ifPresent(task -> System.out.println(((SimpleTask) task).data()));
SimpleTask task = (SimpleTask) taskOption.get();
task.markAsCompleted();
var data = task.data();
System.out.println(data);
}
repo.delete(1); service.remove(3);
System.out.println(repo.findAll()); System.out.println(service.list());
} }
} }

View File

@ -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<Task> 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<Task> list() {
return repo.findAll();
}
public void remove(int id) {
repo.delete(id);
}
}