Sha256: 3b02aa2576b34072ea60223fb90b0d10446ea785a0fcd3ef83baf65543fd3350
Contents?: true
Size: 1.29 KB
Versions: 14
Compression:
Stored size: 1.29 KB
Contents
# frozen_string_literal: true module Decidim module Plans # A command with all the business logic to accept a user request to # contribute to a plan. class AcceptAccessToPlan < RespondToAccessRequest # Executes the command. Broadcasts these events: # # - :ok when everything is valid. # - :invalid if it wasn't valid and we couldn't proceed. # # Returns nothing. def call return broadcast(:invalid) if @form.invalid? return broadcast(:invalid) if @current_user.nil? transaction do @plan.requesters.delete @requester_user Decidim::Coauthorship.create( coauthorable: @plan, author: @requester_user ) end notify_plan_requester notify_plan_authors broadcast(:ok, @requester_user) end def recipients @plan.authors - [@requester_user] end def authors_event "decidim.events.plans.plan_access_accepted" end def authors_event_class Decidim::Plans::PlanAccessAcceptedEvent end def requester_event "decidim.events.plans.plan_access_requester_accepted" end def requester_event_class Decidim::Plans::PlanAccessRequesterAcceptedEvent end end end end
Version data entries
14 entries across 14 versions & 1 rubygems