Просмотр исходного кода

mejorar la verificacion del register

latapp 9 месяцев назад
Родитель
Сommit
12df03e85e
2 измененных файлов с 32 добавлено и 28 удалено
  1. 24 20
      public/register/app.js
  2. 8 8
      routes/users.py

+ 24 - 20
public/register/app.js

@@ -50,26 +50,30 @@ document.getElementById('registerForm').addEventListener('submit', function (e)
         },
         },
         body: JSON.stringify(data)
         body: JSON.stringify(data)
     })
     })
-        .then(response => {
-            if (response.status !== 200 && response.status !== 201) {
-                return response.json().then(errorData => {
-                    showErrorMessage(errorData.message || 'Error al registrar el usuario.');
-                });
-            }
-            return response.json();
-        })
-        .then(data => {
-            if (!data) {
-                showErrorMessage("El usuario ya existe.");
-                throw new Error("El usuario ya existe.");
-            }else{
-                console.log('Registro exitoso:', data);
-                document.querySelector('#successPage').classList.remove('hidden');
-                hideRegisterModal();
-            }
-        }).finally(() => {
-            hideGlobalLoader();
-        })
+    .then(async response => {
+        const responseData = await response.json().catch(() => ({}));
+        if (!response.ok) {
+            const errorMsg = responseData.detail || 'Error al registrar el usuario.';
+            console.error('Error en el registro:', errorMsg);
+            showErrorMessage(errorMsg);
+            return null;
+        }
+        return responseData;
+    })
+    .then(result => {
+        if (result) {
+            console.log('Registro exitoso:', result);
+            document.getElementById('successPage').classList.remove('hidden');
+            hideRegisterModal();
+        }
+    })
+    .catch(error => {
+        console.error('Error de red o conexión:', error);
+        showErrorMessage('Error de conexión. Por favor, intenta nuevamente.');
+    })
+    .finally(() => {
+        hideGlobalLoader();
+    });
 });
 });
 
 
 function createGlobalLoader() {
 function createGlobalLoader() {

+ 8 - 8
routes/users.py

@@ -1,4 +1,3 @@
-
 import json
 import json
 from logging import getLogger
 from logging import getLogger
 from uuid import uuid4
 from uuid import uuid4
@@ -7,6 +6,7 @@ import redis
 from cryptography.fernet import Fernet
 from cryptography.fernet import Fernet
 from fastapi import APIRouter, Depends, Request
 from fastapi import APIRouter, Depends, Request
 from fastapi.responses import FileResponse, HTMLResponse, JSONResponse
 from fastapi.responses import FileResponse, HTMLResponse, JSONResponse
+from fastapi.exceptions import HTTPException
 
 
 from auth.security import generate_token
 from auth.security import generate_token
 from auth.security import get_current_user
 from auth.security import get_current_user
@@ -71,8 +71,8 @@ async def register_user(request: RegisterUserRequest):
             },
             },
             user_email=request.email
             user_email=request.email
         )
         )
-        return JSONResponse(status_code=400, content={"message": ErrorResponse.INVALID_RUT})
-    
+        raise HTTPException(status_code=400, detail=ErrorResponse.INVALID_RUT)
+
     # Check if user already exists by email
     # Check if user already exists by email
     try:
     try:
         user = user_data_service.get_by_email(request.email)
         user = user_data_service.get_by_email(request.email)
@@ -89,7 +89,7 @@ async def register_user(request: RegisterUserRequest):
                 user_id=user.id,
                 user_id=user.id,
                 user_email=request.email
                 user_email=request.email
             )
             )
-            return JSONResponse(status_code=400, content={"message": UserResponse.USER_ALREADY_EXISTS})
+            return HTTPException(status_code=400, detail=UserResponse.USER_ALREADY_EXISTS)
             
             
         # Check if RUT already exists
         # Check if RUT already exists
         user = user_data_service.get_by_rut(request.rut)
         user = user_data_service.get_by_rut(request.rut)
@@ -106,8 +106,8 @@ async def register_user(request: RegisterUserRequest):
                 },
                 },
                 user_email=request.email
                 user_email=request.email
             )
             )
-            return JSONResponse(status_code=400, content={"message": UserResponse.USER_ALREADY_EXISTS})
-            
+            return HTTPException(status_code=400, detail=UserResponse.USER_ALREADY_EXISTS)
+
     except Exception as e:
     except Exception as e:
         error_msg = f"Database error during user validation: {e}"
         error_msg = f"Database error during user validation: {e}"
         logger.error(error_msg)
         logger.error(error_msg)
@@ -121,8 +121,8 @@ async def register_user(request: RegisterUserRequest):
             },
             },
             user_email=request.email
             user_email=request.email
         )
         )
-        return JSONResponse(status_code=500, content={"message": "Error interno del servidor"})
-    
+        raise HTTPException(status_code=500, detail={"message": "Error interno del servidor"})
+
     logger.info(f"Registering user: {request.email}")
     logger.info(f"Registering user: {request.email}")
     
     
     try:
     try: