diff --git a/todo/src/main/java/ru/kamask/pet/todo/cli/CliEngine.java b/todo/src/main/java/ru/kamask/pet/todo/cli/CliEngine.java index f41abd5..dd39b15 100644 --- a/todo/src/main/java/ru/kamask/pet/todo/cli/CliEngine.java +++ b/todo/src/main/java/ru/kamask/pet/todo/cli/CliEngine.java @@ -46,6 +46,7 @@ public class CliEngine { registerCommand(new CreateCommand()); registerCommand(new ListCommand()); registerCommand(new CompleteCommand()); + registerCommand(new DeleteCommand()); } void handleHelp() { diff --git a/todo/src/main/java/ru/kamask/pet/todo/cli/DeleteCommand.java b/todo/src/main/java/ru/kamask/pet/todo/cli/DeleteCommand.java new file mode 100644 index 0000000..b037776 --- /dev/null +++ b/todo/src/main/java/ru/kamask/pet/todo/cli/DeleteCommand.java @@ -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() + " ", "Удалить задачу."); + } + + @Override + public Optional 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 - должен быть числом."); + } + } + +}