3.4.13. CRUD de profesores - diezMalena/api_FCTFiller GitHub Wiki

Objetivo

  • El objetivo de este CRUD es poder gestiónar a los profesores del centro de estudios de manera rapida y sencilla, pudiendo eliminar, modificar y añadir. Disponible para Directores y jefes de estudio.

Inicio

  • Al entrar al crud de profesores se llama a la función cliente verProfesores() y esta llama a la funcion del servidor verProfesores() que recibe por parametro el dni del profesor que hace la petición en cliente. Esta función envia al cliente un array asociativo de profesores para mostrar la información en una tabla. Este array asociativo contiene estos datos por cada profesor:
    • dni -> el dni del profesor correspondiente
    • email -> el email del profesor correspondiente
    • nombre -> el nombre del profesor correspondiente
    • apellidos -> los apellidos del profesor correspondiente
    • centro_estudios -> el centro de estudios al que pertenece el profesor correspondiente
    • roles -> los roles que tiene el profesor correspondiente

Acciones

  • Ante cualquier acción se abrira un modal excepto para eliminar, antes de abrirlo se almacena en un sessionStorage el numero de petición, que puede ser:
    • 0 -> Ver usuario
    • 1 -> Crear usuario
    • 2 -> Editar usuario

Añadir Profesor

Screenshot_3

  • Este boton nos va a permitir añadir profesores nuevos, al presionar el boton, vamos a llamar a la función en el cliente registrarProfesor() , en esta función vamos a guardar en un sessionStorage el numPeticion,una vez se abra, se podrán añadir los datos correspondientes para registrar al profesor:

Screenshot_4

  • Se pulsa el boton de Crear usuario , primero la aplicación se asegura de que se ha metido correctamente la información en los campos y después se llama a la función de cliente onSubmitCreate(), esta recoge el valor de los campos y hace un objeto ProfesorCreate que contiene:
    • dni -> El dni del profesor introducido en las cajas de texto
    • email -> El email del profesor introducido en las cajas de texto
    • nombre -> El nombre del profesor introducido en las cajas de texto
    • apellido -> El apellido del profesor introducido en las cajas de texto
    • password1 -> La contraseña
    • password2 -> La repetición de la contraseña para los posteriores controles
    • dni -> El dni del profesor logeado en la aplicación
  • Finalmente este objeto es enviado al servidor y la función addProfesor(), que recoge una Request del objeto recibido, comprueba que las contraseñas sean iguales, comprueba que el profesor no exista y por ultimo añade a este a la base de datos.

Ver Profesor

  • En este caso, con solo pulsar la fila en la que se encuentra la información del profesor, al hacer click, vamos a llamar a la función en el cliente verProfesor() enviando el dni del profesor que queramos ver como parametro , en esta función vamos a guardar en un sessionStorage el numPeticion y el dni del profesor del cual vamos a ver la información ,una vez se abra, se va a llamar en el ngOninit() a verProfesor() , este cogera el dni del profesor del sessionStorage y se lo enviara al servidor, el servidor ejecutará la función verProfesor(), hará una consulta a base de datos para comprobar que existe y devolverá un array asociativo con estos datos:

    • dni -> el dni del profesor correspondiente
    • email -> el email del profesor correspondiente
    • nombre -> el nombre del profesor correspondiente
    • apellidos -> los apellidos del profesor correspondiente
    • centro_estudios -> el centro de estudios al que pertenece el profesor correspondiente
    • roles -> los roles que tiene el profesor correspondiente

Screenshot_5

  • Así se muestra la ventana:
    Screenshot_6

Editar Profesor

  • Este boton nos va a permitir editar un profesor.
    Screenshot_8

  • Al pulsarlo se llamará a la función cliente verProfesorEdit() esta hace una petición al servidor a la función verProfesorEditar() pasandole como parametro el dni del profesor, y esta nos devuelve un array asociativo con estos datos:

    • dni -> el dni del profesor correspondiente que se va a modificar
    • email -> el email del profesor correspondiente
    • nombre -> el nombre del profesor correspondiente
    • apellidos -> los apellidos del profesor correspondiente
    • password1 -> la contraseña del profesor correspondiente
    • password2 -> la contraseña del profesor correspondiente
    • roles -> los roles del profesor correspondiente
    • personaAux -> el dni antiguo de dicho profesor
  • Estos datos se mostrarán de esta manera al pulsar el botón de editar con el icono del lápiz:
    Screenshot_10

  • Al guardar los cambios se llamará a la función cliente onSubmitEdit() recogera toda la información de los campos y genera un objeto ProfesorCreate que contiene:

    • dni -> El dni del profesor introducido en las cajas de texto.
    • email -> El email del profesor introducido en las cajas de texto
    • nombre -> El nombre del profesor introducido en las cajas de texto
    • apellido -> El apellido del profesor introducido en las cajas de texto
    • password1 -> La contraseña
    • password2 -> La repetición de la contraseña para los posteriores controles
    • dniAnt -> El dni antiguo del profesor, para asociarlo al profesor en caso de cambiar este dato.
  • Después se llama a la función del servidor modificarProfesor() este recibe como parametro una Request que contiene los datos enviados con el objeto ProfesorCreate, comprueba que las contraseñas son iguales en password1 y password2 y modifica al profesor con la información recibida en la base de datos.

Eliminar Profesor

  • Este boton nos va a permitir eliminar un profesor.
    Screenshot_7

  • Al pusarlo, se llamará a la función del cliente eliminarProfesor() recibiendo como parametro el dni del profesor que vamos a eliminar y apareciendonos un modal preguntando si estamos seguros de ello.

  • Al presionar que si, se llamara a la función del servidor eliminarProfesor() la cual también recibe el dni del profesor a eliminar y lo elimina de la base de datos. También elimina todos sus archivos de manera recursiva.