Class: Plaid::PersonalFinanceCategory

Inherits:
BaseModel
  • Object
show all
Defined in:
lib/plaid/models/personal_finance_category.rb

Overview

Information describing the intent of the transaction. Most relevant for personal finance use cases, but not limited to such use cases. The field is currently in beta. The complete category can be generated by concatenating primary and detailed categories. This feature is currently in beta – to request access, contact transactions-feedback@plaid.com.

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from BaseModel

#check_for_conflict, #process_additional_properties, #process_array, #process_basic_value, #process_hash, #to_hash, #to_json

Constructor Details

#initialize(primary:, detailed:, additional_properties: nil) ⇒ PersonalFinanceCategory

Returns a new instance of PersonalFinanceCategory.



43
44
45
46
47
48
49
50
# File 'lib/plaid/models/personal_finance_category.rb', line 43

def initialize(primary:, detailed:, additional_properties: nil)
  # Add additional model properties to the instance
  additional_properties = {} if additional_properties.nil?

  @primary = primary
  @detailed = detailed
  @additional_properties = additional_properties
end

Instance Attribute Details

#detailedString

Provides additional granularity to the primary categorization.

Returns:

  • (String)


23
24
25
# File 'lib/plaid/models/personal_finance_category.rb', line 23

def detailed
  @detailed
end

#primaryString

A high level category that communicates the broad category of the transaction.

Returns:

  • (String)


19
20
21
# File 'lib/plaid/models/personal_finance_category.rb', line 19

def primary
  @primary
end

Class Method Details

.from_hash(hash) ⇒ Object

Creates an instance of the object from a hash.



53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/plaid/models/personal_finance_category.rb', line 53

def self.from_hash(hash)
  return nil unless hash

  # Extract variables from the hash.
  primary = hash.key?('primary') ? hash['primary'] : nil
  detailed = hash.key?('detailed') ? hash['detailed'] : nil

  # Create a new hash for additional properties, removing known properties.
  new_hash = hash.reject { |k, _| names.value?(k) }

  additional_properties = APIHelper.get_additional_properties(
    new_hash, proc { |value| value }
  )

  # Create object from extracted values.
  PersonalFinanceCategory.new(primary: primary,
                              detailed: detailed,
                              additional_properties: additional_properties)
end

.namesObject

A mapping from model property names to API property names.



26
27
28
29
30
31
# File 'lib/plaid/models/personal_finance_category.rb', line 26

def self.names
  @_hash = {} if @_hash.nil?
  @_hash['primary'] = 'primary'
  @_hash['detailed'] = 'detailed'
  @_hash
end

.nullablesObject

An array for nullable fields



39
40
41
# File 'lib/plaid/models/personal_finance_category.rb', line 39

def self.nullables
  []
end

.optionalsObject

An array for optional fields



34
35
36
# File 'lib/plaid/models/personal_finance_category.rb', line 34

def self.optionals
  []
end

Instance Method Details

#inspectObject

Provides a debugging-friendly string with detailed object information.



81
82
83
84
85
# File 'lib/plaid/models/personal_finance_category.rb', line 81

def inspect
  class_name = self.class.name.split('::').last
  "<#{class_name} primary: #{@primary.inspect}, detailed: #{@detailed.inspect},"\
  " additional_properties: #{@additional_properties}>"
end

#to_sObject

Provides a human-readable string representation of the object.



74
75
76
77
78
# File 'lib/plaid/models/personal_finance_category.rb', line 74

def to_s
  class_name = self.class.name.split('::').last
  "<#{class_name} primary: #{@primary}, detailed: #{@detailed}, additional_properties:"\
  " #{@additional_properties}>"
end