mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-05-17 18:35:19 +02:00
feat(backend): add has_comments field to thread API
This commit is contained in:
parent
9d11446553
commit
ba57c39556
2 changed files with 16 additions and 2 deletions
|
|
@ -19,13 +19,14 @@ from datetime import UTC, datetime
|
|||
|
||||
from fastapi import APIRouter, Depends, File, HTTPException, Request, UploadFile
|
||||
from fastapi.responses import StreamingResponse
|
||||
from sqlalchemy import or_
|
||||
from sqlalchemy import func, or_
|
||||
from sqlalchemy.exc import IntegrityError, OperationalError
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
from sqlalchemy.future import select
|
||||
from sqlalchemy.orm import selectinload
|
||||
|
||||
from app.db import (
|
||||
ChatComment,
|
||||
ChatVisibility,
|
||||
NewChatMessage,
|
||||
NewChatMessageRole,
|
||||
|
|
@ -508,7 +509,19 @@ async def get_thread_full(
|
|||
# Check thread-level access based on visibility
|
||||
await check_thread_access(session, thread, user)
|
||||
|
||||
return thread
|
||||
# Check if thread has any comments
|
||||
comment_count = await session.scalar(
|
||||
select(func.count())
|
||||
.select_from(ChatComment)
|
||||
.join(NewChatMessage, ChatComment.message_id == NewChatMessage.id)
|
||||
.where(NewChatMessage.thread_id == thread.id)
|
||||
)
|
||||
|
||||
return {
|
||||
**thread.__dict__,
|
||||
"messages": thread.messages,
|
||||
"has_comments": (comment_count or 0) > 0,
|
||||
}
|
||||
|
||||
except HTTPException:
|
||||
raise
|
||||
|
|
|
|||
|
|
@ -105,6 +105,7 @@ class NewChatThreadWithMessages(NewChatThreadRead):
|
|||
"""Schema for reading a thread with its messages."""
|
||||
|
||||
messages: list[NewChatMessageRead] = []
|
||||
has_comments: bool = False
|
||||
|
||||
|
||||
# =============================================================================
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue