/register
POST /api/register
Authorization: Bearer <token>
verificarAutenticacion
validateCreateSeller
(de auth_validator.js
)validateRequest
(manejo de errores de validación){
"email": "string (requerido, único)",
"cedula": "number (requerido, único)",
"names": "string (requerido)",
"lastNames": "string (requerido)",
"PhoneNumber": "number (requerido)",
"SalesCity": "string (requerido)"
}
{
"status": "success",
"code": "SELLER_REGISTERED",
"msg": "Vendedor registrado exitosamente.",
"notification": "Se ha enviado un correo a {email} para confirmar el registro y se ha generado un usuario y una contraseña temporal.",
"data": {
"_id": "ObjectId",
"names": "string",
"lastNames": "string",
"cedula": number,
"email": "string",
"username": "string",
"PhoneNumber": number,
"SalesCity": "string",
"role": "string",
"status": false,
"confirmEmail": false
},
"info": {
"emailDetails": {
"sent": true,
"message": "Correo enviado correctamente."
}
}
}
{
"status": "warning",
"code": "SELLER_CREATED_EMAIL_FAILED",
"msg": "Vendedor registrado exitosamente, pero hubo un problema al enviar el correo de confirmación.",
"notification": "Verifica tu bandeja de entrada o contacta a soporte si no recibes el correo.",
"data": { /* igual que en SELLER_REGISTERED */ },
"info": {
"emailDetails": {
"sent": false,
"message": "Error específico del servicio de correo (ej: 'Connection refused')."
}
}
}
{
"status": "error",
"code": "MISSING_FIELD",
"msg": "Faltan campos requeridos. Asegúrate de incluir email, cedula, names, lastNames, PhoneNumber y SalesCity.",
"info": {
"missingFields": ["email", "cedula"]
}
}
{
"status": "error",
"code": "VALIDATION_ERROR",
"msg": "Errores de validación en la solicitud.",
"errors": [
{
"type": "field",
"value": "correo-invalido",
"msg": "El email no tiene un formato válido.",
"path": "email",
"location": "body"
},
{
"type": "field",
"value": "123",
"msg": "La cédula debe ser un número válido.",
"path": "cedula",
"location": "body"
}
// …
]
}
{
"status": "error",
"code": "UNAUTHORIZED",
"msg": "Acceso no autorizado. Se requiere token de autenticación válido."
}
{
"status": "error",
"code": "RESOURCE_ALREADY_EXISTS",
"msg": "El email 'ejemplo@correo.com' ya se encuentra registrado.",
"info": {
"field": "email",
"value": "ejemplo@correo.com"
}
}
{
"status": "error",
"code": "RESOURCE_ALREADY_EXISTS",
"msg": "El número de cédula '1234567890' ya se encuentra registrado.",
"info": {
"field": "cedula",
"value": 1234567890
}
}
{
"status": "error",
"code": "SERVER_ERROR",
"msg": "Ha ocurrido un error inesperado al registrar el vendedor. Intente de nuevo más tarde.",
"info": {
"detail": "Detalle interno (ej: 'Database connection failed')",
"emailAttempted": true,
"emailDetails": {
"sent": false,
"message": "Error del servicio de correo si ocurrió antes del fallo principal"
}
}
}
curl --location --request POST 'https://back-prima-s-a.onrender.com/api/register' \
--header 'User-Agent: insomnia/10.3.0' \
--header 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6IjY3NjI0ZjkwNzY2OWM5MDZjYTM0YThkZSIsInJvbCI6ImFkbWluIiwiaWF0IjoxNzM4NjI4MjgxLCJleHAiOjE3Mzg2NTcwODF9.0or08xMGWjpppL1Lm2dGM6yX-5Y6ozETnKFwpXPgxxE' \
--header 'Content-Type: application/json' \
--data-raw '{
"names": "Carlos",
"lastNames": "González",
"numberID": 98765432,
"email": "firol50016@gholar.com",
"SalesCity": "Barcelona",
"PhoneNumber": 698765432,
"role": "Seller",
"status": false
}'
{}