class Github::Request
A class responsible for dispatching http requests
def _extract_mime_type(params, options) # :nodoc:
def _extract_mime_type(params, options) # :nodoc: options['resource'] = params['resource'] ? params.delete('resource') : '' options['mime_type'] = params['resource'] ? params.delete('mime_type') : '' end
def call(current_options, params)
- Api: - private
Returns:
-
(Github::ResponseWrapper)
-
Parameters:
-
params
(ParamsHash
) -- - ParamsHash to configure the request API -
path
(String
) -- - String relative URL to access -
method
(Symbol
) -- - The Symbol the HTTP verb
def call(current_options, params) unless HTTP_METHODS.include?(action) raise ArgumentError, "unknown http method: #{method}" end puts "EXECUTED: #{action} - #{path} with PARAMS: #{params}" if ENV['DEBUG'] request_options = params.options connection_options = current_options.merge(request_options) conn = connection(api, connection_options) self.path = Utils::Url.normalize(self.path) if conn.path_prefix != '/' && self.path.index(conn.path_prefix) != 0 self.path = (conn.path_prefix + self.path).gsub(/\/(\/)*/, '/') end response = conn.send(action) do |request| case action.to_sym when *(HTTP_METHODS - METHODS_WITH_BODIES) request.body = params.data if params.key?('data') if params.key?('encoder') request.params.params_encoder(params.encoder) end request.url(self.path, params.request_params) when *METHODS_WITH_BODIES request.url(self.path, connection_options[:query] || {}) request.body = params.data unless params.empty? end end ResponseWrapper.new(response, api) end
def delete_request(path, params={}, options={})
def delete_request(path, params={}, options={}) request(:delete, path, params, options) end
def extract_data_from_params(params) # :nodoc:
def extract_data_from_params(params) # :nodoc: return params['data'] if params.has_key?('data') and !params['data'].nil? return params end
def get_request(path, params={}, options={})
def get_request(path, params={}, options={}) request(:get, path, params, options) end
def initialize(action, path, api)
- Api: - public
Returns:
-
(Github::Request)
-
def initialize(action, path, api) @action = action @path = path @api = api end
def patch_request(path, params={}, options={})
def patch_request(path, params={}, options={}) request(:patch, path, params, options) end
def post_request(path, params={}, options={})
def post_request(path, params={}, options={}) request(:post, path, params, options) end
def put_request(path, params={}, options={})
def put_request(path, params={}, options={}) request(:put, path, params, options) end
def request(method, path, params, options)
def request(method, path, params, options) if !METHODS.include?(method) raise ArgumentError, "unkown http method: #{method}" end # _extract_mime_type(params, options) puts "EXECUTED: #{method} - #{path} with #{params} and #{options}" if ENV['DEBUG'] conn = connection(options) path = (conn.path_prefix + path).gsub(/\/\//,'/') if conn.path_prefix != '/' response = conn.send(method) do |request| case method.to_sym when *(METHODS - METHODS_WITH_BODIES) request.body = params.delete('data') if params.has_key?('data') request.url(path, params) when *METHODS_WITH_BODIES request.path = path request.body = extract_data_from_params(params) unless params.empty? end end response.body end