HU B 04 - shiomar-salazar/MISW-PF-Grupo1-Backend GitHub Wiki

HU-B-04

ID HU-B-04
Nombre Crear Plan de Entrenamiento Backend
Descripción Como Administrador de SportApp quiero ser capaz de crear un plan de entrenamiento personalizado Para poder llevar el control de mis actividades deportivas y alcanzar mis objetivos de forma efectiva.
Puntos 2
Criterios de aceptación El servicio solo debe estar disponible para los usuarios tipo Cliente
El servicio debe recibir el ID del usuario previamente validado desde la capa de interfaz grafica.
El servicio debe recibir el Token JWT del usuario previamente validado desde la capa de interfaz grafica.
El servicio debe recibir el tipo de entrenamiento que el usuario desee ejercitarse previamente validados desde la capa de interfaz grafica. (Ciclismo o Atletismo )
El servicio debe recibir los dias del plan de entrenamiento que usuario desee ejercitarse previamente validados desde la capa de interfaz grafica.
El servicio debe recibir las distancias que el usuario desee entrenar cada dia previamente validadas desde la capa de interfaz grafica.
El servicio debe recibir el numero de semanas el usuario desee entrenar previamente validadas desde la capa de interfaz grafica.
En caso de que la peticion venga sin el token de Autorizacion JWT, el servicio debe responder con un HTTP Codigo 401.
En caso de que la peticion venga de un usuario tipo Proveedor, el servicio debe responder con un HTTP Codigo 403.
En caso de que la Informacion recibida este incompleta, el servicio debe responder con un HTTP Codigo 400.
En caso de que la autenticacion sea correcta, el servicio debe responder con un HTTP Codigo 200.

Actividades

  • Creacion del serivicio de creacion de plan de entrenamiento.
  • Creacion de pruebas Unitarias que prueben el correcto funcionaiento del servicio.
  • Creacion de pruebas Unitarias que prueben el el correcto manejo de errores y condiciones limites del servicio.

Pruebas a Realizar

Pruebas Unitarias

Se implementarán las pruebas unitarias que permitirán garantizar la calidad de las funcionalidades que hacen parte del backend de Creacion de Plan de Entrenamiento. Estas pruebas harán parte del código de la aplicación y se lanzarán de forma automatizada a través el pipeline de despliegue que contendrá todos los pasos para ejecutar la pruebas haciendo uso de los frameworks DE PyTest:

  • Correcto Funcionamiento
  • Manejo de errores
  • Validacion de Token de Autorizacion.

MockUp de Interfaz Grafica

Dado a este es un servicio de Backend que no esta en contacto con el usuario no posee una interfaz de usuario, por esta razon la seccion esta vacia.

Ejemplo de Request y Response del servicio

Endpoint https://misw-pf-grupo1-backend-gestor-entrenamientos-klme3r4qta-uc.a.run.app/entrenamientos/plan-entrenamiento
Método HTTP POST
Headers 'Authorization': 'Bearer ' + token
Request
					
{
    "entrenamiento": "Ciclismo",
    "numero_semanas": 3,
    "id_usuario": "d0d85122-eafd-11ee-a951-0242ac120002",
    "plan_entrenamiento": {
        "lunes": "1",
        "martes": "2",
        "miercoles": "3",
        "jueves": "4",
        "viernes": "5",
        "sabado": "6",
        "domingo": "7"
    }
}
                
				
Response
					
Plan de entrenamiento registrado exitosamente
HTTP ResponseCode: 200
{
    "entrenamiento": "Ciclismo",
    "id": "0a26ef04-bee4-4b78-8b2b-659db248e636",
    "id_usuario": "d0d85122-eafd-11ee-a951-0242ac120002",
    "numero_semanas": 3,
    "plan_entrenamiento": {
        "domingo": 7,
        "entrenamiento": "0a26ef04-bee4-4b78-8b2b-659db248e636",
        "id": "b1aa2df9-5738-47e6-ab7d-3ec47ff4dfa2",
        "jueves": 4,
        "lunes": 1,
        "martes": 2,
        "miercoles": 3,
        "sabado": 6,
        "viernes": 5
    }
}
----------------------------------------------------------------------------------------------------------------------------------------
Párametros de entrada invalidos
HTTP ResponseCode: 400
{
    "msg": "Párametros de entrada invalidos, por favor revise los logs."
}
----------------------------------------------------------------------------------------------------------------------------------------
Token no suministrado
HTTP ResponseCode: 401
{
	"msg": "El token es obligatorio, por favor valide e intente nuevamente."
}
----------------------------------------------------------------------------------------------------------------------------------------
No autorizado
HTTP ResponseCode: 401
{
	"msg": "El token proporcionado no es valido o esta vencido, por favor valide e intente nuevamente."
}
----------------------------------------------------------------------------------------------------------------------------------------
No tiene permisos para realizar la operación
HTTP ResponseCode: 403
{
	"msg": "No esta autorizado para ralizar esta operación, por favor valide con el administrador del sistema."
}
----------------------------------------------------------------------------------------------------------------------------------------
Error consumiendo el servicio de gestor de usuarios
HTTP ResponseCode: 500
{
	"msg": "Error al consumir servicio externo, por favor revise los logs."
}
----------------------------------------------------------------------------------------------------------------------------------------
Error interno
HTTP ResponseCode: 500
{
	"msg": "Error interno, por favor revise los logs."
}
                
				
⚠️ **GitHub.com Fallback** ⚠️