class Dadata::Suggestion
Suggestion
API
Constants
- BASE_URL
Public Class Methods
new(config)
click to toggle source
# File lib/dadata/suggestion.rb, line 11 def initialize(config) @config = config end
Public Instance Methods
address_by_fias_id(fias_id: nil)
click to toggle source
# File lib/dadata/suggestion.rb, line 19 def address_by_fias_id(fias_id: nil) call_method('findById/address', query: fias_id) end
address_by_str(query: nil)
click to toggle source
# File lib/dadata/suggestion.rb, line 23 def address_by_str(query: nil) call_method('suggest/address', query: query) end
organization(query: nil)
click to toggle source
# File lib/dadata/suggestion.rb, line 15 def organization(query: nil) call_method('suggest/party', query: query) end
Private Instance Methods
call_method(method, **query_data)
click to toggle source
# File lib/dadata/suggestion.rb, line 29 def call_method(method, **query_data) url = URI(URI.join(BASE_URL, method)) req = Net::HTTP::Post.new(url) req['Content-Type'] = 'application/json' req['Accept'] = 'application/json' req['Authorization'] = "Token #{@config[:api_key]}" req.body = query_data.to_json resp = perform_request(url, req) if resp.is_a?(Net::HTTPResponse) if resp.code == '200' [true, JSON.parse(resp.body, symbolize_names: true)[:suggestions]] else [false, { code: resp.code.to_i, message: resp.body }] end else [false, { message: resp }] end end
perform_request(url, request)
click to toggle source
# File lib/dadata/suggestion.rb, line 52 def perform_request(url, request) http = Net::HTTP.new(url.host, url.port) http.use_ssl = true http.request(request) rescue StandardError => e e end