Class: Daylife::Request

Inherits:
Object
  • Object
show all
Defined in:
lib/daylife/base.rb

Constant Summary collapse

BASE_URL =
'http://freeapi.daylife.com/xmlrest/publicapi/4.3/'

Instance Method Summary collapse

Constructor Details

#initialize(method) ⇒ Request

Returns a new instance of Request.


72
73
74
# File 'lib/daylife/base.rb', line 72

def initialize(method)
  @method = method
end

Instance Method Details

#get(parameters) ⇒ Object


76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# File 'lib/daylife/base.rb', line 76

def get(parameters)
  # Create the signature
  parameters[:signature] = create_signature(@method.split("_").first, parameters) unless parameters[:signature]
  parameters.delete_if { |key, value| key == :shared_secret }
  # Convert Time objects to strings with correct format
  parameters[:start_time] = parameters[:start_time].strftime("%Y-%m-%d %H:%M:%S") if (parameters[:start_time] && parameters[:start_time].kind_of?(Time))
  parameters[:end_time] = parameters[:end_time].strftime("%Y-%m-%d %H:%M:%S") if (parameters[:end_time] && parameters[:end_time].kind_of?(Time))
  # Build the URL
  query_string = "#{@method}?" << build_params(parameters)
  url = URI.parse(BASE_URL + query_string)
  puts url
  response = Net::HTTP.get_response(url)
  if response.kind_of?(Net::HTTPSuccess)
    return Response.new(response.body)
  else
    raise Daylife::BadRequest, "Failed with message: #{response.code}"
  end
end