Skip to content
Merged

develop #2636

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 4 additions & 19 deletions obp-api/src/main/scala/code/metrics/MappedMetrics.scala
Original file line number Diff line number Diff line change
Expand Up @@ -111,18 +111,6 @@ object MappedMetrics extends APIMetrics with MdcLoggable{
if (useStableCache) cachedStableMetrics else cachedAllMetrics
}

// If consumerId is Int, if consumerId is not Int, convert it to primary key.
// Since version 3.1.0 we do not use a primary key externally. I.e. we use UUID instead of it as the value exposed to end users.
private def consumerIdToPrimaryKey(consumerId: String): Option[String] = consumerId match {
// Do NOT search by primary key at all
case str if StringUtils.isBlank(str) => Option.empty[String]
// Search by primary key
case str if str.matches("\\d+") => Some(str)
// Get consumer by UUID, extract a primary key and then search by the primary key
// This can not be empty here, it need return the value back as the parameter
case str => MappedConsumersProvider.getConsumerByConsumerId(str).map(_.id.get.toString).toOption.orElse(Some(str))
}

override def saveMetric(userId: String, url: String, date: Date, duration: Long, userName: String, appName: String, developerEmail: String, consumerId: String, implementedByPartialFunction: String, implementedInVersion: String, verb: String, httpCode: Option[Int], correlationId: String,
responseBody: String, sourceIp: String, targetIp: String): Unit = {
val metric = MappedMetric.create
Expand Down Expand Up @@ -243,10 +231,7 @@ object MappedMetrics extends APIMetrics with MdcLoggable{
}
}
// he optional variables:
val consumerId = queryParams.collect { case OBPConsumerId(value) => value}.headOption
.flatMap(consumerIdToPrimaryKey)
.map(By(MappedMetric.consumerId, _) )

val consumerId = queryParams.collect { case OBPConsumerId(value) => By(MappedMetric.consumerId, value)}.headOption
val bankId = queryParams.collect { case OBPBankId(value) => Like(MappedMetric.url, s"%banks/$value%") }.headOption
val userId = queryParams.collect { case OBPUserId(value) => By(MappedMetric.userId, value) }.headOption
val url = queryParams.collect { case OBPUrl(value) => By(MappedMetric.url, value) }.headOption
Expand Down Expand Up @@ -359,7 +344,7 @@ object MappedMetrics extends APIMetrics with MdcLoggable{
val startTime = System.currentTimeMillis()
val fromDate = queryParams.collect { case OBPFromDate(value) => value }.headOption
val toDate = queryParams.collect { case OBPToDate(value) => value }.headOption
val consumerId = queryParams.collect { case OBPConsumerId(value) => value }.headOption.flatMap(consumerIdToPrimaryKey)
val consumerId = queryParams.collect { case OBPConsumerId(value) => value }.headOption
val userId = queryParams.collect { case OBPUserId(value) => value }.headOption
val url = queryParams.collect { case OBPUrl(value) => value }.headOption
val appName = queryParams.collect { case OBPAppName(value) => value }.headOption
Expand Down Expand Up @@ -476,7 +461,7 @@ object MappedMetrics extends APIMetrics with MdcLoggable{
{
val fromDate = queryParams.collect { case OBPFromDate(value) => value }.headOption
val toDate = queryParams.collect { case OBPToDate(value) => value }.headOption
val consumerId = queryParams.collect { case OBPConsumerId(value) => value }.headOption.flatMap(consumerIdToPrimaryKey)
val consumerId = queryParams.collect { case OBPConsumerId(value) => value }.headOption
val userId = queryParams.collect { case OBPUserId(value) => value }.headOption
val url = queryParams.collect { case OBPUrl(value) => value }.headOption
val appName = queryParams.collect { case OBPAppName(value) => value }.headOption
Expand Down Expand Up @@ -559,7 +544,7 @@ object MappedMetrics extends APIMetrics with MdcLoggable{

val fromDate = queryParams.collect { case OBPFromDate(value) => value }.headOption
val toDate = queryParams.collect { case OBPToDate(value) => value }.headOption
val consumerId = queryParams.collect { case OBPConsumerId(value) => value }.headOption.flatMap(consumerIdToPrimaryKey)
val consumerId = queryParams.collect { case OBPConsumerId(value) => value }.headOption
val userId = queryParams.collect { case OBPUserId(value) => value }.headOption
val url = queryParams.collect { case OBPUrl(value) => value }.headOption
val appName = queryParams.collect { case OBPAppName(value) => value }.headOption
Expand Down
6 changes: 3 additions & 3 deletions obp-api/src/test/scala/code/api/v5_1_0/MetricTest.scala
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,7 @@ class MetricTest extends V510ServerSetup {

{
Then("we test the consumer_id params")
val request2 = (v5_1_0_Request / "management" / "aggregate-metrics").GET <@ (user1) <<? List(("consumer_id", s"${testConsumer3.id.get}"))
val request2 = (v5_1_0_Request / "management" / "aggregate-metrics").GET <@ (user1) <<? List(("consumer_id", s"${testConsumer3.consumerId.get}"))
val response2 = makeGetRequest(request2)
Then("We get successful response")
response2.code should equal(200)
Expand All @@ -189,7 +189,7 @@ class MetricTest extends V510ServerSetup {

{
Then("we test the consumer_id params")
val request2 = (v5_1_0_Request / "management" / "aggregate-metrics").GET <@ (user1) <<? List(("consumer_id", s"${testConsumer2.id.get}"))
val request2 = (v5_1_0_Request / "management" / "aggregate-metrics").GET <@ (user1) <<? List(("consumer_id", s"${testConsumer2.consumerId.get}"))
val response2 = makeGetRequest(request2)
Then("We get successful response")
response2.code should equal(200)
Expand Down Expand Up @@ -338,7 +338,7 @@ class MetricTest extends V510ServerSetup {
{
Then("we test all params")
val params = List(
("consumer_id", s"${testConsumer.id.get}"),
("consumer_id", s"${testConsumer.consumerId.get}"),
("user_id", s"${resourceUser1.userId}"),
("anon", "false"),
("url", "/obp/v5.1.0/banks"),
Expand Down