Class: FirmResult

Inherits:
Object
  • Object
show all
Defined in:
lib/mas/firm_result.rb

Constant Summary collapse

LESS_THAN_FIFTY_K_ID =
1
DIRECTLY_MAPPED_FIELDS =
[
  :address_line_one,
  :address_line_two,
  :address_town,
  :address_county,
  :address_postcode,
  :website_address,
  :email_address,
  :free_initial_meeting,
  :minimum_fixed_fee,
  :other_advice_methods,
  :in_person_advice_methods,
  :investment_sizes,
  :adviser_accreditation_ids,
  :adviser_qualification_ids
]
TYPES_OF_ADVICE_FIELDS =
[
  :retirement_income_products,
  :pension_transfer,
  :options_when_paying_for_care,
  :equity_release,
  :inheritance_tax_planning,
  :wills_and_probate
]

Instance Method Summary collapse

Constructor Details

#initialize(data) ⇒ FirmResult

Returns a new instance of FirmResult.



38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/mas/firm_result.rb', line 38

def initialize(data)
  source = data['_source']
  @id    = source['_id']
  @name  = source['registered_name']
  @total_advisers   = source['advisers'].count
  @closest_adviser  = data['sort'].first
  @telephone_number = source['telephone_number']

  (DIRECTLY_MAPPED_FIELDS + TYPES_OF_ADVICE_FIELDS).each do |field|
    instance_variable_set("@#{field}", source[field.to_s])
  end
end

Instance Method Details

#closest_adviserObject



67
68
69
70
71
72
73
# File 'lib/mas/firm_result.rb', line 67

def closest_adviser
  if @closest_adviser < 1
    I18n.t('search.result.miles_away_alt')
  else
    "#{format('%.1f', @closest_adviser)} #{I18n.t('search.result.miles_away')}"
  end
end

#minimum_fixed_fee?Boolean

Returns:

  • (Boolean)


55
56
57
# File 'lib/mas/firm_result.rb', line 55

def minimum_fixed_fee?
  minimum_fixed_fee && minimum_fixed_fee.nonzero?
end

#minimum_pot_size?Boolean

Returns:

  • (Boolean)


63
64
65
# File 'lib/mas/firm_result.rb', line 63

def minimum_pot_size?
  minimum_pot_size_id > LESS_THAN_FIFTY_K_ID
end

#minimum_pot_size_idObject



59
60
61
# File 'lib/mas/firm_result.rb', line 59

def minimum_pot_size_id
  investment_sizes.first
end

#telephone_numberObject



75
76
77
78
79
# File 'lib/mas/firm_result.rb', line 75

def telephone_number
  return nil unless @telephone_number

  UKPhoneNumbers.format(@telephone_number)
end

#types_of_adviceObject



51
52
53
# File 'lib/mas/firm_result.rb', line 51

def types_of_advice
  TYPES_OF_ADVICE_FIELDS.select { |field| public_send(field).nonzero? }
end