Class: FavroApi::Request
- Inherits:
-
Object
- Object
- FavroApi::Request
- Defined in:
- lib/favro_api/request.rb
Constant Summary collapse
- API_URL =
'https://favro.com/api/v1'.freeze
- ENDPOINTS =
{ cards: '/cards', collections: '/collections', comments: '/comments', custom_fields: '/customFields', organizations: '/organizations', tasks: '/tasks', tasklists: '/tasklists', users: '/users', widgets: '/widgets' }.freeze
Instance Attribute Summary collapse
-
#connection ⇒ Object
Returns the value of attribute connection.
-
#endpoint ⇒ Object
Returns the value of attribute endpoint.
-
#last_response ⇒ Object
Returns the value of attribute last_response.
-
#method ⇒ Object
Returns the value of attribute method.
-
#page ⇒ Object
Returns the value of attribute page.
-
#params ⇒ Object
Returns the value of attribute params.
-
#url ⇒ Object
Returns the value of attribute url.
Class Method Summary collapse
Instance Method Summary collapse
- #fetch ⇒ Object
-
#initialize(options = {}) ⇒ Request
constructor
A new instance of Request.
Constructor Details
#initialize(options = {}) ⇒ Request
Returns a new instance of Request.
23 24 25 26 27 28 29 30 |
# File 'lib/favro_api/request.rb', line 23 def initialize( = {}) self.url = [:url] self.endpoint = [:endpoint] self.method = [:method] || :get self.params = [:params] || {} self.last_response = [:last_response] self.page = [:page] end |
Instance Attribute Details
#connection ⇒ Object
Returns the value of attribute connection.
20 21 22 |
# File 'lib/favro_api/request.rb', line 20 def connection @connection end |
#endpoint ⇒ Object
Returns the value of attribute endpoint.
20 21 22 |
# File 'lib/favro_api/request.rb', line 20 def endpoint @endpoint end |
#last_response ⇒ Object
Returns the value of attribute last_response.
20 21 22 |
# File 'lib/favro_api/request.rb', line 20 def last_response @last_response end |
#method ⇒ Object
Returns the value of attribute method.
20 21 22 |
# File 'lib/favro_api/request.rb', line 20 def method @method end |
#page ⇒ Object
Returns the value of attribute page.
20 21 22 |
# File 'lib/favro_api/request.rb', line 20 def page @page end |
#params ⇒ Object
Returns the value of attribute params.
20 21 22 |
# File 'lib/favro_api/request.rb', line 20 def params @params end |
#url ⇒ Object
Returns the value of attribute url.
20 21 22 |
# File 'lib/favro_api/request.rb', line 20 def url @url end |
Class Method Details
.fetch(endpoint, page: nil, last_response: nil, params: {}) ⇒ Object
51 52 53 54 55 56 57 58 59 |
# File 'lib/favro_api/request.rb', line 51 def fetch(endpoint, page: nil, last_response: nil, params: {}) new( endpoint: endpoint, last_response: last_response, page: page, method: :get, params: params ).fetch end |
Instance Method Details
#fetch ⇒ Object
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/favro_api/request.rb', line 32 def fetch self.connection = Faraday.new("#{uri.scheme}://#{uri.hostname}") do |faraday| faraday.adapter :net_http faraday.basic_auth(FavroApi.auth.email, FavroApi.auth.token) faraday.headers['organizationId'] = params.delete(:organization_id) faraday.params['page'] = page || (last_response ? last_response.page + 1 : 0) faraday.params['requestId'] = last_response&.request_id end response = Response.new(response: connection.send(method, uri.request_uri, params)) if response.error? raise ApiError, "Got API error. Code: #{response.status}, message: #{response.body}" end response end |