Sha256: e219cb5183ad2dd2bf890b69b8e3e8c918712b87f7d560f02bbcfb8bad697c89

Contents?: true

Size: 1.54 KB

Versions: 13

Compression:

Stored size: 1.54 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")
      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(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

13 entries across 13 versions & 1 rubygems

Version Path
muck-users-3.1.27 lib/muck-users/models/access_code_request.rb
muck-users-3.1.26 lib/muck-users/models/access_code_request.rb
muck-users-3.1.25 lib/muck-users/models/access_code_request.rb
muck-users-3.1.24 lib/muck-users/models/access_code_request.rb
muck-users-3.1.23 lib/muck-users/models/access_code_request.rb
muck-users-3.1.22 lib/muck-users/models/access_code_request.rb
muck-users-3.1.21 lib/muck-users/models/access_code_request.rb
muck-users-3.1.19 lib/muck-users/models/access_code_request.rb
muck-users-3.1.18 lib/muck-users/models/access_code_request.rb
muck-users-3.1.17 lib/muck-users/models/access_code_request.rb
muck-users-3.1.16 lib/muck-users/models/access_code_request.rb
muck-users-3.1.15 lib/muck-users/models/access_code_request.rb
muck-users-3.1.14 lib/muck-users/models/access_code_request.rb