class Object

Public Instance Methods

fazer_lunch(at_restaurant_id) click to toggle source
# File lib/lita/handlers/lunch_menu.rb, line 41
def fazer_lunch(at_restaurant_id)
  begin
    uri = URI('https://www.fazerfoodco.fi/modules/json/json/Index')
    params = { costNumber: at_restaurant_id, language: 'en' }
    uri.query = URI.encode_www_form(params)
    http_response = Net::HTTP.get_response(uri)

    data = MultiJson
           .load(http_response.body)

    name = data['RestaurantName'] || 'Somewhere'
    menu = data['MenusForDays']
           .find { |a| Date.parse(a['Date']) === Date.today }['SetMenus']
           .flat_map { |a| a['Components'] }
           .map { |food| food.split('(')[0] }
           .join("\n-----------\n")
  rescue MultiJson::ParseError => exception
    return '(╯°□°)╯︵ ┻━━┻  Restaurant api is broken!' + exception
  rescue StandardError
    return '(╯°□°)╯︵ ┻━━┻  Nothing found! Starve!'
  end

  "( つ ◕_◕ )つ Today at #{name}\n\n#{menu}"
end