-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathdatabase.py
30 lines (27 loc) · 968 Bytes
/
database.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# (c) @Damantha_Jasinghe
import datetime
import motor.motor_asyncio
class Database:
def __init__(self, uri, database_name):
self._client = motor.motor_asyncio.AsyncIOMotorClient(uri)
self.db = self._client[database_name]
self.col = self.db.users
def new_user(self, id):
return dict(
id = id,
join_date = datetime.date.today().isoformat()
)
async def add_user(self, id):
user = self.new_user(id)
await self.col.insert_one(user)
async def is_user_exist(self, id):
user = await self.col.find_one({'id':int(id)})
return True if user else False
async def total_users_count(self):
count = await self.col.count_documents({})
return count
async def get_all_users(self):
all_users = self.col.find({})
return all_users
async def delete_user(self, user_id):
await self.col.delete_many({'id': int(user_id)})