refac: chat tags

This commit is contained in:
Timothy J. Baek 2024-05-03 15:25:41 -07:00
parent e8085f80a7
commit facb6edfdc
2 changed files with 19 additions and 7 deletions
backend/apps/web/routers
src/lib/apis/chats

View File

@ -321,19 +321,28 @@ async def get_all_tags(user=Depends(get_current_user)):
############################ ############################
@router.get("/tags/tag/{tag_name}", response_model=List[ChatTitleIdResponse]) class TagNameForm(BaseModel):
name: str
@router.post("/tags", response_model=List[ChatTitleIdResponse])
async def get_user_chat_list_by_tag_name( async def get_user_chat_list_by_tag_name(
tag_name: str, user=Depends(get_current_user), skip: int = 0, limit: int = 50 form_data: TagNameForm,
user=Depends(get_current_user),
skip: int = 0,
limit: int = 50,
): ):
chat_ids = [ chat_ids = [
chat_id_tag.chat_id chat_id_tag.chat_id
for chat_id_tag in Tags.get_chat_ids_by_tag_name_and_user_id(tag_name, user.id) for chat_id_tag in Tags.get_chat_ids_by_tag_name_and_user_id(
form_data.name, user.id
)
] ]
chats = Chats.get_chat_list_by_chat_ids(chat_ids, skip, limit) chats = Chats.get_chat_list_by_chat_ids(chat_ids, skip, limit)
if len(chats) == 0: if len(chats) == 0:
Tags.delete_tag_by_tag_name_and_user_id(tag_name, user.id) Tags.delete_tag_by_tag_name_and_user_id(form_data.name, user.id)
return chats return chats

View File

@ -220,13 +220,16 @@ export const getAllChatTags = async (token: string) => {
export const getChatListByTagName = async (token: string = '', tagName: string) => { export const getChatListByTagName = async (token: string = '', tagName: string) => {
let error = null; let error = null;
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/tags/tag/${tagName}`, { const res = await fetch(`${WEBUI_API_BASE_URL}/chats/tags`, {
method: 'GET', method: 'POST',
headers: { headers: {
Accept: 'application/json', Accept: 'application/json',
'Content-Type': 'application/json', 'Content-Type': 'application/json',
...(token && { authorization: `Bearer ${token}` }) ...(token && { authorization: `Bearer ${token}` })
} },
body: JSON.stringify({
name: tagName
})
}) })
.then(async (res) => { .then(async (res) => {
if (!res.ok) throw await res.json(); if (!res.ok) throw await res.json();