Saltar a contenido

Transacciones

Este módulo maneja el historial de transacciones de los usuarios en el sistema AgroMarket.

Endpoints

POST /api/v1/transactions/add

Crea una nueva transacción para el usuario autenticado.

URL: /api/v1/transactions/add

Método: POST

Headers:

Authorization: Bearer <token>
Content-Type: application/json

Body:

{
  "type": "deposito",
  "value": 1000
}

Tipos de transacción válidos: - deposito: Depósito de créditos (valor positivo) - compra: Compra de productos (valor negativo automático) - retiro: Retiro de créditos (valor negativo automático)

Respuesta exitosa (200):

{
  "transaction": {
    "_id": "507f1f77bcf86cd799439011",
    "value": 1000,
    "type": "deposito",
    "user": "507f1f77bcf86cd799439012",
    "date": "2024-01-15T10:30:00.000Z"
  }
}

Respuesta de error (401):

{
  "error": "No autorizado - Token inválido o faltante"
}

Respuesta de error (500):

{
  "error": "Error de server"
}

GET /api/v1/transactions/get

Obtiene todas las transacciones del usuario autenticado.

URL: /api/v1/transactions/get

Método: GET

Headers:

Authorization: Bearer <token>

Respuesta exitosa (200):

{
  "alltransactions": [
    {
      "_id": "507f1f77bcf86cd799439011",
      "value": 1000,
      "type": "deposito",
      "user": "507f1f77bcf86cd799439012",
      "date": "2024-01-15T10:30:00.000Z"
    },
    {
      "_id": "507f1f77bcf86cd799439013",
      "value": -500,
      "type": "compra",
      "user": "507f1f77bcf86cd799439012",
      "date": "2024-01-15T11:00:00.000Z"
    },
    {
      "_id": "507f1f77bcf86cd799439014",
      "value": -200,
      "type": "retiro",
      "user": "507f1f77bcf86cd799439012",
      "date": "2024-01-15T12:00:00.000Z"
    }
  ]
}

Respuesta de error (401):

{
  "error": "No autorizado - Token inválido o faltante"
}

Respuesta de error (500):

{
  "error": "Error de server"
}

Tipos de Transacciones

Tipo Descripción Valor
deposito Depósito de créditos al sistema Positivo
compra Compra de productos Negativo (automático)
retiro Retiro de créditos del sistema Negativo (automático)

Códigos de Error Comunes

Código Descripción
401 No autorizado - Token inválido o faltante
500 Error interno del servidor

Notas Importantes

  • Todos los endpoints requieren autenticación mediante token JWT
  • Los valores de compra y retiro se convierten automáticamente a negativos
  • Las transacciones se registran con fecha y hora exacta
  • Cada transacción está asociada a un usuario específico
  • El historial incluye todas las transacciones del usuario
  • Las transacciones se ordenan por fecha (más recientes primero)
  • Los valores se almacenan como números decimales
  • Las transacciones son inmutables una vez creadas