En este desafío, creará una API REST de una versión súper simplificada de un proveedor de servicios de pago de impuestos.
En esencia, una empresa de pago de impuestos tiene dos funciones muy importantes:
- Permitir a las empresas proveedoras de servicios cargar las boletas ("create-tax")
- Efectuar el pago de un impuesto ("pay-tax")
Contamos entonces con dos entidades que representan esta información:
transactions
: representa la información de pagos, los datos de la tarjeta, el valor, etc.payables
: representa las boletas creadas, con su status correspondiente (pending, paid, etc.)
Nota: solo es posible pagar una sola vez cada boleta
Debes crear un servicio con los siguientes endpoint API:
-
Debe permitir crear una boleta de pago son la siguiente información, recibiendo la siguiente información:
- Tipo de servicio (Luz/Gas/etc...)
- Descripción del servicio. Ej:
'Edenor S.A.'
- Fecha de vencimiento. Ej (2021-01-15)
- Importe del servicio.
- Status del pago (pending, paid, etc.).
- Código de barra (debe ser único - PK)
-
Debe permitir realizar un pago (transacción), recibiendo la siguiente información:
- Método de pago (
debit_card
,credit_card
ocash
) - Número de la tarjeta (solo en caso de no ser efectivo)
- Importe del pago
- Código de barra
- Fecha de pago
- Método de pago (
-
Debe permitir listar aquellas boletas impagas en forma total o filtradas por tipo de servicio, devolviendo la siguiente información:
- Tipo de servicio (solo si se lista sin filtro)
- Fecha de vencimiento
- Importe del servicio
- Código de barra
-
Debe permitir listar los pagos (transacciones) entre un período de fechas, acumulando por día, devolviendo la siguiente información:
- Fecha de pago
- Importe acumulado
- Cantidad de transacciones en esa fecha
- El servicio debe estar escrito en Node.js / Python
- El proyecto debe tener un README.md con todas las instrucciones sobre cómo ejecutar y probar el proyecto y los servicios proporcionados.
- Subir a un repositior git con privilegios publicos de lectura y compartir el link como resultado