class Revolut::Connection

A class responsible for connecting to Revolut API and making requests.

Attributes

client[R]

Public Class Methods

new(client) click to toggle source
# File lib/revolut/connection.rb, line 15
def initialize(client)
  @client = client
end

Public Instance Methods

delete(path, options = {}) click to toggle source
# File lib/revolut/connection.rb, line 27
def delete(path, options = {})
  request(:delete, path, options).body
end
get(path, options = {}) click to toggle source
# File lib/revolut/connection.rb, line 19
def get(path, options = {})
  request(:get, path, options).body
end
post(path, options = {}) click to toggle source
# File lib/revolut/connection.rb, line 23
def post(path, options = {})
  request(:post, path, {}, options).body
end

Private Instance Methods

add_request_headers!(request) click to toggle source
# File lib/revolut/connection.rb, line 42
def add_request_headers!(request)
  request.headers['Content-Type'] = 'application/json'
  request.headers['Accept'] = 'application/json'

  return unless client.config.api_key

  request.headers['Authorization'] = "Bearer #{client.config.api_key}"
end
connection() click to toggle source
# File lib/revolut/connection.rb, line 51
def connection
  Faraday.new(connection_options) do |builder|
    builder.request :json

    builder.response :mashify, mash_class: Revolut::Mash
    builder.use Revolut::Middleware::RaiseError
    builder.response :json

    builder.adapter Faraday.default_adapter
  end
end
connection_options() click to toggle source
# File lib/revolut/connection.rb, line 63
def connection_options
  {
    headers: { user_agent: client.config.user_agent },
    url: client.config.url
  }
end
request(method, path, query_params = {}, body_params = {}) click to toggle source
# File lib/revolut/connection.rb, line 33
def request(method, path, query_params = {}, body_params = {})
  connection.send(method) do |request|
    request.url(path, query_params)
    add_request_headers!(request)

    request.body = body_params.to_json if Revolut::Utils.present?(body_params)
  end
end