Class: ImportExport::Query
- Inherits:
-
Object
- Object
- ImportExport::Query
- Defined in:
- lib/import_export/query.rb
Constant Summary collapse
- PARAMETERS =
{ :q => nil, :sources => Source.keys, :countries => Query.countries, :address => nil, :name => nil, :fuzzy_name => false, :type => nil, :size => 100, :offset => 0, :api_key => nil, }
- TYPES =
%w[ Individual Entity Vessel ]
Class Method Summary collapse
Instance Method Summary collapse
- #call ⇒ Object
-
#initialize(params) ⇒ Query
constructor
A new instance of Query.
Constructor Details
#initialize(params) ⇒ Query
Returns a new instance of Query.
33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/import_export/query.rb', line 33 def initialize(params) params = { :q => params } if params.is_a? String @params = PARAMETERS.merge(params) if invalid = @params.find { |key,value| !PARAMETERS.keys.include?(key) } raise ArgumentError, "Invalid parameter: #{invalid[0]}" end if invalid = @params[:sources].find { |source| !Source.find_by_key(source) } raise ArgumentError, "Invalid source: #{invalid}" end if invalid = @params[:countries].find { |country| !Query.countries.include?(country) } raise ArgumentError, "Invalid country: #{invalid}" end end |
Class Method Details
.countries ⇒ Object
5 6 7 |
# File 'lib/import_export/query.rb', line 5 def countries @countries ||= IsoCountryCodes.all.map { |c| c.alpha2 } end |
.endpoint ⇒ Object
9 10 11 |
# File 'lib/import_export/query.rb', line 9 def endpoint @endpoint ||= URI.join(ImportExport::API_BASE, "search").to_s end |
Instance Method Details
#call ⇒ Object
50 51 52 53 54 55 |
# File 'lib/import_export/query.rb', line 50 def call RestClient.get Query.endpoint, { :params => params, "User-Agent" => ImportExport.user_agent } end |