Module: Flowdock::Helpers

Included in:
Client, Flow
Defined in:
lib/flowdock.rb

Instance Method Summary collapse

Instance Method Details

#blank?(var) ⇒ Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/flowdock.rb', line 13

def blank?(var)
  var.nil? || var.respond_to?(:length) && var.length == 0
end

#handle_response(resp) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# File 'lib/flowdock.rb', line 17

def handle_response(resp)
  body = (resp.body.nil? || resp.body.strip.empty?) ? '{}' : resp.body

  json = MultiJson.decode(body)

  if resp.code == 404
    raise NotFoundError, "Flowdock API returned error:\nStatus: #{resp.code}\n Message: #{json["message"]}"
  end

  unless resp.code >= 200 && resp.code < 300
    errors = json["errors"].map {|k,v| "#{k}: #{v.join(',')}"}.join("\n") unless json["errors"].nil?
    raise ApiError, "Flowdock API returned error:\nStatus: #{resp.code}\n Message: #{json["message"]}\n Errors:\n#{errors}"
  end
  json
rescue MultiJson::DecodeError
  raise ApiError, "Flowdock API returned error:\nStatus: #{resp.code}\nBody: #{resp.body}"
end