class Decidim::Meetings::Admin::ValidateRegistrationCode

This command is executed when the admin validates a registration code in the admin panel.

def call

Broadcasts :ok if successful, :invalid otherwise.

Validates the registration code the meeting if valid.
def call
  return broadcast(:invalid) if form.invalid?
  validate_registration_code
  send_notification
  broadcast(:ok)
end

def initialize(form, meeting)

meeting - The current instance of the meeting to be updated.
form - The form from which to get the data.

Initializes a ValidateRegistrationCode Command.
def initialize(form, meeting)
  @form = form
  @meeting = meeting
end

def send_notification

def send_notification
  return unless meeting.component.settings.registration_code_enabled
  Decidim::EventsManager.publish(
    event: "decidim.events.meetings.registration_code_validated",
    event_class: Decidim::Meetings::RegistrationCodeValidatedEvent,
    resource: meeting,
    affected_users: [form.registration.user],
    extra: {
      registration: form.registration
    }
  )
end

def validate_registration_code

def validate_registration_code
  form.registration.update!(validated_at: Time.current)
end