lib/signnow/request/info.rb
module Signnow
module Request
class Info
attr_accessor :http_method, :api_url, :data, :subdomain, :authentication, :base_path, :options
def initialize(http_method, subdomain, api_url, data, options={})
@http_method = http_method
@subdomain = subdomain || Signnow.domain
@api_url = api_url
@data = data
@base_path = Signnow.base_path
@authentication = {}
@authentication[:type] = options.delete(:auth_type)
@authentication[:token] = options.delete(:auth_token)
@options = options
end
def url
url = ''
url += "/#{base_path}" if base_path
url += "/#{api_url}"
if has_id?
url += "/#{data[:id]}"
data.delete(:id)
end
url
end
def path_with_params(path, params)
unless params.empty?
encoded_params = URI.encode_www_form(params)
[path, encoded_params].join("?")
else
path
end
end
def use_form_data?
options.fetch(:use_form_data, false)
end
protected
def has_id?
!data[:id].nil?
end
end
end
end