Sha256: cb2c658adfb34cb63d7c302ed7a24569c865812fb93eff6ee9d4841afc653580

Contents?: true

Size: 731 Bytes

Versions: 2

Compression:

Stored size: 731 Bytes

Contents

# frozen_string_literal: true

module ActiveRecordValidation
  class Error
    attr_reader :record

    def initialize(record)
      @record = record
    end

    def serialize(full_message: true)
      return unless record

      full_messages = record.errors.to_hash full_message
      record.errors.details.map do |field, details|
        detail = details.first
        message = full_messages[field].first
        convert_to_serializer field, detail, message
      end.flatten
    end

    def convert_to_serializer(field, detail, message)
      ValidationErrorSerializer.new(record, field, detail, message).serialize
    end

    def to_hash
      {
        success: false,
        errors: serialize
      }
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
n_base_rails-0.1.2 lib/lib/active_record_validation/error.rb
n_base_rails-0.1.1 lib/lib/active_record_validation/error.rb