Class: FipExtractor::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/fipextractor/request.rb

Direct Known Subclasses

ReferenceTable, Resource

Constant Summary collapse

HOST =
"veiculos.fipe.org.br".freeze
API =
"api/veiculos".freeze

Instance Method Summary collapse

Instance Method Details

#base_urlObject



28
29
30
# File 'lib/fipextractor/request.rb', line 28

def base_url
  "https://#{HOST}/#{API}"
end

#callObject



12
13
14
15
16
# File 'lib/fipextractor/request.rb', line 12

def call
  response_class.new(request).tap do |response|
    raise ResourceNotFoundError if response.error?
  end
end

#paramsObject



40
41
42
# File 'lib/fipextractor/request.rb', line 40

def params
  {}
end

#requestObject



22
23
24
25
26
# File 'lib/fipextractor/request.rb', line 22

def request
  Faraday.new(url: resource, headers: headers).send(:post) do |request|
    request.body = params
  end
end

#resourceObject



36
37
38
# File 'lib/fipextractor/request.rb', line 36

def resource
  "#{base_url}/#{route}"
end

#response_classObject



18
19
20
# File 'lib/fipextractor/request.rb', line 18

def response_class
  Object.const_get("#{self.class}Response")
end

#routeObject

Raises:



32
33
34
# File 'lib/fipextractor/request.rb', line 32

def route
  raise RouteNotFoundError
end