Sha256: cbaa46a70ad2524c82b0534d5836c9be92487ca3cb4f0d8a608ef16776829785

Contents?: true

Size: 1.02 KB

Versions: 3

Compression:

Stored size: 1.02 KB

Contents

module Tr3llo
  module Command
    module Card
      module Move
        extend self

        def execute(key, board_id)
          card_id = Entities.parse_id(:card, key)
          assert_card_id!(card_id, key)

          interface = Application.fetch_interface!()

          interface.print_frame do
            selected_list_id = select_list(interface, board_id)

            API::Card.move_to_list(card_id, selected_list_id)
            interface.puts("Card has been moved.")
          end
        end

        private

        def select_list(interface, board_id)
          list_options =
            API::List
              .find_all_by_board(board_id)
              .map { |list| [list.name, list.id] }
              .to_h()

          interface.input.select(
            "Choose the list to be moved to",
            list_options
          )
        end

        def assert_card_id!(card_id, key)
          raise InvalidArgumentError.new("#{key.inspect} is not a valid card key") unless card_id
        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
3llo-1.3.1 lib/3llo/command/card/move.rb
3llo-1.3.1.pre.rc.0 lib/3llo/command/card/move.rb
3llo-1.2.0 lib/3llo/command/card/move.rb