class FerrisBueller::SlackAPI

Public Class Methods

new(options={}) click to toggle source
# File lib/ferris-bueller/slack_api.rb, line 11
def initialize options={}
  @token   = options.fetch :token
  @logger  = options.fetch :logger, Slog.new
  @api_url = options.fetch :api_url, 'https://slack.com/api'
  log.debug event: 'Slack API client initialized'
end

Public Instance Methods

send(method, options={}) click to toggle source
# File lib/ferris-bueller/slack_api.rb, line 18
def send method, options={}
  uri = URI File.join(@api_url, method)
  options = { token: @token }.merge(options)
  log.debug event: 'sending api request', method: method, options: options
  res = Net::HTTP.post_form uri, options
  log.debug event: 'sent api request', method: method, options: options, response: res
  JSON.parse res.body, symbolize_names: true
end

Private Instance Methods

log() click to toggle source
# File lib/ferris-bueller/slack_api.rb, line 28
def log ; @logger end