Compare commits

..

2 Commits

Author SHA1 Message Date
18acbd3b32 Merge pull request 'refactor(service): унификация операций с сущностями и обновление команды list (close #49)' (#58) from feature/refactor-taskservice into dev
Reviewed-on: #58
2025-06-07 16:27:18 +03:00
56038f62f7 refactor(service): унификация операций с сущностями и обновление команды list (close #49)
- Обновление ListCommand для использования метода getAll() вместо list()
- Рефакторинг EntityService для предоставления универсальных CRUD-операций
- Изменение TaskService для расширения EntityService и использования его методов
2025-06-07 16:26:41 +03:00
3 changed files with 13 additions and 29 deletions

View File

@ -17,7 +17,7 @@ public class ListCommand implements Command {
if (args.length > 0)
return Optional.of(Command.errorMessage);
var res = formatWithTable(service.list(), "Список задач пуст.");
var res = formatWithTable(service.getAll(), "Список задач пуст.");
return Optional.of(res);
}

View File

@ -13,23 +13,23 @@ public class EntityService<T extends Identifiable> {
this.repo = repo;
}
protected void save(T obj) {
public void save(T obj) {
repo.save(obj);
}
protected Optional<T> getById(int id) {
public Optional<T> getById(int id) {
return repo.findById(id);
}
protected List<T> getAll() {
public List<T> getAll() {
return repo.findAll();
}
protected void remove(int id) {
public void remove(int id) {
repo.delete(id);
}
protected boolean has(int id) {
public boolean has(int id) {
return repo.has(id);
}
}

View File

@ -1,28 +1,23 @@
package ru.kamask.pet.todo.service;
import java.util.List;
import java.util.Optional;
import ru.kamask.pet.todo.model.SimpleTask;
import ru.kamask.pet.todo.repo.InMemoryRepository;
import ru.kamask.pet.todo.repo.Repository;
public class TaskService {
private final InMemoryRepository<SimpleTask> repo;
public class TaskService extends EntityService<SimpleTask> {
public TaskService(InMemoryRepository<SimpleTask> repo) {
this.repo = repo;
public TaskService(Repository<SimpleTask> repo) {
super(repo);
}
public void create(String title) {
repo.save(new SimpleTask(title));
super.save(new SimpleTask(title));
}
public Optional<SimpleTask> getById(int id) {
return repo.findById(id);
}
public boolean complete(int id) {
var taskOpt = repo.findById(id);
var taskOpt = super.getById(id);
if (taskOpt.isPresent()) {
taskOpt.get().markAsCompleted();
return true;
@ -30,20 +25,9 @@ public class TaskService {
return false;
}
public List<SimpleTask> list() {
return repo.findAll();
}
public void remove(int id) {
repo.delete(id);
}
public boolean has(int id) {
return repo.has(id);
}
public List<SimpleTask> search(String query) {
return repo.findAll().stream()
return super.getAll().stream()
.filter(task -> task.data().title().contains(query))
.toList();
}