Class: ReceitawsClient::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/receitaws_client/base.rb

Direct Known Subclasses

ConsultarCnpj

Class Method Summary collapse

Class Method Details

.build_request(endpoint, metodo, body = nil) ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/receitaws_client/base.rb', line 9

def self.build_request(endpoint, metodo, body = nil)
  url = URI("#{ReceitawsClient.base_uri}/#{endpoint}")

  http = Net::HTTP.new(url.host, url.port)
  http.use_ssl = true

  case metodo
  when 'delete'
    request = Net::HTTP::Delete.new(url)
  when 'get'
    request = Net::HTTP::Get.new(url)
  when 'put'
    request = Net::HTTP::Put.new(url)
  when 'post'
    request = Net::HTTP::Post.new(url)
  end
  request = ReceitawsClient::Base.default_headers request

  request.body = body.to_json unless body.nil?

  begin
    status = Timeout.timeout(ReceitawsClient.timeout.to_i) do
      return http.request(request)
    end
  rescue Timeout::Error
    puts 'That took too long, exiting...'
    nil
  end
end

.default_headers(request) ⇒ Object



39
40
41
42
43
# File 'lib/receitaws_client/base.rb', line 39

def self.default_headers(request)
  request['authorization'] = "Bearer #{ReceitawsClient.token}"
  request['Content-Type'] = 'application/json'
  request
end