Skip to content

Commit

Permalink
#1503 Deep merge stats results when several series
Browse files Browse the repository at this point in the history
  • Loading branch information
To-om committed Nov 13, 2020
1 parent d0ae8e4 commit 8162550
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 9 deletions.
2 changes: 1 addition & 1 deletion thehive/app/org/thp/thehive/controllers/v0/QueryCtrl.scala
Original file line number Diff line number Diff line change
Expand Up @@ -124,7 +124,7 @@ class QueryCtrl(entrypoint: Entrypoint, @Named("with-thehive-schema") db: Databa
.toTry(query => queryExecutor.execute(query, graph, request.authContext))
.map { outputs =>
val results = outputs.map(_.toJson).foldLeft(JsObject.empty) {
case (acc, o: JsObject) => acc ++ o
case (acc, o: JsObject) => acc deepMerge o
case (acc, r) =>
logger.warn(s"Invalid stats result: $r")
acc
Expand Down
2 changes: 1 addition & 1 deletion thehive/app/org/thp/thehive/controllers/v0/StatsCtrl.scala
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ class StatsCtrl @Inject() (
val results = outputs
.map(_.toJson)
.foldLeft(JsObject.empty) {
case (acc, o: JsObject) => acc ++ o
case (acc, o: JsObject) => acc deepMerge o
case (acc, r) =>
logger.warn(s"Invalid stats result: $r")
acc
Expand Down
14 changes: 7 additions & 7 deletions thehive/app/org/thp/thehive/services/th3/Aggregation.scala
Original file line number Diff line number Diff line change
Expand Up @@ -146,7 +146,7 @@ object TH3Aggregation {
}
}

case class AggSum(aggName: Option[String], fieldName: String) extends Aggregation(s"sum_$fieldName") {
case class AggSum(aggName: Option[String], fieldName: String) extends Aggregation(aggName.getOrElse(s"sum_$fieldName")) {
override def getTraversal(
db: Database,
publicProperties: List[PublicProperty[_, _]],
Expand All @@ -166,7 +166,7 @@ case class AggSum(aggName: Option[String], fieldName: String) extends Aggregatio
)
}
}
case class AggAvg(aggName: Option[String], fieldName: String) extends Aggregation(s"sum_$fieldName") {
case class AggAvg(aggName: Option[String], fieldName: String) extends Aggregation(aggName.getOrElse(s"sum_$fieldName")) {
override def getTraversal(
db: Database,
publicProperties: List[PublicProperty[_, _]],
Expand All @@ -186,7 +186,7 @@ case class AggAvg(aggName: Option[String], fieldName: String) extends Aggregatio
}
}

case class AggMin(aggName: Option[String], fieldName: String) extends Aggregation(s"min_$fieldName") {
case class AggMin(aggName: Option[String], fieldName: String) extends Aggregation(aggName.getOrElse(s"min_$fieldName")) {
override def getTraversal(
db: Database,
publicProperties: List[PublicProperty[_, _]],
Expand All @@ -206,7 +206,7 @@ case class AggMin(aggName: Option[String], fieldName: String) extends Aggregatio
}
}

case class AggMax(aggName: Option[String], fieldName: String) extends Aggregation(s"max_$fieldName") {
case class AggMax(aggName: Option[String], fieldName: String) extends Aggregation(aggName.getOrElse(s"max_$fieldName")) {
override def getTraversal(
db: Database,
publicProperties: List[PublicProperty[_, _]],
Expand Down Expand Up @@ -302,7 +302,7 @@ case class FieldAggregation(
)
)
.fold
.domainMap(x => Output(JsObject(x.map(kv => kv._1.toString -> kv._2.toJson))))
.domainMap(kvs => Output(JsObject(kvs.map(kv => kv._1.toString -> kv._2.toJson))))
.castDomain[Output[_]]
}
}
Expand All @@ -313,7 +313,7 @@ case class TimeAggregation(
interval: Long,
unit: ChronoUnit,
subAggs: Seq[Aggregation]
) extends Aggregation(aggName.getOrElse(s"time_$fieldName")) {
) extends Aggregation(aggName.getOrElse(fieldName)) {
val calendar: Calendar = Calendar.getInstance()

def dateToKey(date: Date): Long =
Expand Down Expand Up @@ -392,7 +392,7 @@ case class TimeAggregation(
)
)
.fold
.domainMap(x => Output(x.map(kv => kv._1 -> kv._2.toValue).toMap, JsObject(x.map(kv => kv._1.toString -> Json.obj(fieldName -> kv._2.toJson)))))
.domainMap(kvs => Output(JsObject(kvs.map(kv => kv._1.toString -> Json.obj(name -> kv._2.toJson)))))
.castDomain[Output[_]]
}
}

0 comments on commit 8162550

Please sign in to comment.