Class: SabyVok::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/saby_vok/client.rb

Constant Summary collapse

DEFAULT_HOST =
"https://api.sbis.ru/vok/"
DEFAULT_OAUTH_URL =
"https://api.sbis.ru/oauth/service/"
DEFAULT_CONFIG =
{
  host: DEFAULT_HOST,
  oauth_url: DEFAULT_OAUTH_URL,
  timeout: Http::DEFAULT_TIMEOUT,
  retries: Http::DEFAULT_RETRIES,
  logger: nil
}.freeze

Instance Method Summary collapse

Constructor Details

#initialize(client_id, client_secret, secret_key, **options) ⇒ Client #initialize(credentials: , **options) ⇒ Client

Thin, happy-path client for the VOK API.

Examples:

Direct initialization and fetching requisites

client = SabyVok::Client.new("id", "secret", "key")
data = client.req(inn: "7605016030")
puts data.first["company_name"]

Getting a logo as binary

logo_bytes = client.(inn: "7605016030")
File.binwrite("logo.png", logo_bytes)

Overloads:

  • #initialize(client_id, client_secret, secret_key, **options) ⇒ Client

    Parameters:

    • client_id (String)
    • client_secret (String)
    • secret_key (String)
    • options (Hash)

      optional config (see below)

  • #initialize(credentials: , **options) ⇒ Client

    Parameters:

    • credentials (Hash) (defaults to: )

      keys :client_id, :client_secret, :secret_key

    • options (Hash)

Parameters:

  • options (Hash)

    a customizable set of options

Options Hash (**options):

  • :host (String) — default: DEFAULT_HOST
  • :oauth_url (String) — default: DEFAULT_OAUTH_URL
  • :timeout (Integer) — default: Http::DEFAULT_TIMEOUT
  • :retries (Integer) — default: Http::DEFAULT_RETRIES
  • :logger (Logger, nil)


45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/saby_vok/client.rb', line 45

def initialize(*credential_args, credentials: nil, **options)
  creds = resolve_credentials(credential_args, credentials)
  config = build_config(options)

  @host = URI(config[:host])
  @oauth_url = config[:oauth_url]
  @logger = config[:logger]
  timeout = config[:timeout]
  retries = config[:retries]

  @http = Http.new(logger: @logger, timeout: timeout, retries: retries)
  @auth = Auth.new(
    credentials: creds,
    oauth_url: @oauth_url,
    timeout: timeout,
    logger: @logger
  )
end

Instance Method Details

#affiliate(inn: nil, ogrn: nil) ⇒ Object



112
# File 'lib/saby_vok/client.rb', line 112

def affiliate(inn: nil, ogrn: nil) = ensure_and_get_json("affiliate", inn, ogrn)

#bankruptcy(inn: nil, ogrn: nil) ⇒ Object



130
# File 'lib/saby_vok/client.rb', line 130

def bankruptcy(inn: nil, ogrn: nil) = ensure_and_get_json("bankruptcy", inn, ogrn)

#bankruptcy_file(inn: nil, ogrn: nil) ⇒ Object



131
# File 'lib/saby_vok/client.rb', line 131

def bankruptcy_file(inn: nil, ogrn: nil) = ensure_and_get_binary("bankruptcy/file", inn, ogrn)

#branches(inn: nil, ogrn: nil) ⇒ Object



161
# File 'lib/saby_vok/client.rb', line 161

def branches(inn: nil, ogrn: nil) = ensure_and_get_json("branches", inn, ogrn)

#client_stat(**params) ⇒ Array<Hash>, Hash

Returns:

  • (Array<Hash>, Hash)


180
181
182
# File 'lib/saby_vok/client.rb', line 180

def client_stat(**params)
  request_json("client/stat", params: params)
end

#contacts_official(inn: nil, ogrn: nil) ⇒ Object



160
# File 'lib/saby_vok/client.rb', line 160

def contacts_official(inn: nil, ogrn: nil) = ensure_and_get_json("contacts-official", inn, ogrn)

