44 lines
798 B
Python
44 lines
798 B
Python
from sqlalchemy.ext.asyncio import AsyncSession
|
|
|
|
from domains.groups.models import Group, GroupMember
|
|
from domains.groups.repo import (
|
|
create_group,
|
|
get_group_by_id,
|
|
add_group_member,
|
|
get_user_groups
|
|
)
|
|
|
|
|
|
async def create_new_group(
|
|
db: AsyncSession,
|
|
name: str,
|
|
description: str | None
|
|
):
|
|
|
|
group = Group(
|
|
name=name,
|
|
description=description
|
|
)
|
|
|
|
return await create_group(db, group)
|
|
|
|
async def add_member_to_group(
|
|
db: AsyncSession,
|
|
group_id,
|
|
user_id,
|
|
role
|
|
):
|
|
|
|
membership = GroupMember(
|
|
group_id=group_id,
|
|
user_id=user_id,
|
|
role=role
|
|
)
|
|
return await add_group_member(db, membership)
|
|
|
|
|
|
async def list_user_groups(
|
|
db: AsyncSession,
|
|
user_id
|
|
):
|
|
return await get_user_groups(db, user_id) |