Sha256: d97855f3ba2348add3d38962c0e313a5de512dea6d91fcf2ca330e44d3664614

Contents?: true

Size: 973 Bytes

Versions: 57

Compression:

Stored size: 973 Bytes

Contents

module Cmor
  module UserArea
    class UserPasswordResetRequest
      include ActiveModel::Model
      extend ActiveModel::Callbacks
      include ActiveModel::Validations::Callbacks

      attr_accessor :user, :email, :host

      def self.call(attributes)
        new(attributes).save
      end

      def self.i18n_scope
        :activerecord
      end

      validates :email, :host, presence: true
      validates :user, presence: true

      before_validation :load_user
      after_validation :delete_error_on_user, if: ->() { errors.has_key?(:email) }

      def save
        return unless valid?
        self.user.reset_perishable_token
        self.user.save
        Cmor::UserArea::UserMailer.password_reset_email(self.user, host).deliver_later
      end

      private

      def load_user
        self.user = Cmor::UserArea::User.where(email: self.email).first
      end

      def delete_error_on_user
        errors.delete(:user)
      end
    end
  end
end

Version data entries

57 entries across 57 versions & 1 rubygems

Version Path
cmor_user_area-0.0.60.pre app/models/cmor/user_area/user_password_reset_request.rb
cmor_user_area-0.0.59.pre app/models/cmor/user_area/user_password_reset_request.rb
cmor_user_area-0.0.58.pre app/models/cmor/user_area/user_password_reset_request.rb
cmor_user_area-0.0.57.pre app/models/cmor/user_area/user_password_reset_request.rb
cmor_user_area-0.0.56.pre app/models/cmor/user_area/user_password_reset_request.rb
cmor_user_area-0.0.55.pre app/models/cmor/user_area/user_password_reset_request.rb
cmor_user_area-0.0.54.pre app/models/cmor/user_area/user_password_reset_request.rb
cmor_user_area-0.0.53.pre app/models/cmor/user_area/user_password_reset_request.rb
cmor_user_area-0.0.52.pre app/models/cmor/user_area/user_password_reset_request.rb
cmor_user_area-0.0.51.pre app/models/cmor/user_area/user_password_reset_request.rb
cmor_user_area-0.0.50.pre app/models/cmor/user_area/user_password_reset_request.rb
cmor_user_area-0.0.49.pre app/models/cmor/user_area/user_password_reset_request.rb
cmor_user_area-0.0.48.pre app/models/cmor/user_area/user_password_reset_request.rb
cmor_user_area-0.0.45.pre app/models/cmor/user_area/user_password_reset_request.rb
cmor_user_area-0.0.44.pre app/models/cmor/user_area/user_password_reset_request.rb
cmor_user_area-0.0.43.pre app/models/cmor/user_area/user_password_reset_request.rb
cmor_user_area-0.0.42.pre app/models/cmor/user_area/user_password_reset_request.rb
cmor_user_area-0.0.41.pre app/models/cmor/user_area/user_password_reset_request.rb
cmor_user_area-0.0.40.pre app/models/cmor/user_area/user_password_reset_request.rb
cmor_user_area-0.0.39.pre app/models/cmor/user_area/user_password_reset_request.rb