xbackend/crud/crud_role.py
2021-08-05 15:36:09 +08:00

38 lines
1.2 KiB
Python

from motor.motor_asyncio import AsyncIOMotorDatabase
import schemas
from crud.base import CRUDBase
__all__ = 'role',
class CRUDApiList(CRUDBase):
async def add_role(self, db: AsyncIOMotorDatabase, data_in: schemas.AddRole):
where = {'name': data_in.name, 'game': data_in.game}
data = {'$set': schemas.AddRoleDB(**data_in.dict()).dict(by_alias=True)}
return await self.update_one(db, where, data, upsert=True)
async def edit_role(self, db: AsyncIOMotorDatabase, data_in: schemas.EditRole):
where = {'_id': data_in.id}
data = {'$set': data_in.dict()}
return await self.update_one(db, where, data)
async def check(self, db, **kwargs):
res = await self.find_one(db, kwargs)
return True if res else False
async def dom_roles(self, db: AsyncIOMotorDatabase, game: str):
where = {'game': game}
return await self.find_many(db, where)
async def del_role(self, db: AsyncIOMotorDatabase, data_in: schemas.DelRole):
return await self.delete_id(db, *data_in.ids)
async def create_index(self, db: AsyncIOMotorDatabase):
await db[self.coll_name].create_index([('game', 1), ('name', 1)], unique=True)
role = CRUDApiList('role')