-
Notifications
You must be signed in to change notification settings - Fork 0
Hito 3: API HTTP Pedidos
Para dar la posibilidad de que los usuarios de la universidad puedan realizar pedidos desde máquinas distintas a la aplicación que se encuentre en otra distinta se ha desarrollado una API HTTP que facilite a los usuarios la posibilidad de hacerlo.
Esta clase está vacía ya que su principal función es conectar la aplicación desarrollada con el backend http creado para la misma y para ello se usan distintas etiquetas de SpringWeb que son @Configuration y @ComponentScan y cuyas funciones son indicar la configuración de la misma e indicar a que paquete concreto se unirá respectivamente.
Como la principal funcionalidad de nuestra api http es proporcionar los servicios al cliente de realizar pedidos, en esta clase facilitamos las distintas funciones necesarias para ello. Estas son las siguientes:
Añadir Producto al Pedido: Teniendo un pedido concreto, añadimos a él un producto de la cafetería indicando la cantidad del mismo. Podrá capturar una excepción en caso de que no haya suficiente stock del producto en la cafetería.
Eliminar Producto del Pedido: Teniendo un pedido concreto, eliminamos una cantidad concreta de un producto del mismo. Podrá capturar una excepción si no hay una cantidad suficiente en el pedido para eliminar o si el producto elegido no existe en el pedido.
Cambiar Estado del Pedido: Teniendo un pedido concreto, el estado de este puede variar dependiendo de la fase en la que se encuentre. Estas son: en cocina, entregado, pagado y finalizado. Los estados son secuenciales y por tanto no es posible cambiar de estado como se desee, de ser así, se capturará una excepción advirtiendo de ello.
Mostrar Caja del Día: Nos permite consultar las ganancias y el número de pedidos de una fecha concreta.
El objetivo de esta clase es ofrecer al usuario las funciones necesarias para poder elegir los distintos productos que desee añadir a sus pedidos. Las funciones son las siguientes:
Consultar Productos por Categoría: Muestra los distintos productos que se encuentran disponibles en una cafetería concreta filtrados por la categoría.
Mostrar Productos: Muestra todos los productos disponibles de una cafetería concreta.
Para facilitar la comunicación entre la cocina y el sistema, en este hito hemos desarrollado mediante SpringMail un servicio que notificará a la cocina, mediante correo electrónico, los distintos pedidos realizados por los usuarios junto con la hora a la que se encuentran programados.