xbackend/crud/crud_data_auth.py
2021-05-20 10:10:07 +08:00

39 lines
1.3 KiB
Python

import pymongo
from bson import ObjectId
from motor.motor_asyncio import AsyncIOMotorDatabase
from crud.base import CRUDBase
from schemas import *
__all__ = 'data_auth',
class CRUDDataAuth(CRUDBase):
async def create(self, db: AsyncIOMotorDatabase, obj_in: DataAuthCreate, game):
data = obj_in.dict()
data['game'] = game
data['update_date'] = datetime.now()
await self.update_one(db, data, {'$set': data}, upsert=True)
async def get_game_data_auth(self, db, game):
return await self.find_many(db, game=game)
async def edit_data_auth(self, db, data_in: DataAuthEdit):
return await self.update_one(db, {'_id': ObjectId(data_in.data_auth_id)},
{'$set': {'title': data_in.title,
'data': data_in.data,
'update_date': datetime.now()
}})
# async def get_user_for_game_auth(self, db, game, username):
# await self.find_one({'ptype': 'g'})
async def create_index(self, db: AsyncIOMotorDatabase):
await db[self.coll_name].create_index(
[('game', pymongo.DESCENDING), ('title', pymongo.DESCENDING)],
unique=True)
data_auth = CRUDDataAuth('data_auth')