module OpenStreetMap::Client::Request

methods for request

Private Instance Methods

call(type, args) click to toggle source

make request to API

# File lib/open_street_map/client/request.rb, line 8
def call(type, args)
  url = hostname(args[:hostname]) + type
  headers = { 'User-Agent' => user_agent(args[:user_agent]) }
  self.class.get(url, query: generate_body(type, args), headers: headers).parsed_response
end
generate_body(type, args) click to toggle source

generate body from args

# File lib/open_street_map/client/request.rb, line 15
def generate_body(type, args)
  args['accept-language'.to_sym] = args[:accept_language] if args.key?(:accept_language)
  args.select { |key, _| valid_args(type).include?(key) }
end
hostname(value) click to toggle source

select hostname for request

# File lib/open_street_map/client/request.rb, line 30
def hostname(value)
  value || BASE_URI
end
user_agent(value) click to toggle source

select user_agent for request

# File lib/open_street_map/client/request.rb, line 35
def user_agent(value)
  value || DEFAULT_USER_AGENT
end
valid_args(type) click to toggle source

get list of permitted args

# File lib/open_street_map/client/request.rb, line 21
def valid_args(type)
  case type
    when 'search' then %i[q format addressdetails extratags namedetails viewbox bounded exclude_place_ids limit accept-language email]
    when 'reverse' then %i[format lat lon zoom addressdetails extratags namedetails accept-language email]
    else []
  end
end