module Nfe::ApiResource
Constants
- SSL_BUNDLE_PATH
Public Class Methods
included(base)
click to toggle source
# File lib/nfe/api_resource.rb, line 52 def self.included(base) base.extend(ApiResource) end
Public Instance Methods
api_request(url, method, params=nil)
click to toggle source
# File lib/nfe/api_resource.rb, line 13 def api_request(url, method, params=nil) url = "#{Nfe.configuration.url}#{url}" api_key = Nfe.access_keys if method == :get && params params_encoded = encode(params) url = "#{url}?#{params_encoded}" params = nil end payload = (params != nil) ? params.to_json : '' request = RestClient::Request.new( method: method, url: url, payload: payload, headers: { content_type: 'application/json', accept: 'application/json', authorization: api_key, user_agent: Nfe.configuration.user_agent }) begin response = request.execute rescue RestClient::ExceptionWithResponse => e if rcode = e.http_code and rbody = e.http_body rbody = JSON.parse(rbody) rbody = Util.symbolize_names(rbody) raise NfeError.new(rcode, rbody, rbody, rbody[:message]) else raise e end rescue RestClient::Exception => e raise e end JSON.parse(response.to_s) end
api_request_file(url, method, params=nil)
click to toggle source
# File lib/nfe/api_resource.rb, line 56 def api_request_file(url, method, params=nil) api_key = Nfe.access_keys url = "#{Nfe.configuration.url}#{url}?api_key=#{api_key}" request = RestClient::Request.new( method: method, url: url, headers: { user_agent: Nfe.configuration.user_agent } ) begin response = request.execute rescue RestClient::ExceptionWithResponse => e if rcode = e.http_code and rbody = e.http_body rbody = JSON.parse(rbody) rbody = Util.symbolize_names(rbody) raise NfeError.new(rcode, rbody, rbody, rbody[:message]) else raise e end rescue RestClient::Exception => e raise e end response end
encode(params)
click to toggle source
# File lib/nfe/api_resource.rb, line 9 def encode(params) params.map { |k,v| "#{k}=#{url_encode(v)}" }.join('&') end
url_encode(key)
click to toggle source
# File lib/nfe/api_resource.rb, line 5 def url_encode(key) URI.escape(key.to_s, Regexp.new("[^#{URI::PATTERN::UNRESERVED}]")) end