class WhizClient::Client

Constants

GEO_API_URL
INDIAN_API_URL

Public Class Methods

request(params) click to toggle source
# File lib/whiz_client/client.rb, line 21
def request(params)
  request_type = params[:api_type]
  url = case request_type
    when 'indian' then construct_indian_api_url(params)
    when 'geo' then construct_geo_api_url(params)
  end

  begin
    RestClient.get URI.encode(url)
  rescue URI::InvalidURIError
    raise WhizResponseError.new('Invalid Url', 500)
  rescue => error
    raise WhizResponseError.new("Error: #{error.message}", 500)
  end
end

Private Class Methods

construct_geo_api_url(params) click to toggle source
# File lib/whiz_client/client.rb, line 50
def construct_geo_api_url(params)
  raise WhizResponseError.new('WhizClient::Client::APP_KEY is not defined', 500) unless defined? APP_KEY

  url = "#{GEO_API_URL}#{params[:method_name]}?AppKey=#{APP_KEY}"
  url += "&zid=#{params[:time_zone]}" if params.has_key? :time_zone
  url
end
construct_indian_api_url(params) click to toggle source
# File lib/whiz_client/client.rb, line 39
def construct_indian_api_url(params)
  raise WhizResponseError.new('WhizClient::Client::APP_KEY is not defined', 500) unless defined? APP_KEY

  url = "#{INDIAN_API_URL}#{params[:method_name]}?AppKey=#{APP_KEY}"
  url += "&stateid=#{params[:stateid]}" if params.has_key? :stateid
  url += "&code=#{params[:std_code]}" if params.has_key? :std_code
  url += "&search=#{params[:location]}" if params.has_key? :location
  url += "&pin=#{params[:postal_code]}" if params.has_key? :postal_code
  url
end