app/commands/decidim/initiatives/spawn_committee_request.rb in decidim-initiatives-0.16.1 vs app/commands/decidim/initiatives/spawn_committee_request.rb in decidim-initiatives-0.17.0

- old
+ new

@@ -5,24 +5,25 @@ # A command with all the business logic that creates a new membership # request for the committee of an initiative. class SpawnCommitteeRequest < Rectify::Command # Public: Initializes the command. # - # initiative - Decidim::Initiative + # form - Decidim::Initiative::CommitteeMemberForm # current_user - Decidim::User - def initialize(initiative, current_user) - @initiative = initiative + def initialize(form, current_user) + @form = form @current_user = current_user end # Executes the command. Broadcasts these events: # # - :ok when everything is valid. # - :invalid if the form wasn't valid and we couldn't proceed. # # Returns nothing. def call + return broadcast(:invalid) if form.invalid? request = create_request if request.persisted? broadcast(:ok, request) else @@ -30,16 +31,16 @@ end end private - attr_reader :initiative, :current_user + attr_reader :form, :current_user def create_request request = InitiativesCommitteeMember.new( - decidim_initiatives_id: initiative&.id, - decidim_users_id: current_user&.id, - state: "requested" + decidim_initiatives_id: form.initiative_id, + decidim_users_id: form.user_id, + state: form.state ) return request unless request.valid? request.save request