🚀 API CryBack

Sistema de gestión de comercio electrónico RESTful API

Usuarios

POST /api/user/registrar
Registrar nuevo usuario
Envia un JSON con name, email y password.
POST /api/user/confirmar
Confirmar cuenta de usuario
Requiere email y token de confirmación.
POST /api/user/autenticar
Iniciar sesión
Envia un JSON con email y password.
GET /api/user/logout
Cerrar sesión
Invalida el token de autenticación actual.
GET /api/user/validate-token
Validar token
Verifica si el token actual es válido.
POST /api/user/reset-password
Solicitar restablecimiento de contraseña
Envia email con instrucciones.
GET /api/user/reset-password/:token
Verificar token de restablecimiento
Valida el token de restablecimiento de contraseña.
POST /api/user/reset-password/:token
Establecer nueva contraseña
Envia un JSON con la nueva contraseña.
GET /api/user/perfil
Obtener perfil del usuario autenticado
Requiere token de autenticación.
POST /api/user/perfil
Obtener perfil de usuario específico
Solo para administradores.
PUT /api/user/perfil
Actualizar perfil
Actualiza información del perfil del usuario autenticado.
PUT /api/user/change-password
Cambiar contraseña
Requiere contraseña actual y nueva.
DELETE /api/user/delete-account/:userId
Eliminar cuenta
Elimina cuenta propia o de otro usuario si es admin.
GET /api/user/all
Listar usuarios
Solo para administradores.
POST /api/user/addresses
Agregar dirección
Añade una nueva dirección al perfil del usuario.
GET /api/user/addresses
Obtener direcciones
Lista todas las direcciones del usuario.
PUT /api/user/addresses/:addressId
Actualizar dirección
Modifica una dirección existente.
DELETE /api/user/addresses/:addressId
Eliminar dirección
Elimina una dirección del perfil.
PUT /api/user/addresses/:addressId/active
Establecer dirección activa
Define una dirección como la principal.

Productos

GET /api/product/active
Obtener productos activos
Lista todos los productos disponibles.
GET /api/product/search
Buscar productos
Búsqueda con filtros por nombre, categoría, etc.
GET /api/product/:_id
Obtener producto por ID
Detalles de un producto específico.
GET /api/product/admin/all
Listar todos los productos (admin)
Incluye productos activos e inactivos.
POST /api/product
Crear producto
Solo administradores.
PUT /api/product/:_id
Actualizar producto
Solo administradores.
DELETE /api/product/:_id
Eliminar producto
Solo administradores.
PUT /api/product/:_id/status
Actualizar estado del producto
Activar/desactivar producto (admin).
POST /api/product/:_id/notificar-favoritos
Notificar a favoritos
Envía notificación a usuarios con el producto en favoritos.

Carrito

GET /api/cart
Ver carrito
Muestra el carrito del usuario actual.
POST /api/cart
Agregar al carrito
Añade un producto al carrito.
PATCH /api/cart/:productId
Actualizar cantidad
Modifica la cantidad de un producto.
DELETE /api/cart
Vaciar carrito
Elimina todos los productos del carrito.
DELETE /api/cart/:productId
Eliminar producto
Remueve un producto específico del carrito.

Lista de Deseos

GET /api/wishlist
Ver lista de deseos
Muestra los productos guardados en favoritos.
POST /api/wishlist/add
Agregar a favoritos
Añade un producto a la lista de deseos.
DELETE /api/wishlist/remove/:productId
Quitar de favoritos
Elimina un producto de la lista de deseos.
DELETE /api/wishlist/clear
Limpiar lista
Elimina todos los productos de la lista de deseos.

Etiquetas

GET /api/tags
Obtener todas las etiquetas
Lista todas las etiquetas disponibles.
GET /api/tags/products
Buscar por etiquetas
Encuentra productos por sus etiquetas.
GET /api/tags/products/all
Buscar todos por etiquetas
Búsqueda completa de productos por etiquetas.
GET /api/tags/product/:productId
Etiquetas de producto
Lista las etiquetas de un producto específico.
POST /api/tags/product/:productId
Agregar etiquetas
Añade etiquetas a un producto (admin).
PUT /api/tags/product/:productId
Actualizar etiquetas
Modifica las etiquetas de un producto (admin).
DELETE /api/tags/product/:productId
Eliminar etiquetas
Remueve etiquetas de un producto (admin).
PUT /api/tags/rename
Renombrar etiqueta
Cambia el nombre de una etiqueta (admin).
DELETE /api/tags/:tag
Eliminar etiqueta
Elimina una etiqueta del sistema (admin).

