| 6 | |
| 7 | |
| 8 | class Database: |
| 9 | def __init__(self, uri, database_name): |
| 10 | self._client = motor.motor_asyncio.AsyncIOMotorClient(uri) |
| 11 | self.db = self._client[database_name] |
| 12 | self.col = self.db.users |
| 13 | self.bannedList = self.db.bannedList |
| 14 | |
| 15 | def new_user(self, id): |
| 16 | return dict( |
| 17 | id=id, |
| 18 | join_date=datetime.date.today().isoformat() |
| 19 | ) |
| 20 | |
| 21 | async def add_user(self, id): |
| 22 | user = self.new_user(id) |
| 23 | await self.col.insert_one(user) |
| 24 | |
| 25 | async def add_user_pass(self, id, ag_pass): |
| 26 | await self.add_user(int(id)) |
| 27 | await self.col.update_one({'id': int(id)}, {'$set': {'ag_p': ag_pass}}) |
| 28 | |
| 29 | async def get_user_pass(self, id): |
| 30 | user_pass = await self.col.find_one({'id': int(id)}) |
| 31 | return user_pass.get("ag_p", None) if user_pass else None |
| 32 | |
| 33 | async def is_user_exist(self, id): |
| 34 | user = await self.col.find_one({'id': int(id)}) |
| 35 | return True if user else False |
| 36 | |
| 37 | async def total_users_count(self): |
| 38 | count = await self.col.count_documents({}) |
| 39 | return count |
| 40 | |
| 41 | async def get_all_users(self): |
| 42 | all_users = self.col.find({}) |
| 43 | return all_users |
| 44 | |
| 45 | async def delete_user(self, user_id): |
| 46 | await self.col.delete_many({'id': int(user_id)}) |
| 47 | |
| 48 | async def ban_user(self , user_id): |
| 49 | user = await self.bannedList.find_one({'banId' : int(user_id)}) |
| 50 | if user: |
| 51 | return False |
| 52 | else: |
| 53 | await self.bannedList.insert_one({'banId' : int(user_id)}) |
| 54 | return True |
| 55 | |
| 56 | async def is_banned(self , user_id): |
| 57 | user = await self.bannedList.find_one({'banId' : int(user_id)}) |
| 58 | return True if user else False |
| 59 | |
| 60 | async def is_unbanned(self , user_id): |
| 61 | try : |
| 62 | if await self.bannedList.find_one({'banId' : int(user_id)}): |
| 63 | await self.bannedList.delete_one({'banId' : int(user_id)}) |
| 64 | return True |
| 65 | else: |
no outgoing calls
no test coverage detected