class Troo::API::Request

Attributes

query[R]
uri[R]
verb[R]

Public Class Methods

make(verb, uri, query = {}) click to toggle source

@param [Symbol] @param [String] @param [Hash] @return [Response, ErrorResponse]

# File lib/troo/api/request.rb, line 9
def make(verb, uri, query = {})
  new(verb, uri, query).make
end
new(verb, uri, query = {}) click to toggle source

@param [Symbol] @param [String] @param [Hash] @return [Troo::API::Request]

# File lib/troo/api/request.rb, line 18
def initialize(verb, uri, query = {})
  @verb, @uri, @query = verb, uri, query
end

Public Instance Methods

make() click to toggle source

@return [Response, ErrorResponse]

# File lib/troo/api/request.rb, line 23
def make
  @request ||= request
rescue RestClient::Exception => e
  ErrorResponse.new(body: e.http_body, code: e.http_code)
rescue SocketError, Errno::ECONNREFUSED
  ErrorResponse.new(body: 'Cannot reach Trello.', code: 0)
end

Private Instance Methods

request() click to toggle source
# File lib/troo/api/request.rb, line 35
def request
  RestClient::Request.execute(headers: Headers.build!(uri),
                              payload: query,
                              timeout: 10,
                              method:  verb,
                              url:     uri) do |response|
    Responder.build(body: response.body, code: response.code)
  end
end