Добавлена команда удаления задач в CliEngine. #34

Merged
KamaSK merged 1 commits from feature/cli/delete-command into dev 2025-05-29 21:51:41 +03:00
2 changed files with 36 additions and 0 deletions

View File

@ -46,6 +46,7 @@ public class CliEngine {
registerCommand(new CreateCommand());
registerCommand(new ListCommand());
registerCommand(new CompleteCommand());
registerCommand(new DeleteCommand());
}
void handleHelp() {

View File

@ -0,0 +1,35 @@
package ru.kamask.pet.todo.cli;
import java.util.Optional;
import ru.kamask.pet.todo.service.TaskService;
public class DeleteCommand implements Command {
@Override
public String name() {
return "delete";
}
@Override
public String usage() {
return String.format(Command.templateUsage, name() + " <ID>", "Удалить задачу.");
}
@Override
public Optional<String> handle(String[] args, TaskService service) {
if (args.length != 1)
return Optional.of(Command.errorMessage);
try {
int id = Integer.parseInt(args[0]);
if (!service.has(id))
return Optional.of("Задача ID-%d не найдена.".formatted(id));
service.remove(id);
return Optional.of("Задача ID-%d удалена.".formatted(id));
} catch (NumberFormatException e) {
return Optional.of("ID - должен быть числом.");
}
}
}