Class: ClaimsBaseController

Inherits:
ApplicationController show all
Defined in:
app/controllers/claims_base_controller.rb

Constant Summary

Constants inherited from ApplicationController

ApplicationController::VERSION_STATUS

Constants included from SignIn::Authentication

SignIn::Authentication::BEARER_PATTERN

Constants included from ExceptionHandling

ExceptionHandling::SKIP_SENTRY_EXCEPTION_TYPES

Instance Attribute Summary

Attributes inherited from ApplicationController

#current_user

Instance Method Summary collapse

Methods inherited from ApplicationController

#clear_saved_form, #cors_preflight, #pagination_params, #render_job_id, #routing_error, #set_csrf_header

Methods included from Traceable

#set_trace_tags

Methods included from SentryControllerLogging

#set_tags_and_extra_context, #tags_context, #user_context

Methods included from SentryLogging

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

Methods included from Instrumentation

#append_info_to_payload

Methods included from SignIn::Authentication

#access_token, #access_token_authenticate, #authenticate, #authenticate_access_token, #bearer_token, #cookie_access_token, #handle_authenticate_error, #load_user, #load_user_object, #scrub_bearer_token, #validate_request_ip

Methods included from Headers

#set_app_info_headers

Methods included from ExceptionHandling

#render_errors, #report_mapped_exception, #report_original_exception, #skip_sentry_exception?, #skip_sentry_exception_types

Methods included from AuthenticationAndSSOConcerns

#authenticate, #clear_session, #extend_session!, #load_user, #log_sso_info, #render_unauthorized, #reset_session, #set_api_cookie!, #set_current_user, #set_session_expiration_header, #set_session_object, #sign_in_service_exp_time, #sign_in_service_session, #sso_cookie_content, #sso_logging_info, #validate_inbound_login_params, #validate_session

Methods included from SignIn::AudienceValidator

#authenticate, #validate_audience!

Instance Method Details

#createObject

Creates and validates an instance of the class, removing any copies of the form that had been previously saved by the user.



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'app/controllers/claims_base_controller.rb', line 22

def create
  PensionBurial::TagSentry.tag_sentry

  claim = claim_class.new(form: filtered_params[:form])
  user_uuid = current_user&.uuid
  Rails.logger.info "Begin ClaimGUID=#{claim.guid} Form=#{claim.class::FORM} UserID=#{user_uuid}"
  unless claim.save
    StatsD.increment("#{stats_key}.failure")
    raise Common::Exceptions::ValidationErrors, claim
  end

  claim.process_attachments!

  StatsD.increment("#{stats_key}.success")
  Rails.logger.info "Submitted job ClaimID=#{claim.confirmation_number} Form=#{claim.class::FORM} UserID=#{user_uuid}"

  clear_saved_form(claim.form_id)
  render json: SavedClaimSerializer.new(claim)
end

#filtered_paramsObject (private)



49
50
51
# File 'app/controllers/claims_base_controller.rb', line 49

def filtered_params
  params.require(short_name.to_sym).permit(:form)
end

#showObject



42
43
44
45
# File 'app/controllers/claims_base_controller.rb', line 42

def show
  submission = CentralMailSubmission.joins(:central_mail_claim).find_by(saved_claims: { guid: params[:id] })
  render json: CentralMailSubmissionSerializer.new(submission)
end

#stats_keyObject (private)



53
54
55
# File 'app/controllers/claims_base_controller.rb', line 53

def stats_key
  "api.#{short_name}"
end