module Pcloud::Request
Public Class Methods
call(client, verb, path, params, payload={})
click to toggle source
# File lib/pcloud/request.rb, line 4 def call(client, verb, path, params, payload={}) params = {params: {}.merge!(params, {auth: client.auth_token})} http = client.http_client res = case verb when :get begin http[path].get(params) rescue => e handle_response(e.http_code, e.message) end when :post begin http[path].post(payload, params) rescue => e handle_response(e.http_code, e.message) end else raise "Unsupported verb (get and post available): #{verb}" end return res.body if params[:params][:raw] JSON.parse(res.body, { symbolize_names: true }) end
Private Class Methods
handle_response(status_code, body)
click to toggle source
# File lib/pcloud/request.rb, line 29 def handle_response(status_code, body) case status_code when 400 raise HTTPError.new(:HTTPError, body) when 401 raise AuthenticationError, body when 404 raise HTTPError.new(:HTTPError, body) else raise Error, "Unknown error (status code #{status_code}): #{body}" end end