Реализованы методы создания, завершения и удаления задач через сервис. #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

View File

@ -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());
}
}

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);
}
}