This commit is contained in:
Timothy Jaeryang Baek
2026-02-21 15:35:34 -06:00
parent c114fd6876
commit 631e30e22d
26 changed files with 177 additions and 164 deletions
+11 -29
View File
@@ -984,9 +984,7 @@ class ChatTable:
try:
with get_db_context(db) as db:
return db.query(
exists().where(
and_(Chat.id == id, Chat.user_id == user_id)
)
exists().where(and_(Chat.id == id, Chat.user_id == user_id))
).scalar()
except Exception:
return False
@@ -1001,9 +999,7 @@ class ChatTable:
try:
with get_db_context(db) as db:
result = (
db.query(Chat.folder_id)
.filter_by(id=id, user_id=user_id)
.first()
db.query(Chat.folder_id).filter_by(id=id, user_id=user_id).first()
)
return result[0] if result else None
except Exception:
@@ -1074,9 +1070,7 @@ class ChatTable:
db.query(Chat)
.filter_by(user_id=user_id, pinned=True, archived=False)
.order_by(Chat.updated_at.desc())
.with_entities(
Chat.id, Chat.title, Chat.updated_at, Chat.created_at
)
.with_entities(Chat.id, Chat.title, Chat.updated_at, Chat.created_at)
)
return [
ChatTitleIdResponse.model_validate(
@@ -1214,29 +1208,23 @@ class ChatTable:
# Check if there are any tags to filter, it should have all the tags
if "none" in tag_ids:
query = query.filter(
text(
"""
query = query.filter(text("""
NOT EXISTS (
SELECT 1
FROM json_each(Chat.meta, '$.tags') AS tag
)
"""
)
)
"""))
elif tag_ids:
query = query.filter(
and_(
*[
text(
f"""
text(f"""
EXISTS (
SELECT 1
FROM json_each(Chat.meta, '$.tags') AS tag
WHERE tag.value = :tag_id_{tag_idx}
)
"""
).params(**{f"tag_id_{tag_idx}": tag_id})
""").params(**{f"tag_id_{tag_idx}": tag_id})
for tag_idx, tag_id in enumerate(tag_ids)
]
)
@@ -1272,29 +1260,23 @@ class ChatTable:
# Check if there are any tags to filter, it should have all the tags
if "none" in tag_ids:
query = query.filter(
text(
"""
query = query.filter(text("""
NOT EXISTS (
SELECT 1
FROM json_array_elements_text(Chat.meta->'tags') AS tag
)
"""
)
)
"""))
elif tag_ids:
query = query.filter(
and_(
*[
text(
f"""
text(f"""
EXISTS (
SELECT 1
FROM json_array_elements_text(Chat.meta->'tags') AS tag
WHERE tag = :tag_id_{tag_idx}
)
"""
).params(**{f"tag_id_{tag_idx}": tag_id})
""").params(**{f"tag_id_{tag_idx}": tag_id})
for tag_idx, tag_id in enumerate(tag_ids)
]
)