Sha256: 596165f39242f87a16cda993e7618d319f89062610f64f5089e2af203e05e552
Contents?: true
Size: 1.12 KB
Versions: 53
Compression:
Stored size: 1.12 KB
Contents
# frozen_string_literal: true module Decidim module Meetings # This command is executed when the user declines an invite to the meeting. class DeclineInvitation < Rectify::Command # Initializes a DeclineInvitation Command. # # meeting - The current instance of the meeting where user has been invited. # user - The user that declines their invitation def initialize(meeting, user) @meeting = meeting @user = user end # Creates a meeting registration if the meeting 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 :meeting, :user def decline_invitation invitation.decline! end def can_decline_invitation? meeting.registrations_enabled? && invitation.present? end def invitation @invitation ||= meeting.invites.find_by(user: user) end end end end
Version data entries
53 entries across 53 versions & 1 rubygems