From 1929318d551690b946ddf817e2495352b7eaf8db Mon Sep 17 00:00:00 2001 From: andrei Date: Sat, 29 Nov 2025 21:57:41 +0500 Subject: [PATCH] =?UTF-8?q?=D0=BF=D0=BE=D0=B4=D0=BA=D0=BB=D1=8E=D1=87?= =?UTF-8?q?=D0=B8=D0=BB=20=D1=80=D0=B5=D0=B3=D0=B8=D1=81=D1=82=D1=80=D0=B0?= =?UTF-8?q?=D1=86=D0=B8=D1=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- api/app/controllers/users_router.py | 14 ++++++++++++++ api/app/domain/entities/users.py | 2 +- web/src/Api/usersApi.js | 9 +++++++++ 3 files changed, 24 insertions(+), 1 deletion(-) diff --git a/api/app/controllers/users_router.py b/api/app/controllers/users_router.py index 8b9a9ae..9a71792 100644 --- a/api/app/controllers/users_router.py +++ b/api/app/controllers/users_router.py @@ -89,6 +89,20 @@ async def create_user( return await register_service.create_user(user) +@users_router.post( + '/register/', + response_model=Optional[UserRead], + summary='Register a new user', + description='Register a new user', +) +async def register_user( + user: UserCreate, + db: AsyncSession = Depends(get_db), +): + register_service = RegisterService(db) + return await register_service.user_register(user) + + @users_router.get( '/role/{role_name}/', response_model=List[UserRead], diff --git a/api/app/domain/entities/users.py b/api/app/domain/entities/users.py index 8242e94..a863f6d 100644 --- a/api/app/domain/entities/users.py +++ b/api/app/domain/entities/users.py @@ -27,7 +27,7 @@ class UserCreate(BaseModel): birthdate: date password: str = Field(min_length=8) repeat_password: str = Field(min_length=8) - role_id: int = Field() + role_id: Optional[int] = Field(default=None) class UserUpdate(BaseModel): diff --git a/web/src/Api/usersApi.js b/web/src/Api/usersApi.js index 807f8b8..de6bf19 100644 --- a/web/src/Api/usersApi.js +++ b/web/src/Api/usersApi.js @@ -39,6 +39,14 @@ export const usersApi = createApi({ }), invalidatesTags: ["user"], }), + registerUser: builder.mutation({ + query: (data) => ({ + url: "/users/register/", + method: "POST", + body: data, + }), + invalidatesTags: ["user"], + }), getUsersByRoleName: builder.query({ query: (roleName) => ({ url: `/users/role/${roleName}/`, @@ -76,6 +84,7 @@ export const { useUpdateUserMutation, useUpdateUserPasswordMutation, useCreateUserMutation, + useRegisterUserMutation, useGetUsersByRoleNameQuery, useGetReadedLessonsByCourseQuery, useSetLessonAsReadedMutation,