Class: Lato::Invitation
- Inherits:
-
ApplicationRecord
- Object
- ActiveRecord::Base
- ApplicationRecord
- Lato::Invitation
- Defined in:
- app/models/lato/invitation.rb
Instance Attribute Summary collapse
-
#actions ⇒ Object
Returns the value of attribute actions.
Instance Method Summary collapse
-
#accepted? ⇒ Boolean
Helpers.
-
#c_email_invite_semaphore(value = nil) ⇒ Object
Cache.
-
#send_invite ⇒ Object
Operations.
Instance Attribute Details
#actions ⇒ Object
Returns the value of attribute actions.
3 4 5 |
# File 'app/models/lato/invitation.rb', line 3 def actions @actions end |
Instance Method Details
#accepted? ⇒ Boolean
Helpers
49 50 51 |
# File 'app/models/lato/invitation.rb', line 49 def accepted? !!accepted_at end |
#c_email_invite_semaphore(value = nil) ⇒ Object
Cache
82 83 84 85 86 87 88 |
# File 'app/models/lato/invitation.rb', line 82 def c_email_invite_semaphore(value = nil) cache_key = "Lato::Invitation/c_email_invite_semaphore/#{id}" return Rails.cache.read(cache_key) if value.nil? Rails.cache.write(cache_key, value, expires_in: 2.minutes) value end |
#send_invite ⇒ Object
Operations
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'app/models/lato/invitation.rb', line 56 def send_invite if accepted? errors.add(:base, :already_accepted) return false end if c_email_invite_semaphore errors.add(:base, :email_sending_limit) return false end delivery = Lato::InvitationMailer.invite_mail(id).deliver_now unless delivery errors.add(:base, :email_sending_error) return false end c_email_invite_semaphore(true) true end |