Skip to content

Commit bd2beb7

Browse files
algolia-botFluf22
andcommitted
feat(scala): missing helpers (generated)
algolia/api-clients-automation#4486 Co-authored-by: algolia-bot <[email protected]> Co-authored-by: Thomas Raffray <[email protected]>
1 parent 02bce49 commit bd2beb7

File tree

97 files changed

+1258
-453
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

97 files changed

+1258
-453
lines changed

src/main/scala/algoliasearch/ApiClient.scala

-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@ import algoliasearch.internal.interceptor.{AuthInterceptor, RetryStrategy, UserA
66
import algoliasearch.internal.{AlgoliaAgent, HttpRequester, StatefulHost}
77
import org.json4s.Formats
88

9-
import java.util.concurrent.TimeUnit
109
import scala.concurrent.duration.Duration
1110
import scala.util.Try
1211

src/main/scala/algoliasearch/abtesting/ErrorBase.scala

+6-5
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@
2424
*/
2525
package algoliasearch.abtesting
2626

27-
import org.json4s.MonadicJValue.jvalueToMonadic
28-
import org.json4s.{Extraction, Formats, JField, JObject, JValue, Serializer, TypeInfo}
27+
import org.json4s._
2928

3029
/** Error.
3130
*/
@@ -49,7 +48,7 @@ class ErrorBaseSerializer extends Serializer[ErrorBase] {
4948
case (name, _) if fields.contains(name) => true
5049
case _ => false
5150
}
52-
additionalProperties.values match {
51+
additionalProperties match {
5352
case JObject(fieldsList) => obj copy (additionalProperties = Some(fieldsList))
5453
case _ => obj
5554
}
@@ -59,9 +58,11 @@ class ErrorBaseSerializer extends Serializer[ErrorBase] {
5958

6059
override def serialize(implicit format: Formats): PartialFunction[Any, JValue] = { case value: ErrorBase =>
6160
val formats = format - this // remove current serializer from formats to avoid stackoverflow
61+
val baseObj = Extraction.decompose(value.copy(additionalProperties = None))(formats)
62+
6263
value.additionalProperties match {
63-
case Some(fields) => Extraction.decompose(value.copy(additionalProperties = None))(formats) merge JObject(fields)
64-
case None => Extraction.decompose(value)(formats)
64+
case Some(fields) => baseObj merge JObject(fields)
65+
case None => baseObj
6566
}
6667
}
6768
}

src/main/scala/algoliasearch/abtesting/JsonSupport.scala

+3-3
Original file line numberDiff line numberDiff line change
@@ -27,14 +27,14 @@ package algoliasearch.abtesting
2727
import org.json4s._
2828

2929
object JsonSupport {
30-
private def enumSerializers: Seq[Serializer[_]] = Seq[Serializer[_]]() :+
30+
private def enumSerializers: Seq[Serializer[?]] = Seq[Serializer[?]]() :+
3131
new EffectMetricSerializer() :+
3232
new StatusSerializer()
3333

34-
private def oneOfsSerializers: Seq[Serializer[_]] = Seq[Serializer[_]]() :+
34+
private def oneOfsSerializers: Seq[Serializer[?]] = Seq[Serializer[?]]() :+
3535
AddABTestsVariantSerializer
3636

37-
private def classMapSerializers: Seq[Serializer[_]] = Seq[Serializer[_]]() :+
37+
private def classMapSerializers: Seq[Serializer[?]] = Seq[Serializer[?]]() :+
3838
new ErrorBaseSerializer()
3939

4040
implicit val format: Formats = DefaultFormats ++ enumSerializers ++ oneOfsSerializers ++ classMapSerializers

src/main/scala/algoliasearch/analytics/ErrorBase.scala

+6-5
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@
2929
*/
3030
package algoliasearch.analytics
3131

32-
import org.json4s.MonadicJValue.jvalueToMonadic
33-
import org.json4s.{Extraction, Formats, JField, JObject, JValue, Serializer, TypeInfo}
32+
import org.json4s._
3433

3534
/** Error.
3635
*/
@@ -54,7 +53,7 @@ class ErrorBaseSerializer extends Serializer[ErrorBase] {
5453
case (name, _) if fields.contains(name) => true
5554
case _ => false
5655
}
57-
additionalProperties.values match {
56+
additionalProperties match {
5857
case JObject(fieldsList) => obj copy (additionalProperties = Some(fieldsList))
5958
case _ => obj
6059
}
@@ -64,9 +63,11 @@ class ErrorBaseSerializer extends Serializer[ErrorBase] {
6463

6564
override def serialize(implicit format: Formats): PartialFunction[Any, JValue] = { case value: ErrorBase =>
6665
val formats = format - this // remove current serializer from formats to avoid stackoverflow
66+
val baseObj = Extraction.decompose(value.copy(additionalProperties = None))(formats)
67+
6768
value.additionalProperties match {
68-
case Some(fields) => Extraction.decompose(value.copy(additionalProperties = None))(formats) merge JObject(fields)
69-
case None => Extraction.decompose(value)(formats)
69+
case Some(fields) => baseObj merge JObject(fields)
70+
case None => baseObj
7071
}
7172
}
7273
}

src/main/scala/algoliasearch/analytics/JsonSupport.scala

+3-3
Original file line numberDiff line numberDiff line change
@@ -32,16 +32,16 @@ package algoliasearch.analytics
3232
import org.json4s._
3333

3434
object JsonSupport {
35-
private def enumSerializers: Seq[Serializer[_]] = Seq[Serializer[_]]() :+
35+
private def enumSerializers: Seq[Serializer[?]] = Seq[Serializer[?]]() :+
3636
new DirectionSerializer() :+
3737
new OperatorSerializer() :+
3838
new OrderBySerializer()
3939

40-
private def oneOfsSerializers: Seq[Serializer[_]] = Seq[Serializer[_]]() :+
40+
private def oneOfsSerializers: Seq[Serializer[?]] = Seq[Serializer[?]]() :+
4141
GetTopHitsResponseSerializer :+
4242
GetTopSearchesResponseSerializer
4343

44-
private def classMapSerializers: Seq[Serializer[_]] = Seq[Serializer[_]]() :+
44+
private def classMapSerializers: Seq[Serializer[?]] = Seq[Serializer[?]]() :+
4545
new ErrorBaseSerializer()
4646

4747
implicit val format: Formats = DefaultFormats ++ enumSerializers ++ oneOfsSerializers ++ classMapSerializers

src/main/scala/algoliasearch/composition/AroundPrecision.scala

+5-3
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,13 @@ sealed trait AroundPrecision
4343
object AroundPrecision {
4444

4545
case class IntValue(value: Int) extends AroundPrecision
46+
4647
case class SeqOfRange(value: Seq[Range]) extends AroundPrecision
4748

4849
def apply(value: Int): AroundPrecision = {
4950
AroundPrecision.IntValue(value)
5051
}
52+
5153
def apply(value: Seq[Range]): AroundPrecision = {
5254
AroundPrecision.SeqOfRange(value)
5355
}
@@ -59,9 +61,9 @@ object AroundPrecisionSerializer extends Serializer[AroundPrecision] {
5961

6062
case (TypeInfo(clazz, _), json) if clazz == classOf[AroundPrecision] =>
6163
json match {
62-
case JInt(value) => AroundPrecision.IntValue(value.toInt)
63-
case JArray(value) if value.forall(_.isInstanceOf[JArray]) => AroundPrecision.SeqOfRange(value.map(_.extract))
64-
case _ => throw new MappingException("Can't convert " + json + " to AroundPrecision")
64+
case JInt(value) => AroundPrecision.IntValue(value.toInt)
65+
case value: JArray => AroundPrecision.apply(Extraction.extract[Seq[Range]](value))
66+
case _ => throw new MappingException("Can't convert " + json + " to AroundPrecision")
6567
}
6668
}
6769

src/main/scala/algoliasearch/composition/BaseSearchResponse.scala

+23-10
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,7 @@
3333
*/
3434
package algoliasearch.composition
3535

36-
import org.json4s.MonadicJValue.jvalueToMonadic
37-
import org.json4s.{Extraction, Formats, JField, JObject, JValue, Serializer, TypeInfo}
36+
import org.json4s._
3837

3938
/** BaseSearchResponse
4039
*
@@ -99,7 +98,7 @@ case class BaseSearchResponse(
9998
exhaustiveNbHits: Option[Boolean] = scala.None,
10099
exhaustiveTypo: Option[Boolean] = scala.None,
101100
facets: Option[Map[String, Map[String, Int]]] = scala.None,
102-
facetsStats: Option[Map[String, FacetStats]] = scala.None,
101+
facetsStats /* facets_stats */: Option[Map[String, FacetStats]] = scala.None,
103102
index: Option[String] = scala.None,
104103
indexUsed: Option[String] = scala.None,
105104
message: Option[String] = scala.None,
@@ -114,19 +113,29 @@ case class BaseSearchResponse(
114113
serverUsed: Option[String] = scala.None,
115114
userData: Option[Any] = scala.None,
116115
queryID: Option[String] = scala.None,
117-
automaticInsights: Option[Boolean] = scala.None,
116+
automaticInsights /* _automaticInsights */: Option[Boolean] = scala.None,
118117
additionalProperties: Option[List[JField]] = None
119118
)
120119

121120
class BaseSearchResponseSerializer extends Serializer[BaseSearchResponse] {
122121

122+
private val renamedFields = Map[String, String](
123+
"facets_stats" -> "facetsStats",
124+
"_automaticInsights" -> "automaticInsights"
125+
)
123126
override def deserialize(implicit format: Formats): PartialFunction[(TypeInfo, JValue), BaseSearchResponse] = {
124127
case (TypeInfo(clazz, _), json) if clazz == classOf[BaseSearchResponse] =>
125128
json match {
126129
case jobject: JObject =>
130+
// Rename fields from JSON to Scala
131+
val renamedObject = JObject(
132+
jobject.obj.map { field =>
133+
renamedFields.get(field._1).map(JField(_, field._2)).getOrElse(field)
134+
}
135+
)
127136
val formats = format - this
128137
val mf = manifest[BaseSearchResponse]
129-
val obj = Extraction.extract[BaseSearchResponse](jobject)(formats, mf)
138+
val obj = Extraction.extract[BaseSearchResponse](renamedObject)(formats, mf)
130139

131140
val fields = Set(
132141
"abTestID",
@@ -139,7 +148,7 @@ class BaseSearchResponseSerializer extends Serializer[BaseSearchResponse] {
139148
"exhaustiveNbHits",
140149
"exhaustiveTypo",
141150
"facets",
142-
"facetsStats",
151+
"facets_stats",
143152
"index",
144153
"indexUsed",
145154
"message",
@@ -154,13 +163,13 @@ class BaseSearchResponseSerializer extends Serializer[BaseSearchResponse] {
154163
"serverUsed",
155164
"userData",
156165
"queryID",
157-
"automaticInsights"
166+
"_automaticInsights"
158167
)
159168
val additionalProperties = jobject removeField {
160169
case (name, _) if fields.contains(name) => true
161170
case _ => false
162171
}
163-
additionalProperties.values match {
172+
additionalProperties match {
164173
case JObject(fieldsList) => obj copy (additionalProperties = Some(fieldsList))
165174
case _ => obj
166175
}
@@ -170,9 +179,13 @@ class BaseSearchResponseSerializer extends Serializer[BaseSearchResponse] {
170179

171180
override def serialize(implicit format: Formats): PartialFunction[Any, JValue] = { case value: BaseSearchResponse =>
172181
val formats = format - this // remove current serializer from formats to avoid stackoverflow
182+
val baseObj = Extraction.decompose(value.copy(additionalProperties = None))(formats)
183+
val renamedObj = baseObj transformField {
184+
case JField(name, value) if renamedFields.exists(_._2 == name) => (renamedFields.find(_._2 == name).get._1, value)
185+
}
173186
value.additionalProperties match {
174-
case Some(fields) => Extraction.decompose(value.copy(additionalProperties = None))(formats) merge JObject(fields)
175-
case None => Extraction.decompose(value)(formats)
187+
case Some(fields) => renamedObj merge JObject(fields)
188+
case None => renamedObj
176189
}
177190
}
178191
}

src/main/scala/algoliasearch/composition/CompositionBaseSearchResponse.scala

+6-6
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,7 @@
3333
*/
3434
package algoliasearch.composition
3535

36-
import org.json4s.MonadicJValue.jvalueToMonadic
37-
import org.json4s.{Extraction, Formats, JField, JObject, JValue, Serializer, TypeInfo}
36+
import org.json4s._
3837

3938
/** CompositionBaseSearchResponse
4039
*/
@@ -60,7 +59,7 @@ class CompositionBaseSearchResponseSerializer extends Serializer[CompositionBase
6059
case (name, _) if fields.contains(name) => true
6160
case _ => false
6261
}
63-
additionalProperties.values match {
62+
additionalProperties match {
6463
case JObject(fieldsList) => obj copy (additionalProperties = Some(fieldsList))
6564
case _ => obj
6665
}
@@ -71,10 +70,11 @@ class CompositionBaseSearchResponseSerializer extends Serializer[CompositionBase
7170
override def serialize(implicit format: Formats): PartialFunction[Any, JValue] = {
7271
case value: CompositionBaseSearchResponse =>
7372
val formats = format - this // remove current serializer from formats to avoid stackoverflow
73+
val baseObj = Extraction.decompose(value.copy(additionalProperties = None))(formats)
74+
7475
value.additionalProperties match {
75-
case Some(fields) =>
76-
Extraction.decompose(value.copy(additionalProperties = None))(formats) merge JObject(fields)
77-
case None => Extraction.decompose(value)(formats)
76+
case Some(fields) => baseObj merge JObject(fields)
77+
case None => baseObj
7878
}
7979
}
8080
}

src/main/scala/algoliasearch/composition/CompositionRunSearchResponse.scala

+6-6
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,7 @@
3333
*/
3434
package algoliasearch.composition
3535

36-
import org.json4s.MonadicJValue.jvalueToMonadic
37-
import org.json4s.{Extraction, Formats, JField, JObject, JValue, Serializer, TypeInfo}
36+
import org.json4s._
3837

3938
/** CompositionRunSearchResponse
4039
*
@@ -64,7 +63,7 @@ class CompositionRunSearchResponseSerializer extends Serializer[CompositionRunSe
6463
case (name, _) if fields.contains(name) => true
6564
case _ => false
6665
}
67-
additionalProperties.values match {
66+
additionalProperties match {
6867
case JObject(fieldsList) => obj copy (additionalProperties = Some(fieldsList))
6968
case _ => obj
7069
}
@@ -75,10 +74,11 @@ class CompositionRunSearchResponseSerializer extends Serializer[CompositionRunSe
7574
override def serialize(implicit format: Formats): PartialFunction[Any, JValue] = {
7675
case value: CompositionRunSearchResponse =>
7776
val formats = format - this // remove current serializer from formats to avoid stackoverflow
77+
val baseObj = Extraction.decompose(value.copy(additionalProperties = None))(formats)
78+
7879
value.additionalProperties match {
79-
case Some(fields) =>
80-
Extraction.decompose(value.copy(additionalProperties = None))(formats) merge JObject(fields)
81-
case None => Extraction.decompose(value)(formats)
80+
case Some(fields) => baseObj merge JObject(fields)
81+
case None => baseObj
8282
}
8383
}
8484
}

src/main/scala/algoliasearch/composition/CompositionsSearchResponse.scala

+6-6
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,7 @@
3333
*/
3434
package algoliasearch.composition
3535

36-
import org.json4s.MonadicJValue.jvalueToMonadic
37-
import org.json4s.{Extraction, Formats, JField, JObject, JValue, Serializer, TypeInfo}
36+
import org.json4s._
3837

3938
/** CompositionsSearchResponse
4039
*/
@@ -60,7 +59,7 @@ class CompositionsSearchResponseSerializer extends Serializer[CompositionsSearch
6059
case (name, _) if fields.contains(name) => true
6160
case _ => false
6261
}
63-
additionalProperties.values match {
62+
additionalProperties match {
6463
case JObject(fieldsList) => obj copy (additionalProperties = Some(fieldsList))
6564
case _ => obj
6665
}
@@ -71,10 +70,11 @@ class CompositionsSearchResponseSerializer extends Serializer[CompositionsSearch
7170
override def serialize(implicit format: Formats): PartialFunction[Any, JValue] = {
7271
case value: CompositionsSearchResponse =>
7372
val formats = format - this // remove current serializer from formats to avoid stackoverflow
73+
val baseObj = Extraction.decompose(value.copy(additionalProperties = None))(formats)
74+
7475
value.additionalProperties match {
75-
case Some(fields) =>
76-
Extraction.decompose(value.copy(additionalProperties = None))(formats) merge JObject(fields)
77-
case None => Extraction.decompose(value)(formats)
76+
case Some(fields) => baseObj merge JObject(fields)
77+
case None => baseObj
7878
}
7979
}
8080
}

src/main/scala/algoliasearch/composition/ErrorBase.scala

+6-5
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,7 @@
3333
*/
3434
package algoliasearch.composition
3535

36-
import org.json4s.MonadicJValue.jvalueToMonadic
37-
import org.json4s.{Extraction, Formats, JField, JObject, JValue, Serializer, TypeInfo}
36+
import org.json4s._
3837

3938
/** Error.
4039
*/
@@ -58,7 +57,7 @@ class ErrorBaseSerializer extends Serializer[ErrorBase] {
5857
case (name, _) if fields.contains(name) => true
5958
case _ => false
6059
}
61-
additionalProperties.values match {
60+
additionalProperties match {
6261
case JObject(fieldsList) => obj copy (additionalProperties = Some(fieldsList))
6362
case _ => obj
6463
}
@@ -68,9 +67,11 @@ class ErrorBaseSerializer extends Serializer[ErrorBase] {
6867

6968
override def serialize(implicit format: Formats): PartialFunction[Any, JValue] = { case value: ErrorBase =>
7069
val formats = format - this // remove current serializer from formats to avoid stackoverflow
70+
val baseObj = Extraction.decompose(value.copy(additionalProperties = None))(formats)
71+
7172
value.additionalProperties match {
72-
case Some(fields) => Extraction.decompose(value.copy(additionalProperties = None))(formats) merge JObject(fields)
73-
case None => Extraction.decompose(value)(formats)
73+
case Some(fields) => baseObj merge JObject(fields)
74+
case None => baseObj
7475
}
7576
}
7677
}

src/main/scala/algoliasearch/composition/FacetFilters.scala

+3-2
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,13 @@ sealed trait FacetFilters
4646
object FacetFilters {
4747

4848
case class SeqOfFacetFilters(value: Seq[FacetFilters]) extends FacetFilters
49+
4950
case class StringValue(value: String) extends FacetFilters
5051

5152
def apply(value: Seq[FacetFilters]): FacetFilters = {
5253
FacetFilters.SeqOfFacetFilters(value)
5354
}
55+
5456
def apply(value: String): FacetFilters = {
5557
FacetFilters.StringValue(value)
5658
}
@@ -62,8 +64,7 @@ object FacetFiltersSerializer extends Serializer[FacetFilters] {
6264

6365
case (TypeInfo(clazz, _), json) if clazz == classOf[FacetFilters] =>
6466
json match {
65-
case JArray(value) if value.forall(_.isInstanceOf[JArray]) =>
66-
FacetFilters.SeqOfFacetFilters(value.map(_.extract))
67+
case value: JArray => FacetFilters.apply(Extraction.extract[Seq[FacetFilters]](value))
6768
case JString(value) => FacetFilters.StringValue(value)
6869
case _ => throw new MappingException("Can't convert " + json + " to FacetFilters")
6970
}

0 commit comments

Comments
 (0)