Class: QiwiObserver::Transfer

Inherits:
Object
  • Object
show all
Defined in:
lib/qiwi_observer/transfer/transfer.rb

Constant Summary collapse

API_PATH =
'https://edge.qiwi.com/sinap/api/v2/terms/99/payments'

Instance Method Summary collapse

Constructor Details

#initializeTransfer

Returns a new instance of Transfer.

Raises:

  • (ArgumentError)


4
5
6
7
8
# File 'lib/qiwi_observer/transfer/transfer.rb', line 4

def initialize
  @wallet = QiwiObserver.config.wallet
  @token = QiwiObserver.config.token
  raise ArgumentError, 'Wallet and token must be configure' if @wallet.nil? && @token.nil?
end

Instance Method Details

#to_wallet(args = {}) ⇒ Object

Raises:

  • (ArgumentError)


10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/qiwi_observer/transfer/transfer.rb', line 10

def to_wallet(args={})
  raise ArgumentError, 'Params must be set' unless !args.empty?
  uri = URI(API_PATH)

  request = Net::HTTP::Post.new(uri)
  request.initialize_http_header(
    {
      'Accept' => 'application/json',
      'Content-Type' => 'application/json',
      'Authorization' => "Bearer #{@token}"
    })
  request.body = body(args).to_json

  http = Net::HTTP.new(uri.host, uri.port)
  http.use_ssl = true
  http.verify_mode = OpenSSL::SSL::VERIFY_NONE

  response = http.request(request)
  JSON.parse(response.body, symbolize_names: true)
end