class Vkponchik::Client

API client class

Constants

API_BASE
API_HEADERS
API_METHODS
API_VERSION

Public Class Methods

new(group, token) click to toggle source

Initialize new client @param group [Integer] group ID @param token [String] group API token

# File lib/vkponchik/client.rb, line 21
def initialize(group, token)
  @group = group
  @token = token
end

Public Instance Methods

request(method, **params) click to toggle source

Send POST request to API server @param method [String] see {API_METHODS} array @param params [Hash] parameters to pass in POST request @return [Hash]

# File lib/vkponchik/client.rb, line 30
def request(method, **params)
  validate_request_options(method, **params)

  params[:v] = API_VERSION
  params[:group] = @group
  params[:token] = @token

  uri = URI("#{API_BASE}/#{method}")
  re = Net::HTTP.post(uri, params.to_json, API_HEADERS)

  Response.new(JSON.parse(re.body))
rescue StandardError
  raise Vkponchik::Error, 'Request failure'
end

Private Instance Methods

validate_request_options(method, **_params) click to toggle source
# File lib/vkponchik/client.rb, line 47
def validate_request_options(method, **_params)
  raise Vkponchik::Error, 'Invalid request method' unless API_METHODS.include?(method)
end