---
# System prepended metadata

title: Entrega 3
tags: [Templates, Documentation]

---

---
title: 'Entrega 3'
disqus: hackmd
---

Entrega 3
===


## Funcionalidades

Sobre las funcionalidades implementadas

1. Monto inicial 0: Se modifica el método de creación de cuentas de usuario para cambiar el monto random por monto 0. Además, se arregla un problema en donde si el monto total entre los 3 tipos de moneda es 0, aparece NaN porque se calculaban de manera incorrecta los porcentajes.
2. Cargar CLP a una cuenta: Se agregar en el navbar el boton "actualizar saldo". Al clickearlo se realiza un fetch para obtener todas las transferencias del banco asociadas a la cuenta. Luego, se suma al saldo en CLP todas las transferencias nuevas que no se hayan agregado anteriormente. Para realizar todo esto, lo primero que se hizo fue modificar la funcionalidad de registro y se agregó el rut del usuario, para hacer poder hacer match con las transacciones del banco. Luego, como no realizamos el bonus de la API en la entrega 2, utilizamos Mockapi.io para simular solicitudes a un banco. Además, para guardar las transacciones ya cargadas a una cuenta, creamos un nuevo modelo BankTransaction que guarda rut y monto de cada transacción realizada. Así, si una nueva transacción no tiene una instancia de BankTransaction, se procede a crear la instancia correspondiente y a actualizar el saldo del usuario.
3. Automatizar la variación de los precios: Esto se logró usando sidekiq, y apoyandose en lo que ya se recibió hecho de la entrega anterior. En primer lugar, se agregan los precios de las monedas en la página de inicio, dado que no existía una api funcional para obtener estos. Luego, se añaden dos gemas, sidekiq y sidekiq-scheduler, al Gemfile. Posteriormente se añade un worker, llamado PriceUpdateWorker (dentro de ./app/workers/), el cual se encargá de la lógica de la automatización de la variación de precios. Después en ./config/sidekiq.yml se configura para que las variaciones sean en los periodos de tiempo adecuados, con lo cual queda lista la lógica de automatización de variaciones de precios. 



###### tags: `Templates` `Documentation`