#contractor_history(inn: nil, ogrn: nil) ⇒ Object

History / contacts / branches



159
# File 'lib/saby_vok/client.rb', line 159

def contractor_history(inn: nil, ogrn: nil) = ensure_and_get_json("contractor-history", inn, ogrn)

#cost_business(inn: nil, ogrn: nil) ⇒ Object



104
# File 'lib/saby_vok/client.rb', line 104

def cost_business(inn: nil, ogrn: nil) = ensure_and_get_json("cost-business", inn, ogrn)

#courts(inn: nil, ogrn: nil) ⇒ Object



128
# File 'lib/saby_vok/client.rb', line 128

def courts(inn: nil, ogrn: nil) = ensure_and_get_json("courts", inn, ogrn)

#creditworthiness(inn: nil, ogrn: nil) ⇒ Object



108
# File 'lib/saby_vok/client.rb', line 108

def creditworthiness(inn: nil, ogrn: nil) = ensure_and_get_json("creditworthiness", inn, ogrn)

#dirs_history(inn: nil, ogrn: nil) ⇒ Object



113
# File 'lib/saby_vok/client.rb', line 113

def dirs_history(inn: nil, ogrn: nil) = ensure_and_get_json("dirs-history", inn, ogrn)

#events(inn: nil, ogrn: nil) ⇒ Array<Hash>, Hash

Events / subscriptions

Returns:

  • (Array<Hash>, Hash)


138
139
# File 'lib/saby_vok/client.rb', line 138

def events(inn: nil, ogrn: nil) = ensure_and_get_json("events", inn, ogrn)
# @return [String] binary file data

#events_file(inn: nil, ogrn: nil) ⇒ String

Returns binary file data.

Returns:

  • (String)

    binary file data



140
141
# File 'lib/saby_vok/client.rb', line 140

def events_file(inn: nil, ogrn: nil) = ensure_and_get_binary("events/file", inn, ogrn)
# @return [Array<Hash>, Hash]

#excerpts_file(inn: nil, ogrn: nil) ⇒ String

Returns binary file data.

Returns:

  • (String)

    binary file data



169
# File 'lib/saby_vok/client.rb', line 169

def excerpts_file(inn: nil, ogrn: nil) = ensure_and_get_binary("excerpts/file", inn, ogrn)

#excerpts_last(inn: nil, ogrn: nil) ⇒ Array<Hash>, Hash

Returns:

  • (Array<Hash>, Hash)


167
168
# File 'lib/saby_vok/client.rb', line 167

def excerpts_last(inn: nil, ogrn: nil) = ensure_and_get_json("excerpts/last", inn, ogrn)
# @return [String] binary file data

#excerpts_list(inn: nil, ogrn: nil) ⇒ Array<Hash>, Hash

Excerpts

Returns:

  • (Array<Hash>, Hash)


165
166
# File 'lib/saby_vok/client.rb', line 165

def excerpts_list(inn: nil, ogrn: nil) = ensure_and_get_json("excerpts/list", inn, ogrn)
# @return [Array<Hash>, Hash]

#executive_lists(inn: nil, ogrn: nil) ⇒ Object



129
# File 'lib/saby_vok/client.rb', line 129

def executive_lists(inn: nil, ogrn: nil) = ensure_and_get_json("executive-lists", inn, ogrn)

#fea(inn: nil, ogrn: nil) ⇒ Object

External economic activity



134
# File 'lib/saby_vok/client.rb', line 134

def fea(inn: nil, ogrn: nil) = ensure_and_get_json("fea", inn, ogrn)

#finance(inn: nil, ogrn: nil) ⇒ Object

Analytics



103
# File 'lib/saby_vok/client.rb', line 103

def finance(inn: nil, ogrn: nil) = ensure_and_get_json("finance", inn, ogrn)

#founders_history(inn: nil, ogrn: nil) ⇒ Object



114
# File 'lib/saby_vok/client.rb', line 114

def founders_history(inn: nil, ogrn: nil) = ensure_and_get_json("founders-history", inn, ogrn)

