class Commands::OnCallLookup

Public Instance Methods

call() click to toggle source
# File lib/lita/commands/on_call_lookup.rb, line 5
def call
  response message: 'on_call_lookup.response', params: success_params
rescue Exceptions::SchedulesEmptyList
  response message: 'on_call_lookup.no_matching_schedule',
           params: { schedule_name: schedule_name }
rescue Exceptions::NoOncallUser
  response message: 'on_call_lookup.no_one_on_call',
           params: { schedule_name: schedule_name }
end

Private Instance Methods

oncall_user_params() click to toggle source
# File lib/lita/commands/on_call_lookup.rb, line 25
def oncall_user_params
  { 'schedule_ids[]' => schedule[:id], 'include[]' => 'users' }
end
schedule() click to toggle source
# File lib/lita/commands/on_call_lookup.rb, line 17
def schedule
  @schedule ||= pagerduty.get_schedules(query: schedule_name).first
end
schedule_name() click to toggle source
# File lib/lita/commands/on_call_lookup.rb, line 21
def schedule_name
  @schedule_name ||= message.match_data[1].strip
end
success_params() click to toggle source
# File lib/lita/commands/on_call_lookup.rb, line 29
def success_params
  {
    name: user[:summary],
    email: user[:email],
    schedule_name: schedule[:name]
  }
end
user() click to toggle source
# File lib/lita/commands/on_call_lookup.rb, line 37
def user
  @user ||= pagerduty.get_oncall_user oncall_user_params
end