Segunda parte de los SP
Duración: dos horas (14:30 P.M. a 16:30 P.M.)
Descripción:
Se continuó con el desarrollo de los SP para el proyecto. En esta etapa se trabajó en cuatro SP en específico: validación de acceso, ingresar eventos a la bitácora, listado de empleados y aplicación de filtros a la lista. En el caso del procedimiento para el acceso, se le realizaron algunas correcciones por como el procedimiento de la bitácora recibía el parámetro del usuario. Originalmente se le pasaba el nombre del usuario y el SP de la bitácora determinaba el ID que le correspondía para guardar el dato en la tabla. Sin embargo, trabajando con otros códigos, se notó que, si se mantenía de esta forma, había uno en el que se ocupaba pedirle el ID a la bitácora, después mapearlo para encontrar el nombre y luego darle este último valor a la bitácora (nuevamente) para que este terminara haciendo el mismo proceso inverso. En vista de esto, los procedimientos que llaman a la bitácora se deben encargar de determinar el ID del usuario, no al revés.
Aparte de esto, se comenzó con dos SP nuevos: el de listar y el filtrar. En el primero, por el momento, se listan los eventos de acuerdo a su nombre (no a su apellido). Sin embargo, se le dejó la línea que lista por apellido al procedimiento por aquello de que se necesite. Al proceso se le agregó un pequeño detalle: se devuelve cédula y nombre. Como el filtro aplica para nombres o cédulas, se decidió devolver el valor del documento de identidad para que el usuario pueda notar por qué ciertos nombres aparecieron después de filtrar por cédula. Cabe notar que, para aprender a filtrar resultados, se le hizo una pregunta a ChatGPT. En la sección de recursos visuales se incluye su respuesta.
El último trabajo que se realizó fue con la deshabilitación del login después de cinco intentos en los treinta minutos pasados.
Problemas encontrados:
Cuando se creó la parte de deshabilitación del login en el SP correspondiente, para poder obtener las últimas entradas de la tabla de bitácora para revisar su motivo, se decidió utilizar un INNER JOIN. Esto causó varios problemas dado que devolvía las últimas cinco filas de acceso inválido en los pasados treinta minutos. Por tanto, funcionaba de forma extraña.
La solución a esto fue corregir la solicitud de las filas para obtener las últimas cinco independientemente de la información que tuvieran. Si estas coincidan con accesos inválidos, entonces se deshabilita. Caso contrario, entonces se permite el intento.
Apoyos visuales:
Se incluyen algunas fotografías para mostrar una parte de las soluciones a los problemas encontrados.
Respuesta de ChatGPT para realizar el filtro de información:
Apoyos:
A continuación, se incluye un enlace hacia el último commit de los sp mencionados anteriormente al momento de escritura de esta entrada.
GitHub 01 - SP para acceso a la aplicación
GitHub 02 - SP para registro de eventos en la bitácora
GitHub 03 - SP para listar los empleados
GitHub 04 - SP para filtrar los empleados