#inspections_data(inn: nil, ogrn: nil) ⇒ Object



120
# File 'lib/saby_vok/client.rb', line 120

def inspections_data(inn: nil, ogrn: nil) = ensure_and_get_json("inspections/data", inn, ogrn)

#inspections_stat(inn: nil, ogrn: nil) ⇒ Object



119
# File 'lib/saby_vok/client.rb', line 119

def inspections_stat(inn: nil, ogrn: nil) = ensure_and_get_json("inspections/stat", inn, ogrn)

#license_data(inn: nil, ogrn: nil) ⇒ Object



118
# File 'lib/saby_vok/client.rb', line 118

def license_data(inn: nil, ogrn: nil) = ensure_and_get_json("license/data", inn, ogrn)

#license_stat(inn: nil, ogrn: nil) ⇒ Object

Licenses / inspections



117
# File 'lib/saby_vok/client.rb', line 117

def license_stat(inn: nil, ogrn: nil) = ensure_and_get_json("license/stat", inn, ogrn)

#logo(inn: nil, ogrn: nil, kpp: nil) ⇒ String

Returns binary logo data.

Returns:

  • (String)

    binary logo data



73
74
75
76
77
# File 'lib/saby_vok/client.rb', line 73

def (inn: nil, ogrn: nil, kpp: nil)
  ensure_inn_or_ogrn!(inn, ogrn)
  ensure_kpp_valid!(inn, kpp)
  request_binary("logo", params: { inn: inn, ogrn: ogrn, kpp: kpp })
end

#market_position(inn: nil, ogrn: nil) ⇒ Object



107
# File 'lib/saby_vok/client.rb', line 107

def market_position(inn: nil, ogrn: nil) = ensure_and_get_json("market-position", inn, ogrn)

#owners(inn: nil, ogrn: nil) ⇒ Object

Person / relations



111
# File 'lib/saby_vok/client.rb', line 111

def owners(inn: nil, ogrn: nil) = ensure_and_get_json("owners", inn, ogrn)

#pdf_business_report(inn: nil, ogrn: nil) ⇒ String

Reports

Returns:

  • (String)

    PDF binary



200
201
# File 'lib/saby_vok/client.rb', line 200

def pdf_business_report(inn: nil, ogrn: nil) = ensure_and_get_binary("pdf/business-report", inn, ogrn)
# @return [String] PDF binary

#pdf_due_diligence_report(inn: nil, ogrn: nil) ⇒ String

Returns PDF binary.

Returns:

  • (String)

    PDF binary



202
203
# File 'lib/saby_vok/client.rb', line 202

def pdf_due_diligence_report(inn: nil, ogrn: nil) = ensure_and_get_binary("pdf/due-diligence-report", inn, ogrn)
# @return [String] PDF binary

#pdf_financial_report(inn: nil, ogrn: nil) ⇒ String

Returns PDF binary.

Returns:

  • (String)

    PDF binary



204
205
# File 'lib/saby_vok/client.rb', line 204

def pdf_financial_report(inn: nil, ogrn: nil) = ensure_and_get_binary("pdf/financial-report", inn, ogrn)
# @return [String] PDF binary

#pdf_signed_excerpt(inn: nil, ogrn: nil) ⇒ String

Returns PDF binary.

Returns:

  • (String)

    PDF binary



206
207
# File 'lib/saby_vok/client.rb', line 206

def pdf_signed_excerpt(inn: nil, ogrn: nil) = ensure_and_get_binary("pdf/signed-excerpt", inn, ogrn)
# @return [String] XML binary

#pledges(inn: nil, ogrn: nil) ⇒ Array<Hash>, Hash

Returns:

  • (Array<Hash>, Hash)


194
195
# File 'lib/saby_vok/client.rb', line 194

def pledges(inn: nil, ogrn: nil) = ensure_and_get_json("pledges", inn, ogrn)
# @return [String] binary file data

#pledges_file(inn: nil, ogrn: nil) ⇒ String

Returns binary file data.

