module FREDAPI::Request
Request
module to handle all requests to API
Public Instance Methods
Perform a delete request
@param path [String] URL path to send request @param opts [Hash] Request
parameters @return [Hashie::Mash] Response body
# File lib/fredapi/request.rb, line 21 def delete path, opts={} request(:delete, path, opts).body end
Perform a get request
@param path [String] URL path to send request @param opts [Hash] Request
parameters @return [Hashie::Mash] Response body
# File lib/fredapi/request.rb, line 12 def get path, opts={} request(:get, path, opts).body end
Perform a patch request
@param path [String] URL path to send request @param opts [Hash] Request
parameters @return [Hashie::Mash] Response body
# File lib/fredapi/request.rb, line 48 def patch path, opts={} request(:patch, path, opts).body end
Perform a post request
@param path [String] URL path to send request @param opts [Hash] Request
parameters @return [Hashie::Mash] Response body
# File lib/fredapi/request.rb, line 30 def post path, opts={} request(:post, path, opts).body end
Perform a put request
@param path [String] URL path to send request @param opts [Hash] Request
parameters @return [Hashie::Mash] Response body
# File lib/fredapi/request.rb, line 39 def put path, opts={} request(:put, path, opts).body end
Private Instance Methods
Sets connection options
@param opts [Hash] hash of opts passed @return [Hash] connection options
# File lib/fredapi/request.rb, line 58 def connection_options opts { :headers => { :user_agent => user_agent }, :force_urlencoded => opts.delete(:force_urlencoded) || false, :url => api_endpoint } end
Perform a request
@param method [String] Type of request path @param path [String] URL path to send request @param opts [Hash] Request
parameters @return [Hashie::Mash] Response
# File lib/fredapi/request.rb, line 74 def request method, path, opts={} conn_options = connection_options opts opts['api_key'] = api_key unless opts.has_key? 'api_key' opts['file_type'] = file_type unless opts.has_key? 'file_type' response = connection(conn_options).send(method) do |request| case method when :get request.url path, opts when :delete request.url path, opts when :patch, :post, :put if conn_options[:force_urlencoded] request.url path, opts else request.path = path request.body = MultiJson.dump(opts) unless opts.empty? end end end response end