class Bibox::Rest::Client
Attributes
configuration[RW]
url[RW]
Public Class Methods
new(configuration: ::Bibox.configuration)
click to toggle source
# File lib/bibox/rest/client.rb, line 6 def initialize(configuration: ::Bibox.configuration) self.url = "https://api.bibox.com/v1" self.configuration = configuration end
Public Instance Methods
auth(payload = {})
click to toggle source
# File lib/bibox/rest/client.rb, line 56 def auth(payload = {}) data = {} data[:cmds] = payload.to_json if configured? data[:apikey] = self.configuration.key data[:sign] = ::OpenSSL::HMAC.hexdigest('md5', self.configuration.secret, payload.to_json) end return data end
check_credentials!()
click to toggle source
# File lib/bibox/rest/client.rb, line 33 def check_credentials! unless configured? raise ::Bibox::Errors::MissingConfigError.new("Bibox gem hasn't been properly configured.") end end
configured?()
click to toggle source
# File lib/bibox/rest/client.rb, line 29 def configured? !self.configuration.key.to_s.empty? && !self.configuration.secret.to_s.empty? end
get(path, params: {}, options: {})
click to toggle source
# File lib/bibox/rest/client.rb, line 48 def get(path, params: {}, options: {}) request path, method: :get, params: params, options: options end
parse(response)
click to toggle source
# File lib/bibox/rest/client.rb, line 43 def parse(response) error?(response) response end
post(path, params: {}, data: {}, options: {})
click to toggle source
# File lib/bibox/rest/client.rb, line 52 def post(path, params: {}, data: {}, options: {}) request path, method: :post, params: params, data: auth(data), options: options end
request(path, method: :get, params: {}, data: {}, options: {})
click to toggle source
# File lib/bibox/rest/client.rb, line 68 def request(path, method: :get, params: {}, data: {}, options: {}) user_agent = options.fetch(:user_agent, self.configuration.faraday.fetch(:user_agent, nil)) proxy = options.fetch(:proxy, nil) connection = Faraday.new(url: to_uri(path)) do |builder| builder.headers[:user_agent] = user_agent if !user_agent.to_s.empty? builder.request :url_encoded if method.eql?(:post) builder.response :logger if self.configuration.verbose_faraday? builder.response :json if proxy puts "[Bibox::Rest::Client] - Will connect to Bibox using proxy: #{proxy.inspect}" if self.configuration.verbose_faraday? builder.proxy = proxy end builder.adapter self.configuration.faraday.fetch(:adapter, :net_http) end case method when :get connection.get do |request| request.params = params if params && !params.empty? end&.body when :post connection.post do |request| request.body = data request.params = params if params && !params.empty? end&.body end end
to_uri(path)
click to toggle source
# File lib/bibox/rest/client.rb, line 39 def to_uri(path) "#{self.url}#{path}" end