module Erratum::VerifiableResource

Public Class Methods

included(base) click to toggle source
# File lib/erratum/verifiable_resource.rb, line 7
def self.included(base)
  base.include ::AppleCore::ActionController::ResourceNaming

  base.before_action except: %i{index create} do
    model = if respond_to?(:authorized_resource, true)
              authorized_resource.processed
            else
              public_send(self.class.singular_underscored_base_resource_name)
            end

    resource_not_found_error = Erratum.build(
      'ResourceNotFound',
      resource_name: self.class.singular_underscored_base_resource_name,
      resource_id:   [params[:id]],
      action:        action_name,
    )

    fail resource_not_found_error unless model.persisted?
  end
end