class Decidim::Meetings::Admin::InviteUserToJoinMeeting
A command with all the business logic to invite users to join a meeting.
def call
- :invalid if the form wasn't valid and we couldn't proceed.
- :ok when everything is valid.
Executes the command. Broadcasts these events:
def call return broadcast(:invalid) if form.invalid? invite_user broadcast(:ok) end
def initialize(form, meeting, invited_by)
meeting - The meeting which the user is invited to.
form - A form object with the params.
Public: Initializes the command.
def initialize(form, meeting, invited_by) @form = form @meeting = meeting @invited_by = invited_by end
def invite_user
def invite_user if user.persisted? InviteJoinMeetingMailer.invite(user, meeting, invited_by).deliver_later else user.name = form.name user.skip_reconfirmation! user.invite!(invited_by, invitation_instructions: "join_meeting", meeting: meeting) end end
def user
def user @user ||= Decidim::User.find_or_create_by( organization: form.current_organization, email: form.email.downcase ) end