Class: Payrex::Services::BaseService

Inherits:
Object
  • Object
show all
Defined in:
lib/services/base_service.rb

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ BaseService

Returns a new instance of BaseService.



4
5
6
# File 'lib/services/base_service.rb', line 4

def initialize(client)
  @client = client
end

Instance Method Details

#request(method:, object:, path:, is_list: false, payload: {}) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/services/base_service.rb', line 8

def request(method:, object:, path:, is_list: false, payload: {})
  http_client = Payrex::HttpClient.new(api_key: @client.config.api_key, base_url: @client.config.api_base_url)

  api_resource = http_client.request(
    method: method,
    params: payload,
    path: path
  )

  if is_list
    data = api_resource.data["data"].map { |data| object.new(Payrex::ApiResource.new(data)) }

    Payrex::Entities::Listing.new(data: data, has_more: api_resource.data["has_more"])
  else
    object.new(api_resource)
  end
end