class Superbot::Cloud::CLI::Schedule::ListCommand

Constants

OUTPUT_HEADERS

Public Instance Methods

execute() click to toggle source
# File lib/superbot/cloud/cli/schedule/list_command.rb, line 21
def execute
  list_schedules
end
list_schedules() click to toggle source
# File lib/superbot/cloud/cli/schedule/list_command.rb, line 25
def list_schedules
  states = all? ? nil : %w[initial deployed aquired]
  api_response = Superbot::Cloud::Api.request(:schedule_list, params: { organization_name: organization, 'aasm_state[]': states })

  abort api_response[:error] if api_response[:error]
  abort "No active schedules found for organization #{api_response[:organization]}" if api_response[:schedules].empty?

  if quiet?
    puts(api_response[:schedules].map { |schedule| schedule[:id] })
  else
    puts "Organization: #{api_response[:organization]}"
    puts "Schedules:"
    puts OUTPUT_HEADERS.values.map { |header| header[:name].ljust(header[:column_size]) }.join
    api_response[:schedules].each do |schedule|
      row = schedule.slice(*OUTPUT_HEADERS.keys).map do |key, value|
        value.to_s.ljust(OUTPUT_HEADERS.dig(key, :column_size))
      end.join
      puts row
    end
  end
end