Returns:

  • (String)

    binary file data



196
# File 'lib/saby_vok/client.rb', line 196

def pledges_file(inn: nil, ogrn: nil) = ensure_and_get_binary("pledges/file", inn, ogrn)

#registration_information(inn: nil, ogrn: nil, kpp: nil) ⇒ Array<Hash>, Hash

Returns:

  • (Array<Hash>, Hash)


80
81
82
83
84
# File 'lib/saby_vok/client.rb', line 80

def registration_information(inn: nil, ogrn: nil, kpp: nil)
  ensure_inn_or_ogrn!(inn, ogrn)
  ensure_kpp_valid!(inn, kpp)
  request_json("registration-information", params: { inn: inn, ogrn: ogrn, kpp: kpp })
end

#reliability(inn: nil, ogrn: nil) ⇒ Object



105
# File 'lib/saby_vok/client.rb', line 105

def reliability(inn: nil, ogrn: nil) = ensure_and_get_json("reliability", inn, ogrn)

#reliability_blocks(inn: nil, ogrn: nil) ⇒ Object



106
# File 'lib/saby_vok/client.rb', line 106

def reliability_blocks(inn: nil, ogrn: nil) = ensure_and_get_json("reliability/blocks", inn, ogrn)

#req(inn: nil, ogrn: nil, kpp: nil) ⇒ Array<Hash>, Hash

Requisites

Returns:

  • (Array<Hash>, Hash)


66
67
68
69
70
# File 'lib/saby_vok/client.rb', line 66

def req(inn: nil, ogrn: nil, kpp: nil)
  ensure_inn_or_ogrn!(inn, ogrn)
  ensure_kpp_valid!(inn, kpp)
  request_json("req", params: { inn: inn, ogrn: ogrn, kpp: kpp })
end

#search(query:, **params) ⇒ Array<Hash>, Hash

Search / stats

Returns:

  • (Array<Hash>, Hash)

Raises:



173
174
175
176
177
# File 'lib/saby_vok/client.rb', line 173

def search(query:, **params)
  raise ValidationError, "query is required" if query.nil? || query.to_s.strip.empty?

  request_json("search", params: { query: query }.merge(params))
end

#sro(inn: nil, ogrn: nil) ⇒ Object

SRO



123
# File 'lib/saby_vok/client.rb', line 123

def sro(inn: nil, ogrn: nil) = ensure_and_get_json("sro", inn, ogrn)

#sro_file(inn: nil, ogrn: nil) ⇒ Object



124
# File 'lib/saby_vok/client.rb', line 124

def sro_file(inn: nil, ogrn: nil) = ensure_and_get_binary("sro/file", inn, ogrn)

#statistic_courts(inn: nil, ogrn: nil) ⇒ Object

Courts / bankruptcy



127
# File 'lib/saby_vok/client.rb', line 127

def statistic_courts(inn: nil, ogrn: nil) = ensure_and_get_json("statistic-courts", inn, ogrn)

#subscribe(inn: nil, ogrn: nil, **params) ⇒ Array<Hash>, Hash

Returns:

  • (Array<Hash>, Hash)


147
148
149
150
# File 'lib/saby_vok/client.rb', line 147

def subscribe(inn: nil, ogrn: nil, **params)
  ensure_inn_or_ogrn!(inn, ogrn)
  request_json("subscriptions/subscribe", params: { inn: inn, ogrn: ogrn }.merge(params), method: :post)
end

#subscriptions_contractors(inn: nil, ogrn: nil) ⇒ Array<Hash>, Hash

Returns:

  • (Array<Hash>, Hash)


144
# File 'lib/saby_vok/client.rb', line 144

def subscriptions_contractors(inn: nil, ogrn: nil) = ensure_and_get_json("subscriptions/contractors", inn, ogrn)

#subscriptions_events(inn: nil, ogrn: nil) ⇒ Array<Hash>, Hash

Returns:

  • (Array<Hash>, Hash)


142
143
# File 'lib/saby_vok/client.rb', line 142

