module Vkdonate

Main module

Constants

ACTIONS

Array of available actions

ORDER

Array of available order-by

REQUEST_TIMEOUT

Requests timeout in seconds

REQUEST_URI

URI for requests

SORT

Array of available sort-by

TIME_OFFSET

Time offset of API server

VERSION

Gem version

Public Class Methods

donates(api_key, **options) click to toggle source

POST request for donates action @param api_key [String] @!macro request_option @see Vkdonate.request @return [Array]

# File lib/vkdonate.rb, line 73
def donates(api_key, **options)
  request(api_key, :donates, **options)
end
request(api_key, action, count: 10, offset: 0, sort: :date, order: :desc) click to toggle source

Simple POST request to API @param api_key [String] @param action [Symbol] @!macro request_option @see Vkdonate::ACTIONS @return [Array]

# File lib/vkdonate.rb, line 55
def request(api_key, action, count: 10, offset: 0, sort: :date, order: :desc)
  validate_request_options(action, count, offset, sort, order)

  res = Net::HTTP.post_form(REQUEST_URI, key: api_key, action: action.to_s, count: count,
                                         offset: offset, sort: sort.to_s, order: order.to_s)

  json = JSON.parse res.body

  raise json['text'] unless json['success']

  json['donates'].map { |e| Donate.from_json(e) }
end

Private Class Methods

validate_request_options(action, count, offset, sort, order) click to toggle source
# File lib/vkdonate.rb, line 79
def validate_request_options(action, count, offset, sort, order)
  raise 'Unknown action' unless ACTIONS.include? action
  raise 'Count is out of range' unless count >= 1 && count <= 50
  raise 'Offset is out of range' unless offset >= 0
  raise 'Unknown sorting' unless SORT.include? sort
  raise 'Unknown ordering' unless ORDER.include? order
end