From 3bcdf89135a4beada21d1026c6feb12387f5d0c4 Mon Sep 17 00:00:00 2001 From: vanjaftn Date: Mon, 20 Nov 2023 16:46:51 +0100 Subject: [PATCH] Implement changes in Percentile ranks aggregation --- .../zio/elasticsearch/ElasticAggregation.scala | 18 +++++++----------- .../aggregation/Aggregations.scala | 2 +- .../elasticsearch/ElasticAggregationSpec.scala | 6 +++--- 3 files changed, 11 insertions(+), 15 deletions(-) diff --git a/modules/library/src/main/scala/zio/elasticsearch/ElasticAggregation.scala b/modules/library/src/main/scala/zio/elasticsearch/ElasticAggregation.scala index 70cf39fbc..fdf40a4df 100644 --- a/modules/library/src/main/scala/zio/elasticsearch/ElasticAggregation.scala +++ b/modules/library/src/main/scala/zio/elasticsearch/ElasticAggregation.scala @@ -275,15 +275,13 @@ object ElasticAggregation { final def percentileRanksAggregation[A: Numeric]( name: String, field: Field[_, A], - value: A, - values: A* + value: BigDecimal, + values: BigDecimal* ): PercentileRanksAggregation = PercentileRanks( name = name, field = field.toString, - values = Chunk.fromIterable( - implicitly[Numeric[A]].toDouble(value) +: values.map(v => implicitly[Numeric[A]].toDouble(v)) - ), + values = value +: Chunk.fromIterable(values), missing = None ) @@ -303,18 +301,16 @@ object ElasticAggregation { * an instance of [[zio.elasticsearch.aggregation.PercentileRanksAggregation]] that represents percentile ranks * aggregation to be performed. */ - final def percentileRanksAggregation[A: Numeric]( + final def percentileRanksAggregation( name: String, field: String, - value: A, - values: A* + value: BigDecimal, + values: BigDecimal* ): PercentileRanksAggregation = PercentileRanks( name = name, field = field, - values = Chunk.fromIterable( - implicitly[Numeric[A]].toDouble(value) +: values.map(v => implicitly[Numeric[A]].toDouble(v)) - ), + values = value +: Chunk.fromIterable(values), missing = None ) diff --git a/modules/library/src/main/scala/zio/elasticsearch/aggregation/Aggregations.scala b/modules/library/src/main/scala/zio/elasticsearch/aggregation/Aggregations.scala index 168a51e72..6db69947d 100644 --- a/modules/library/src/main/scala/zio/elasticsearch/aggregation/Aggregations.scala +++ b/modules/library/src/main/scala/zio/elasticsearch/aggregation/Aggregations.scala @@ -293,7 +293,7 @@ sealed trait PercentileRanksAggregation private[elasticsearch] final case class PercentileRanks( name: String, field: String, - values: Chunk[Double], + values: Chunk[BigDecimal], missing: Option[Double] ) extends PercentileRanksAggregation { self => diff --git a/modules/library/src/test/scala/zio/elasticsearch/ElasticAggregationSpec.scala b/modules/library/src/test/scala/zio/elasticsearch/ElasticAggregationSpec.scala index d25331604..c74d9d452 100644 --- a/modules/library/src/test/scala/zio/elasticsearch/ElasticAggregationSpec.scala +++ b/modules/library/src/test/scala/zio/elasticsearch/ElasticAggregationSpec.scala @@ -1159,7 +1159,7 @@ object ElasticAggregationSpec extends ZIOSpecDefault { | "aggregation": { | "percentile_ranks": { | "field": "testField", - | "values": [5.0, 6.0] + | "values": [5, 6] | } | } |} @@ -1171,7 +1171,7 @@ object ElasticAggregationSpec extends ZIOSpecDefault { | "aggregation": { | "percentile_ranks": { | "field": "intField", - | "values": [5.0, 6.0] + | "values": [5, 6] | } | } |} @@ -1183,7 +1183,7 @@ object ElasticAggregationSpec extends ZIOSpecDefault { | "aggregation": { | "percentile_ranks": { | "field": "intField", - | "values": [5.0, 6.0], + | "values": [5, 6], | "missing": 20.0 | } | }