def subscriptions_events(inn: nil, ogrn: nil) = ensure_and_get_json("subscriptions/events", inn, ogrn)
# @return [Array<Hash>, Hash]

#tenders(inn: nil, ogrn: nil, limit: 10, page: 0) ⇒ Array<Hash>, Hash

Parameters:

  • limit (Integer) (defaults to: 10)
  • page (Integer) (defaults to: 0)

Returns:

  • (Array<Hash>, Hash)


96
97
98
99
100
# File 'lib/saby_vok/client.rb', line 96

def tenders(inn: nil, ogrn: nil, limit: 10, page: 0)
  ensure_inn_or_ogrn!(inn, ogrn)
  ensure_pagination!(limit, page)
  request_json("tenders", params: { inn: inn, ogrn: ogrn, limit: limit, page: page })
end

#tenders_info(inn: nil, ogrn: nil) ⇒ Array<Hash>, Hash

Tenders

Returns:

  • (Array<Hash>, Hash)


88
89
90
91
# File 'lib/saby_vok/client.rb', line 88

def tenders_info(inn: nil, ogrn: nil)
  ensure_inn_or_ogrn!(inn, ogrn)
  request_json("tenders-info", params: { inn: inn, ogrn: ogrn })
end

#trademarks(inn: nil, ogrn: nil) ⇒ Array<Hash>, Hash

Trademarks / vehicles / pledges

Returns:

  • (Array<Hash>, Hash)


186
187
# File 'lib/saby_vok/client.rb', line 186

def trademarks(inn: nil, ogrn: nil) = ensure_and_get_json("trademarks", inn, ogrn)
# @return [String] binary image data

#trademarks_image(inn: nil, ogrn: nil) ⇒ String

Returns binary image data.

Returns:

  • (String)

    binary image data



188
189
# File 'lib/saby_vok/client.rb', line 188

def trademarks_image(inn: nil, ogrn: nil) = ensure_and_get_binary("trademarks/image", inn, ogrn)
# @return [Array<Hash>, Hash]

#unsubscribe(inn: nil, ogrn: nil, **params) ⇒ Array<Hash>, Hash

Returns:

  • (Array<Hash>, Hash)


153
154
155
156
# File 'lib/saby_vok/client.rb', line 153

def unsubscribe(inn: nil, ogrn: nil, **params)
  ensure_inn_or_ogrn!(inn, ogrn)
  request_json("subscriptions/unsubscribe", params: { inn: inn, ogrn: ogrn }.merge(params), method: :post)
end

#vehicle(inn: nil, ogrn: nil) ⇒ Array<Hash>, Hash

Returns:

  • (Array<Hash>, Hash)


190
191
# File 'lib/saby_vok/client.rb', line 190

def vehicle(inn: nil, ogrn: nil) = ensure_and_get_json("vehicle", inn, ogrn)
# @return [Array<Hash>, Hash]

#vehicle_stat(inn: nil, ogrn: nil) ⇒ Array<Hash>, Hash

Returns:

  • (Array<Hash>, Hash)


192
193
# File 'lib/saby_vok/client.rb', line 192

def vehicle_stat(inn: nil, ogrn: nil) = ensure_and_get_json("vehicle/stat", inn, ogrn)
# @return [Array<Hash>, Hash]

#xml_egrul_excerpt(inn: nil, ogrn: nil) ⇒ String

Returns XML binary.

Returns:

  • (String)

    XML binary



208
209
# File 'lib/saby_vok/client.rb', line 208

def xml_egrul_excerpt(inn: nil, ogrn: nil) = ensure_and_get_binary("xml/egrul-excerpt", inn, ogrn)
# @return [String] XML binary

#xml_reporting_excerpt(inn: nil, ogrn: nil) ⇒ String

Returns XML binary.

Returns:

  • (String)

    XML binary



210
# File 'lib/saby_vok/client.rb', line 210

def xml_reporting_excerpt(inn: nil, ogrn: nil) = ensure_and_get_binary("xml/reporting-excerpt", inn, ogrn)