class Lolcommits::Flowdock::Client

Constants

API_HOST

Attributes

access_token[RW]
flow[RW]
organization[RW]

Public Class Methods

new(access_token, organization: nil, flow: nil) click to toggle source
# File lib/lolcommits/flowdock/client.rb, line 15
def initialize(access_token, organization: nil, flow: nil)
  @access_token = access_token
  @organization = organization
  @flow         = flow
end

Public Instance Methods

create_message(organization: nil, flow: nil, params: {}) click to toggle source

POST /flows/:organization/:flow/messages

# File lib/lolcommits/flowdock/client.rb, line 32
def create_message(organization: nil, flow: nil, params: {})
  post(messages_url(organization, flow), params)
end
flows() click to toggle source

GET /flows

# File lib/lolcommits/flowdock/client.rb, line 27
def flows
  get(flows_url)
end
organizations() click to toggle source

GET /organizations

# File lib/lolcommits/flowdock/client.rb, line 22
def organizations
  get(organizations_url)
end

Private Instance Methods

base_url() click to toggle source
# File lib/lolcommits/flowdock/client.rb, line 57
def base_url
  "https://#{access_token}@#{API_HOST}"
end
flows_url() click to toggle source
# File lib/lolcommits/flowdock/client.rb, line 65
def flows_url
  "#{base_url}/flows"
end
get(*args) click to toggle source
# File lib/lolcommits/flowdock/client.rb, line 42
def get(*args)
  request(*args)
end
messages_url(organization, flow) click to toggle source
# File lib/lolcommits/flowdock/client.rb, line 69
def messages_url(organization, flow)
  "#{base_url}/flows/#{organization}/#{flow}/messages"
end
organizations_url() click to toggle source
# File lib/lolcommits/flowdock/client.rb, line 61
def organizations_url
  "#{base_url}/organizations"
end
post(*args) click to toggle source
# File lib/lolcommits/flowdock/client.rb, line 38
def post(*args)
  request(*args, :post)
end
request(url, params = {}, method = :get) click to toggle source
# File lib/lolcommits/flowdock/client.rb, line 46
def request(url, params = {}, method = :get)
  response = RestClient.send(method, url, params)
  if response.code.to_s =~ /^2/
    JSON.parse(response)
  else
    raise RestClient::RequestFailed.new(response)
  end
rescue RestClient::RequestFailed, JSON::ParserError => e
  raise Flowdock::RequestFailed.new(e.message)
end