SonarLint muestra que hay 26 warnings en develop a partir del commit ec627bf84d7496be1e341706920e02e235e65214, de los cuales el análisis de SonarCloud considera 2 como code smells de importancia alta en cuanto a mantenibilidad:
event/views.py:
Refactor this function to reduce its Cognitive Complexity from 16 to the 15 allowed. [Ln664, Col9]Import only needed names or import the module and then use its members. [Ln27, Col1]
Debe de corregirse estos 2 code smells y los 24 warnings restantes para mejorar la mantenibilidad del código, siendo el primero de ellos de suma importancia.
¿Cómo reducir la complejidad del filtrado de eventos?
Todos los if definidos en EventFiltered se pueden extrapolar a otro fichero filters.py que contenga las funciones de filtro de categoría, fecha, distancia y like. Estas cuatro funciones definidas en filters.py filtran los eventos por uno de los cuatro parámetros:
El filtro de EventCategory devuelve aquellos eventos que sean de dicha categoría.
El filtro de EventTime devuelve aquellos eventos que comiencen en un intervalo delimitado por los valores timeStart y timeEnd.
El filtro de EventNearby devuelve aquellos eventos contenidos en el radio en kilómetros desde la longitud y latitud del usuario.
El filtro de EventLike devuelve aquellos eventos que el usuario haya dado like.
Será responsabilidad de la función EventFiltered en event/views.py de llamar a estas cuatro funciones y obtener todas las combinaciones de filtrado posibles.
Además, la función EventFiltered o GET /api/event/filtered hace lo mismo que GET /api/event/list cuando no recibe parámetros. Se pueden fusionar ambas funciones y obtener que GET /api/event/list liste eventos con los parámetros opcionales de filtrado: categoría, fecha, distancia y like.
La refactorización del filtrado de eventos se ha completado en la PR #115, queda pendiente refactorización de código para eliminar los warnings restantes.
SonarLint muestra que hay 26 warnings en develop a partir del commit ec627bf84d7496be1e341706920e02e235e65214, de los cuales el análisis de SonarCloud considera 2 como code smells de importancia alta en cuanto a mantenibilidad:
Refactor this function to reduce its Cognitive Complexity from 16 to the 15 allowed. [Ln664, Col9]
Import only needed names or import the module and then use its members. [Ln27, Col1]
Debe de corregirse estos 2 code smells y los 24 warnings restantes para mejorar la mantenibilidad del código, siendo el primero de ellos de suma importancia.
¿Cómo reducir la complejidad del filtrado de eventos?
Todos los if definidos en
EventFiltered
se pueden extrapolar a otro ficherofilters.py
que contenga las funciones de filtro de categoría, fecha, distancia y like. Estas cuatro funciones definidas enfilters.py
filtran los eventos por uno de los cuatro parámetros:EventCategory
devuelve aquellos eventos que sean de dicha categoría.EventTime
devuelve aquellos eventos que comiencen en un intervalo delimitado por los valorestimeStart
ytimeEnd
.EventNearby
devuelve aquellos eventos contenidos en el radio en kilómetros desde la longitud y latitud del usuario.EventLike
devuelve aquellos eventos que el usuario haya dado like.Será responsabilidad de la función
EventFiltered
enevent/views.py
de llamar a estas cuatro funciones y obtener todas las combinaciones de filtrado posibles.Además, la función
EventFiltered
oGET /api/event/filtered
hace lo mismo queGET /api/event/list
cuando no recibe parámetros. Se pueden fusionar ambas funciones y obtener queGET /api/event/list
liste eventos con los parámetros opcionales de filtrado: categoría, fecha, distancia y like.