class Bintray::Client::Ruby::Resources::Base

Public Class Methods

new(conn) click to toggle source
# File lib/bintray/client/ruby/resources/base.rb, line 8
def initialize(conn)
        @conn = conn
end

Public Instance Methods

create_route(*route) click to toggle source
# File lib/bintray/client/ruby/resources/base.rb, line 29
def create_route(*route)
        File.join(route.flatten.compact.map(&:to_s))
end
parse_response(response) click to toggle source
# File lib/bintray/client/ruby/resources/base.rb, line 24
def parse_response(response)
        return handle_error(response) if response.status >= 300
        handle_ok(response)
end
request(http_method, path, query_params = {}, payload = {}, headers = {}) click to toggle source
# File lib/bintray/client/ruby/resources/base.rb, line 12
def request(http_method, path, query_params = {}, payload = {}, headers = {})
        @conn.send(http_method) do |req|
                req.url(path)
                set_url_query_params(req, query_params)
                set_headers(req, headers)
                if payload.present?
                        req.headers['Content-Type'] = 'application/json'
                        req.body = JSON.dump(payload)
                end
        end
end

Private Instance Methods

handle_error(response) click to toggle source
# File lib/bintray/client/ruby/resources/base.rb, line 35
def handle_error(response)
        raise HttpError.new(response)
end
handle_ok(response) click to toggle source
# File lib/bintray/client/ruby/resources/base.rb, line 39
def handle_ok(response)
        JSON.parse(response.body) if response.body.present?
end
set_headers(request, headers) click to toggle source
# File lib/bintray/client/ruby/resources/base.rb, line 54
def set_headers(request, headers)
        headers.each { |k,v| request.headers[k] = v } if headers.present?
end
set_url_query_params(request, query_params) click to toggle source
# File lib/bintray/client/ruby/resources/base.rb, line 43
def set_url_query_params(request, query_params)
        return unless query_params.present?
        query_params.each do |k,v|
                if v.is_a?(Array)
                        request.params[k] = v.join(',')
                else
                        request.params[k] = v
                end
        end
end