# Proyecto 1 ## SOFTWARE AVANZADO SECCIÓN N | Carne | Nombre | | -------- | -------- | | 201314826 | Rafael Angel Chocoj Xinico | | 201314817 | Alan Jeremias Pérez Tomás | | 201906564 | Lourdes Rosario Velásquez Melini | | 201780044 | Leonardo Roney Martínez Maldonado | ## Comunicación de los servicios disponibles para todos los grupos ## Diagrama de actividades de tres servicios ## Descripción de la seguridad de la aplicación ### JWT La seguridad es uno de los aspectos más importantes en cualquier sistema informático, y en particular, en las aplicaciones web. La autenticación y autorización de usuarios es esencial para proteger los datos y garantizar la privacidad de los usuarios. Una de las herramientas más utilizadas para la autenticación y autorización en aplicaciones web es JWT (JSON Web Token). JWT es un estándar abierto (RFC 7519) que define un formato compacto y seguro para transmitir información entre diferentes partes en forma de un objeto JSON firmado digitalmente. Los tokens JWT se utilizan para autenticar y autorizar solicitudes HTTP en aplicaciones web y servicios API RESTful. Python es un lenguaje de programación de código abierto y popular en la comunidad de desarrollo de software. Tiene una gran cantidad de bibliotecas y frameworks para desarrollar aplicaciones web, incluyendo soporte para JWT. ### Gateway El gateway es una pieza clave en la arquitectura de microservicios, ya que es el punto de entrada para todas las solicitudes externas que llegan a nuestra aplicación. Por lo tanto, la seguridad en el gateway es un aspecto crítico que debe ser abordado cuidadosamente para garantizar la protección de nuestros servicios y la privacidad de nuestros usuarios. ## Documentación de los pipelines ## Análisis y solución de la problemática propuesta Para desarrollar una plataforma de gestión de actividades empresariales, es importante tener en cuenta las siguientes consideraciones: Seguridad: La plataforma debe tener medidas de seguridad adecuadas para proteger los datos confidenciales de los usuarios y evitar que sean vulnerables a ataques cibernéticos. Esto incluye la implementación de autenticación de usuario, autorización de acceso a los recursos y encriptación de datos. Integración: La plataforma debe ser capaz de integrarse con fuentes externas para ampliar el catálogo de productos que se ofrecen y así brindar una mayor variedad de opciones a los usuarios. Para esto, se debe desarrollar una interfaz de programación de aplicaciones (API) para que otros sistemas puedan conectarse a la plataforma de manera segura y eficiente. Administración de recursos humanos: La plataforma debe tener funcionalidades para la gestión de recursos humanos, como la administración de empleados, sus roles y permisos, y la asignación de tareas y proyectos. Compra y ventas de productos: La plataforma debe permitir la compra y venta de productos de manera segura y eficiente. Inventarios: La plataforma debe tener funcionalidades para la gestión de inventarios, incluyendo la administración de stocks. Contabilidad: La plataforma debe tener funcionalidades para la gestión contable. En resumen, el desarrollo de una plataforma de gestión de actividades empresariales requiere de la implementación de medidas de seguridad adecuadas, la integración con fuentes externas, y la inclusión de funcionalidades para la gestión de recursos humanos, compras y ventas de productos, inventarios, contabilidad y rutas de distribución. Todo ello con el objetivo de brindar una solución completa y eficiente para las necesidades de la empresa. #### interconectividad Para la solución de la interconectividad se tiene la siguiente gráfica ![](https://i.imgur.com/T5eAttF.png) ## Arquitectura de la solución ![](https://i.imgur.com/6Lpe7Nn.png) ### Diagrama de actividades de login ![Imagen](./imgs/login.png) ### Diagrama de actividades de compras ![](https://i.imgur.com/w1t65nV.jpg) ### Diagrama de actividades de ventas ![](https://i.imgur.com/yBE2Q9q.jpg) ## Listado de microservicios con sus respectivos contratos # Login ## Autenticación ### Descripción del microservicio Microservicio necesario para la validación de las credenciales de los usuarios. El cual tendrá uso de jwt para el token generado. |ID: 001|Nombre: Microservicio de Autenticación| | :- | :- | |Prioridad: Alta|Historia de usuario: Se quiere poder validar las credenciales ingresadas por el usuario para poder autenticar al usuario. | |Estimado: 5 puntos || |Módulo: Autenticación|| |Criterios de Aceptación:| |Debe poder retornar un token válido para autenticar al usuario y retornar los datos del mismo. | || || |Ruta:|/login/autentication| |Método:|POST| |Formato de entrada: JSON|| ||||||| ||||||| ### Header: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> <tr> <td>Content type</td> <td>Header</td> <td>application/json</td> </tr> </table> ### Body: |**Atributo**|**Tipo**|**Descripción**| | :- | :- | :- | |cui|string|nombre del usuario | |contra|string|contraseña del usuario | |Formato de salida: JSON|||| | :- | :- | :- | :- | |Código de respuesta exitosa: 200||| |Salida:|||||| ||||||| |**Atributo**|**Tipo**|**Descripción**| |Mensaje |string|Logueado exitosamente | |||| ||||||| |Código de respuesta fallida:|||| |Se utilizará la siguiente lista de errores como referencia:|| |<https://learn.microsoft.com/es-es/partner-center/developer/error-codes>| ||||||| |**Código**|**Descripción**| |400|Fallo en el proceso| |401|No autorizado| |500|Fallo interno del servidor| |Body de Salida||| | :-: | :-: | :-: | |**Atributo**|**Tipo**|**Descripción**| |Codigo|Entero|Código de salida devuelto por el servidor| |Mensaje|String|Mensaje que indica que hubo un error | |Ejemplo de parámetros de entrada exitosa|| | :-: | :-: | ``` { "cui": "3001629780101", "contra": "passUsu" } ``` |Ejemplo de parámetros de salida exitosa|| | :-: | :-: | ``` { "status":200, "Mensaje":"Logueado correctamente", "token": “i893f4fc79badea1dc5db970cf397c8248bac47cc3acf9915ba60b5d76b0e88f” } ``` |Ejemplo de parámetros de salida fallida|| | :-: | :-: | ``` { "status":400, "Mensaje":"Ha ocurrido un error en la validación de datos" } { "status":401, "Mensaje":"No autorizado" } { "status":500, "Mensaje":"Error interno en el servidor" } ``` # **USUARIO** ## Registro de usuario ### Descripción del microservicio Microservicio necesario para el registro de datos de un nuevo usuario. |ID:002|Nombre: Registro de usuario | | :- | :- | |Prioridad: Alta|<p>Historia de usuario:</p><p>Se requiere registrar usuarios para poder ser logueados en la aplicación y ser registrados en la base de datos. </p>| |Estimado: 5 puntos || |Módulo: Usuario|| |Criterios de Aceptación:| |<p>El servicio debe retornar el usuario registrado </p><p>El servicio tiene la siguiente configuración</p>| || || |Ruta:|/usuario/addUsuario| |Método:|POST| |Formato de entrada: JSON|| ||||||| ||||||| ### Header: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> <tr> <td>Content type</td> <td>Header</td> <td>application/json</td> </tr> </table> |Body||| | :- | :- | :- | |**Atributo**|**Tipo**|**Descripción**| |cui|string|nombre del usuario del cliente| |primer_nombre|string|primer nombre del usuario| |segundo_nombre|string|segundo nombre del usuario| |primer_apellido|string|primer apellido del usuario| |segundo_apellido|string|segundo apellido del usuario| |contra|string|contraseña del usuario del cliente | |correo |string|correo del usuario | |tipo |string|tipo de usuario | |||| |Formato de salida: JSON|||| | :- | :- | :- | :- | |Código de respuesta exitosa: 200||| |Salida:|||||| ||||||| |**Atributo**|**Tipo**|**Descripción**| |Mensaje|string|La información del usuario se ha actualizado con éxito | |||| ||||||| |Código de respuesta fallida:|||| |Se utilizará la siguiente lista de errores como referencia:|| |<https://learn.microsoft.com/es-es/partner-center/developer/error-codes>| ||||||| |**Código**|**Descripción**| |400|Fallo en el proceso| |401|No autorizado| |500|Fallo interno del servidor| |Body de Salida||| | :-: | :-: | :-: | |**Atributo**|**Tipo**|**Descripción**| |Codigo|Entero|Código de salida devuelto por el servidor| |Mensaje|String|Mensaje que indica que hubo un error | |Ejemplo de parámetros de entrada|| | :-: | :-: | ``` { "cui": "3001629780101", "nombres": "Javier", "apellidos": "López", "contra": "passUsu", "correo": "val@gmail.com", "tipo": "A", "estado": "P", "id_grupo": 1, "seccion": "N" } ``` |Ejemplo de parámetros de salida exitosa|| | :-: | :-: | ``` { "status":200, "Mensaje":"usuario 33007629530101 correctamente registrado" } ``` |Ejemplo de parámetros de salida fallida|| | :-: | :-: | ``` { "status":400, "Mensaje":"Ha ocurrido un error en el ingreso del usuario" } { "status":401, "Mensaje":"No autorizado" } { "status":500, "Mensaje":"Error interno en el servidor" } ``` ## Ver información usuario ### Descripción del microservicio Microservicio necesario para la obtención de la información del servicio del usuario. |ID:007|Nombre: Ver información usuario | | :- | :- | |Prioridad: Alta |<p>Historia de usuario:</p><p>Se requiere poder obtener la información del usuario para poder mostrar que datos registro. </p>| |Estimado: 5 puntos|| |Módulo: Usuario || |Criterios de Aceptación:| |El servicio debe retornar la información del usuario que está logueado | || || |Ruta:|/usuario/infoUsuario| |Método:|GET| |Formato de entrada: JSON|| ||||||| ### Header: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> <tr> <td>Content type</td> <td>Header</td> <td>application/json</td> </tr> <tr> <td>Authentication</td> <td>Header</td> <td> bearer token </td> </tr> </table> |Body||| | :- | :- | :- | |**Atributo**|**Tipo**|**Descripción**| |idUser|number|valor del id del usuario| |||| |||| |Formato de salida: JSON|||| | :- | :- | :- | :- | |Código de respuesta exitosa: 200||| |Salida:|||||| ||||||| |**Atributo**|**Tipo**|**Descripción**| |Mensaje|string|La información del usuario se ha devuelto con éxito | |||| ||||||| |Código de respuesta fallida:|||| |Se utilizará la siguiente lista de errores como referencia:|| |<https://learn.microsoft.com/es-es/partner-center/developer/error-codes>| ||||||| |**Código**|**Descripción**| |400|Fallo en el proceso| |401|No autorizado| |500|Fallo interno del servidor| |Body de Salida||| | :-: | :-: | :-: | |**Atributo**|**Tipo**|**Descripción**| |Codigo|Entero|Código de salida devuelto por el servidor| |Mensaje|String|Mensaje que indica que hubo un error | |Ejemplo de parámetros de entrada|| | :-: | :-: | ``` { "idUser":"25" } ``` |Ejemplo de parámetros de salida exitosa|| | :-: | :-: | ``` { "status":200, "Mensaje":"usuario 33007629530101 correctamente registrado", "datos": { "cui": "3001629780101", "primer_nombre": "Javier", "segundo_nombre": "luis", "primer_apellido": "López", "segundo_apellido": "López", "correo": "val@gmail.com" } } ``` |Ejemplo de parámetros de salida fallida|| | :-: | :-: | ``` { "status":400, "Mensaje":"Ha ocurrido un error en la obtención de datos" } { "status":401, "Mensaje":"No autorizado" } { "status":500, "Mensaje":"Error interno en el servidor" } ``` ## Actualizar información usuario ### Descripción del microservicio Microservicio necesario para la actualización de la información del usuario. |ID:008|Nombre:Actualizar información usuario| | :- | :- | |Prioridad: Alta |<p>Historia de usuario:</p><p>Se requiere poder actualizar la información del usuario. </p>| |Estimado: 7 puntos|| |Módulo: Usuario|| |Criterios de Aceptación:| |El servicio debe actualizar la información del usuario que está logueado | || || |Ruta:|/usuario/editUsuario/{idUsuario}| |Método:|PUT| |Formato de entrada:|JSON| ||||||| ||||||| ### Header: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> <tr> <td>Content type</td> <td>Header</td> <td>application/json</td> </tr> <tr> <td>Authentication</td> <td>Header</td> <td> bearer token </td> </tr> </table> |Body||| | :- | :- | :- | |**Atributo**|**Tipo**|**Descripción**| |idUsuario|number|id del cliente| ||| |Formato de salida: JSON|||| | :- | :- | :- | :- | |Código de respuesta exitosa: 200||| |Salida:|||||| ||||||| |**Atributo**|**Tipo**|**Descripción**| |Mensaje|string|La información del usuario se ha actualizado con éxito | |||| ||||||| |Código de respuesta fallida:|||| |Se utilizará la siguiente lista de errores como referencia:|| |<https://learn.microsoft.com/es-es/partner-center/developer/error-codes>| ||||||| |**Código**|**Descripción**| |400|Fallo en el proceso| |401|No autorizado| |500|Fallo interno del servidor| |Body de Salida||| | :-: | :-: | :-: | |**Atributo**|**Tipo**|**Descripción**| |Codigo|Entero|Código de salida devuelto por el servidor| |Mensaje|String|Mensaje que indica que hubo un error | |Ejemplo de parámetros de entrada|| | :-: | :-: | ``` { "idUser":"25", "datos": { "primer_nombre": "Javier", "segundo_nombre": "luis", "primer_apellido": "López", "segundo_apellido": "López", "correo": "val@gmail.com" } } ``` |Ejemplo de parámetros de salida exitosa|| | :-: | :-: | ``` { "status":200, "Mensaje":"Se han actualizado los datos del usuario 3300962560101" } ``` |Ejemplo de parámetros de salida fallida|| | :-: | :-: | ``` { "status":400, "Mensaje":"Ha ocurrido un error en la actualización de datos" } { "status":401, "Mensaje":"No autorizado" } { "status":500, "Mensaje":"Error interno en el servidor" } ``` ## Envio de correo ### Descripción del microservicio Microservicio necesario para el envio del correo |ID:007|Nombre: Envio del correo | | :- | :- | |Prioridad: Alta |<p>Historia de usuario:</p><p>Se requiere poder enviar un correo de confirmación al cliente </p>| |Estimado: 5 puntos|| |Módulo: Usuario || |Criterios de Aceptación:| |El servicio debe retornar la información del usuario que está logueado | || || |Ruta:|/usuario/sendCorreo| |Método:|POST| |Formato de entrada: JSON|| ||||||| ### Header: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> <tr> <td>Content type</td> <td>Header</td> <td>application/json</td> </tr> </table> |Body||| | :- | :- | :- | |**Atributo**|**Tipo**|**Descripción**| |correo|string|correo del usuario| |||| |||| |Formato de salida: JSON|||| | :- | :- | :- | :- | |Código de respuesta exitosa: 200||| |Salida:|||||| ||||||| |**Atributo**|**Tipo**|**Descripción**| |Mensaje|string|El correo se ha enviado con éxito | |||| ||||||| |Código de respuesta fallida:|||| |Se utilizará la siguiente lista de errores como referencia:|| |<https://learn.microsoft.com/es-es/partner-center/developer/error-codes>| ||||||| |**Código**|**Descripción**| |400|Fallo en el proceso| |500|Fallo interno del servidor| |Body de Salida| | :-: | |**Tipo**|**Descripción**| |String|Muestra el detalle del servicio realizado| **Descripción**| Muestra el detalle del servicio realizado| |**Atributo**|**Tipo**|**Descripción**| |Mensaje|String|Muestra el detalle del servicio realizado| |||||||| |||||||| |Ejemplo de parámetros de entrada||||| || |<p>{</p><p>"correo":"val@gmail.com"}</p>| || || |Ejemplo de parámetros de salida exitosa|||| |<p>{</p><p>"status": 400,</p><p>"mensaje": “Correo enviado correctamente”</p><p>}</p>| || || || || |Ejemplo de parámetros de salida fallida|||| |<p>{</p><p>"status": 400,</p><p>"mensaje": “Ha ocurrido un error en la obtención de datos”</p><p>}</p>| || || || || || ### Inventario #### Verificación de cantidad de producto |**ID**: | **Nombre**: Verificación de cantidad de producto | | :- | :- | |**Prioridad**: Media | **Historia de usuario**: el usuario quiere obtener la cantidad de productos en stock | |**Estimado**: 2| | |**Módulo**: Inventario | | |<p>**Criterios de Aceptación**: el retorna la cantidad en stock de del producto | |Ruta: | /inventario/getstock/:idproducto || |Método: | GET | |Formato de entrada:|JSON||| ### Header: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> <tr> <td>Content type</td> <td>Header</td> <td>application/json</td> </tr> <tr> <td>Authentication</td> <td>Header</td> <td> bearer token </td> </tr> </table> ### Body: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> </table> ### Parámetros: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> <tr> <td> N/A </td> <td>N/A</td> <td>N/A</td> </tr> </table> |Formato de salida: JSON|||| | :- | :- | :- | :- | |Código de respuesta exitosa: HTTP 200||| |Salida:|||||| |**Atributo**|**Tipo**|**Descripción**| |status|Entero|Código de respuesta del servidor| |Mensaje|String|Mensaje de respuesta del servidor| |stock|Entero|stock disponible| |Código de respuesta fállida:|||| |Se utilizará la siguiente lista de errores como referencia:|| |<https://learn.microsoft.com/es-es/partner-center/developer/error-codes>| |**Código**|**Descripción**| |400|Solicitud incorrecta| |401|No autorizado| |500|Fallo interno del servidor| |Body de Salida|||| | :- |:- |:- |:- | |**Atributo**|**Tipo**|**Descripción**| |Codigo|Entero|Código de salida devuelto por el servidor| |Mensaje|String|Mensaje que indica que hubo un error | |Ejemplo de parámetros de entrada: ||||| ``` /inventario/getstock/25 ``` Ejemplo de parámetros de salida exitosa ``` { "status":200, "Mensaje":"datos obtenidos", "stock":25 } ``` Ejemplo de parámetros de salida fallida ``` { "status":500, "Mensaje":"Error interno en el servidor" } ``` #### Actualizar Stock |**ID**: | **Nombre**: Actualizar Stock | | :- | :- | |**Prioridad**: Alta | **Historia de usuario**: actualiza el stock del producto | |**Estimado**: 2| | |**Módulo**: Inventario | | |<p>**Criterios de Aceptación**: El servicio debe de retornar que la actualización se realizó sin ningún error. | |Ruta: | /inventario/actualizarstock || |Método: | PUT | |Formato de entrada:|JSON||| ### Header: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> <tr> <td>Content type</td> <td>Header</td> <td>application/json</td> </tr> <tr> <td>Authentication</td> <td>Header</td> <td> bearer token </td> </tr> </table> ### Body: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> <tr> <td>idproducto</td> <td>Sting</td> <td>id del producto a obtener stock</td> </tr> <tr> <td>stock</td> <td>Entero</td> <td> Cantidad a actualizar </td> </tr> </table> ### Parámetros: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> <tr> <td> N/A </td> <td>N/A</td> <td>N/A</td> </tr> </table> |Formato de salida: JSON|||| | :- | :- | :- | :- | |Código de respuesta exitosa: HTTP 200||| |Salida:|||||| |**Atributo**|**Tipo**|**Descripción**| |status|Entero|Código de respuesta del servidor| |Mensaje|Cadena|Mensaje de respuesta del servidor| |Código de respuesta fállida:|||| |Se utilizará la siguiente lista de errores como referencia:|| |<https://learn.microsoft.com/es-es/partner-center/developer/error-codes>| |**Código**|**Descripción**| |400|Solicitud incorrecta| |401|No autorizado| |500|Fallo interno del servidor| |Body de Salida|||| | :- |:- |:- |:- | |**Atributo**|**Tipo**|**Descripción**| |Codigo|Entero|Código de salida devuelto por el servidor| |Mensaje|String|Mensaje que indica que hubo un error | |Ejemplo de parámetros de entrada: ||||| ``` { "idproducto": 4521 "stock": 5 } ``` Ejemplo de parámetros de salida exitosa ``` { "status":200, "Mensaje":"Se actualizó stock correctamente", } ``` Ejemplo de parámetros de salida fallida ``` { "status":500, "Mensaje":"Error interno en el servidor" } ``` #### Registrar producto |**ID**: | **Nombre**: Registrar producto | | :- | :- | |**Prioridad**: Alta | **Historia de usuario**: se quiere registrar los productos para poder ser vendido y estar disponible para las transacciones | |**Estimado**: 2| | |**Módulo**: Inventario | | |<p>**Criterios de Aceptación**: El servicio debe de retornar que el registro se hizo sin ningún error. | |Ruta: | /inventario/addproducto || |Método: | POST | |Formato de entrada:|JSON||| ### Header: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> <tr> <td>Content type</td> <td>Header</td> <td>application/json</td> </tr> <tr> <td>Authentication</td> <td>Header</td> <td> bearer token </td> </tr> </table> ### Body: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> <tr> <td>nombre</td> <td>Sting</td> <td>nombre del producto</td> </tr> <tr> <td>precio</td> <td>Decimal</td> <td> precio del producto </td> </tr> <tr> <td>costo</td> <td>Decimal</td> <td> Costo del producto </td> </tr> <tr> <td>stock</td> <td>Entero</td> <td> stock del producto </td> </tr> <tr> <td>idcategoria</td> <td>Entero</td> <td> Categoria que pertenece el producto </td> </tr> </table> ### Parámetros: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> <tr> <td> N/A </td> <td>N/A</td> <td>N/A</td> </tr> </table> |Formato de salida: JSON|||| | :- | :- | :- | :- | |Código de respuesta exitosa: HTTP 200||| |Salida:|||||| |**Atributo**|**Tipo**|**Descripción**| |status|Entero|Código de respuesta del servidor| |Mensaje|String|Mensaje de respuesta del servidor| |Código de respuesta fállida:|||| |Se utilizará la siguiente lista de errores como referencia:|| |<https://learn.microsoft.com/es-es/partner-center/developer/error-codes>| |**Código**|**Descripción**| |400|Solicitud incorrecta| |401|No autorizado| |500|Fallo interno del servidor| |Body de Salida|||| | :- |:- |:- |:- | |**Atributo**|**Tipo**|**Descripción**| |Codigo|Entero|Código de salida devuelto por el servidor| |Mensaje|String|Mensaje que indica que hubo un error | |Ejemplo de parámetros de entrada: ||||| ``` { "nombre": "Pizza peperoni", "Entero": 2, "precio": 275, "costo": 200, "stock": 10 } ``` Ejemplo de parámetros de salida exitosa ``` { "status":200, "Mensaje":"se ingresó registro correctamente", } ``` Ejemplo de parámetros de salida fallida ``` { "status":500, "Mensaje":"Error interno en el servidor" } ``` #### Actualización de producto |**ID**: | **Nombre**: Actualización de producto| | :- | :- | |**Prioridad**: Media | **Historia de usuario**: se quiere modificar o actualizar los productos registrados | |**Estimado**: 2| | |**Módulo**: Inventario | | |<p>**Criterios de Aceptación**: El servicio debe de retornar que la actualización se hizo sin ningún error. | |Ruta: | /inventario/modproducto || |Método: | PUT | |Formato de entrada:|JSON||| ### Header: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> <tr> <td>Content type</td> <td>Header</td> <td>application/json</td> </tr> <tr> <td>Authentication</td> <td>Header</td> <td> bearer token </td> </tr> </table> ### Body: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> <tr> <td>nombre</td> <td>Sting</td> <td>nombre del producto</td> </tr> <tr> <td>precio</td> <td>Decimal</td> <td> precio del producto </td> </tr> <tr> <td>costo</td> <td>Decimal</td> <td> Costo del producto </td> </tr> <tr> <td>stock</td> <td>Entero</td> <td> stock del producto </td> </tr> <tr> <td>categoria</td> <td>String</td> <td> Categoria que pertenece el producto </td> </tr> <tr> <td>idproducto</td> <td>Entero</td> <td> id interno del producto </td> </tr> </table> ### Parámetros: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> <tr> <td> N/A </td> <td>N/A</td> <td>N/A</td> </tr> </table> |Formato de salida: JSON|||| | :- | :- | :- | :- | |Código de respuesta exitosa: HTTP 200||| |Salida:|||||| |**Atributo**|**Tipo**|**Descripción**| |status|Entero|Código de respuesta del servidor| |Mensaje|String|Mensaje de respuesta del servidor| |Código de respuesta fállida:|||| |Se utilizará la siguiente lista de errores como referencia:|| |<https://learn.microsoft.com/es-es/partner-center/developer/error-codes>| |**Código**|**Descripción**| |400|Solicitud incorrecta| |401|No autorizado| |500|Fallo interno del servidor| |Body de Salida|||| | :- |:- |:- |:- | |**Atributo**|**Tipo**|**Descripción**| |Codigo|Entero|Código de salida devuelto por el servidor| |Mensaje|String|Mensaje que indica que hubo un error | |Ejemplo de parámetros de entrada: ||||| ``` { "nombre": "Pizza peperoni", "categoria": "comida", "precio": 275, "costo": 200, "stock": 10, "idproducto": 2 } ``` Ejemplo de parámetros de salida exitosa ``` { "status":200, "Mensaje":"se actualizó registro correctamente", } ``` Ejemplo de parámetros de salida fallida ``` { "status":500, "Mensaje":"Error interno en el servidor" } ``` #### Verificar Tipo de compra |**ID**: | **Nombre**: Verificar Tipo de compra | | :- | :- | |**Prioridad**: Media | **Historia de usuario**: el usuario debe de verificar las compra y venta por realizar | |**Estimado**: 2| | |**Módulo**: Inventario | | |<p>**Criterios de Aceptación**: el retorna la cantidad en stock de del producto | |Ruta: | /inventario/getcompraventa || |Método: | GET | |Formato de entrada:|JSON||| ### Header: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> <tr> <td>Content type</td> <td>Header</td> <td>application/json</td> </tr> <tr> <td>Authentication</td> <td>Header</td> <td> bearer token </td> </tr> </table> ### Body: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> </table> ### Parámetros: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> <tr> <td> N/A </td> <td>N/A</td> <td>N/A</td> </tr> </table> |Formato de salida: JSON|||| | :- | :- | :- | :- | |Código de respuesta exitosa: HTTP 200||| |Salida:|||||| |**Atributo**|**Tipo**|**Descripción**| |status|Entero|Código de respuesta del servidor| |Mensaje|Cadena|Mensaje de respuesta del servidor| |Data|Arreglo|Aquí ira toda la información, que devuelva el servidor al devolver una petición| |Código de respuesta fállida:|||| |Se utilizará la siguiente lista de errores como referencia:|| |<https://learn.microsoft.com/es-es/partner-center/developer/error-codes>| |**Código**|**Descripción**| |400|Solicitud incorrecta| |401|No autorizado| |500|Fallo interno del servidor| |Body de Salida|||| | :- |:- |:- |:- | |**Atributo**|**Tipo**|**Descripción**| |Codigo|Entero|Código de salida devuelto por el servidor| |Mensaje|String|Mensaje que indica que hubo un error | |Ejemplo de parámetros de entrada: ||||| ``` ``` Ejemplo de parámetros de salida exitosa ``` { "status":200, "Mensaje":"Tarjeta ingresada correctamente", "Data":[ { "Compra":[] "Venta": [] } ] } ``` Ejemplo de parámetros de salida fallida ``` { "status":500, "Mensaje":"Error interno en el servidor" } ``` ### Contabilidad #### Mostrar las ventas de un producto |**ID**: | **Nombre**: Mostrar las ventas de un producto | | :- | :- | |**Prioridad**: Media | **Historia de usuario**: muestra las ventas realizadas por el producto | |**Estimado**: 2| | |**Módulo**: Contabilidad | | |<p>**Criterios de Aceptación**: el retorna la cantidad en stock de del producto | |Ruta: | /contabilidad/getventas/:idproducto || |Método: | GET | |Formato de entrada:|JSON||| ### Header: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> <tr> <td>Content type</td> <td>Header</td> <td>application/json</td> </tr> <tr> <td>Authentication</td> <td>Header</td> <td> bearer token </td> </tr> </table> ### Body: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> </table> ### Parámetros: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> <tr> <td> N/A </td> <td>N/A</td> <td>N/A</td> </tr> </table> |Formato de salida: JSON|||| | :- | :- | :- | :- | |Código de respuesta exitosa: HTTP 200||| |Salida:|||||| |**Atributo**|**Tipo**|**Descripción**| |status|Entero|Código de respuesta del servidor| |Mensaje|Cadena|Mensaje de respuesta del servidor| |Data|Arreglo|Aquí ira toda la información, que devuelva el servidor al devolver una petición| |Código de respuesta fállida:|||| |Se utilizará la siguiente lista de errores como referencia:|| |<https://learn.microsoft.com/es-es/partner-center/developer/error-codes>| |**Código**|**Descripción**| |400|Solicitud incorrecta| |401|No autorizado| |500|Fallo interno del servidor| |Body de Salida|||| | :- |:- |:- |:- | |**Atributo**|**Tipo**|**Descripción**| |Codigo|Entero|Código de salida devuelto por el servidor| |Mensaje|String|Mensaje que indica que hubo un error | |Ejemplo de parámetros de entrada: ||||| ``` /contabilidad/getventas/14 ``` Ejemplo de parámetros de salida exitosa ``` { "status":200, "Mensaje":"Tarjeta ingresada correctamente", "Data":[ { "compra": "54546" "fecha": 25/02/2023 "valor": 25.50 } ] } ``` Ejemplo de parámetros de salida fallida ``` { "status":500, "Mensaje":"Error interno en el servidor" } ``` #### Mostrar Salario de empleados |**ID**: | **Nombre**: Mostrar Salario de empleados | | :- | :- | |**Prioridad**: Media | **Historia de usuario**: muestra el salario de los empleados | |**Estimado**: 2| | |**Módulo**: Contabilidad | | |<p>**Criterios de Aceptación**: el retorna la cantidad en stock de del producto | |Ruta: | /contabilidad/getsalarios || |Método: | GET | |Formato de entrada:|JSON||| ### Header: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> <tr> <td>Content type</td> <td>Header</td> <td>application/json</td> </tr> <tr> <td>Authentication</td> <td>Header</td> <td> bearer token </td> </tr> </table> ### Body: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> </table> ### Parámetros: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> <tr> <td> N/A </td> <td>N/A</td> <td>N/A</td> </tr> </table> |Formato de salida: JSON|||| | :- | :- | :- | :- | |Código de respuesta exitosa: HTTP 200||| |Salida:|||||| |**Atributo**|**Tipo**|**Descripción**| |status|Entero|Código de respuesta del servidor| |Mensaje|Cadena|Mensaje de respuesta del servidor| |Data|Arreglo|Aquí ira toda la información, que devuelva el servidor al devolver una petición| |Código de respuesta fállida:|||| |Se utilizará la siguiente lista de errores como referencia:|| |<https://learn.microsoft.com/es-es/partner-center/developer/error-codes>| |**Código**|**Descripción**| |400|Solicitud incorrecta| |401|No autorizado| |500|Fallo interno del servidor| |Body de Salida|||| | :- |:- |:- |:- | |**Atributo**|**Tipo**|**Descripción**| |Codigo|Entero|Código de salida devuelto por el servidor| |Mensaje|String|Mensaje que indica que hubo un error | |Ejemplo de parámetros de entrada: ||||| ``` /contabilidad/getsalarios ``` Ejemplo de parámetros de salida exitosa ``` { "status":200, "Mensaje":"Tarjeta ingresada correctamente", "Data":[ { "idempleado": 126 "Nombre": "Mario Kart" "salario": 25000 } ] } ``` Ejemplo de parámetros de salida fallida ``` { "status":500, "Mensaje":"Error interno en el servidor" } ``` #### Ingresar pago de salario |**ID**: | **Nombre**: Ingresar pago de salario | | :- | :- | |**Prioridad**: Media | **Historia de usuario**: se realiza el pago de salario del cliente | |**Estimado**: 2| | |**Módulo**: Contabilidad | | |<p>**Criterios de Aceptación**: si el proceso se realizó con exito, se le asigna el pago al empleado | |Ruta: | /contabilidad/setsalario || |Método: | POST | |Formato de entrada:|JSON||| ### Header: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> <tr> <td>Content type</td> <td>Header</td> <td>application/json</td> </tr> <tr> <td>Authentication</td> <td>Header</td> <td> bearer token </td> </tr> </table> ### Body: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> <tr> <td>idempleado</td> <td>Entero</td> <td>id interno del empleado</td> </tr> <tr> <td>Fecha</td> <td>Date</td> <td> Mes a pagar la planilla </td> </tr> <tr> <td>Descripcion</td> <td> String</td> <td> Descripción del pago de planilla </td> ¿ </table> ### Parámetros: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> <tr> <td> N/A </td> <td>N/A</td> <td>N/A</td> </tr> </table> |Formato de salida: JSON|||| | :- | :- | :- | :- | |Código de respuesta exitosa: HTTP 200||| |Salida:|||||| |**Atributo**|**Tipo**|**Descripción**| |status|Entero|Código de respuesta del servidor| |Mensaje|Cadena|Mensaje de respuesta del servidor| |Código de respuesta fállida:|||| |Se utilizará la siguiente lista de errores como referencia:|| |<https://learn.microsoft.com/es-es/partner-center/developer/error-codes>| |**Código**|**Descripción**| |400|Solicitud incorrecta| |401|No autorizado| |500|Fallo interno del servidor| |Body de Salida|||| | :- |:- |:- |:- | |**Atributo**|**Tipo**|**Descripción**| |Codigo|Entero|Código de salida devuelto por el servidor| |Mensaje|String|Mensaje que indica que hubo un error | |Ejemplo de parámetros de entrada: ||||| ``` { "idempleado": 25, "Fecha":"25/02/2023", "Descripcion": "pago mes de febrero" } ``` Ejemplo de parámetros de salida exitosa ``` { "status":200, "Mensaje":"pago registrado correctamente", } ``` Ejemplo de parámetros de salida fallida ``` { "status":500, "Mensaje":"Error interno en el servidor" } ``` #### Aumentos de salario |**ID**: | **Nombre**: Aumentos de salario | | :- | :- | |**Prioridad**: Media | **Historia de usuario**: Actualiza el salario del empleado | |**Estimado**: 2| | |**Módulo**: Contabilidad | | |<p>**Criterios de Aceptación**: si el proceso se realizó con exito, se le asigna el pago al empleado | |Ruta: | /contabilidad/modsalario || |Método: | PUT | |Formato de entrada:|JSON||| ### Header: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> <tr> <td>Content type</td> <td>Header</td> <td>application/json</td> </tr> <tr> <td>Authentication</td> <td>Header</td> <td> bearer token </td> </tr> </table> ### Body: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> <tr> <td>idempleado</td> <td>Entero</td> <td>id interno del empleado</td> </tr> <tr> <td>salario</td> <td>Decimal</td> <td> Nuevo salario a ingresar </td> </tr> </table> ### Parámetros: <table> <tr><td> <b> Atributo </b></td> <td> <b> Tipo </b></td> <td> <b>Descripcion</b> </td> </tr> <tr> <td> N/A </td> <td>N/A</td> <td>N/A</td> </tr> </table> |Formato de salida: JSON|||| | :- | :- | :- | :- | |Código de respuesta exitosa: HTTP 200||| |Salida:|||||| |**Atributo**|**Tipo**|**Descripción**| |status|Entero|Código de respuesta del servidor| |Mensaje|String|Mensaje de respuesta del servidor| |Código de respuesta fállida:|||| |Se utilizará la siguiente lista de errores como referencia:|| |<https://learn.microsoft.com/es-es/partner-center/developer/error-codes>| |**Código**|**Descripción**| |400|Solicitud incorrecta| |401|No autorizado| |500|Fallo interno del servidor| |Body de Salida|||| | :- |:- |:- |:- | |**Atributo**|**Tipo**|**Descripción**| |Codigo|Entero|Código de salida devuelto por el servidor| |Mensaje|String|Mensaje que indica que hubo un error | |Ejemplo de parámetros de entrada: ||||| ``` { "idempleado": 25, "salario":15000 } ``` Ejemplo de parámetros de salida exitosa ``` { "status":200, "Mensaje":"se actualizó correctamente", } ``` Ejemplo de parámetros de salida fallida ``` { "status":500, "Mensaje":"Error interno en el servidor" } ``` # **Venta** > Mostrar Catalogo de productos: > Microservicio que muestra el catalogo de productos a la venta. |**ID**:016|**Nombre**: Catalogo de productos| | :- | :- | |**Prioridad**:Baja|**Historia de usuario**: El usuario verá el catalogo de productos listos para la venta y envio | |**Estimado**:3|| |**Módulo**: Venta|| |**Criterios de Aceptación**: El cliente podrá observar el catalogo de producto con la cantidad en stock disponible y el precio por unidad de cada uno de los productos a la venta| |Ruta:| /api/Venta | |Método:|GET| |Formato de entrada:|JSON| |Header:||||| | :- | :- | :- | :- | :- | |**Atributo**|**Tipo**|**Descripción**|| |Content type|Header|application/json|| |Authentication|header|token <TOKEN>|| |||||| |Body||| | :-: | :-: | :-: | |**Atributo**|**Tipo**|**Descripción**| |N/A|N/A|N/A| |Parámetros||| | :-: | :-: | :-: | |**Atributo**|**Tipo**|**Descripción**| |N/A|N/A|N/A| |Formato de salida: JSON|||| | :- | :- | :- | :- | |Código de respuesta exitosa: HTTP 200||| |Salida:|||||| |**Atributo**|**Tipo**|**Descripción**| |status|Entero|Código de respuesta del servidor| |Mensaje|Cadena|Mensaje de respuesta del servidor| |Data|Arreglo|Aquí ira toda la información, que devuelva el servidor al devolver una petición| |Sku|Entero|Código de producto| |Producto|Cadena|Nombre o tipo de producto| |Nombre|Cadena|Nombre del producto| |Cantidad|Entero|Cantidad de producto en el stock| |Precio|Decimal|Precio del producto por unidad| |Código de respuesta fallida:|||| |Se utilizará la siguiente lista de errores como referencia:|| |<https://learn.microsoft.com/es-es/partner-center/developer/error-codes>| |**Código**|**Descripción**| |400|Solicitud incorrecta| |401|No autorizado| |500|Fallo interno del servidor| |Body de Salida||| | :-: | :-: | :-: | |**Atributo**|**Tipo**|**Descripción**| |Codigo|Entero|Código de salida devuelto por el servidor| |Mensaje|Cadena|Mensaje que indica que hubo un error | |Data|Arreglo|Arreglo de productos que contienen el catalogo de productos | |SKU|Entero|Codigo de producto| |Producto|Cadena|Nombre o tipo de producto | |Nombre|Cadena|Nombre de la marca del producto | |Cantidad|Entero| Cantidad disponible en el catalogo | |Precio|Decimal|precio del producto por unidad | |Ejemplo de parámetros de entrada| | :-: | |N/A| |Ejemplo de parámetros de salida exitosa| | :-: | ``` { "status":200, "Mensaje":"Consulta de inventario exitosa", "Data":[ { "Sku": 10, "Producto": "Shampoo", "Nombre": "Sedal Liso y sedoso", "Cantidad":20, "Precio": 20.50 } , { "Sku": 11, "Producto": "Esponjas", "Nombre": "Esponja", "Cantidad":15, "Precio": 8.00 } ] } ``` |Ejemplo de parámetros de salida fallida|||| | :-: | :-: | :-: | :-: | ``` { "status":400, Mensaje":"Solicitud incorrecta" } { "status":401, Mensaje":"No autorizado" } { "status":500, Mensaje":"Error interno en el servidor" } ``` > Ingresar Venta: > Microservicio que ingresa la venta para despues confirmarla |**ID**:017|**Nombre**: Ingresar Venta | | :- | :- | |**Prioridad**:Media|**Historia de usuario**: El cliente necesita ingresar su compra de productos, para que se vaya a una cola de confirmación (Esto solo si la compra es empresarial), si es una compra normal la venta se realiza normal | |**Estimado**:5|| |**Módulo**: Venta|| |**Criterios de Aceptación**: El cliente hara una compra de producto, el cual presionara un boton para que ingrese en una cola hasta la confirmacion de la compra por un usuario administrador (si es empresarial), de lo contrario hace la compra directamente, se necesita estar registrado para hacer la compra | |Ruta:|/api/Venta| |Método:|POST| |Formato de entrada:|JSON| |Header:||| | :- | :- | :- | |**Atributo**|**Tipo**|**Descripción**| |Content type|Header|application/json| |Authentication|header|token | |Body||| | :-: | :-: | :-: | |**Atributo**|**Tipo**|**Descripción**| |Total|Decimal| El total de una compra de productos| |CodigoCarrito| Entero|Código de carrito de compras| |TipoVenta| Entero|Codigo de tipo de venta: 1. Empresarial , 2. Normal | |Parámetros||| | :-: | :-: | :-: | |**Atributo**|**Tipo**|**Descripción**| |N/A|N/A|N/A| |Formato de salida: JSON|||| | :- | :- | :- | :- | |Código de respuesta exitosa: HTTP 200||| |Salida:|||||| |**Atributo**|**Tipo**|**Descripción**| |status|Entero|Código de respuesta del servidor| |Mensaje|Cadena|Mensaje de respuesta del servidor| |Data|Arreglo|Aquí ira toda la información, que devuelva el servidor al devolver una petición| |Código de respuesta fallida:|||| |Se utilizará la siguiente lista de errores como referencia:|| |<https://learn.microsoft.com/es-es/partner-center/developer/error-codes>| |**Código**|**Descripción**| |202|Usuario no registrado| |400|Solicitud incorrecta| |401|No autorizado| |500|Fallo interno del servidor| |Body de Salida||| | :-: | :-: | :-: | |**Atributo**|**Tipo**|**Descripción**| |Codigo|Entero|Código de salida devuelto por el servidor| |Mensaje|String|Mensaje que indica que hubo un error | |Ejemplo de parámetros de entrada|| | :-: | :-: | ``` { "Total":10000.00, "CodigoCarrito":12 } ``` |Ejemplo de parámetros de salida exitosa|| | :-: | :-: | ``` { "status":200, "Mensaje":"Compra exitosa", "Data":[ ] } ``` |Ejemplo de parámetros de salida fallida|| | :-: | :-: | ``` { "status":202, "Mensaje":"Usuario no registrado" } { "status":400, "Mensaje":"Solicitud incorrecta" } { "status":400, "Mensaje":"Solicitud incorrecta" } { "status":500, "Mensaje":"Error interno en el servidor" } ``` # **Compra** > Agregar al carrito: > El usuario podrá ingresar sus productos a un carrito de compras. |**ID**:018|**Nombre**: Agregar al carrito| | :- | :- | |**Prioridad**:Alta|**Historia de usuario**: El usuario tendrá una opción para agregar todos los productos que desee a un carrito para luego, poder comprarlo| |**Estimado**:5|| |**Módulo**: Compra|| |**Criterios de Aceptación**: El Usuario al navegar a tráves del catálogo de productos podrá agregarlo a un carrito de compras para tener la oportunidad de comprarlo | |Ruta:|/api/compra/carrito| |Método:|POST| |Formato de entrada:|JSON| |Header:||| | :- | :- | :- | |**Atributo**|**Tipo**|**Descripción**| |Content type|Header|application/json| |Authentication|header|token <TOKEN>| |Body||| | :-: | :-: | :-: | |**Atributo**|**Tipo**|**Descripción**| |"Productos"|Arreglo|Arreglo donde se guardará los datos de los productos que se añaden al carrito| |"SKU"|Entero|Código de producto a agregar al carrito| |"Cantidad"|Entero|Cantidad del producto que desea comprar| |Parámetros||| | :-: | :-: | :-: | |**Atributo**|**Tipo**|**Descripción**| |N/A|N/A|N/A| |Formato de salida: JSON|||| | :- | :- | :- | :- | |Código de respuesta exitosa: HTTP 200||| |Salida:|||||| |**Atributo**|**Tipo**|**Descripción**| |status|Entero|Código de respuesta del servidor| |Mensaje|Cadena|Mensaje de respuesta del servidor| |Data|Arreglo|Aquí ira toda la información, que devuelva el servidor al devolver una petición| |Código de respuesta fallida:|||| |Se utilizará la siguiente lista de errores como referencia:|| |<https://learn.microsoft.com/es-es/partner-center/developer/error-codes>| |**Código**|**Descripción**| |400|Solicitud incorrecta| |401|No autorizado| |500|Fallo interno del servidor| |Body de Salida||| | :-: | :-: | :-: | |**Atributo**|**Tipo**|**Descripción**| |Codigo|Entero|Código de salida devuelto por el servidor| |Mensaje|String|Mensaje que indica que hubo un error | |Ejemplo de parámetros de entrada|| | :-: | :-: | ``` { "Productos":[ { "Sku": 10, "Cantidad":20 } , { "Sku": 11, "Cantidad": 50 } ] } ``` |Ejemplo de parámetros de salida exitosa|| | :-: | :-: | ``` { "status":200, "Mensaje":"Ingreso de carrito exitoso", "Data":[ ] } ``` |Ejemplo de parámetros de salida fallida|| | :-: | :-: | ``` { "status":400, "Mensaje":"Solicitud incorrecta" } { "status":401, "Mensaje":"No autorizado" } { "status":500, "Mensaje":"Error interno en el servidor" } ``` > Obtener carrito: > Microservicio que devuelve los productos que se ingresaron en un carrito de compras. |**ID**:019|**Nombre**: Obtener carrito| | :- | :- | |**Prioridad**:Media|**Historia de usuario**: El usuario podrá obtener el carrito de compra para poder modificarlo con los datos pendientes de comprar| |**Estimado**:3|| |**Módulo**: Compra|| |**Criterios de Aceptación**: El usuario podría obtener los datos de los productos que estuvo pendiente de comprar y se encuentra en el carrito de compras, el usuario debe estar logueado para poder ingresar productos al carrito de compras.| |Ruta:|/api/compra/carrito| |Método:|GET| |Formato de entrada:|JSON| |Header:||| | :- | :- | :- | |**Atributo**|**Tipo**|**Descripción**| |Content type|Header|application/json| |Authentication|header|token <TOKEN>| |Body||| | :-: | :-: | :-: | |**Atributo**|**Tipo**|**Descripción**| |N/A|N/A|N/A| |Parámetros||| | :-: | :-: | :-: | |**Atributo**|**Tipo**|**Descripción**| |N/A|N/A|N/A| |Formato de salida: JSON|||| | :- | :- | :- | :- | |Código de respuesta exitosa: HTTP 200||| |Salida:|||||| |**Atributo**|**Tipo**|**Descripción**| |status|Entero|Código de respuesta del servidor| |Mensaje|Cadena|Mensaje de respuesta del servidor| |Data|Arreglo|Aquí ira toda la información, que devuelva el servidor al devolver una petición| |Código de respuesta fallida:|||| |Se utilizará la siguiente lista de errores como referencia:|| |<https://learn.microsoft.com/es-es/partner-center/developer/error-codes>| |**Código**|**Descripción**| |400|Solicitud incorrecta| |401|No autorizado| |500|Fallo interno del servidor| |Body de Salida||| | :-: | :-: | :-: | |**Atributo**|**Tipo**|**Descripción**| |Codigo|Entero|Código de salida devuelto por el servidor| |Mensaje|Cadena|Mensaje que indica que hubo un error | |Data|Arreglo|Arreglo con los datos devueltos | |CodigoCarrito|Entero| Codigo de carrito | |Productos|Arreglo|Arreglo con los datos de producto devueltos | |Sku|Entero|Codigo del producto | |Nombre|Cadena| Nombre del producto | |Cantidad|Entero|Cantidad de productos agregados al carrito | |Precio|Decimal|Precio del producto (cantidad * precio unitario) | |Ejemplo de parámetros de entrada|| | :-: | :-: | |N/A|| |Ejemplo de parámetros de salida exitosa|| | :-: | :-: | ``` { "status":200, "Mensaje":"Obtención de carrito exitoso", "Data":[ CodigoCarrito: 1, Productos:[ { "Sku": 10, "Nombre": "Shampoo palmolive", "Cantidad":20, "Precio": 410.00 } , { "Sku": 11, "Nombre": "Jabon harmony", "Cantidad": 5, "Precio": 25.00 } ] ] } ``` |Ejemplo de parámetros de salida fallida|| | :-: | :-: | ``` { "status":400, "Mensaje":"Solicitud incorrecta" } { "status":401, "Mensaje":"No Autorizado" } { "status":500, "Mensaje":"Error interno en el servidor" } ``` > Modificar Cantidad: > Microservicio que modifica la cantidad de productos ingresados en el carrito de compras. |**ID**:020|**Nombre**: Modificar Cantidad| | :- | :- | |**Prioridad**: Baja|**Historia de usuario**: El usuario podrá modificar la cantidad de productos en un carrito de compras| |**Estimado**: 3|| |**Módulo**: Compra|| |**Criterios de Aceptación**: Se enviará, el Código de carrito, Código de producto y cantidad para la modificación de la cantidad de productos en un carrito de compra| |Ruta:|/api/compra/carrito/{CodigoCarrito}| |Método:|PUT| |Formato de entrada:|JSON| |Header:||| | :- | :- | :- | |**Atributo**|**Tipo**|**Descripción**|| |Content type|Header|application/json|| |Authentication|Header|token <TOKEN>|| |Body||| | :-: | :-: | :-: | |**Atributo**|**Tipo**|**Descripción**| |Sku|Entero|Código de producto | |Cantidad|Entero|Cantidad de productos| |Parámetros||| | :-: | :-: | :-: | |**Atributo**|**Tipo**|**Descripción**| |CodigoCarrito|Entero|Código de carrito | |Formato de salida: JSON|||| | :- | :- | :- | :- | |Código de respuesta exitosa: HTTP 200||| |Salida:|||||| |**Atributo**|**Tipo**|**Descripción**| |status|Entero|Código de respuesta del servidor| |Mensaje|Cadena|Mensaje de respuesta del servidor| |Data|Arreglo|Aquí ira toda la información, que devuelva el servidor al devolver una petición| |Código de respuesta fallida:|||| |Se utilizará la siguiente lista de errores como referencia:|| |<https://learn.microsoft.com/es-es/partner-center/developer/error-codes>| |**Código**|**Descripción**| |400|Solicitud incorrecta| |401|No autorizado| |500|Fallo interno del servidor| |Body de Salida||| | :-: | :-: | :-: | |**Atributo**|**Tipo**|**Descripción**| |Codigo|Entero|Código de salida devuelto por el servidor| |Mensaje|String|Mensaje que indica que hubo un error | |Ejemplo de parámetros de entrada|| | :-: | :-: | ``` { "Sku":15, "Cantidad":10 } ``` |Ejemplo de parámetros de salida exitosa|| | :-: | :-: | ``` { "status":200, "Mensaje":"Modificación de cantidad exitosa", "Data":[ ] } ``` |Ejemplo de parámetros de salida fallida|| | :-: | :-: | ``` { "status":400, "Mensaje":"Solicitud incorrecta" } { "status":401, "Mensaje":"No autorizado" } { "status":500, "Mensaje":"Error interno en el servidor" } ``` > Eliminar productos de carrito: > Microservicio que elimina un producto de un carrito de compras. |**ID**:021|**Nombre**: Eliminar productos de carrito de compras| | :- | :- | |**Prioridad**: Baja|**Historia de usuario**: El usuario podrá quitar un producto de su carrito de compras.| |**Estimado**: 3|| |**Módulo**: Compra|| |**Criterios de Aceptación**: Se enviará el Código de producto para eliminarlo del carrito de compras.| |Ruta:|/api/Carrito?CodigoCarrito=12&Sku=10| |Método:|DELETE| |Formato de entrada:|JSON| |Header:||| | :- | :- | :- | |**Atributo**|**Tipo**|**Descripción**| |Content type|Header|application/json| |Authentication|Header|token <TOKEN>| |Body||| | :-: | :-: | :-: | |**Atributo**|**Tipo**|**Descripción**| |N/A|N/A|N/A| |Parámetros||| | :-: | :-: | :-: | |**Atributo**|**Tipo**|**Descripción**| |CodigoCarrito|Entero|Código de carrito | |Sku|Entero|Código de producto que se elimina del carrito| |Formato de salida: JSON|||| | :- | :- | :- | :- | |Código de respuesta exitosa: HTTP 200||| |Salida:|||||| |**Atributo**|**Tipo**|**Descripción**| |status|Entero|Código de respuesta del servidor| |Mensaje|Cadena|Mensaje de respuesta del servidor| |Data|Arreglo|Aquí ira toda la información, que devuelva el servidor al devolver una petición| |Código de respuesta fallida:|||| |Se utilizará la siguiente lista de errores como referencia:|| |<https://learn.microsoft.com/es-es/partner-center/developer/error-codes>| |**Código**|**Descripción**| |400|Solicitud incorrecta| |401|No autorizado| |500|Fallo interno del servidor| |Body de Salida||| | :-: | :-: | :-: | |**Atributo**|**Tipo**|**Descripción**| |Codigo|Entero|Código de salida devuelto por el servidor| |Mensaje|String|Mensaje que indica que hubo un error | |Ejemplo de parámetros de entrada||| | :-: | :-: | :-: | |N/A||| |Ejemplo de parámetros de salida exitosa|| | :-: | :-: | ``` { "status":200, "Mensaje":"Eliminación de producto de carrito exitoso", "Data":[ ] } ``` |Ejemplo de parámetros de salida fallida|| | :-: | :-: | ``` { "status":400, "Mensaje":"Solicitud incorrecta" } { "status":401, "Mensaje":"No autorizado" } { "status":500, "Mensaje":"Error interno en el servidor" } ``` > Registro Compra Externa: > Microservicio que Registra una compra externa. |**ID**:021|**Nombre**: Registro de compra externa| | :- | :- | |**Prioridad**: Alta|**Historia de usuario**: Es necesario poder registrar la transacción de compra realizada por un sistema externo (previo a esto la compra debió ser autorizada por el administrador)| |**Estimado**: 3|| |**Módulo**: Compra|| |**Criterios de Aceptación**: Luego de que el administrador autorice la compra externa, el sistema registrará la transacción realizada. | |Ruta:|/carrito/registro-externo| |Método:|POST| |Formato de entrada:|JSON| |Header:||| | :- | :- | :- | |**Atributo**|**Tipo**|**Descripción**| |Content type|Header|application/json| |Authentication|Header|token <TOKEN>| |Body||| | :-: | :-: | :-: | |**Atributo**|**Tipo**|**Descripción**| |Fecha|Date|Fecha cuando se autorizó la venta con el siguiente formato "YYYY-MM-DD"| |Productos|Array|Arreglo de objetos JSON con informacion de los productos| |Sku|Entero|identificador único del producto seleccionado.| |cantidad|Entero|Cantidad deseada del producto seleccionado.| |precio_unitario|decimal |Precio unitario al cual se compró el producto. | |Parámetros||| | :-: | :-: | :-: | |**Atributo**|**Tipo**|**Descripción**| |CodigoCarrito|Entero|Código de carrito | |Sku|Entero|Código de producto que se elimina del carrito| |Formato de salida: JSON|||| | :- | :- | :- | :- | |Código de respuesta exitosa: HTTP 200||| |Salida:|||||| |**Atributo**|**Tipo**|**Descripción**| |status|Entero|Código de respuesta del servidor| |Mensaje|Cadena|Mensaje de respuesta del servidor| |Data|Arreglo|Aquí ira toda la información, que devuelva el servidor al devolver una petición| |Código de respuesta fallida:|||| |Se utilizará la siguiente lista de errores como referencia:|| |<https://learn.microsoft.com/es-es/partner-center/developer/error-codes>| |**Código**|**Descripción**| |400|Solicitud incorrecta| |401|No autorizado| |500|Fallo interno del servidor| |Body de Salida||| | :-: | :-: | :-: | |**Atributo**|**Tipo**|**Descripción**| |Codigo|Entero|Código de salida devuelto por el servidor| |Mensaje|String|Mensaje que indica que hubo un error | |Ejemplo de parámetros de entrada||| | :-: | :-: | :-: | ``` { "Fecha":"2023-02-12", "productos":[ { "Sku":3, "cantidad":10, "precio_unitario":10 }, { "Sku":5, "cantidad":2, "precio_unitario":10 } ] } ``` |Ejemplo de parámetros de salida exitosa|| | :-: | :-: | ``` { "status":201, "Mensaje":"Transacción realizada con éxito" } ``` |Ejemplo de parámetros de salida fallida|| | :-: | :-: | ``` { "status":400, "Mensaje":"Formato invalido" } { "status":401, "Mensaje":"Token no válido" } { "status":500, "Mensaje":"Error interno en el servidor" } ``` |Ejemplo de parámetros de token|| | :-: | :-: | ``` { "id_grupo":<identificador de la tienda que nos vendió los productos>, "Mensaje":<Sección de la tienda de la tienda que nos vendió los productos> } ``` ## Bitácora de las tareas ![](https://i.imgur.com/54vEcGM.png) ## Metodología de ágil justificada del porqué de su selección con sus respectivas etapas