from motor.motor_asyncio import AsyncIOMotorDatabase from crud.base import CRUDBase from schemas import * __all__ = 'project', class CRUDProject(CRUDBase): async def create(self, db: AsyncIOMotorDatabase, obj_in: ProjectCreate, user_id: str): db_obj = ProjectDB( **obj_in.dict(), user_id=user_id, members=[user_id], _id=uuid.uuid1().hex ) return await db[self.coll_name].insert_one(db_obj.dict(by_alias=True)) async def read_project(self, db: AsyncIOMotorDatabase, user_id: str): return await self.read_have(db, user_id=user_id) # async def add_members(self, db: AsyncIOMotorDatabase, obj_in: ProjectMember): # p = await self.get(db, obj_in.project_id) # members = list(set(p.get('members')) | set(obj_in.members)) # await self.update_one(db, {'_id': obj_in.project_id}, {'$set': {'members': members}}) async def create_index(self, db: AsyncIOMotorDatabase): await db[self.coll_name].create_index('name', unique=True) project = CRUDProject('project')