Class: GetnetApi::Base

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

Direct Known Subclasses

CardToken, CardVerification, Credit, Customer, Payment

Class Method Summary collapse

Class Method Details

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



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/getnet_api/base.rb', line 6

def self.build_request endpoint, metodo, body=nil

  url = URI("#{GetnetApi.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 = GetnetApi::Base.default_headers request

  request.body = body.to_json
  return http.request(request)
end

.default_headers(request) ⇒ Object



29
30
31
32
33
34
# File 'lib/getnet_api/base.rb', line 29

def self.default_headers request
  request["authorization"] = "Bearer #{GetnetApi::Base.valid_bearer}"
  request["Content-Type"] = "application/json"
  request["seller_id"] = "#{GetnetApi.seller_id}"
  return request
end

.get_token_de_bearerObject



36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/getnet_api/base.rb', line 36

def self.get_token_de_bearer
  url = URI("#{GetnetApi.endpoint}/auth/oauth/v2/token")
  http = Net::HTTP.new(url.host, url.port)
  http.use_ssl = true
  request = Net::HTTP::Post.new(url)
  request.basic_auth "#{GetnetApi.client_id}", "#{GetnetApi.client_secret}"
  request["Content-Type"] = "application/x-www-form-urlencoded"
  hash =  {
            "scope" => 'oob',
            "grant_type" => 'client_credentials',
          }
  request.body = hash.to_query
  response =  http.request(request)
  result = JSON.parse(response.read_body)
  GetnetApi.access_token = result["access_token"]
  GetnetApi.expires_in = DateTime.now + result["expires_in"].to_i.seconds - 60.seconds
end

.valid_bearerObject



54
55
56
57
58
59
60
61
# File 'lib/getnet_api/base.rb', line 54

def self.valid_bearer
  if GetnetApi.expires_in > DateTime.now
    return GetnetApi.access_token
  else
    GetnetApi::Base.get_token_de_bearer
    return GetnetApi.access_token
  end
end