From a2cc91d681eeeae11a64f773cce74cc6519b6324 Mon Sep 17 00:00:00 2001 From: Alix JEUDI--LEMOINE Date: Fri, 22 Nov 2024 12:47:10 +0100 Subject: [PATCH] :building_construction: Added first DTO --- app/dto/UserRegisterDTO.py | 5 +++++ app/dto/__init__.py | 1 + app/main.py | 15 ++++++++++----- 3 files changed, 16 insertions(+), 5 deletions(-) create mode 100644 app/dto/UserRegisterDTO.py create mode 100644 app/dto/__init__.py diff --git a/app/dto/UserRegisterDTO.py b/app/dto/UserRegisterDTO.py new file mode 100644 index 0000000..512fd29 --- /dev/null +++ b/app/dto/UserRegisterDTO.py @@ -0,0 +1,5 @@ +from pydantic import BaseModel + +class UserRegisterDTO(BaseModel): + username: str + password: str \ No newline at end of file diff --git a/app/dto/__init__.py b/app/dto/__init__.py new file mode 100644 index 0000000..fdcbd21 --- /dev/null +++ b/app/dto/__init__.py @@ -0,0 +1 @@ +from .UserRegisterDTO import UserRegisterDTO \ No newline at end of file diff --git a/app/main.py b/app/main.py index 4591398..3aec72e 100644 --- a/app/main.py +++ b/app/main.py @@ -14,6 +14,9 @@ from app.serializers import * # Import all serializers (detailed in __init__.py) # Import all models (detailed in __init__.py) from app.models import * +# Import all DTOs (detailed in __init__.py) +from app.dto import * + # Contains all constants from app.config import * @@ -27,6 +30,12 @@ app = FastAPI() # OAuth2 scheme oauth2_scheme = OAuth2PasswordBearer(tokenUrl=TOKEN_URL) +# Collections +users_collection = db["users"] +pins_collection = db["pins"] +friends_collection = db["friends"] + +# Token management def create_access_token(data: dict, expires_delta: Optional[timedelta] = None): to_encode = data.copy() @@ -62,14 +71,10 @@ async def get_current_user(token: str = Depends(oauth2_scheme)): return user -# Collections -users_collection = db["users"] -pins_collection = db["pins"] -friends_collection = db["friends"] # Routes - TODO: find workaround to display 401/409/... HTTP error codes in openapi.json @app.post("/register", response_model=Token) -async def register(user: User): +async def register(user: UserRegisterDTO): user_exists = users_collection.find_one({"username": user.username}) if user_exists: raise HTTPException(