class Culqi::Client
Constants
- ERROR_MESSAGES
Public Class Methods
new(key, endpoint, code)
click to toggle source
# File lib/culqi/client.rb, line 10 def initialize(key, endpoint, code) @key = key @url = URI(endpoint + '/api/v1/web/crear') @code = code end
Public Instance Methods
crear_venta(attrs)
click to toggle source
# File lib/culqi/client.rb, line 16 def crear_venta(attrs) sale = Culqi::Sale.new(attrs) request = http_request(sale.payload) http_response(request) end
Private Instance Methods
encryptor()
click to toggle source
# File lib/culqi/client.rb, line 47 def encryptor @encryptor ||= Culqi::Encryptor.new end
http_client()
click to toggle source
# File lib/culqi/client.rb, line 25 def http_client http = Net::HTTP.new(@url.host, @url.port) http.use_ssl = true http.verify_mode = OpenSSL::SSL::VERIFY_NONE http end
http_request(payload)
click to toggle source
# File lib/culqi/client.rb, line 32 def http_request(payload) request = Net::HTTP::Post.new(@url) request['content-type'] = 'application/json' request.body = { codigo_comercio: @code, informacion_venta: encryptor.encrypt(payload) }.to_json request end
http_response(request)
click to toggle source
# File lib/culqi/client.rb, line 39 def http_response(request) response = http_client.request(request) raise "#{ ERROR_MESSAGES[:failed_request] } #{ response.code }" unless response.code == '200' JSON.parse(encryptor.decrypt(response.body)) end