Sha256: c0e088fda0b9b977a500709ef8a89c8c1629b2b3d1507e57932f73276de2478f

Contents?: true

Size: 868 Bytes

Versions: 4

Compression:

Stored size: 868 Bytes

Contents

class Backend::EmailTemplateForm < Udongo::Form
  attr_reader :email_template

  attribute :identifier, String
  attribute :description, String
  attribute :from_name, String
  attribute :from_email, String

  validates :identifier, :description, :from_name, :from_email, presence: true
  validates :from_email, email: true
  validate :unique_identifier

  delegate :id, to: :email_template

  def self.model_name
    EmailTemplate.model_name
  end

  def persisted?
    !@email_template.new_record?
  end

  private

  def unique_identifier
    qry = EmailTemplate.unscoped
    qry = qry.where.not(identifier: @email_template.identifier) if persisted?

    if qry.exists?(identifier: identifier)
      errors.add :identifier, I18n.t('errors.messages.taken')
    end
  end

  def save_object
    init_object_values(@email_template)
    @email_template.save!
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
udongo-2.0.4 app/forms/backend/email_template_form.rb
udongo-2.0.3 app/forms/backend/email_template_form.rb
udongo-2.0.2 app/forms/backend/email_template_form.rb
udongo-2.0.1 app/forms/backend/email_template_form.rb