module Tinypass::Gateway
Public Instance Methods
cancel_subscription(params)
click to toggle source
# File lib/tinypass/gateway.rb, line 34 def cancel_subscription(params) post('subscription/cancel', params) end
fetch_access_detail(rid, user_ref)
click to toggle source
# File lib/tinypass/gateway.rb, line 9 def fetch_access_detail(rid, user_ref) params = { rid: rid, user_ref: user_ref } response = get('access', params) return unless response AccessDetails.new(MultiJson.load(response)) end
fetch_access_details(params)
click to toggle source
# File lib/tinypass/gateway.rb, line 18 def fetch_access_details(params) pagesize = params.delete(:pagesize) || params.delete("pagesize") || 500 params[:pagesize] = pagesize response = get('access/search', params) return [] unless response PagedList.new(MultiJson.load(response)) end
fetch_download_details(params)
click to toggle source
# File lib/tinypass/gateway.rb, line 54 def fetch_download_details(params) response = get('download', params) return [] unless response AccessDetails.new(MultiJson.load(response)) end
fetch_subscription_details(params)
click to toggle source
# File lib/tinypass/gateway.rb, line 28 def fetch_subscription_details(params) response = get('subscription/search', params) MultiJson.load(response) end
fetch_user_details(uid)
click to toggle source
# File lib/tinypass/gateway.rb, line 46 def fetch_user_details(uid) response = get('user/' + uid, {}) return unless response AccessDetails.new(MultiJson.load(response)) end
generate_download_url(params)
click to toggle source
# File lib/tinypass/gateway.rb, line 62 def generate_download_url(params) response = get('download/url', params) return [] unless response AccessDetails.new(MultiJson.load(response)) end
grant_access(params)
click to toggle source
# File lib/tinypass/gateway.rb, line 38 def grant_access(params) post('access/grant', params) end
revoke_access(params)
click to toggle source
# File lib/tinypass/gateway.rb, line 42 def revoke_access(params) post('access/revoke', params) end
Private Instance Methods
build_authenticated_headers(http_method, url)
click to toggle source
# File lib/tinypass/gateway.rb, line 100 def build_authenticated_headers(http_method, url) request_definition = "#{ http_method.upcase } #{ url }" signature = "#{ Tinypass.aid }:#{ SecurityUtils.hash_hmac_sha256(Tinypass.private_key, request_definition) }" { authorization: signature } end
build_url(url, params)
click to toggle source
# File lib/tinypass/gateway.rb, line 92 def build_url(url, params) if params.nil? || params.empty? "#{ Config::REST_CONTEXT }/#{ url }" else "#{ Config::REST_CONTEXT }/#{ url }?#{ URI.encode_www_form(params) }" end end
get(action, params)
click to toggle source
# File lib/tinypass/gateway.rb, line 72 def get(action, params) url = build_url(action, params) headers = build_authenticated_headers('GET', url) full_url = Config.endpoint + url RestClient.get(full_url, headers) rescue RestClient::ResourceNotFound nil end
post(action, params)
click to toggle source
# File lib/tinypass/gateway.rb, line 83 def post(action, params) url = build_url(action, params) headers = build_authenticated_headers('POST', url) full_url = Config.endpoint + url RestClient.post(full_url, {}, headers) end