class Yoti::AmlProfile

Manages the AML check Profile object

Public Class Methods

new(given_names, family_name, aml_address, ssn = nil) click to toggle source

@param [String] given_names @param [String] family_name @param [AmlAddress] aml_address @param [String] ssn

# File lib/yoti/http/payloads/aml_profile.rb, line 10
def initialize(given_names, family_name, aml_address, ssn = nil)
  @given_names = given_names
  @family_name = family_name
  @ssn = ssn
  @address = aml_address

  raise AmlError, 'The AML request requires given names, family name and an ISO 3166 3-letter code.' if profile_invalid
  raise AmlError, 'Request for USA require a valid SSN and postcode.' if usa_invalid
end

Public Instance Methods

payload() click to toggle source

@return [Hash] the AML check request body

# File lib/yoti/http/payloads/aml_profile.rb, line 21
def payload
  {
    given_names: @given_names,
    family_name: @family_name,
    ssn: @ssn,
    address: {
      country: @address.country,
      post_code: @address.post_code
    }
  }
end

Private Instance Methods

address_invalid() click to toggle source
# File lib/yoti/http/payloads/aml_profile.rb, line 39
def address_invalid
  !@address.is_a?(AmlAddress) || @address.country.to_s.length != 3
end
profile_invalid() click to toggle source
# File lib/yoti/http/payloads/aml_profile.rb, line 35
def profile_invalid
  @given_names.to_s.empty? || @family_name.to_s.empty? || address_invalid
end
usa_invalid() click to toggle source
# File lib/yoti/http/payloads/aml_profile.rb, line 43
def usa_invalid
  @address.country == 'USA' && (@ssn.to_s.empty? || @address.post_code.to_s.empty?)
end