feat(chats): add role-based member management APIs
All checks were successful
CI / test (push) Successful in 32s
All checks were successful
CI / test (push) Successful in 32s
- add owner/admin/member permission checks - implement member add/remove, role updates, and leave flow - add chat title update endpoint for manageable chat types
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
from sqlalchemy import Select, select
|
||||
from sqlalchemy import Select, func, select
|
||||
from sqlalchemy.orm import aliased
|
||||
from sqlalchemy.ext.asyncio import AsyncSession
|
||||
|
||||
@@ -19,6 +19,15 @@ async def add_chat_member(db: AsyncSession, *, chat_id: int, user_id: int, role:
|
||||
return member
|
||||
|
||||
|
||||
async def delete_chat_member(db: AsyncSession, member: ChatMember) -> None:
|
||||
await db.delete(member)
|
||||
|
||||
|
||||
async def count_chat_members(db: AsyncSession, *, chat_id: int) -> int:
|
||||
result = await db.execute(select(func.count(ChatMember.id)).where(ChatMember.chat_id == chat_id))
|
||||
return int(result.scalar_one())
|
||||
|
||||
|
||||
def _user_chats_query(user_id: int) -> Select[tuple[Chat]]:
|
||||
return (
|
||||
select(Chat)
|
||||
|
||||
Reference in New Issue
Block a user