Prechádzať zdrojové kódy

mejorar la verificacion del register

latapp 9 mesiacov pred
rodič
commit
12df03e85e
2 zmenil súbory, kde vykonal 32 pridanie a 28 odobranie
  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)
     })
-        .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() {

+ 8 - 8
routes/users.py

@@ -1,4 +1,3 @@
-
 import json
 from logging import getLogger
 from uuid import uuid4
@@ -7,6 +6,7 @@ import redis
 from cryptography.fernet import Fernet
 from fastapi import APIRouter, Depends, Request
 from fastapi.responses import FileResponse, HTMLResponse, JSONResponse
+from fastapi.exceptions import HTTPException
 
 from auth.security import generate_token
 from auth.security import get_current_user
@@ -71,8 +71,8 @@ async def register_user(request: RegisterUserRequest):
             },
             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
     try:
         user = user_data_service.get_by_email(request.email)
@@ -89,7 +89,7 @@ async def register_user(request: RegisterUserRequest):
                 user_id=user.id,
                 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
         user = user_data_service.get_by_rut(request.rut)
@@ -106,8 +106,8 @@ async def register_user(request: RegisterUserRequest):
                 },
                 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:
         error_msg = f"Database error during user validation: {e}"
         logger.error(error_msg)
@@ -121,8 +121,8 @@ async def register_user(request: RegisterUserRequest):
             },
             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}")
     
     try: