Class: Dadata::Client
- Inherits:
-
Object
- Object
- Dadata::Client
- Defined in:
- lib/dadata.rb
Overview
Глобальный клиент к API Dadata
Instance Method Summary collapse
-
#balance ⇒ Object
Баланс пользователя.
-
#clean(name, source) ⇒ Object
Стандартизация.
-
#clean_record(structure, record) ⇒ Object
Стандартизация составных записей.
- #close ⇒ Object
-
#daily_stats(date = nil) ⇒ Object
Статистика использования.
-
#find_affiliated(query, count = Dadata.suggestions_count) ⇒ Object
Поиск аффилированных компаний.
-
#find_by_email(query) ⇒ Array<Object>
Компания по email.
-
#find_by_id(name, query, count = Dadata.suggestions_count) ⇒ Object
Поиск по коду.
-
#geolocate(name, lat, lon, radius_meters = 100) ⇒ Object
Обратное геокодирование (адрес по координатам).
-
#initialize(token = Dadata.api_key, secret = Dadata.secret_key) ⇒ Client
constructor
A new instance of Client.
-
#iplocate(ip) ⇒ Object
Город по IP-адресу.
-
#suggest(name, query, count = Dadata.suggestions_count) ⇒ Object
Подсказки.
-
#versions ⇒ Object
Версии справочников.
Constructor Details
#initialize(token = Dadata.api_key, secret = Dadata.secret_key) ⇒ Client
Returns a new instance of Client.
150 151 152 153 154 |
# File 'lib/dadata.rb', line 150 def initialize(token = Dadata.api_key, secret = Dadata.secret_key) @cleaner = CleanClient.new(token, secret) @suggestions = SuggestClient.new(token, secret) @profile = ProfileClient.new(token, secret) end |
Instance Method Details
#balance ⇒ Object
Баланс пользователя
381 382 383 |
# File 'lib/dadata.rb', line 381 def balance with_logging('getting balance') { @profile.balance } end |
#clean(name, source) ⇒ Object
15 коп./запись. Максимальная частота запросов — 20 в секунду с одного IP-адреса.
Максимальная частота создания новых соединений — 60 в минуту с одного IP-адреса.
Дадата не поддерживает вызов этого метода из браузерного JavaScript.
Стандартизация. Приводит в порядок и обогащает дополнительной информацией.
Иначе злоумышленник мог бы похитить секретный ключ и использовать API за ваш счет.
175 176 177 |
# File 'lib/dadata.rb', line 175 def clean(name, source) with_logging("cleaning #{name}") { @cleaner.clean(name, source) } end |
#clean_record(structure, record) ⇒ Object
Максимальное количество полей в одной записи: 1 ФИО, 3 адреса, 3 телефона, 3 email, 1 дата рождения, 1 паспорт, 1 автомобиль.
15 коп./запись. Максимальная частота запросов — 20 в секунду с одного IP-адреса.
Максимальная частота создания новых соединений — 60 в минуту с одного IP-адреса.
Дадата не поддерживает вызов этого метода из браузерного JavaScript.
Стандартизация составных записей
Иначе злоумышленник мог бы похитить секретный ключ и использовать API за ваш счет.
207 208 209 |
# File 'lib/dadata.rb', line 207 def clean_record(structure, record) with_logging('cleaning record') { @cleaner.clean_record(structure, record) } end |
#close ⇒ Object
399 400 401 402 403 404 405 |
# File 'lib/dadata.rb', line 399 def close with_logging('closing client') do @cleaner.close @suggestions.close @profile.close end end |
#daily_stats(date = nil) ⇒ Object
Статистика использования
388 389 390 |
# File 'lib/dadata.rb', line 388 def daily_stats(date = nil) with_logging('getting daily stats') { @profile.daily_stats(date) } end |
#find_affiliated(query, count = Dadata.suggestions_count) ⇒ Object
Доступно только на тарифе «Максимальный»
Длина запроса (параметр query) — не более 300 символов.
Количество запросов — в соответствии с тарифным планом.
Максимальная частота запросов — 30 в секунду с одного IP-адреса.
Максимальная частота создания новых соединений — 60 в минуту с одного IP-адреса.
Поиск аффилированных компаний
374 375 376 |
# File 'lib/dadata.rb', line 374 def find_affiliated(query, count = Dadata.suggestions_count, **) with_logging('finding affiliated') { @suggestions.find_affiliated(query, [count, MAX_SUGGESTIONS].min, **) } end |
#find_by_email(query) ⇒ Array<Object>
Длина запроса (параметр query) — не более 300 символов.
5 руб./запрос. Количество запросов — в соответствии с тарифным планом.
Максимальная частота запросов — 30 в секунду с одного IP-адреса.
Максимальная частота создания новых соединений — 60 в минуту с одного IP-адреса.
Компания по email
357 358 359 |
# File 'lib/dadata.rb', line 357 def find_by_email(query) with_logging('finding by email') { @suggestions.find_by_email(query) } end |
#find_by_id(name, query, count = Dadata.suggestions_count) ⇒ Object
Длина запроса (параметр query) — не более 300 символов.
Метод бесплатный до 10000 запросов в день, или в соответствии с тарифным планом.
Максимальная частота запросов — 30 в секунду с одного IP-адреса.
Максимальная частота создания новых соединений — 60 в минуту с одного IP-адреса.
Поиск по коду
343 344 345 |
# File 'lib/dadata.rb', line 343 def find_by_id(name, query, count = Dadata.suggestions_count, **) with_logging('finding by id') { @suggestions.find_by_id(name, query, [count, MAX_SUGGESTIONS].min, **) } end |
#geolocate(name, lat, lon, radius_meters = 100) ⇒ Object
Метод бесплатный до 10000 запросов в день, или в соответствии с тарифным планом.
Максимальная частота запросов — 30 в секунду с одного IP-адреса.
Максимальная частота создания новых соединений — 60 в минуту с одного IP-адреса.
Обратное геокодирование (адрес по координатам)
226 227 228 |
# File 'lib/dadata.rb', line 226 def geolocate(name, lat, lon, radius_meters = 100, **) with_logging('geolocating') { @suggestions.geolocate(name, lat, lon, radius_meters, **) } end |
#iplocate(ip) ⇒ Object
Метод бесплатный до 10000 запросов в день, или в соответствии с тарифным планом.
Максимальная частота запросов — 30 в секунду с одного IP-адреса.
Максимальная частота создания новых соединений — 60 в минуту с одного IP-адреса.
Город по IP-адресу
240 241 242 |
# File 'lib/dadata.rb', line 240 def iplocate(ip, **) with_logging('iplocating') { @suggestions.iplocate(ip, **) } end |
#suggest(name, query, count = Dadata.suggestions_count) ⇒ Object
Длина запроса (параметр query) — не более 300 символов.
Метод бесплатный до 10000 запросов в день, или в соответствии с тарифным планом.
Максимальная частота запросов — 30 в секунду с одного IP-адреса.
Максимальная частота создания новых соединений — 60 в минуту с одного IP-адреса.
Подсказки
291 292 293 |
# File 'lib/dadata.rb', line 291 def suggest(name, query, count = Dadata.suggestions_count, **) with_logging('suggesting') { @suggestions.suggest(name, query, [count, MAX_SUGGESTIONS].min, **) } end |
#versions ⇒ Object
Версии справочников
395 396 397 |
# File 'lib/dadata.rb', line 395 def versions with_logging('getting versions') { @profile.versions } end |