module Speechpad::Request

Public Instance Methods

get(params, options={}) click to toggle source
# File lib/speechpad/request.rb, line 8
def get(params, options={})
  params = generate_signature(params)
  request(:get, params, options)
end
post(params, options={}) click to toggle source
# File lib/speechpad/request.rb, line 13
def post(params, options={})
  params = generate_signature(params)
  request(:post, params, options)
end

Private Instance Methods

generate_signature(params) click to toggle source
# File lib/speechpad/request.rb, line 30
def generate_signature(params)
  params["timestamp"] = Time.now.utc.strftime('%Y-%m-%dT%H:%M:%SZ')

  s =  params.keys.sort.map{|key| params[key]}.join('')
  params["signature"] =  Base64.encode64(OpenSSL::HMAC.digest('sha1',@secret_key, s))[0,28]

  params
end
request(method, params, options) click to toggle source

POST the Params to the Speechpad end point.

@param body [String] The formatted XML of the API call make sure to call builder.to_xml.

# File lib/speechpad/request.rb, line 23
def request(method, params, options)
  response = connection.send(method) do |request|
    request.url '/services', params
  end
  response.body
end