class Ruboty::TreasureData::Actions::RunSchedule

Attributes

message[R]

Public Class Methods

new(message) click to toggle source
# File lib/ruboty/treasure_data/actions/run_schedule.rb, line 7
def initialize(message)
  @message = message
end

Public Instance Methods

call() click to toggle source
# File lib/ruboty/treasure_data/actions/run_schedule.rb, line 11
def call
  begin
    jobs = td_client.run_schedule(schedule, Time.now, nil)
  rescue ::TreasureData::NotFoundError
    message.reply("Resource not found", code: true)
    return
  rescue
    message.reply("Something wrong", code: true)
    return
  end

  job = jobs.first

  while !job.finished?
    sleep 2
    job.update_progress!
  end

  if job.success?
    table = Terminal::Table.new(rows: job.result)
    message.reply(table, code: true)
  else
    message.reply(job.result, code: true)
  end
end

Private Instance Methods

schedule() click to toggle source
# File lib/ruboty/treasure_data/actions/run_schedule.rb, line 43
def schedule
  message[:schedule]
end
td_client() click to toggle source
# File lib/ruboty/treasure_data/actions/run_schedule.rb, line 39
def td_client
  @td_client ||= ::TreasureData::Client.new(ENV["TREASURE_DATA_API_KEY"])
end