udistrital / core_documentacion

0 stars 0 forks source link

Iniciar revisión para realizar consulta con palabras clave en gestión dependencias #164

Closed diagutierrezro closed 2 months ago

diagutierrezro commented 2 months ago

Se requiere realizar el comienzo de la revisión para las tareas a realizar teniendo en cuenta que se solicitó por parte del usuario modificar el filtro para que este se pueda hacer mediante palabras clave. Para la issue se debe revisar el CRUD de Oikos para analizar cuales son las tareas que se deben realizar para realizar el filtro correcto en la consulta.

Sub Tareas

Criterios de aceptación

Requerimientos

No aplica

Definition of Ready - DoR

Definition of Done - DoD - Desarrollo

JulianAvella commented 2 months ago
  1. Se comenzó con la revisión del controlador dependencia_v2.go, que maneja las operaciones de consulta a la base de datos. Se revisó el método GetAll del controlador, que recibe los parámetros de consulta enviados al endpoint y los pasa al modelo, donde se ejecutan las consultas a la BD.

Se observó que el controlador permite la especificación de múltiples filtros mediante la URL, lo que facilita la combinación de varios criterios de búsqueda. El filtro actual realiza coincidencias exactas para todos los campos, incluido el campo Nombre, que se solicitó modificar para que permita la búsqueda de palabras clave.

  1. Tras revisar el controlador, se investigó el archivo del modelo dependencia.go, donde se encuentra el método GetAllDependencia. Este método es responsable de ejecutar las consultas basadas en los parámetros de filtrado. En su estado actual, utiliza el método Filter de Beego ORM para filtrar los resultados de la base de datos. Este método realiza una coincidencia exacta de los datos.

Una posible solución investigada fue modificar este método para que, cuando el campo Nombre sea uno de los criterios de búsqueda, se utilice la cláusula icontains de Beego ORM, que internamente genera una consulta LIKE en la BD. Esta modificación permitiría que las consultas sobre el campo Nombre no requieran una coincidencia exacta, sino que puedan encontrar coincidencias parciales, que tiene la misma función de la palabra reservada LIKE.

  1. Se exploraron diversas alternativas para implementar la funcionalidad de filtrado basado en palabras clave en el nombre de la dependencia:
  1. Se concluyó que la solución más adecuada es modificar el modelo para que, al buscar por el campo Nombre, se utilice la opción icontains del ORM de Beego. Esta implementación permitirá que las búsquedas se realicen con coincidencias parciales, mejorando la flexibilidad de filtrado sin afectar el funcionamiento de los otros filtros existentes en el CRUD de Oikos.