Table name: invites
id :integer not null, primary key registered :boolean default(FALSE) inviter_id :integer invitee_id :integer created_at :datetime updated_at :datetime invitee_email :string(255) tutoring_session_reward :boolean default(FALSE) invite_token :string(255) accepted_at :datetime university_id :integer
Constant to set default message.
Attribute accessor.
To send invite email for event to the members in group.
# File app/models/invite.rb, line 52 def self.invite_users(emails, schedule) emails.each do |email| invite = self.find_or_create_by(inviter_id: User.current.id, invitee_email: email) invite_resource = invite.invite_resources.find_or_initialize_by(invite_id: invite.id, resource_id: schedule.id, resource_type: schedule.type) UserMailer.delay(queue: :mailer).invitation_email_schedule(invite, User.current, DEAFULT_MESSAGE, invite_resource) if invite_resource.save end end
Update table with time when user accept the invitation.
# File app/models/invite.rb, line 66 def accept! update_columns(accepted_at: Time.now) unless accepted? end
Returns true if user accepted the inivtation
# File app/models/invite.rb, line 71 def accepted? accepted_at? end
To generate random unique token.
# File app/models/invite.rb, line 61 def add_token self.invite_token = SecureRandom.uuid end
Assign inviter
# File app/models/invite.rb, line 42 def assign_inviter self.inviter = User.current end
Send invitation email
# File app/models/invite.rb, line 47 def send_invitation_email UserMailer.delay(queue: :mailer).invitation_email(self, User.current, DEAFULT_MESSAGE) end
To set the invitee and registered attributes of Invite.
# File app/models/invite.rb, line 76 def update_registered user self.invitee = user self.registered = true self.save end