Sha256: 0c6151fd9df7c8b8a645b76a635161430d42676981dd8d10ddc46cf99437135c
Contents?: true
Size: 1.16 KB
Versions: 12
Compression:
Stored size: 1.16 KB
Contents
# frozen_string_literal: true module Decidim module Conferences # This command is executed when the user declines an invite to the conference. class DeclineInvitation < Decidim::Command # Initializes a DeclineInvitation Command. # # conference - The current instance of the conference where user has been invited. # user - The user that declines their invitation def initialize(conference, user) @conference = conference @user = user end # Creates a conference registration if the conference has registrations enabled # and there are available slots. # # Broadcasts :ok if successful, :invalid otherwise. def call return broadcast(:invalid) unless can_decline_invitation? decline_invitation broadcast(:ok) end private attr_reader :conference, :user def decline_invitation invitation.decline! end def can_decline_invitation? conference.registrations_enabled? && invitation.present? end def invitation @invitation ||= conference.conference_invites.find_by(user: user) end end end end
Version data entries
12 entries across 12 versions & 1 rubygems