FIX: Don't fail when exporting chat messages from deleted channels (#23131)

This commit is contained in:
Andrei Prigorshnev
2023-08-18 14:22:24 +04:00
committed by GitHub
parent a2f5b1b101
commit 052462a8f8
2 changed files with 89 additions and 64 deletions

View File

@ -37,31 +37,33 @@ module Chat
private
def export(from, to)
Chat::Message
.unscoped
.where(created_at: from..to)
.includes(:chat_channel)
.includes(:user)
.includes(:last_editor)
.find_each do |chat_message|
yield(
[
chat_message.id,
chat_message.chat_channel.id,
chat_message.chat_channel.name,
chat_message.user.id,
chat_message.user.username,
chat_message.message,
chat_message.cooked,
chat_message.created_at,
chat_message.updated_at,
chat_message.deleted_at,
chat_message.in_reply_to&.id,
chat_message.last_editor&.id,
chat_message.last_editor&.username,
]
)
end
Chat::Channel.unscoped do
Chat::Message
.unscoped
.where(created_at: from..to)
.includes(:chat_channel)
.includes(:user)
.includes(:last_editor)
.find_each do |chat_message|
yield(
[
chat_message.id,
chat_message.chat_channel.id,
chat_message.chat_channel.name,
chat_message.user.id,
chat_message.user.username,
chat_message.message,
chat_message.cooked,
chat_message.created_at,
chat_message.updated_at,
chat_message.deleted_at,
chat_message.in_reply_to&.id,
chat_message.last_editor&.id,
chat_message.last_editor&.username,
]
)
end
end
end
end
end