Crear una aplicación rails para manejar cuentas y transacciones.
Cada cuenta se compone de:
- dirección (SHA256 en hexagesimal de un password alfanumérico)
- saldo (entero)
Cada transacción se compone de:
- cuenta (id)
- descripción
- monto (entero)
- instrucción (deposito o retiro)
La aplicación debe implementar las siguientes rutas
GET /cuentas/:dirección
Al entrar a esta ruta se busca una cuenta con dirección :dirección, si esta no existe se crea.
La página debe mostrar el saldo total de la cuenta y un listado de transacciones.
Además debe proveer un formulario para agregar una nueva transacción.
Este formulario debe permitir ingresar: password, descripción, monto y la instrucción (select box).
POST /cuentas/:dirección/tx
Esta página debe recibir los parámetros necesarios para crear una transacción. Debe considerar:
- El password provisto debe ser válido (comparar el SHA256 del password con la dirección)
- Si la transacción es de tipo
retiro
entonces debe validar que hay suficiente saldo en la cuenta. Si lo hay se debe descontar el monto del saldo de la cuenta. - Si la transacción es de tipo
deposito
se debe sumar el monto al saldo de la cuenta. - Una vez ejecutada la transacción debe redirigir a la página de la cuenta (ojalá mostrando un flash con el resultado de la transacción).
Esta página solo debe permitir llamadas desde el formulario de la página de la cuenta.
Agregar al endpoint anterior la posibilidad de ser llamado desde aplicaciones externas (Postman) en
formato json solo si incluyen un header X-Secret=verysecure