module SitraClient
Constants
- MAX_COUNT
- MAX_LOOPS
Safety net
- VERSION
Public Class Methods
config()
click to toggle source
# File lib/sitra_client.rb, line 30 def self.config @config end
configure(opts = {})
click to toggle source
Configure through hash
# File lib/sitra_client.rb, line 26 def self.configure(opts = {}) opts.each {|k,v| @config[k.to_sym] = v if @valid_config_keys.include? k.to_sym} end
query(criteria, all_results = false, aspect = nil)
click to toggle source
# File lib/sitra_client.rb, line 34 def self.query(criteria, all_results = false, aspect = nil) query_result = {} if all_results loops = 0 criteria[:first] = 0 criteria[:count] = MAX_COUNT response = get_response(criteria) results = response.as_array(aspect) while response.results_count > results.length && loops < MAX_LOOPS loops += 1 criteria[:first] += MAX_COUNT results += get_response(criteria).as_array(aspect) end query_result[:count] = response.results_count query_result[:results] = results else response = get_response(criteria) results = response.as_array(aspect) query_result[:count] = response.results_count query_result[:results] = results end query_result end
selections()
click to toggle source
# File lib/sitra_client.rb, line 58 def self.selections response = '' query = SitraQuery.new(@config[:api_key], @config[:site_identifier]) @logger.info "Selections retrieval query : #{@config[:base_url]}/referentiel/selections?query=#{query.to_params}" open("#{@config[:base_url]}/referentiel/selections?query=#{CGI.escape query.to_params}") { |f| f.each_line {|line| response += line if line} } JSON.parse response, symbolize_names: true end
Private Class Methods
get_response(criteria)
click to toggle source
# File lib/sitra_client.rb, line 70 def self.get_response(criteria) response = SitraResponse.new query = SitraQuery.new(@config[:api_key], @config[:site_identifier], criteria) @logger.info "Search query : #{@config[:base_url]}/recherche/list-objets-touristiques?query=#{query.to_params}" open("#{@config[:base_url]}/recherche/list-objets-touristiques?query=#{CGI.escape query.to_params}") { |f| f.each_line {|line| response.append_line(line)} } @logger.info "Retrieved #{response.returned_count} of #{response.results_count} results" response end