Sha256: e3e58559ca3b9e0a3c5b42326990aa9c0ffe6e122b041a92b5534ea22f5332fd

Contents?: true

Size: 1.8 KB

Versions: 26

Compression:

Stored size: 1.8 KB

Contents

# include MuckUsers::Models::MuckAccessCodeRequest
module MuckUsers
  module Models
    module MuckAccessCodeRequest
      extend ActiveSupport::Concern
    
      included do
        validates_presence_of :email
        
        scope :unfullfilled, where('access_code_requests.code_sent_at IS NULL')
        scope :fullfilled, where('access_code_requests.code_sent_at IS NOT NULL')
        scope :by_newest, order("created_at DESC")
        scope :by_oldest, order("created_at ASC")
        
        after_create :send_access_code_request_confirm
      end

      module ClassMethods
        
        def get_requests(limit = nil)
          if limit && limit.to_i > 0
            self.by_oldest.unfullfilled.all(:limit => limit)
          else
            self.by_oldest.unfullfilled
          end
        end
        
        def mark_fullfilled(access_code_requests)
          access_code_requests.each do |r|
            r.update_attribute(:code_sent_at, DateTime.now)
          end
        end
        
      end

      def send_access_code_request_confirm
        if MuckUsers.configuration.send_access_code_request_confirm
          UserMailer.access_code_request_confirm(self.email).deliver
        end
      end
      
      def send_access_code(subject, message, expires_at)
        access_code = AccessCode.create!(:unlimited => false,
                                         :use_limit => 1,
                                         :uses => 0,
                                         :code => AccessCode.random_code,
                                         :expires_at => expires_at,
                                         :sent_to => self.email)
        UserMailer.access_code(self.email, subject, message, access_code.code).deliver
        success = AccessCodeRequest.mark_fullfilled([self])
      end
      
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
muck-users-3.2.25 lib/muck-users/models/access_code_request.rb
muck-users-3.2.24 lib/muck-users/models/access_code_request.rb
muck-users-3.2.23 lib/muck-users/models/access_code_request.rb
muck-users-3.2.22 lib/muck-users/models/access_code_request.rb
muck-users-3.2.21 lib/muck-users/models/access_code_request.rb
muck-users-3.2.20 lib/muck-users/models/access_code_request.rb
muck-users-3.2.19 lib/muck-users/models/access_code_request.rb
muck-users-3.2.18 lib/muck-users/models/access_code_request.rb
muck-users-3.2.17 lib/muck-users/models/access_code_request.rb
muck-users-3.2.16 lib/muck-users/models/access_code_request.rb
muck-users-3.2.15 lib/muck-users/models/access_code_request.rb
muck-users-3.2.14 lib/muck-users/models/access_code_request.rb
muck-users-3.2.13 lib/muck-users/models/access_code_request.rb
muck-users-3.2.12 lib/muck-users/models/access_code_request.rb
muck-users-3.2.11 lib/muck-users/models/access_code_request.rb
muck-users-3.2.10 lib/muck-users/models/access_code_request.rb
muck-users-3.2.9 lib/muck-users/models/access_code_request.rb
muck-users-3.2.8 lib/muck-users/models/access_code_request.rb
muck-users-3.2.7 lib/muck-users/models/access_code_request.rb
muck-users-3.2.6 lib/muck-users/models/access_code_request.rb