feat: update shared chat

This commit is contained in:
Timothy J. Baek 2024-04-02 07:42:37 -07:00
parent 0b823f90e6
commit 9975cb17a9
3 changed files with 23 additions and 10 deletions

View file

@ -98,7 +98,7 @@ class ChatTable:
except: except:
return None return None
def insert_shared_chat(self, chat_id: str) -> Optional[ChatModel]: def insert_shared_chat_by_chat_id(self, chat_id: str) -> Optional[ChatModel]:
# Get the existing chat to share # Get the existing chat to share
chat = Chat.get(Chat.id == chat_id) chat = Chat.get(Chat.id == chat_id)
# Check if the chat is already shared # Check if the chat is already shared
@ -122,6 +122,24 @@ class ChatTable:
return shared_chat if (shared_result and result) else None return shared_chat if (shared_result and result) else None
def update_shared_chat_by_chat_id(self, chat_id: str) -> Optional[ChatModel]:
try:
print("update_shared_chat_by_id")
chat = Chat.get(Chat.id == chat_id)
print(chat)
query = Chat.update(
title=chat.title,
chat=chat.chat,
).where(Chat.id == chat.share_id)
query.execute()
chat = Chat.get(Chat.id == chat.share_id)
return ChatModel(**model_to_dict(chat))
except:
return None
def delete_shared_chat_by_chat_id(self, chat_id: str) -> bool: def delete_shared_chat_by_chat_id(self, chat_id: str) -> bool:
try: try:
query = Chat.delete().where(Chat.user_id == f"shared-{chat_id}") query = Chat.delete().where(Chat.user_id == f"shared-{chat_id}")

View file

@ -199,12 +199,12 @@ async def share_chat_by_id(id: str, user=Depends(get_current_user)):
chat = Chats.get_chat_by_id_and_user_id(id, user.id) chat = Chats.get_chat_by_id_and_user_id(id, user.id)
if chat: if chat:
if chat.share_id: if chat.share_id:
shared_chat = Chats.get_chat_by_id_and_user_id(chat.share_id, "shared") shared_chat = Chats.update_shared_chat_by_chat_id(chat.id)
return ChatResponse( return ChatResponse(
**{**shared_chat.model_dump(), "chat": json.loads(shared_chat.chat)} **{**shared_chat.model_dump(), "chat": json.loads(shared_chat.chat)}
) )
shared_chat = Chats.insert_shared_chat(chat.id) shared_chat = Chats.insert_shared_chat_by_chat_id(chat.id)
if not shared_chat: if not shared_chat:
raise HTTPException( raise HTTPException(
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,

View file

@ -18,13 +18,8 @@
const shareLocalChat = async () => { const shareLocalChat = async () => {
const _chat = chat; const _chat = chat;
let chatShareUrl = ''; const sharedChat = await shareChatById(localStorage.token, $chatId);
if (_chat.share_id) { const chatShareUrl = `${window.location.origin}/s/${sharedChat.id}`;
chatShareUrl = `${window.location.origin}/s/${_chat.share_id}`;
} else {
const sharedChat = await shareChatById(localStorage.token, $chatId);
chatShareUrl = `${window.location.origin}/s/${sharedChat.id}`;
}
toast.success($i18n.t('Copied shared conversation URL to clipboard!')); toast.success($i18n.t('Copied shared conversation URL to clipboard!'));
copyToClipboard(chatShareUrl); copyToClipboard(chatShareUrl);