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}
|
return {"ok": True}
|
||||||
|
|
||||||
|
|
||||||
@router.get("/projects/{project_id}/members", response_model=list[ProjectMemberOut])
|
@router.get("/projects/{project_id}/members")
|
||||||
async def get_project_members(project_id: str, db: AsyncSession = Depends(get_db)):
|
async def get_project_members(
|
||||||
|
project_id: str,
|
||||||
|
mentionable: bool | None = None,
|
||||||
|
db: AsyncSession = Depends(get_db),
|
||||||
|
):
|
||||||
project = await _get_project(project_id, db)
|
project = await _get_project(project_id, db)
|
||||||
|
|
||||||
result = await db.execute(
|
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))
|
.options(selectinload(Member.agent_config))
|
||||||
)
|
)
|
||||||
|
|
||||||
return [
|
members = []
|
||||||
{"id": str(m.id), "name": m.name, "slug": m.slug, "type": m.type, "role": role}
|
for m, role in result.all():
|
||||||
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")
|
@router.post("/projects/{project_id}/members")
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user