Class: EvssRatedDisabilitiesProvider

Inherits:
Object
  • Object
show all
Includes:
RatedDisabilitiesProvider
Defined in:
lib/disability_compensation/providers/rated_disabilities/evss_rated_disabilities_provider.rb

Instance Method Summary collapse

Methods included from RatedDisabilitiesProvider

get_rated_disabilities

Constructor Details

#initialize(auth_headers) ⇒ EvssRatedDisabilitiesProvider

Returns a new instance of EvssRatedDisabilitiesProvider.



9
10
11
# File 'lib/disability_compensation/providers/rated_disabilities/evss_rated_disabilities_provider.rb', line 9

def initialize(auth_headers)
  @service = EVSS::DisabilityCompensationForm::Service.new(auth_headers)
end

Instance Method Details

#get_rated_disabilities(_client_id = nil, _rsa_key_path = nil) ⇒ Object

Parameters:

  • _client_id: (string)

    (unused) the lighthouse_client_id requested from Lighthouse

  • _rsa_key_path: (string)

    (unused) path to the private RSA key used to create the lighthouse_client_id



15
16
17
18
# File 'lib/disability_compensation/providers/rated_disabilities/evss_rated_disabilities_provider.rb', line 15

def get_rated_disabilities(_client_id = nil, _rsa_key_path = nil)
  data = @service.get_rated_disabilities
  transform(data)
end

#transform(data) ⇒ Object



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
# File 'lib/disability_compensation/providers/rated_disabilities/evss_rated_disabilities_provider.rb', line 20

def transform(data)
  rated_disabilities =
    data[:rated_disabilities].map do |rated_disability|
      DisabilityCompensation::ApiProvider::RatedDisability.new(
        name: rated_disability['name'],
        decision_code: rated_disability['decision_code'],
        decision_text: rated_disability['decision_text'],
        diagnostic_code: rated_disability['diagnostic_code'],
        effective_date: rated_disability['effective_date'],
        rated_disability_id: rated_disability['rated_disability_id'],
        rating_decision_id: rated_disability['rating_decision_id'],
        rating_percentage: rated_disability['rating_percentage'],
        related_disability_date: rated_disability['related_disability_date'],
        special_issues: rated_disability['special_issues'].map do |special_issue|
          DisabilityCompensation::ApiProvider::SpecialIssue.new(
            code: special_issue['code'], name: special_issue['name']
          )
        end
      )
    end

  DisabilityCompensation::ApiProvider::RatedDisabilitiesResponse.new(rated_disabilities:)
end