Class: VirtualRegionalOffice::Client

Inherits:
Common::Client::Base show all
Includes:
Common::Client::Concerns::Monitoring
Defined in:
lib/virtual_regional_office/client.rb

Instance Method Summary collapse

Methods included from Common::Client::Concerns::Monitoring

#with_monitoring

Methods inherited from Common::Client::Base

configuration, #raise_backend_exception

Methods included from SentryLogging

#log_exception_to_sentry, #log_message_to_sentry, #non_nil_hash?, #normalize_level, #rails_logger

Instance Method Details

#classify_single_contention(params) ⇒ Object



10
11
12
# File 'lib/virtual_regional_office/client.rb', line 10

def classify_single_contention(params)
  perform(:post, Settings.virtual_regional_office.ctn_classification_path, params.to_json.to_s, headers_hash)
end

#download_summary(claim_submission_id:) ⇒ Object



35
36
37
38
# File 'lib/virtual_regional_office/client.rb', line 35

def download_summary(claim_submission_id:)
  path = "#{Settings.virtual_regional_office.evidence_pdf_path}/#{claim_submission_id}"
  perform(:get, path, {}, headers_hash.merge(Accept: 'application/pdf'))
end

#generate_summary(claim_submission_id:, diagnostic_code:, veteran_info:, evidence:) ⇒ Object



24
25
26
27
28
29
30
31
32
33
# File 'lib/virtual_regional_office/client.rb', line 24

def generate_summary(claim_submission_id:, diagnostic_code:, veteran_info:, evidence:)
  params = {
    claimSubmissionId: claim_submission_id,
    diagnosticCode: diagnostic_code,
    veteranInfo: veteran_info,
    evidence:
  }

  perform(:post, Settings.virtual_regional_office.evidence_pdf_path, params.to_json.to_s, headers_hash)
end

#get_max_rating_for_diagnostic_codes(diagnostic_codes_array) ⇒ Object



14
15
16
17
# File 'lib/virtual_regional_office/client.rb', line 14

def get_max_rating_for_diagnostic_codes(diagnostic_codes_array)
  params = { diagnostic_codes: diagnostic_codes_array }
  perform(:post, Settings.virtual_regional_office.max_cfi_path, params.to_json.to_s, headers_hash)
end

#merge_end_products(pending_claim_id:, ep400_id:) ⇒ Object



19
20
21
22
# File 'lib/virtual_regional_office/client.rb', line 19

def merge_end_products(pending_claim_id:, ep400_id:)
  params = { pending_claim_id: pending_claim_id.to_i, ep400_claim_id: ep400_id.to_i }
  perform(:post, Settings.virtual_regional_office.ep_merge_path, params.to_json.to_s, headers_hash)
end

#perform(method, path, params, headers = nil, options = nil) ⇒ Object

Tiny middleware to replace the configuration option ‘faraday.response :json` with behavior that only decodes JSON for application/json responses. This allows us to handle non-JSON responses (e.g. application/pdf) without loss of convenience.



43
44
45
46
47
# File 'lib/virtual_regional_office/client.rb', line 43

def perform(method, path, params, headers = nil, options = nil)
  result = super
  result.body = JSON.parse(result.body) if result.response_headers['content-type'] == 'application/json'
  result
end