Saltar al contenido principal

Delete user with soft delete (Admin only)

DELETE 

/company/users/:id

Elimina un usuario de forma permanente usando soft delete (mongoose-delete). El usuario ya no aparecerá en consultas normales pero puede ser recuperado.

Objective

Permitir a administradores eliminar usuarios de forma segura con posibilidad de recuperación mediante soft delete.

Use Cases

  • Eliminar un usuario que ya no trabaja en la empresa
  • Eliminar cuentas duplicadas
  • Eliminar usuarios de prueba

Authentication & Authorization

  • Requiere JWT válido (middleware m.isLoged)
  • Requiere rol admin o dev (middleware m.isAdmin)

Behavior

  • Usa user.delete() de mongoose-delete (soft delete)
  • Establece deleted: true y deletedAt con la fecha actual
  • Usuario ya no aparece en queries normales
  • Recuperable vía endpoint POST /disabled/reactivate/:id

Notes

  • Diferente de DELETE /delete/:id que solo deshabilita (status=false)
  • Este endpoint elimina completamente el registro (aunque recuperable)

Validation Flow

flowchart TD
A[Recibir DELETE /:id] --> B{Usuario Admin?}
B -->|No| C[403 Forbidden]
B -->|Sí| D{Usuario Existe?}
D -->|No| E[404 Not Found]
D -->|Sí| F[Ejecutar soft delete]
F --> G[Establecer deleted: true]
G --> H[Establecer deletedAt]
H --> I[Retornar 200 OK]

Request

Responses

Usuario eliminado exitosamente (soft delete)