Module: EZApi::Client
- Defined in:
- lib/ezapi/client.rb
Instance Attribute Summary collapse
-
#base_url ⇒ Object
Returns the value of attribute base_url.
-
#key ⇒ Object
Returns the value of attribute key.
Class Method Summary collapse
Instance Method Summary collapse
- #api_key(key) ⇒ Object
- #api_url(url) ⇒ Object
- #raw_request(full_url, method, params = {}, headers = self.request_headers, request_arguments = {}) ⇒ Object
- #request(full_url, method, params = {}, headers = self.request_headers, request_arguments = {}) ⇒ Object
Instance Attribute Details
#base_url ⇒ Object
Returns the value of attribute base_url.
9 10 11 |
# File 'lib/ezapi/client.rb', line 9 def base_url @base_url end |
#key ⇒ Object
Returns the value of attribute key.
9 10 11 |
# File 'lib/ezapi/client.rb', line 9 def key @key end |
Class Method Details
.extended(base) ⇒ Object
10 11 12 13 14 15 16 17 |
# File 'lib/ezapi/client.rb', line 10 def self.extended(base) [:get, :post, :put, :patch, :delete].each do |method| define_method(method) do |path, params={}, headers=request_headers, request_arguments={}| full_path = full_api_path(path) request(full_path, method, params, headers, request_arguments) end end end |
Instance Method Details
#api_key(key) ⇒ Object
23 24 25 |
# File 'lib/ezapi/client.rb', line 23 def api_key(key) self.key = key end |
#api_url(url) ⇒ Object
19 20 21 |
# File 'lib/ezapi/client.rb', line 19 def api_url(url) self.base_url = url end |
#raw_request(full_url, method, params = {}, headers = self.request_headers, request_arguments = {}) ⇒ Object
41 42 43 44 45 46 47 48 49 50 51 52 53 54 |
# File 'lib/ezapi/client.rb', line 41 def raw_request(full_url, method, params={}, headers=self.request_headers, request_arguments={}) default_request = {method: method, url: full_url, payload: params, headers: headers} begin RestClient::Request.execute(default_request.merge(request_arguments)) rescue RestClient::ExceptionWithResponse => e if response_code = e.http_code and response_body = e.http_body handle_api_error(response_code, response_body) else handle_restclient_error(e) end rescue RestClient::Exception, Errno::ECONNREFUSED, SocketError => e handle_restclient_error(e) end end |
#request(full_url, method, params = {}, headers = self.request_headers, request_arguments = {}) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/ezapi/client.rb', line 27 def request(full_url, method, params={}, headers=self.request_headers, request_arguments={}) response = raw_request(full_url, method, params, headers, request_arguments) begin if response.headers && response.headers[:content_type] == "application/xml" Nokogiri::XML(response.body) else JSON.parse(response.body) unless response.empty? end rescue JSON::ParserError => e nil end end |