Sha256: 9e7240c55323245a25df6d5179c05184c26e2fc3c2093734a58e3f79223933ae
Contents?: true
Size: 1.12 KB
Versions: 23
Compression:
Stored size: 1.12 KB
Contents
# frozen_string_literal: true module Decidim module Initiatives # A command with all the business logic that creates a new initiative. class ApproveMembershipRequest < Decidim::Command # Public: Initializes the command. # # membership_request - A pending committee member def initialize(membership_request) @membership_request = membership_request end # Executes the command. Broadcasts these events: # # - :ok when everything is valid. # # Returns nothing. def call @membership_request.accepted! notify_applicant broadcast(:ok, @membership_request) end private def notify_applicant Decidim::EventsManager.publish( event: "decidim.events.initiatives.approve_membership_request", event_class: Decidim::Initiatives::ApproveMembershipRequestEvent, resource: @membership_request.initiative, affected_users: [@membership_request.user], force_send: true, extra: { author: @membership_request.initiative.author } ) end end end end
Version data entries
23 entries across 23 versions & 1 rubygems