Skip to content

Hito 4: API HTTP Monedero Electrónico

FcoJoseBernalPerez edited this page Jun 6, 2021 · 10 revisions

API HTTP para un backend Monedero Electrónico

Diagrama de Clases de la API HTTP del Monedero Electrónico


Actualización del Core API

En este hito es necesario crear una clase en nuestro sistema que soporte los objetos que tenga que representen las tarjetas con sus atributos necesarios como son el DNI del usuario, el número que la identifique y la cantidad de dinero que tiene el usuario dentro de esta para poder realizar pagos en los distintos establecimientos en los que se permita su uso.

Debemos destacar también la existencia dentro de esta clase también de dos funciones que permiten añadir dinero o eliminar en función de si se realiza una recarga de la misma o si se usa para comprar respectivamente.


Interfaz HTTP para Funcionalidades de Tarjeta

Para que las tarjetas de los usuarios funcionen en sistemas distintos, se ha decidido crear una interfaz HTTP para que las funciones necesarias para gestionarlas. Las funciones que hemos decidido facilitar a los usuarios son las siguientes:

Saldo del Usuario: Esta función permite que el usuario conozca su saldo siempre que coincida su DNI junto con el que tengamos guardado en la tarjeta.

Añadir Saldo: Permitirá al usuario recargar el saldo de su tarjeta indicando el número de esta y la cantidad que quiera añadir. Capturará una excepción en caso de que la cantidad recibida sea negativa o 0.

La recarga quedará guardada en la base de datos que hemos creado para ello y que se explicará más adelante.

Autorización de Pago: El objetivo de esta función es facilitar un código de confirmación al usuario que se ha generado de forma aleatoria dentro de la función. El código estará formado por doce caracteres tanto números como letras minúsculas y mayúsculas. Se le asignará este código también al pedido para que más adelante se pueda confirmar que el código de este y el que introduzca el usuario sea el mismo.

Le llegará al usuario a través de un correo electrónico usando el sistema desarrollado con SpringMail en el hito anterior.

Registrar Pago: El sistema eliminará saldo de la tarjeta del usuario para realizar un pago y quedará registrado este en la base de datos. En caso de que no tenga saldo suficiente o la cantidad que se le vaya a descontar es menor que 0 se capturará una excepción.


Persistencia en Base de Datos

En este punto del hito, utilizamos Spring Data JPA para generar la base de datos a partir de las siguientes clases:

Pago: Esta clase da cuerpo a los distintos pagos que haga el usuario y que después serán guardados en la base de datos. Están formados por el identificador del pago, que actuará como clave primaria dentro de la base de datos, el usuario que ha realizado el pago, el concepto del mismo, la fecha en la que se ha realizado y por último la cantidad que se le ha descontado de su tarjeta universitaria.

Recarga: Representa las distintas recargas que ha realizado el usuario a su tarjeta universitaria. Tendremos almacenados el identificador de la recarga, que al igual que en la clase anterior, se utilizará como clave primaria. Encontraremos también el DNI de la persona que ha realizado la recarga, el número de la tarjeta a la que se le ha aplicado, la cantidad añadida y la cantidad final tras la recarga.

Repositorio de Pagos y Recarga: Los repositorios se usarán para dar forma a las tablas que almacenarán los pagos y las recargas en la base de datos. Estas, son interfaces que están heredadas de la clase CrudRepository y en la que indicamos cuál será la clave primaria y el tipo de cada una de las instancias que irá asociado a cada una de las claves.

Clone this wiki locally