class ShadowCabinet::Client::Base
Attributes
key[R]
secret[R]
url[R]
Public Class Methods
new(url:, key:, secret:)
click to toggle source
# File lib/shadow_cabinet/client/base.rb, line 9 def initialize(url:, key:, secret:) @url = url @key = key @secret = secret end
Public Instance Methods
delete(path:, params: {})
click to toggle source
# File lib/shadow_cabinet/client/base.rb, line 62 def delete(path:, params: {}) result = make_request( verb: :delete, request_url: construct_url(path, params) ) raise result.error if result.error_present? result.body end
get(path:, params: {})
click to toggle source
# File lib/shadow_cabinet/client/base.rb, line 15 def get(path:, params: {}) result = make_request( verb: :get, request_url: construct_url(path: path, params: params) ) raise result.error if result.error_present? result.body end
patch(path:, params: {}, data: nil)
click to toggle source
# File lib/shadow_cabinet/client/base.rb, line 50 def patch(path:, params: {}, data: nil) result = make_request( verb: :patch, request_url: construct_url(path: path, params: params), data: data ) raise result.error if result.error_present? result.body end
post(path:, params: {}, data: nil)
click to toggle source
# File lib/shadow_cabinet/client/base.rb, line 26 def post(path:, params: {}, data: nil) result = make_request( verb: :post, request_url: construct_url(path: path, params: params), data: data ) raise result.error if result.error_present? result.body end
put(path:, params: {}, data: nil)
click to toggle source
# File lib/shadow_cabinet/client/base.rb, line 38 def put(path:, params: {}, data: nil) result = make_request( verb: :put, request_url: construct_url(path: path, params: params), data: data ) raise result.error if result.error_present? result.body end
Private Instance Methods
base_url()
click to toggle source
# File lib/shadow_cabinet/client/base.rb, line 83 def base_url @base_url ||= Addressable::URI.parse(url) end
construct_url(path:, params: {})
click to toggle source
# File lib/shadow_cabinet/client/base.rb, line 87 def construct_url(path:, params: {}) base_url.tap do |url| url.path = File.join('/', 'api', 'v1', path) url.query_values = params return url end end
make_request(verb:, request_url:, data: nil)
click to toggle source
# File lib/shadow_cabinet/client/base.rb, line 75 def make_request(verb:, request_url:, data: nil) Result.new( error: Unimplmented.new( "#make_request is not defined for #{self.class}" ) ) end