Module: RubyPtv::Request

Includes:
HTTParty
Included in:
Client
Defined in:
lib/ruby_ptv/request.rb

Overview

Module used for dispatching http requests

Instance Method Summary collapse

Instance Method Details

#parse(resp) ⇒ Object



29
30
31
# File 'lib/ruby_ptv/request.rb', line 29

def parse(resp)
  JSON.parse(resp.body)
end

#request(path, params = {}) ⇒ Object

Perform HTTP get request

path = request path params = parameters hash

Raises:

  • (StandardError)


14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/ruby_ptv/request.rb', line 14

def request(path, params = {})
  raise StandardError, "Dev ID and secret key are required." unless @dev_id && @secret_key

  request_path = if params.empty?
                   "/v3/#{path}?devid=#{@dev_id}"
                 else
                   "/v3/#{path}?#{URI.encode_www_form(params)}&devid=#{@dev_id}"
                 end
  # Create unique SHA1 signature with each request
  signature = OpenSSL::HMAC.hexdigest("SHA1", @secret_key, request_path)
  req = "https://timetableapi.ptv.vic.gov.au" + request_path + "&signature=" + signature.upcase

  parse(HTTParty.get(req))
end