class Cuprum::Rails::Commands::ValidateOne

Command for validating an ActiveRecord record.

Private Instance Methods

map_errors(native_errors:) click to toggle source
# File lib/cuprum/rails/commands/validate_one.rb, line 35
def map_errors(native_errors:)
  Cuprum::Rails::MapErrors.instance.call(native_errors: native_errors)
end
match_default(entity:) click to toggle source
# File lib/cuprum/rails/commands/validate_one.rb, line 39
def match_default(entity:)
  return true if entity.valid?

  errors = map_errors(native_errors: entity.errors)

  [false, errors]
end
process(entity:, contract: nil) click to toggle source
# File lib/cuprum/rails/commands/validate_one.rb, line 47
def process(entity:, contract: nil)
  step { validate_entity(entity) }

  step { validate_record(contract: contract, entity: entity) }

  entity
end
validate_record(contract:, entity:) click to toggle source
# File lib/cuprum/rails/commands/validate_one.rb, line 55
def validate_record(contract:, entity:)
  valid, errors =
    contract ? contract.match(entity) : match_default(entity: entity)

  return if valid

  error = Cuprum::Collections::Errors::FailedValidation.new(
    entity_class: entity.class,
    errors:       errors
  )
  failure(error)
end