initial commit

This commit is contained in:
2023-01-09 13:03:16 +01:00
commit d0c0668fad
89 changed files with 12472 additions and 0 deletions

40
back/app/user/models.py Normal file
View File

@@ -0,0 +1,40 @@
from typing import Optional, TypeVar
from datetime import datetime
from pydantic import BaseModel, Field
from beanie import PydanticObjectId
from fastapi_users.db import BeanieBaseUser, BeanieUserDatabase
from fastapi_users_db_beanie.access_token import BeanieAccessTokenDatabase, BeanieBaseAccessToken
from pymongo import IndexModel
class AccessToken(BeanieBaseAccessToken[PydanticObjectId]):
pass
class User(BeanieBaseUser[PydanticObjectId]):
login: str
created_at: datetime = Field(default=datetime.utcnow(), nullable=False)
updated_at: datetime = Field(default_factory=datetime.utcnow, nullable=False)
class Settings:
indexes = [
IndexModel("login", unique=True),
]
class UserDatabase(BeanieUserDatabase):
async def get_by_login(self, login: str) -> Optional[TypeVar("UP_BEANIE", bound=BeanieBaseUser)]:
"""Get a single user by email."""
return await self.user_model.find_one(
self.user_model.login == login
)
async def get_access_token_db():
yield BeanieAccessTokenDatabase(AccessToken)
async def get_user_db():
yield UserDatabase(User)