Part 4: Update GroupsController to enqueue background job
Update GroupsController#transfer to enqueue background job Modify `app/controllers/groups_controller.rb` to enqueue async worker when feature flag enabled. **Implementation Details:** **Something like:** ```ruby def transfer parent_group = Group.find_by(id: params[:new_parent_group_id]) if Feature.enabled?(:groups_and_projects_async_transfer, @group) @group.transfer_target_parent_id = parent_group&.id @group.save! if @group.start_transfer Groups::TransferWorker.perform_async( @group.id, parent_group&.id, current_user.id ) flash[:notice] = "Group transfer has been queued. You'll be notified when it completes." redirect_to group_path(@group) else flash[:alert] = "Unable to initiate transfer: #{@group.errors.full_messages.to_sentence}" redirect_to edit_group_path(@group) end else # Existing synchronous transfer logic service = ::Groups::TransferService.new(@group, current_user) if service.execute(parent_group) flash[:notice] = "Group '#{@group.name}' was successfully transferred." redirect_to group_path(@group) else flash[:alert] = service.error.html_safe redirect_to edit_group_path(@group) end end end ``` **Add/update specs in `spec/controllers/groups_controller_spec.rb`:** - Async transfer enqueues worker (feature flag on) - State transitions to transfer_in_progress - Metadata stored - Sync transfer works (feature flag off) - Permission checks enforced - State transition failures handled **Acceptance Criteria:** - [ ] Feature flag check works - [ ] Async path enqueues worker - [ ] Sync path unchanged - [ ] Metadata stored before state transition - [ ] Specs pass
issue