Class: Payloop::Attribution

Inherits:
Object
  • Object
show all
Defined in:
lib/payloop/attribution.rb

Overview

Attribution tracks cost hierarchy for API calls

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(parent_id:, parent_name: nil, subsidiary_id: nil, subsidiary_name: nil) ⇒ Attribution

Returns a new instance of Attribution.



8
9
10
11
12
13
14
15
# File 'lib/payloop/attribution.rb', line 8

def initialize(parent_id:, parent_name: nil, subsidiary_id: nil, subsidiary_name: nil)
  @parent_id = validate_parent_id!(parent_id)
  @parent_name = validate_string_length!(parent_name, "parent_name") if parent_name
  @subsidiary_id = validate_string_length!(subsidiary_id, "subsidiary_id") if subsidiary_id
  @subsidiary_name = validate_string_length!(subsidiary_name, "subsidiary_name") if subsidiary_name

  validate_subsidiary_requirements!
end

Instance Attribute Details

#parent_idObject (readonly)

Returns the value of attribute parent_id.



6
7
8
# File 'lib/payloop/attribution.rb', line 6

def parent_id
  @parent_id
end

#parent_nameObject (readonly)

Returns the value of attribute parent_name.



6
7
8
# File 'lib/payloop/attribution.rb', line 6

def parent_name
  @parent_name
end

#subsidiary_idObject (readonly)

Returns the value of attribute subsidiary_id.



6
7
8
# File 'lib/payloop/attribution.rb', line 6

def subsidiary_id
  @subsidiary_id
end

#subsidiary_nameObject (readonly)

Returns the value of attribute subsidiary_name.



6
7
8
# File 'lib/payloop/attribution.rb', line 6

def subsidiary_name
  @subsidiary_name
end

Instance Method Details

#to_hObject



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/payloop/attribution.rb', line 17

def to_h
  result = {
    parent: {
      id: parent_id
    }
  }

  result[:parent][:name] = parent_name if parent_name

  if subsidiary_id
    result[:subsidiary] = { id: subsidiary_id }
    result[:subsidiary][:name] = subsidiary_name if subsidiary_name
  end

  result
end