Class: Doconomy::Api::Calculation

Inherits:
Base
  • Object
show all
Defined in:
lib/doconomy/api/calculation.rb

Instance Attribute Summary collapse

Attributes inherited from Base

#attributes

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

client, #errors

Constructor Details

#initialize(attributes = {}) ⇒ Calculation

Returns a new instance of Calculation.



8
9
10
11
12
13
# File 'lib/doconomy/api/calculation.rb', line 8

def initialize(attributes = {})
  @attributes = attributes.deep_symbolize_keys
  @transactions = @attributes[:transactions].map do |attrs|
    attrs.is_a?(Hash) ? Transaction.new(attrs) : attrs
  end if @attributes[:transactions]
end

Instance Attribute Details

#transactionsObject

Returns the value of attribute transactions.



6
7
8
# File 'lib/doconomy/api/calculation.rb', line 6

def transactions
  @transactions
end

Class Method Details

.create(payload = {}) ⇒ Array<Doconomy::Api::Calculation>

Create the calculations

Parameters:

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

    a customizable set of options

  • headers (Hash)

    a customizable set of options

Options Hash (payload):

  • ({}) (Hash)

    Payload

Returns:



23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/doconomy/api/calculation.rb', line 23

def create(payload = {})
  payload.deep_symbolize_keys!
  response = client.post("/aland-index/#{Doconomy::Api.configuration.api_version}/calculations", payload.to_json)

  transactions_attributes = {}
  payload[:cardTransactions].each do |item|
    transactions_attributes[item[:reference]] = item.symbolize_keys
  end
  response[:transaction_footprints].each do |item|
    transactions_attributes[item[:reference]] ||= {}
    transactions_attributes[item[:reference]].merge!(item.symbolize_keys)
  end

  new(transactions: transactions_attributes.values, errors: response[:errors])
end