feat: ?mentionable query param on project members endpoint
Some checks failed
Deploy Tracker / deploy (push) Failing after 3s
Some checks failed
Deploy Tracker / deploy (push) Failing after 3s
This commit is contained in:
parent
274294c183
commit
4d35e35b5e
@ -156,8 +156,12 @@ async def delete_project(project_id: str, request: Request, db: AsyncSession = D
|
||||
return {"ok": True}
|
||||
|
||||
|
||||
@router.get("/projects/{project_id}/members", response_model=list[ProjectMemberOut])
|
||||
async def get_project_members(project_id: str, db: AsyncSession = Depends(get_db)):
|
||||
@router.get("/projects/{project_id}/members")
|
||||
async def get_project_members(
|
||||
project_id: str,
|
||||
mentionable: bool | None = None,
|
||||
db: AsyncSession = Depends(get_db),
|
||||
):
|
||||
project = await _get_project(project_id, db)
|
||||
|
||||
result = await db.execute(
|
||||
@ -167,10 +171,27 @@ async def get_project_members(project_id: str, db: AsyncSession = Depends(get_db
|
||||
.options(selectinload(Member.agent_config))
|
||||
)
|
||||
|
||||
return [
|
||||
{"id": str(m.id), "name": m.name, "slug": m.slug, "type": m.type, "role": role}
|
||||
for m, role in result.all()
|
||||
]
|
||||
members = []
|
||||
for m, role in result.all():
|
||||
if mentionable is not None:
|
||||
# bridge никогда не mentionable
|
||||
if m.type == "bridge":
|
||||
if mentionable:
|
||||
continue
|
||||
elif m.agent_config and m.agent_config.mentionable != mentionable:
|
||||
continue
|
||||
ac = None
|
||||
if m.agent_config:
|
||||
ac = {
|
||||
"mentionable": m.agent_config.mentionable,
|
||||
"chat_listen": m.agent_config.chat_listen,
|
||||
"task_listen": m.agent_config.task_listen,
|
||||
}
|
||||
members.append({
|
||||
"id": str(m.id), "name": m.name, "slug": m.slug,
|
||||
"type": m.type, "role": role, "agent_config": ac,
|
||||
})
|
||||
return members
|
||||
|
||||
|
||||
@router.post("/projects/{project_id}/members")
|
||||
|
||||
Loading…
Reference in New Issue
Block a user