Files
once-campfire/app/controllers/rooms/involvements_controller.rb
2025-12-03 09:56:15 -05:00

27 lines
761 B
Ruby

class Rooms::InvolvementsController < ApplicationController
include RoomScoped
def show
@involvement = @membership.involvement
end
def update
@membership.update! involvement: params[:involvement]
broadcast_visibility_changes
redirect_to room_involvement_url(@room)
end
private
def broadcast_visibility_changes
case
when @room.direct?
# Do nothing
when @membership.involved_in_invisible?
broadcast_remove_to @membership.user, :rooms, target: [ @room, :list ]
when @membership.involvement_previously_was.inquiry.invisible?
broadcast_prepend_to @membership.user, :rooms, target: :shared_rooms, partial: "users/sidebars/rooms/shared", locals: { room: @room }
end
end
end