From bbcecd7fb641e654f4127b8402a037c656e161ba Mon Sep 17 00:00:00 2001 From: "Timur Kh." Date: Sat, 1 Mar 2025 00:19:19 +0300 Subject: [PATCH] add sign-up endpoint callback --- services/backend/{config => api/v1}/auth.py | 2 +- services/backend/api/v1/users/views.py | 15 ++++++++++----- 2 files changed, 11 insertions(+), 6 deletions(-) rename services/backend/{config => api/v1}/auth.py (96%) diff --git a/services/backend/config/auth.py b/services/backend/api/v1/auth.py similarity index 96% rename from services/backend/config/auth.py rename to services/backend/api/v1/auth.py index e8dcca6..039e328 100644 --- a/services/backend/config/auth.py +++ b/services/backend/api/v1/auth.py @@ -22,6 +22,6 @@ class BearerAuth(HttpBearer): def generate_jwt(user: User) -> str: data = { "exp": (datetime.datetime.now() + datetime.timedelta(days=365)).timestamp(), - "id": user.id + "id": str(user.id) } return jwt.encode(data, settings.SECRET_KEY, algorithm="HS256") diff --git a/services/backend/api/v1/users/views.py b/services/backend/api/v1/users/views.py index 92a5f95..7be1708 100644 --- a/services/backend/api/v1/users/views.py +++ b/services/backend/api/v1/users/views.py @@ -1,10 +1,10 @@ from ninja import Router from api.v1.users.schemas import LoginSchema, RegisterSchema, TokenSchema, UserSchema +from api.v1.auth import BearerAuth from api.v1.schemas import BadRequestError, ForbiddenError, NotFoundError from apps.users.models import User - router = Router(tags=["users"]) @@ -15,8 +15,13 @@ router = Router(tags=["users"]) 400: BadRequestError, } ) -def sign_up(data: RegisterSchema): - ... +def sign_up(request, data: RegisterSchema): + user = User(**data.dict()) + user.full_clean() + user.save() + + token = BearerAuth.generate_jwt(user) + return 201, TokenSchema(token=token) @router.post( @@ -27,7 +32,7 @@ def sign_up(data: RegisterSchema): 403: ForbiddenError, } ) -def sign_in(data: LoginSchema): +def sign_in(request, data: LoginSchema): ... @@ -39,5 +44,5 @@ def sign_in(data: LoginSchema): 404: NotFoundError, } ) -def get_user(user_id: str): +def get_user(request, user_id: str): ...