mirror of
https://github.com/OpenBankProject/OBP-API.git
synced 2026-02-06 13:07:02 +00:00
bugfix/fixed the filter params for metric endpoints
This commit is contained in:
parent
9ac9784c47
commit
6064cf26dd
@ -204,16 +204,7 @@ object MappedMetrics extends APIMetrics with MdcLoggable{
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private def extendCurrentQuery (params: List[String]) ={
|
||||
// --> "?,?,"
|
||||
val a = for(i <- 0 to (params.length-2) ) yield {s"${params(i)},"}
|
||||
//"?,?,--> "?,?,?"
|
||||
a.mkString("").concat(s"${params.last}")
|
||||
}
|
||||
|
||||
|
||||
|
||||
private def extendLikeQuery(params: List[String], isLike: Boolean) = {
|
||||
val isLikeQuery = if (isLike) "" else "NOT"
|
||||
|
||||
@ -225,9 +216,7 @@ object MappedMetrics extends APIMetrics with MdcLoggable{
|
||||
{
|
||||
s" and url ${isLikeQuery} LIKE ('${params(i)}')"
|
||||
}
|
||||
// OR (url NOT LIKE ( '%management/metrics%' ) AND url NOT LIKE ( '%management/metrics%' ) ')))
|
||||
// or (url NOT LIKE ($excludeUrlPatternsQueries)))
|
||||
s"${params.head}')" + a.mkString("").concat(s" and url ${isLikeQuery} LIKE ('${params.last} ")
|
||||
s"${params.head}')" + a.mkString("").concat(s" and url ${isLikeQuery} LIKE ('${params.last}")
|
||||
}
|
||||
}
|
||||
|
||||
@ -293,20 +282,16 @@ object MappedMetrics extends APIMetrics with MdcLoggable{
|
||||
val includeImplementedByPartialFunctions = queryParams.collect { case OBPIncludeImplementedByPartialFunctions(value) => value }.headOption
|
||||
|
||||
val excludeUrlPatternsList= excludeUrlPatterns.getOrElse(List(""))
|
||||
val excludeAppNamesNumberList = excludeAppNames.getOrElse(List(""))
|
||||
val excludeImplementedByPartialFunctionsNumberList = excludeImplementedByPartialFunctions.getOrElse(List(""))
|
||||
val excludeAppNamesList = excludeAppNames.getOrElse(List(""))
|
||||
val excludeImplementedByPartialFunctionsList = excludeImplementedByPartialFunctions.getOrElse(List(""))
|
||||
|
||||
val excludeUrlPatternsQueries = extendLikeQuery(excludeUrlPatternsList, false)
|
||||
val extendedExcludeAppNameQueries = extendCurrentQuery(excludeAppNamesNumberList)
|
||||
val extendedExcludeImplementedByPartialFunctionsQueries = extendCurrentQuery(excludeImplementedByPartialFunctionsNumberList)
|
||||
|
||||
val includeUrlPatternsList= includeUrlPatterns.getOrElse(List(""))
|
||||
val includeAppNamesNumberList = includeAppNames.getOrElse(List(""))
|
||||
val includeImplementedByPartialFunctionsNumberList = includeImplementedByPartialFunctions.getOrElse(List(""))
|
||||
val includeAppNamesList = includeAppNames.getOrElse(List(""))
|
||||
val includeImplementedByPartialFunctionsList = includeImplementedByPartialFunctions.getOrElse(List(""))
|
||||
|
||||
val includeUrlPatternsQueries = extendLikeQuery(includeUrlPatternsList, true)
|
||||
val extendedIncludeAppNameQueries = extendCurrentQuery(includeAppNamesNumberList)
|
||||
val extendedIncludeImplementedByPartialFunctionsQueries = extendCurrentQuery(includeImplementedByPartialFunctionsNumberList)
|
||||
|
||||
val result = scalikeDB readOnly { implicit session =>
|
||||
val sqlQuery = if(isNewVersion) // in the version, we use includeXxx instead of excludeXxx, the performance should be better.
|
||||
@ -324,8 +309,8 @@ object MappedMetrics extends APIMetrics with MdcLoggable{
|
||||
AND (${falseOrTrue(anon.isDefined && anon.equals(Some(true)))} or userid = 'null')
|
||||
AND (${falseOrTrue(anon.isDefined && anon.equals(Some(false)))} or userid != 'null')
|
||||
AND (${trueOrFalse(includeUrlPatterns.isEmpty) } or (url LIKE ($includeUrlPatternsQueries)))
|
||||
AND (${trueOrFalse(includeAppNames.isEmpty) } or appname in ($extendedIncludeAppNameQueries))
|
||||
AND (${trueOrFalse(includeImplementedByPartialFunctions.isEmpty) } or implementedbypartialfunction in ($extendedIncludeImplementedByPartialFunctionsQueries))
|
||||
AND (${trueOrFalse(includeAppNames.isEmpty) } or (appname in ($includeAppNamesList)))
|
||||
AND (${trueOrFalse(includeImplementedByPartialFunctions.isEmpty) } or implementedbypartialfunction in ($includeImplementedByPartialFunctionsList))
|
||||
""".stripMargin
|
||||
else
|
||||
sql"""SELECT count(*), avg(duration), min(duration), max(duration)
|
||||
@ -342,8 +327,8 @@ object MappedMetrics extends APIMetrics with MdcLoggable{
|
||||
AND (${falseOrTrue(anon.isDefined && anon.equals(Some(true)))} or userid = 'null')
|
||||
AND (${falseOrTrue(anon.isDefined && anon.equals(Some(false)))} or userid != 'null')
|
||||
AND (${trueOrFalse(excludeUrlPatterns.isEmpty) } or (url NOT LIKE ($excludeUrlPatternsQueries)))
|
||||
AND (${trueOrFalse(excludeAppNames.isEmpty) } or appname not in ($extendedExcludeAppNameQueries))
|
||||
AND (${trueOrFalse(excludeImplementedByPartialFunctions.isEmpty) } or implementedbypartialfunction not in ($extendedExcludeImplementedByPartialFunctionsQueries))
|
||||
AND (${trueOrFalse(excludeAppNames.isEmpty) } or appname not in ($excludeAppNamesList))
|
||||
AND (${trueOrFalse(excludeImplementedByPartialFunctions.isEmpty) } or implementedbypartialfunction not in ($excludeImplementedByPartialFunctionsList))
|
||||
""".stripMargin
|
||||
logger.debug("code.metrics.MappedMetrics.getAllAggregateMetricsBox.sqlQuery --: " +sqlQuery.statement)
|
||||
val sqlResult = sqlQuery.map(
|
||||
@ -403,8 +388,6 @@ object MappedMetrics extends APIMetrics with MdcLoggable{
|
||||
val excludeImplementedByPartialFunctionsNumberList = excludeImplementedByPartialFunctions.getOrElse(List(""))
|
||||
|
||||
val excludeUrlPatternsQueries = extendLikeQuery(excludeUrlPatternsList, false)
|
||||
val extendedExclueAppNameQueries = extendCurrentQuery(excludeAppNamesNumberList)
|
||||
val extendedExcludeImplementedByPartialFunctionsQueries = extendCurrentQuery(excludeImplementedByPartialFunctionsNumberList)
|
||||
|
||||
val (dbUrl, _, _) = getDbConnectionParameters
|
||||
|
||||
@ -429,8 +412,8 @@ object MappedMetrics extends APIMetrics with MdcLoggable{
|
||||
AND (${falseOrTrue(anon.isDefined && anon.equals(Some(true)))} or userid = 'null')
|
||||
AND (${falseOrTrue(anon.isDefined && anon.equals(Some(false)))} or userid != 'null')
|
||||
AND (${trueOrFalse(excludeUrlPatterns.isEmpty) } or (url NOT LIKE ($excludeUrlPatternsQueries)))
|
||||
AND (${trueOrFalse(excludeAppNames.isEmpty) } or appname not in ($extendedExclueAppNameQueries))
|
||||
AND (${trueOrFalse(excludeImplementedByPartialFunctions.isEmpty) } or implementedbypartialfunction not in ($extendedExcludeImplementedByPartialFunctionsQueries))
|
||||
AND (${trueOrFalse(excludeAppNames.isEmpty) } or appname not in ($excludeAppNamesNumberList))
|
||||
AND (${trueOrFalse(excludeImplementedByPartialFunctions.isEmpty) } or implementedbypartialfunction not in ($excludeImplementedByPartialFunctionsNumberList))
|
||||
GROUP BY metric.implementedbypartialfunction, metric.implementedinversion
|
||||
ORDER BY count(*) DESC
|
||||
${otherDbLimit}
|
||||
@ -477,12 +460,10 @@ object MappedMetrics extends APIMetrics with MdcLoggable{
|
||||
val limit = queryParams.collect { case OBPLimit(value) => value }.headOption
|
||||
|
||||
val excludeUrlPatternsList = excludeUrlPatterns.getOrElse(List(""))
|
||||
val excludeAppNamesNumberList = excludeAppNames.getOrElse(List(""))
|
||||
val excludeImplementedByPartialFunctionsNumberList = excludeImplementedByPartialFunctions.getOrElse(List(""))
|
||||
val excludeAppNamesList = excludeAppNames.getOrElse(List(""))
|
||||
val excludeImplementedByPartialFunctionsList = excludeImplementedByPartialFunctions.getOrElse(List(""))
|
||||
|
||||
val excludeUrlPatternsQueries = extendLikeQuery(excludeUrlPatternsList, false)
|
||||
val extendedExclueAppNameQueries = extendCurrentQuery(excludeAppNamesNumberList)
|
||||
val extendedExcludeImplementedByPartialFunctionsQueries = extendCurrentQuery(excludeImplementedByPartialFunctionsNumberList)
|
||||
|
||||
val (dbUrl, _, _) = getDbConnectionParameters
|
||||
|
||||
@ -509,8 +490,8 @@ object MappedMetrics extends APIMetrics with MdcLoggable{
|
||||
AND (${falseOrTrue(anon.isDefined && anon.equals(Some(true)))} or userid = 'null')
|
||||
AND (${falseOrTrue(anon.isDefined && anon.equals(Some(false)))} or userid != 'null')
|
||||
AND (${trueOrFalse(excludeUrlPatterns.isEmpty) } or (url NOT LIKE ($excludeUrlPatternsQueries)))
|
||||
AND (${trueOrFalse(excludeAppNames.isEmpty) } or appname not in ($extendedExclueAppNameQueries))
|
||||
AND (${trueOrFalse(excludeImplementedByPartialFunctions.isEmpty) } or implementedbypartialfunction not in ($extendedExcludeImplementedByPartialFunctionsQueries))
|
||||
AND (${trueOrFalse(excludeAppNames.isEmpty) } or appname not in ($excludeAppNamesList))
|
||||
AND (${trueOrFalse(excludeImplementedByPartialFunctions.isEmpty) } or implementedbypartialfunction not in ($excludeImplementedByPartialFunctionsList))
|
||||
GROUP BY appname, consumer.developeremail, consumer.id, consumer.consumerid
|
||||
ORDER BY count DESC
|
||||
${otherDbLimit}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user