configurator/app/storage/mongo/staff.py
emmatveev 6323fb6a26
All checks were successful
Deploy Dev / Build (pull_request) Successful in 6s
Deploy Dev / Push (pull_request) Successful in 8s
Deploy Prod / Build (pull_request) Successful in 5s
Deploy Dev / Deploy dev (pull_request) Successful in 8s
Deploy Prod / Push (pull_request) Successful in 8s
Deploy Prod / Deploy prod (pull_request) Successful in 7s
fix
2024-11-24 11:54:10 +03:00

39 lines
1.2 KiB
Python

import pydantic
from app.storage.mongo import database
from bson import codec_options
collection = database.get_collection("staff", codec_options=codec_options.CodecOptions(tz_aware=True))
class Staff(pydantic.BaseModel):
platform_id: int
vk_id: int|None = None
yandex_id: int|None = None
telegram_id: int|None = None
email: str|None = None
telegram_username: str|None = None
async def create(staff: Staff) -> str:
result = await collection.insert_one(staff.model_dump())
return result.inserted_id
async def update(platform_id: int, vk_id: int|None, yandex_id: int|None, telegram_id: int|None, email: str|None, telegram_username: str|None) -> bool:
result = await collection.update_one({'platform_id': platform_id}, {'$set': {'vk_id': vk_id, 'yandex_id': yandex_id, 'telegram_id': telegram_id, 'email': email, 'telegram_username': telegram_username}})
return result.modified_count != 0
async def delete(platform_id: int) -> bool:
result = await collection.delete_one({'platform_id': platform_id})
return result.deleted_count != 0
async def get() -> list[Staff]:
result = []
async for item in collection.find({}):
result.append(Staff.model_validate(item))
return result