-
Notifications
You must be signed in to change notification settings - Fork 1
Talle
El modelo Talle representa una entidad de una talle en el sistema. A continuación, se describen sus atributos y métodos.
-
id(Integer): -
Clave primaria de la talle.
-
Se genera automáticamente con la estrategia
GenerationType.IDENTITY. -
nombre(String): -
Nombre de la talle.
-
Tiene una longitud mínima de 1 carácter y máxima de 100 caracteres.
-
No puede ser nulo.
-
fechaEliminacion(LocalDateTime): -
Representa la fecha en la que la talle fue eliminada (si es que lo fue).
-
Puede ser
nullsi la talle no está eliminada. -
-
Endpoint:
POST /products/talle - Descripción: Crea una nueva talle en el sistema.
- Cuerpo de la Solicitud:
-
nombre: string (obligatorio, máximo 100 caracteres)
{
"nombre": "nombre talle" //String
}- Respuestas:
- 201 Created: Talle creada exitosamente (Esto aplica tanto para cuando se crea una talle, o cuando se quiere crear una talle con el mismo nombre que una talle eliminada, en ese caso lo que se hace es recuperar dicha talle).
{
"status": 201,
"message": "Created.",
"data": {
"id": 1,
"nombre": "Azul"
},
"errors": null
}- 400 Bad Request:
- No se envió un nombre para la talle.
{
"status": 400,
"message": "Error: Bad Request.",
"data": null,
"errors": "No se envió un nombre para la talle."
}- El nombre contiene caracteres no permitidos.
{
"status": 400,
"message": "Error: Bad Request.",
"data": null,
"errors": "El nombre debe estar formado únicamente por letras y números."
}- Ya existe una talle con este nombre.
{
"status": 400,
"message": "Error: Bad Request.",
"data": null,
"errors": "Ya existe una talle con este nombre."
}- 400 Error inesperado: Error en el servicio.
{
"status": 400,
"message": "Error: Error inesperado.",
"data": null,
"errors": "Descripción del errors inesperado"
}- 400 Error de tipo de argumento: Cuando el dto enviado no tiene el formato correspondiente.
{
"status": 400,
"message": "Error de tipo de argumento",
"data": null,
"errors": "El parámetro 'id' debe ser un número entero válido."
}-
Endpoint:
PUT /products/talle - Descripción: Actualiza una talle existente en el sistema.
- Cuerpo de la Solicitud:
-
id: integer (obligatorio) -
nombre: string (obligatorio, máximo 100 caracteres)
{
"id": 1, //int
"nombre": "nombre talle" //String
}- Respuestas:
- 201 Created: Talle actualizada exitosamente.
{
"status": 200,
"message": "OK",
"data": {
"id": 1,
"nombre": "Azul"
},
"errors": null
}- 404 Not Found: El ID no corresponde a ninguna talle.
{
"status": 404,
"message": "Error: Not Found",
"data": null,
"errors": "No se encontró la talle con el ID."
}- 400 Bad Request:
- La talle no se puede modificar porque está eliminada.
{
"status": 400,
"message": "Error: Bad Request.",
"data": null,
"errors": "No se puede modificar un objeto que está eliminado."
}- La talle debe tener un nombre.
{
"status": 400,
"message": "Error: Bad Request.",
"data": null,
"errors": "La talle debe de tener un nombre."
}
- El nombre contiene caracteres no permitidos.
{
"status": 400,
"message": "Error: Bad Request.",
"data": null,
"errors": "El nombre debe estar formado únicamente por letras y números."
}- Ya existe una talle con este nombre.
{
"status": 400,
"message": "Error: Bad Request.",
"data": null,
"errors": "Ya existe una talle con este nombre."
}- 400 Error inesperado: Error en el servicio.
{
"status": 400,
"message": "Error: Error inesperado.",
"data": null,
"errors": "Descripción del errors inesperado"
}- 400 Error de tipo de argumento: Cuando el dto enviado no tiene el formato correspondiente.
{
"status": 400,
"message": "Error de tipo de argumento",
"data": null,
"errors": "El parámetro 'id' debe ser un número entero válido."
}-
Endpoint:
DELETE /products/talle/{id} - Descripción: Eliminar una talle.
- Parámetros de Ruta:
-
id: integer (obligatorio) - Respuestas:
- 200 OK: Talle eliminada exitosamente.
{
"status": 200,
"message": "OK.",
"data": {
"id": 1,
"nombre": "Azul",
"fechaEliminacion": "2024* 09* 28T12:34:56"
},
"errors": null
}- 400 Bad Request:
- La talle ya está eliminada.
{
"status": 400,
"message": "Error: Bad Request.",
"data": null,
"errors": "La talle ya se encuentra eliminada, se debe enviar el id de una talle no eliminada."
}- 404 Not Found: El ID no corresponde a ninguna talle.
{
"status": 404,
"message": "Error: Not Found.",
"data": null,
"errors": "El id no corresponde a ninguna talle, se debe enviar el id de una talle existente."
}- 500 Error inesperado: Error en el servicio.
{ "status": 400, "message": "Error: Error inesperado.", "data": null, "errors": "Descripción del errors inesperado" }
- 400 Error de tipo de argumento: Cuando el id enviado no es un int.
{
"status": 400,
"message": "Error de tipo de argumento",
"data": null,
"errors": "El parámetro 'id' debe ser un número entero válido."
}-
Endpoint:
PUT /products/talle/recuperar/{id} - Descripción: Recupera una talle que ha sido eliminada.
- Parámetros de Ruta:
-
id: integer (obligatorio) - Respuestas:
- 200 OK: Talle recuperada exitosamente.
{
"status": 200,
"message": "OK",
"data": {
"id": 1,
"nombre": "Azul"
},
"errors": null
}- 400 Bad Request:
- La talle no está eliminada.
{
"status": 400,
"message": "Error: Bad Request.",
"data": null,
"errors": "La talle no está eliminada."
}- 404 Not Found: El ID no corresponde a ninguna talle.
{
"status": 404,
"message": "Error: Not Found",
"data": null,
"errors": "No se encontró la talle con el ID."
}- 500 Error inesperado: Error en el servicio.
{ "status": 400, "message": "Error: Error inesperado.", "data": null, "errors": "Descripción del errors inesperado" }
- 400 Error de tipo de argumento: Cuando el id enviado no es un int.
{
"status": 400,
"message": "Error de tipo de argumento",
"data": null,
"errors": "El parámetro 'id' debe ser un número entero válido."
}-
Endpoint:
GET /products/talles - Descripción: Obtiene una lista de todas las talles.
- Respuestas:
- 200 OK: Lista de talles devuelta exitosamente.
{
"status": 200,
"message": "OK",
"data": [
{
"id": 1,
"nombre": "Azul"
},
{
"id": 2,
"nombre": "Amarillo"
}
],
"errors": null
}- 400 Bad Request:
- No existen talles.
{
"status": 400,
"message": "Bad request",
"data": null,
"errors": "No hay talles creadas."
}-
Endpoint:
GET /products/talle/{id} - Descripción: Obtiene una talle específica por su ID.
-
Parámetros de Ruta:
**
id: integer (obligatorio) - Respuestas:
- 200 OK: Talle devuelta exitosamente.
{
"status": 200,
"message": "OK",
"data": {
"id": 1,
"nombre": "Azul"
},
"errors": null
}- 400 Bad Request:
- No se encontró la talle con el ID.
{
"status": 404,
"message": "Error: Not Found",
"data": null,
"errors": "No se encontró la talle con el ID."
}- No se puede traer un objeto que está eliminado.
{
"status": 400,
"message": "Error: Bad Request.",
"data": null,
"errors": "No se puede traer un objeto que esté eliminado."
}400 Error inesperado: Error en el servicio.
{
"status": 400,
"message": "Error: Error inesperado.",
"data": null,
"errors": "Descripción del errors inesperado"
}- 400 Error de tipo de argumento: Cuando el id pasado no es un int.
{
"status": 400,
"message": "Error de tipo de argumento",
"data": null,
"errors": "El parámetro 'id' debe ser un número entero válido."
}Como administrador, quiero crear una talle para que esté disponible en el sistema.
- Given El servicio de talles está disponible
- Scenario: Enviar una talle válida
- Given Que el cuerpo del request contiene un nombre válido
-
When Realizo un POST a
/products/tallecon los datos - Then La respuesta debe ser un código 201
- And La respuesta debe contener un objeto de talle creado
- And El mensaje de respuesta debe ser "Created."
Probado
- Scenario: Enviar un cuerpo sin un nombre
- Given Que el cuerpo del request no contiene un nombre
-
When Realizo un POST a
/products/talle - Then La respuesta debe ser un código 400
- And El mensaje de respuesta debe ser "No se envió un nombre para la talle."
Probado
- Scenario: Enviar un nombre con caracteres no válidos
- Given Que el cuerpo del request contiene un nombre con caracteres no permitidos (comas, puntos, signos matemáticos, caracteres especiales)
-
When Realizo un POST a
/products/talle - Then La respuesta debe ser un código 400
- And El mensaje de respuesta debe ser "El nombre debe estar formado únicamente por letras y números."
Probado
- Scenario: Enviar un nombre que ya existe y está eliminado
- Given Que el cuerpo del request contiene un nombre de una talle eliminada
-
When Realizo un POST a
/products/talle - Then La respuesta debe ser un código 201
- And La talle debe ser recuperada
- And El mensaje de respuesta debe ser "Created."
Probado
- Scenario: Enviar un nombre que ya existe y no está eliminado
- Given Que el cuerpo del request contiene un nombre de una talle existente no eliminada
-
When Realizo un POST a
/products/talle - Then La respuesta debe ser un código 400
- And El mensaje de respuesta debe ser "Ya existe una talle con este nombre."
Probado
- Scenario: Enviar una talle sin formato correcto en el nombre
- Given Que el cuerpo del request contiene un nombre con formato incorrecto (espacios extra)
-
When Realizo un POST a
/products/talle - Then La respuesta debe ser un código 200
- And El nombre debe ser capitalizado y corregido
- And El mensaje de respuesta debe ser "Created."
Probado
- Scenario: Error inesperado durante la creación
- Given Que el servicio de talles falla inesperadamente
-
When Realizo un POST a
/products/talle - Then La respuesta debe ser un código 400
- And El mensaje de respuesta debe ser "Error: Error inesperado."
Probado
- Scenario: Enviar un argumento de tipo incorrecto
- Given Que el nombre no es del tipo correcto en el cuerpo del request
-
When Realizo un POST a
/products/talle - Then La respuesta debe ser un código 400
- And El mensaje de respuesta debe ser "El parámetro debe ser un número entero válido."
Probado
Como administrador, quiero actualizar una talle existente para mantener los datos actualizados en el sistema.
- Given El servicio de talles está disponible
- Scenario: Actualizar una talle válida
- Given Que el cuerpo del request contiene un ID válido y un nombre válido
-
When Realizo un PUT a
/products/tallecon los datos - Then La respuesta debe ser un código 201
- And La respuesta debe contener un objeto de talle actualizado
- And El mensaje de respuesta debe ser "Created."
Probado
- Scenario: Enviar una talle sin ID
- Given Que el cuerpo del request no contiene un ID
-
When Realizo un PUT a
/products/talle - Then La respuesta debe ser un código 404
- And El mensaje de respuesta debe ser "El ID no corresponde a ninguna talle."
Probado
- Scenario: Enviar una talle con ID de una talle eliminada
- Given Que el cuerpo del request contiene un ID de una talle eliminada
-
When Realizo un PUT a
/products/talle - Then La respuesta debe ser un código 400
- And El mensaje de respuesta debe ser "La talle no se puede modificar debido a que se encuentra eliminada."
Probado
- Scenario: Enviar una talle sin nombre
- Given Que el cuerpo del request contiene un ID válido pero sin nombre
-
When Realizo un PUT a
/products/talle - Then La respuesta debe ser un código 400
- And El mensaje de respuesta debe ser "La talle debe tener un nombre."
Probado
- Scenario: Enviar un nombre con caracteres no válidos
- Given Que el cuerpo del request contiene un ID válido y un nombre con caracteres no permitidos
-
When Realizo un PUT a
/products/talle - Then La respuesta debe ser un código 400
- And El mensaje de respuesta debe ser "El nombre debe estar formado únicamente por letras y numeros."
Probado
- Scenario: Enviar un nombre de una talle que ya existe
- Given Que el cuerpo del request contiene un ID válido y un nombre de una talle existente
-
When Realizo un PUT a
/products/talle - Then La respuesta debe ser un código 400
- And El mensaje de respuesta debe ser "Ya existe una talle con este nombre, no puede haber dos talles con el mismo nombre."
Probado
- Scenario: Error inesperado durante la actualización
- Given Que el servicio de talles falla inesperadamente
-
When Realizo un PUT a
/products/talle - Then La respuesta debe ser un código 400
- And El mensaje de respuesta debe ser "Error: Error inesperado."
Probado
Como administrador, quiero recuperar una talle eliminada para reutilizarla en el sistema.
- Given El servicio de talles está disponible
- Scenario: Recuperar una talle eliminada correctamente
- Given Que la talle con el ID proporcionado está eliminada
-
When Realizo un PUT a
/products/talle/recuperar/{id} - Then La respuesta debe ser un código 200
- And El mensaje de respuesta debe ser "OK."
Probado
- Scenario: Recuperar una talle que no está eliminada
- Given Que la talle con el ID proporcionado no está eliminada
-
When Realizo un PUT a
/products/talle/recuperar/{id} - Then La respuesta debe ser un código 400
- And El mensaje de respuesta debe ser "La talle ya no se encuentra eliminada, se debe enviar el ID de una talle eliminada."
Probado
- Scenario: Recuperar una talle con un ID inexistente
- Given Que no existe una talle con el ID proporcionado
-
When Realizo un PUT a
/products/talle/recuperar/{id} - Then La respuesta debe ser un código 404
- And El mensaje de respuesta debe ser "El ID no corresponde a ninguna talle."
Probado
- Scenario: Error inesperado durante la recuperación
- Given Que el servicio de talles falla inesperadamente
-
When Realizo un PUT a
/products/talle/recuperar/{id} - Then La respuesta debe ser un código 400
- And El mensaje de respuesta debe ser "Error: Error inesperado."
Probado
- Scenario: Enviar un parámetro de tipo incorrecto para el ID
- Given Que el ID proporcionado no es un entero
-
When Realizo un PUT a
/products/talle/recuperar/{id} - Then La respuesta debe ser un código 400
- And El mensaje de respuesta debe ser "El parámetro '{id}' debe ser un número entero válido."
Probado
Como cliente, quiero obtener todas las talles para ver las disponibles en el sistema.
- Scenario: Obtener todas las talles exitosamente.
- Given Soy un cliente
-
When Envío un GET a
/products/talles - Then La respuesta debe ser un código 200
- And El cuerpo de la respuesta debe contener una lista de talles
- And Cada talle debe tener atributos válidos como "id" y "nombre."
Probado
- Scenario: Obtener todas las talles exitosamente
- Given Soy un cliente
- And No existe ninguna talle
-
When Envío un GET a
/products/talle/1 - Then La respuesta debe ser un código 200
- And El cuerpo de la respuesta debe contener una lista vacía
- And El cuerpo de la respuesta debe contener el mensaje "No hay talles creadas."
Probado
Como cliente, quiero obtener una talle por su ID para ver los detalles de la talle específica.
- Scenario: Obtener talle por ID exitosamente
- Given Soy un cliente
- And Existe una talle con el ID 1
-
When Envío un GET a
/products/talle/1 - Then La respuesta debe ser un código 200
- And El cuerpo de la respuesta debe contener la talle con ID 1
- And La talle debe tener un atributo válido "nombre."
Probado
- Scenario: Obtener talle con ID inexistente
- Given Soy un cliente
- And No existe una talle con el ID 999
-
When Envío un GET a
/products/talle/999 - Then La respuesta debe ser un código 400
- And El cuerpo de la respuesta debe contener el mensaje "No se encontró la talle con el ID."
Probado
- Scenario: Obtener talle eliminada
- Given Soy un cliente
- And Existe una talle con el ID 2 pero está talleda como eliminada
-
When Envío un GET a
/products/talle/2 - Then La respuesta debe ser un código 400
- And El cuerpo de la respuesta debe contener el mensaje "No se puede traer un objeto que esté eliminado."
Probado
- Scenario: Obtener talle con ID inválido
- Given Soy un cliente
-
When Envío un GET a
/products/talle/abc - Then La respuesta debe ser un código 400
- And El cuerpo de la respuesta debe contener el mensaje "El parámetro 'id' debe ser un número entero válido."
Probado
DOCUMENTACIÓN GENERAL
- Exclusiones
- Herramientas de Tracking
- Meetings
- Plan de Proyecto
- Plan de Comunicación
- Product Backlog del Proyecto
- Product Backlog del MVP
- Plan de Testing
- Plan de Gestión de la Configuración
- Investigación IOT
- Backlog de fallas
- Backlog de cambios
- Backlog de sugerencias
SPRINT N°1
SPRINT N° 2
SPRINT N° 3
DOCUMENTACIÓN FRONTEND
DOCUMENTACIÓN BACKEND