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 c179fa3..7b17ea3 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 @@ -47,14 +47,9 @@ public class CliEngine { } void handleHelp() { - var template = " %-30s // %s"; - System.out.println("Доступные команды:\n"); - registry.values().stream() - .map(handler -> String.format(template, handler.example(), handler.description())) - .forEach(System.out::println); - System.out.println(); - System.out.printf(template, "help", "Вот этот список команд\n"); - System.out.printf(template, "exit", "Выход, но лучше не надо)\n"); + registry.values().stream().map(handler -> handler.usage()).forEach(System.out::println); + System.out.printf(Command.templateUsage, "help", "Вот этот список команд\n"); + System.out.printf(Command.templateUsage, "exit", "Выход, но лучше не надо)\n"); } diff --git a/todo/src/main/java/ru/kamask/pet/todo/cli/Command.java b/todo/src/main/java/ru/kamask/pet/todo/cli/Command.java index cb1e6b3..52dde08 100644 --- a/todo/src/main/java/ru/kamask/pet/todo/cli/Command.java +++ b/todo/src/main/java/ru/kamask/pet/todo/cli/Command.java @@ -5,11 +5,12 @@ import java.util.Optional; import ru.kamask.pet.todo.service.TaskService; public interface Command { + String templateUsage = " %-30s // %s"; + String errorMessage = "Не корректно введена команда. Введите help для спарвки."; + Optional handle(String[] args, TaskService service); String name(); - String example(); - - String description(); + String usage(); } diff --git a/todo/src/main/java/ru/kamask/pet/todo/cli/CreateCommand.java b/todo/src/main/java/ru/kamask/pet/todo/cli/CreateCommand.java index 5210c53..6a4e637 100644 --- a/todo/src/main/java/ru/kamask/pet/todo/cli/CreateCommand.java +++ b/todo/src/main/java/ru/kamask/pet/todo/cli/CreateCommand.java @@ -12,17 +12,16 @@ public class CreateCommand implements Command { @Override public Optional handle(String[] args, TaskService service) { - // TODO create new todo - return Optional.of("Добавление новой задачи"); + if (args.length > 0) { + var title = String.join(" ", args); + service.create(title); + return Optional.of(String.format("Задача \"%s\" успешно добавлена!", title)); + } + return Optional.of(Command.errorMessage); } @Override - public String example() { - return name() + " "; - } - - @Override - public String description() { - return "Добавление новой задачи"; + public String usage() { + return String.format(templateUsage, name() + " <название_задачи>", "Добавление новой задачи"); } }