class QiwiObserver::Transfer

Constants

API_PATH

Public Class Methods

new() click to toggle source
# 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

Public Instance Methods

to_wallet(args={}) click to toggle source
# 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

Private Instance Methods

body(args) click to toggle source
# File lib/qiwi_observer/transfer/transfer.rb, line 34
def body(args)
  {
    "id" => "11111111111111",
    "sum" => {
      "amount" => args[:amount],
      "currency" => "643"
    },
    "paymentMethod" => {
      "type" => "Account",
      "accountId" => "643"
    },
    "comment" => "test",
    "fields" => {
      "account" => args[:account]
    }
  }
end