class PayU::Client
Public Class Methods
new()
click to toggle source
# File lib/pay_u/client.rb, line 6 def initialize @client ||= Faraday.new(url: PayU.configuration.api_url) do |connection| connection.request :url_encoded connection.response :logger if PayU.configuration.test? connection.adapter Faraday.default_adapter connection.basic_auth "pRRXKOl8ikMmt9u", "4Vj8eK4rloUd272L48hsrarnUA" end end
Public Instance Methods
delete(url)
click to toggle source
# File lib/pay_u/client.rb, line 37 def delete(url) response = @client.delete(&perform_request(url)) response.success? end
get(url)
click to toggle source
# File lib/pay_u/client.rb, line 16 def get(url) response = @client.get(&perform_request(url)) process_response(response) end
post(url, params: {})
click to toggle source
# File lib/pay_u/client.rb, line 23 def post(url, params: {}) response = @client.post(&perform_request_with_params(url, params)) process_response(response) end
put(url, params: {})
click to toggle source
# File lib/pay_u/client.rb, line 30 def put(url, params: {}) response = @client.put(&perform_request_with_params(url, params)) process_response(response) end
Private Instance Methods
default_headers()
click to toggle source
# File lib/pay_u/client.rb, line 81 def default_headers { "Content-Type" => "application/json; charset=utf-8", "Accept" => "application/json", } end
perform_request(url)
click to toggle source
# File lib/pay_u/client.rb, line 44 def perform_request(url) proc do |request| request.url "payments-api/#{url}" request.headers = request.headers.merge(default_headers) end end
perform_request_with_params(url, params)
click to toggle source
# File lib/pay_u/client.rb, line 52 def perform_request_with_params(url, params) proc do |request| request.url "payments-api/#{url}" request.headers = request.headers.merge(default_headers) request.body = params.delete_if { |_, value| value.nil? }.to_json end end
process_response(response)
click to toggle source
# File lib/pay_u/client.rb, line 61 def process_response(response) raise PayU::UnauthorizedError, "Unauthorized" if !response.success? && response.status == 401 body = JSON.parse(response.body) return raise_error(response) unless response.success? body end
raise_error(response)
click to toggle source
# File lib/pay_u/client.rb, line 71 def raise_error(response) body = JSON.parse(response.body) error_message = body["errorList"] ? body["errorList"].join : body["description"] raise PayU::NotFoundError, error_message if response.status == 404 raise PayU::Error, error_message end