Class: Malipopay::Resources::Transactions

Inherits:
Object
  • Object
show all
Defined in:
lib/malipopay/resources/transactions.rb

Instance Method Summary collapse

Constructor Details

#initialize(http_client) ⇒ Transactions

Returns a new instance of Transactions.



6
7
8
# File 'lib/malipopay/resources/transactions.rb', line 6

def initialize(http_client)
  @http = http_client
end

Instance Method Details

#get(id) ⇒ Hash

Get a transaction by ID

Parameters:

  • id (String)

    Transaction ID

Returns:

  • (Hash)

    Transaction details



20
21
22
# File 'lib/malipopay/resources/transactions.rb', line 20

def get(id)
  @http.get("/api/v1/transactions/#{id}")
end

#list(params = {}) ⇒ Hash

List all transactions

Parameters:

  • params (Hash) (defaults to: {})

    Query parameters (page, limit, type, status, etc.)

Returns:

  • (Hash)

    Paginated list of transactions



13
14
15
# File 'lib/malipopay/resources/transactions.rb', line 13

def list(params = {})
  @http.get("/api/v1/transactions", params: params)
end

#paginate(params = {}) {|Hash| ... } ⇒ Enumerator

Paginate through transactions

Parameters:

  • params (Hash) (defaults to: {})

    Pagination parameters (page, limit)

Yields:

  • (Hash)

    Each page of transactions

Returns:

  • (Enumerator)

    If no block given



35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/malipopay/resources/transactions.rb', line 35

def paginate(params = {})
  return enum_for(:paginate, params) unless block_given?

  page = params.fetch(:page, 1)
  loop do
    result = list(params.merge(page: page))
    yield result

    records = result["data"] || result["records"] || []
    break if records.empty?

    page += 1
  end
end

#search(params = {}) ⇒ Hash

Search transactions

Parameters:

  • params (Hash) (defaults to: {})

    Search parameters (query, dateFrom, dateTo, etc.)

Returns:

  • (Hash)

    Search results



27
28
29
# File 'lib/malipopay/resources/transactions.rb', line 27

def search(params = {})
  @http.get("/api/v1/transactions/search", params: params)
end

#tariffs(params = {}) ⇒ Hash

Get tariff information

Parameters:

  • params (Hash) (defaults to: {})

    Query parameters

Returns:

  • (Hash)

    Tariff details



53
54
55
# File 'lib/malipopay/resources/transactions.rb', line 53

def tariffs(params = {})
  @http.get("/api/v1/transactions", params: params.merge(type: "tariff"))
end