diff --git a/plugins/chat/app/controllers/chat/chat_controller.rb b/plugins/chat/app/controllers/chat/chat_controller.rb index 7abef33f466..ceebd897ca8 100644 --- a/plugins/chat/app/controllers/chat/chat_controller.rb +++ b/plugins/chat/app/controllers/chat/chat_controller.rb @@ -2,22 +2,13 @@ module Chat class ChatController < ::Chat::BaseController - PAST_MESSAGE_LIMIT = 40 - FUTURE_MESSAGE_LIMIT = 40 - PAST = "past" - FUTURE = "future" - CHAT_DIRECTIONS = [PAST, FUTURE] - # Other endpoints use set_channel_and_chatable_with_access_check, but # these endpoints require a standalone find because they need to be # able to get deleted channels and recover them. - before_action :find_chatable, only: %i[enable_chat disable_chat] before_action :find_chat_message, only: %i[rebake message_link] before_action :set_channel_and_chatable_with_access_check, except: %i[ respond - enable_chat - disable_chat message_link set_user_chat_status dismiss_retention_reminder @@ -28,55 +19,6 @@ module Chat render end - def enable_chat - chat_channel = Chat::Channel.with_deleted.find_by(chatable_id: @chatable) - - guardian.ensure_can_join_chat_channel!(chat_channel) if chat_channel - - if chat_channel && chat_channel.trashed? - chat_channel.recover! - elsif chat_channel - return render_json_error I18n.t("chat.already_enabled") - else - chat_channel = @chatable.chat_channel - guardian.ensure_can_join_chat_channel!(chat_channel) - end - - success = chat_channel.save - if success && chat_channel.chatable_has_custom_fields? - @chatable.custom_fields[Chat::HAS_CHAT_ENABLED] = true - @chatable.save! - end - - if success - membership = Chat::ChannelMembershipManager.new(channel).follow(user) - render_serialized(chat_channel, Chat::ChannelSerializer, membership: membership) - else - render_json_error(chat_channel) - end - - Chat::ChannelMembershipManager.new(channel).follow(user) - end - - def disable_chat - chat_channel = Chat::Channel.with_deleted.find_by(chatable_id: @chatable) - guardian.ensure_can_join_chat_channel!(chat_channel) - return render json: success_json if chat_channel.trashed? - chat_channel.trash!(current_user) - - success = chat_channel.save - if success - if chat_channel.chatable_has_custom_fields? - @chatable.custom_fields.delete(Chat::HAS_CHAT_ENABLED) - @chatable.save! - end - - render json: success_json - else - render_json_error(chat_channel) - end - end - def react params.require(%i[message_id emoji react_action]) guardian.ensure_can_react! @@ -209,11 +151,6 @@ module Chat query end - def find_chatable - @chatable = Category.find_by(id: params[:chatable_id]) - guardian.ensure_can_moderate_chat!(@chatable) - end - def find_chat_message @message = preloaded_chat_message_query.with_deleted @message = @message.where(chat_channel_id: params[:chat_channel_id]) if params[ diff --git a/plugins/chat/config/routes.rb b/plugins/chat/config/routes.rb index d8c9cfaf1fe..a6d4f69ea24 100644 --- a/plugins/chat/config/routes.rb +++ b/plugins/chat/config/routes.rb @@ -71,8 +71,6 @@ Chat::Engine.routes.draw do get "/browse/closed" => "chat#respond" get "/browse/open" => "chat#respond" get "/browse/archived" => "chat#respond" - post "/enable" => "chat#enable_chat" - post "/disable" => "chat#disable_chat" post "/dismiss-retention-reminder" => "chat#dismiss_retention_reminder" get "/message/:message_id" => "chat#message_link" put ":chat_channel_id/react/:message_id" => "chat#react" diff --git a/plugins/chat/spec/requests/chat_controller_spec.rb b/plugins/chat/spec/requests/chat_controller_spec.rb index 2246c1b83b1..d2a029cacdb 100644 --- a/plugins/chat/spec/requests/chat_controller_spec.rb +++ b/plugins/chat/spec/requests/chat_controller_spec.rb @@ -32,43 +32,6 @@ RSpec.describe Chat::ChatController do Chat::ReviewQueue.new.flag_message(message, Guardian.new(flagger), flag_type)[:reviewable] end - describe "#enable_chat" do - context "with category as chatable" do - let!(:category) { Fabricate(:category) } - let(:channel) { Fabricate(:category_channel, chatable: category) } - - it "ensures created channel can be seen" do - Guardian.any_instance.expects(:can_join_chat_channel?).with(channel) - - sign_in(admin) - post "/chat/enable.json", params: { chatable_type: "Category", chatable_id: category.id } - end - - # TODO: rewrite specs to ensure no exception is raised - it "ensures existing channel can be seen" do - Guardian.any_instance.expects(:can_join_chat_channel?) - - sign_in(admin) - post "/chat/enable.json", params: { chatable_type: "Category", chatable_id: category.id } - end - end - end - - describe "#disable_chat" do - context "with category as chatable" do - it "ensures category can be seen" do - category = Fabricate(:category) - channel = Fabricate(:category_channel, chatable: category) - message = Fabricate(:chat_message, chat_channel: channel) - - Guardian.any_instance.expects(:can_join_chat_channel?).with(channel) - - sign_in(admin) - post "/chat/disable.json", params: { chatable_type: "Category", chatable_id: category.id } - end - end - end - describe "#rebake" do fab!(:chat_message) { Fabricate(:chat_message, chat_channel: chat_channel, user: user) }