module Xfers::APIOperations
Public Class Methods
create_auth_headers(connect_key)
click to toggle source
# File lib/xfers/api_operations.rb, line 4 def self.create_auth_headers(connect_key) connect_key.nil? ? {'X-XFERS-USER-API-KEY' => Xfers.get_api_key} : {'X-XFERS-APP-API-KEY' => connect_key} end
delete(resource_url, connect_key=nil, params=nil)
click to toggle source
# File lib/xfers/api_operations.rb, line 65 def self.delete(resource_url, connect_key=nil, params=nil) RestClient::Request.execute(method: :delete, url: "#{Xfers.get_api_base}#{resource_url}", payload: params, headers: create_auth_headers(connect_key)) { |r, request, result, &block| handle_api_error(JSON.parse(r.body), r.code) if r.code != 200 parse_and_symbolize(r.body) } end
get(params={}, resource_url=nil, connect_key=nil)
click to toggle source
# File lib/xfers/api_operations.rb, line 38 def self.get(params={}, resource_url=nil, connect_key=nil) RestClient::Request.execute(method: :get, url: "#{Xfers.get_api_base}#{resource_url}", payload: params, headers: create_auth_headers(connect_key)) { |r, request, result, &block| handle_api_error(JSON.parse(r.body), r.code) if r.code != 200 parse_and_symbolize(r.body) } end
handle_api_error(msg, status_code)
click to toggle source
# File lib/xfers/api_operations.rb, line 8 def self.handle_api_error(msg, status_code) case status_code when 400 raise InvalidRequestError.new msg, status_code when 401 raise AuthenticationError.new msg, status_code when 500 raise InternalServerError.new msg, status_code else raise XfersError.new msg, status_code end end
parse_and_symbolize(json_string)
click to toggle source
# File lib/xfers/api_operations.rb, line 21 def self.parse_and_symbolize(json_string) parsed = JSON.parse(json_string) begin if parsed.kind_of?(Array) arr = [] parsed.each { |item| arr.push Hash[item.map{ |k, v| [k.to_sym, v] }] } arr else Hash[parsed.map{ |k, v| [k.to_sym, v] }] end rescue NoMethodError parsed end end
post(params={}, resource_url=nil, connect_key=nil)
click to toggle source
# File lib/xfers/api_operations.rb, line 47 def self.post(params={}, resource_url=nil, connect_key=nil) RestClient::Request.execute(method: :post, url: "#{Xfers.get_api_base}#{resource_url}", payload: params, headers: create_auth_headers(connect_key)) { |r, request, result, &block| handle_api_error(JSON.parse(r.body), r.code) if r.code != 200 parse_and_symbolize(r.body) } end
put(params={}, resource_url=nil, connect_key=nil)
click to toggle source
# File lib/xfers/api_operations.rb, line 56 def self.put(params={}, resource_url=nil, connect_key=nil) RestClient::Request.execute(method: :put, url: "#{Xfers.get_api_base}#{resource_url}", payload: params, headers: create_auth_headers(connect_key)) { |r, request, result, &block| handle_api_error(JSON.parse(r.body), r.code) if r.code != 200 parse_and_symbolize(r.body) } end