Class: EVSSClaimBaseSerializer

Inherits:
ActiveModel::Serializer
  • Object
show all
Defined in:
app/serializers/evss_claim_base_serializer.rb

Constant Summary collapse

PHASE_MAPPING =
{
  'claim received' => 1,
  'under review' => 2,
  'gathering of evidence' => 3,
  'review of evidence' => 4,
  'preparation for decision' => 5,
  'pending decision approval' => 6,
  'preparation for notification' => 7,
  'complete' => 8
}.freeze

Instance Method Summary collapse

Instance Method Details

#claim_typeObject



85
86
87
# File 'app/serializers/evss_claim_base_serializer.rb', line 85

def claim_type
  object_data['status_type']
end

#current_phase_backObject



68
69
70
# File 'app/serializers/evss_claim_base_serializer.rb', line 68

def current_phase_back
  object_data.dig 'claim_phase_dates', 'current_phase_back'
end

#ever_phase_backObject



64
65
66
# File 'app/serializers/evss_claim_base_serializer.rb', line 64

def ever_phase_back
  object_data.dig 'claim_phase_dates', 'ever_phase_back'
end

#idObject

Our IDs are not stable due to 24 hour expiration, use EVSS IDs for consistency This can be removed if our IDs become stable



45
46
47
# File 'app/serializers/evss_claim_base_serializer.rb', line 45

def id
  object.evss_id
end

#object_dataObject (protected)

object_data mediates whether a class uses object.data or object.list_data as the basis of serialization.

Raises:

  • (NotImplementedError)


114
115
116
# File 'app/serializers/evss_claim_base_serializer.rb', line 114

def object_data
  raise NotImplementedError, 'Subclass of EVSSClaimBaseSerializer must implement object_data method'
end

#openObject



72
73
74
# File 'app/serializers/evss_claim_base_serializer.rb', line 72

def open
  object_data['claim_complete_date'].blank?
end

#phaseObject

Raises:

  • (NotImplementedError)


89
90
91
# File 'app/serializers/evss_claim_base_serializer.rb', line 89

def phase
  raise NotImplementedError, 'Subclass of EVSSClaimBaseSerializer must implement phase method'
end

#phase_from_keysObject (protected)



106
107
108
109
110
# File 'app/serializers/evss_claim_base_serializer.rb', line 106

def phase_from_keys(*)
  s = object_data.dig(*)&.downcase
  PHASE_MAPPING[s]
  # Rails.logger.error "Expected EVSS #{keys} to be a phase. Got '#{s}'." unless phase
end

#requested_decisionObject



76
77
78
# File 'app/serializers/evss_claim_base_serializer.rb', line 76

def requested_decision
  object.requested_decision || object_data['waiver5103_submitted']
end

#updated_at_nil?Boolean

Hide updated_at if we’re bypassing the database like the services endpoint

Returns:

  • (Boolean)


60
61
62
# File 'app/serializers/evss_claim_base_serializer.rb', line 60

def updated_at_nil?
  object.updated_at.nil?
end

#waiver_submittedObject

TODO: (CMJ) Remove once front end is integrated



81
82
83
# File 'app/serializers/evss_claim_base_serializer.rb', line 81

def 
  requested_decision
end