Métodos de Pago

GET /api/payment-methods
Listar métodos de pago
Obtiene todos los métodos de pago disponibles.
GET /api/payment-methods/:_id
Obtener método de pago
Detalles de un método de pago específico.
GET /api/payment-methods/admin/all
Listar todos (admin)
Lista completa de métodos de pago para administración.
POST /api/payment-methods
Crear método de pago
Añade un nuevo método de pago (admin).
PUT /api/payment-methods/:_id
Actualizar método de pago
Modifica un método de pago existente (admin).
DELETE /api/payment-methods/:_id
Eliminar método de pago
Desactiva un método de pago (admin).
PUT /api/payment-methods/restore/:_id
Restaurar método de pago
Reactiva un método de pago eliminado (admin).

Métodos de Envío

GET /api/shipping-methods
Listar métodos de envío
Obtiene todos los métodos de envío disponibles.
GET /api/shipping-methods/:_id
Obtener método de envío
Detalles de un método de envío específico.
POST /api/shipping-methods
Crear método de envío
Añade un nuevo método de envío (admin).
PUT /api/shipping-methods/:_id
Actualizar método de envío
Modifica un método de envío existente (admin).
DELETE /api/shipping-methods/:_id
Eliminar método de envío
Desactiva un método de envío (admin).

Pedidos

POST /api/order
Crear pedido
Crea un nuevo pedido para el usuario actual.
GET /api/order/user
Ver pedidos propios
Lista los pedidos del usuario autenticado.
GET /api/order/user/:orderId
Ver detalle de pedido
Muestra los detalles de un pedido específico.
POST /api/order/from-quotation
Crear pedido desde cotización
Convierte una cotización en pedido.
GET /api/order/all
Ver todos los pedidos
Lista todos los pedidos (admin).
PUT /api/order/:orderId
Actualizar pedido
Modifica un pedido existente (admin).
DELETE /api/order/:orderId
Cancelar pedido
Cancela un pedido existente (admin).
PUT /api/order/:orderId/status
Actualizar estado
Modifica el estado del pedido (admin).

Cotizaciones

POST /api/quotations
Crear cotización
Genera una nueva cotización.
GET /api/quotations/user
Ver cotizaciones propias
Lista las cotizaciones del usuario.
GET /api/quotations/all
Ver todas las cotizaciones
Lista todas las cotizaciones (admin).
GET /api/quotations/:quotationId
Ver detalle de cotización
Muestra los detalles de una cotización específica.
PUT /api/quotations/:_id
Actualizar cotización
Modifica una cotización existente (admin).
DELETE /api/quotations/:_id
Eliminar cotización
Elimina una cotización (admin).

Procesamiento de Pagos

POST /api/payments/update-return-url
Actualizar URL de retorno
Configura la URL de retorno para pagos (admin).
POST /api/payments/initiate/:orderId
Iniciar pago
Comienza el proceso de pago para un pedido.
GET /api/payments/status/:orderId
Estado del pago
Consulta el estado de un pago.
GET /api/payments/webpay/return
Retorno WebPay
Endpoint para retorno de WebPay.
POST /api/payments/webpay/return
Retorno WebPay (POST)
Endpoint alternativo para retorno de WebPay.

Regiones

GET /api/regions
Listar regiones activas
Obtiene todas las regiones disponibles.
GET /api/regions/all
Listar todas las regiones
Obtiene todas las regiones incluyendo inactivas.
GET /api/regions/:id
Obtener región
Detalles de una región específica.
POST /api/regions
Crear región
Añade una nueva región (admin).
PUT /api/regions/:id
Actualizar región
Modifica una región existente (admin).
DELETE /api/regions/:id
Eliminar región
Elimina una región (admin).
PUT /api/regions/:id/status
Actualizar estado
Cambia el estado activo/inactivo de una región (admin).

Utilidades

GET /api/util/getdashboardstats
Estadísticas del dashboard
Obtiene estadísticas generales del sistema.
GET /api/util/top-tags
Etiquetas más usadas
Lista las etiquetas más populares.
GET /api/util/total-sales
Total de ventas
Obtiene el total de ventas realizadas.
GET /api/util/quotation-stats
Estadísticas de cotizaciones
Métricas sobre las cotizaciones.
GET /api/util/order-stats
Estadísticas de pedidos
Métricas sobre los pedidos.
POST /api/util/contact
Formulario de contacto
Procesa mensajes del formulario de contacto.
GET /api/util/send-emailOrder/:orderId
Enviar email de confirmación
Reenvía el email de confirmación de un pedido.