Class: Form1010cg::Auditor
- Inherits:
-
Object
- Object
- Form1010cg::Auditor
- Defined in:
- app/services/form1010cg/auditor.rb
Constant Summary collapse
- STATSD_KEY_PREFIX =
'api.form1010cg'
- LOGGER_PREFIX =
'Form 10-10CG'
- LOGGER_FILTER_KEYS =
[:veteran_name].freeze
- METRICS =
lambda do submission_prefix = "#{STATSD_KEY_PREFIX}.submission" OpenStruct.new( submission: OpenStruct.new( attempt: "#{submission_prefix}.attempt", caregivers: OpenStruct.new( primary_no_secondary: "#{submission_prefix}.caregivers.primary_no_secondary", primary_one_secondary: "#{submission_prefix}.caregivers.primary_one_secondary", primary_two_secondary: "#{submission_prefix}.caregivers.primary_two_secondary", no_primary_one_secondary: "#{submission_prefix}.caregivers.no_primary_one_secondary", no_primary_two_secondary: "#{submission_prefix}.caregivers.no_primary_two_secondary" ), failure: OpenStruct.new( client: OpenStruct.new( data: "#{submission_prefix}.failure.client.data", qualification: "#{submission_prefix}.failure.client.qualification" ), attachments: "#{submission_prefix}.failure.attachments" ) ), pdf_download: "#{STATSD_KEY_PREFIX}.pdf_download" ) end.call
Instance Attribute Summary collapse
-
#logger ⇒ Object
readonly
Returns the value of attribute logger.
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(logger = Rails.logger) ⇒ Auditor
constructor
A new instance of Auditor.
- #log_mpi_search_result(claim_guid:, form_subject:, result:) ⇒ Object
- #record(event, **context) ⇒ Object
- #record_attachments_delivered(claim_guid:, carma_case_id:, attachments:) ⇒ Object
-
#record_caregivers(claim) ⇒ Object
rubocop:disable Metrics/MethodLength.
- #record_pdf_download ⇒ Object
- #record_submission_attempt ⇒ Object
-
#record_submission_failure_client_data(errors:, claim_guid: nil) ⇒ Object
rubocop:enable Metrics/MethodLength.
- #record_submission_failure_client_qualification(claim_guid:) ⇒ Object
Constructor Details
#initialize(logger = Rails.logger) ⇒ Auditor
Returns a new instance of Auditor.
40 41 42 |
# File 'app/services/form1010cg/auditor.rb', line 40 def initialize(logger = Rails.logger) @logger = logger end |
Instance Attribute Details
#logger ⇒ Object (readonly)
Returns the value of attribute logger.
5 6 7 |
# File 'app/services/form1010cg/auditor.rb', line 5 def logger @logger end |
Class Method Details
.metrics ⇒ Object
36 37 38 |
# File 'app/services/form1010cg/auditor.rb', line 36 def self.metrics METRICS end |
Instance Method Details
#log_mpi_search_result(claim_guid:, form_subject:, result:) ⇒ Object
103 104 105 106 107 |
# File 'app/services/form1010cg/auditor.rb', line 103 def log_mpi_search_result(claim_guid:, form_subject:, result:) labels = { found: 'found', not_found: 'NOT FOUND', skipped: 'search was skipped' } result_label = labels[result] log("MPI Profile #{result_label} for #{form_subject.titleize}", { claim_guid: }) end |
#record(event, **context) ⇒ Object
44 45 46 47 |
# File 'app/services/form1010cg/auditor.rb', line 44 def record(event, **context) = "record_#{event}" context.any? ? send(, **context) : send() end |
#record_attachments_delivered(claim_guid:, carma_case_id:, attachments:) ⇒ Object
94 95 96 97 98 99 100 101 |
# File 'app/services/form1010cg/auditor.rb', line 94 def (claim_guid:, carma_case_id:, attachments:) log( 'Attachments Delivered', claim_guid:, carma_case_id:, attachments: ) end |
#record_caregivers(claim) ⇒ Object
rubocop:disable Metrics/MethodLength
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 |
# File 'app/services/form1010cg/auditor.rb', line 54 def record_caregivers(claim) secondaries_count = 0 %w[one two].each do |attr| secondaries_count += 1 if claim.public_send("secondary_caregiver_#{attr}_data").present? end if claim.primary_caregiver_data.present? case secondaries_count when 0 increment(self.class.metrics.submission.caregivers.primary_no_secondary) when 1 increment(self.class.metrics.submission.caregivers.primary_one_secondary) when 2 increment(self.class.metrics.submission.caregivers.primary_two_secondary) end else case secondaries_count when 1 increment(self.class.metrics.submission.caregivers.no_primary_one_secondary) when 2 increment(self.class.metrics.submission.caregivers.no_primary_two_secondary) end end end |
#record_pdf_download ⇒ Object
90 91 92 |
# File 'app/services/form1010cg/auditor.rb', line 90 def record_pdf_download increment self.class.metrics.pdf_download end |
#record_submission_attempt ⇒ Object
49 50 51 |
# File 'app/services/form1010cg/auditor.rb', line 49 def record_submission_attempt increment self.class.metrics.submission.attempt end |
#record_submission_failure_client_data(errors:, claim_guid: nil) ⇒ Object
rubocop:enable Metrics/MethodLength
80 81 82 83 |
# File 'app/services/form1010cg/auditor.rb', line 80 def record_submission_failure_client_data(errors:, claim_guid: nil) increment self.class.metrics.submission.failure.client.data log 'Submission Failed: invalid data provided by client', claim_guid:, errors: end |
#record_submission_failure_client_qualification(claim_guid:) ⇒ Object
85 86 87 88 |
# File 'app/services/form1010cg/auditor.rb', line 85 def record_submission_failure_client_qualification(claim_guid:) increment self.class.metrics.submission.failure.client.qualification log 'Submission Failed: qualifications not met', claim_guid: end |