Skip to content

Commit 841636b

Browse files
refactor(specs): re-organise response for Composition API (generated)
algolia/api-clients-automation#5744 Co-authored-by: algolia-bot <accounts+algolia-api-client-bot@algolia.com> Co-authored-by: Clara Muller <5667350+ClaraMuller@users.noreply.github.com>
1 parent 2cc87f6 commit 841636b

10 files changed

+39
-191
lines changed

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

Lines changed: 1 addition & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -28,48 +28,8 @@
2828
*/
2929
package algoliasearch.composition
3030

31-
import org.json4s._
32-
3331
/** CompositionBaseSearchResponse
3432
*/
3533
case class CompositionBaseSearchResponse(
36-
compositions: Option[CompositionsSearchResponse] = scala.None,
37-
additionalProperties: Option[List[JField]] = None
34+
compositions: Option[CompositionsSearchResponse] = scala.None
3835
)
39-
40-
class CompositionBaseSearchResponseSerializer extends Serializer[CompositionBaseSearchResponse] {
41-
42-
override def deserialize(implicit
43-
format: Formats
44-
): PartialFunction[(TypeInfo, JValue), CompositionBaseSearchResponse] = {
45-
case (TypeInfo(clazz, _), json) if clazz == classOf[CompositionBaseSearchResponse] =>
46-
json match {
47-
case jobject: JObject =>
48-
val formats = format - this
49-
val mf = manifest[CompositionBaseSearchResponse]
50-
val obj = Extraction.extract[CompositionBaseSearchResponse](jobject)(formats, mf)
51-
52-
val fields = Set("compositions")
53-
val additionalProperties = jobject removeField {
54-
case (name, _) if fields.contains(name) => true
55-
case _ => false
56-
}
57-
additionalProperties match {
58-
case JObject(fieldsList) => obj copy (additionalProperties = Some(fieldsList))
59-
case _ => obj
60-
}
61-
case _ => throw new IllegalArgumentException(s"Can't deserialize $json as CompositionBaseSearchResponse")
62-
}
63-
}
64-
65-
override def serialize(implicit format: Formats): PartialFunction[Any, JValue] = {
66-
case value: CompositionBaseSearchResponse =>
67-
val formats = format - this // remove current serializer from formats to avoid stackoverflow
68-
val baseObj = Extraction.decompose(value.copy(additionalProperties = None))(formats)
69-
70-
value.additionalProperties match {
71-
case Some(fields) => baseObj merge JObject(fields)
72-
case None => baseObj
73-
}
74-
}
75-
}

src/main/scala/algoliasearch/composition/CompositionRunAppliedRules.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ package algoliasearch.composition
3131
/** CompositionRunAppliedRules
3232
*
3333
* @param objectID
34-
* Unique record identifier.
34+
* The objectID of the applied composition rule on this query.
3535
*/
3636
case class CompositionRunAppliedRules(
3737
objectID: String

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ import org.json4s._
3333
/** CompositionRunSearchResponse
3434
*
3535
* @param objectID
36-
* Unique record identifier.
36+
* The objectID of the composition which generated this result set.
3737
*/
3838
case class CompositionRunSearchResponse(
3939
objectID: String,

src/main/scala/algoliasearch/composition/JsonSupport.scala

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -69,15 +69,12 @@ object JsonSupport {
6969

7070
private def classMapSerializers: Seq[Serializer[?]] = Seq[Serializer[?]]() :+
7171
new BaseSearchResponseSerializer() :+
72-
new CompositionBaseSearchResponseSerializer() :+
7372
new CompositionRunSearchResponseSerializer() :+
7473
new CompositionsSearchResponseSerializer() :+
7574
new ErrorBaseSerializer() :+
7675
new HitSerializer() :+
7776
new HitMetadataSerializer() :+
78-
new ResultsCompositionsResponseSerializer() :+
7977
new ResultsInjectedItemInfoResponseSerializer() :+
80-
new SearchHitsSerializer() :+
8178
new SearchResultsItemSerializer()
8279

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

src/main/scala/algoliasearch/composition/ResultsCompositionsResponse.scala

Lines changed: 1 addition & 41 deletions
Original file line numberDiff line numberDiff line change
@@ -28,48 +28,8 @@
2828
*/
2929
package algoliasearch.composition
3030

31-
import org.json4s._
32-
3331
/** ResultsCompositionsResponse
3432
*/
3533
case class ResultsCompositionsResponse(
36-
compositions: Map[String, ResultsCompositionInfoResponse],
37-
additionalProperties: Option[List[JField]] = None
34+
compositions: Map[String, ResultsCompositionInfoResponse]
3835
)
39-
40-
class ResultsCompositionsResponseSerializer extends Serializer[ResultsCompositionsResponse] {
41-
42-
override def deserialize(implicit
43-
format: Formats
44-
): PartialFunction[(TypeInfo, JValue), ResultsCompositionsResponse] = {
45-
case (TypeInfo(clazz, _), json) if clazz == classOf[ResultsCompositionsResponse] =>
46-
json match {
47-
case jobject: JObject =>
48-
val formats = format - this
49-
val mf = manifest[ResultsCompositionsResponse]
50-
val obj = Extraction.extract[ResultsCompositionsResponse](jobject)(formats, mf)
51-
52-
val fields = Set("compositions")
53-
val additionalProperties = jobject removeField {
54-
case (name, _) if fields.contains(name) => true
55-
case _ => false
56-
}
57-
additionalProperties match {
58-
case JObject(fieldsList) => obj copy (additionalProperties = Some(fieldsList))
59-
case _ => obj
60-
}
61-
case _ => throw new IllegalArgumentException(s"Can't deserialize $json as ResultsCompositionsResponse")
62-
}
63-
}
64-
65-
override def serialize(implicit format: Formats): PartialFunction[Any, JValue] = {
66-
case value: ResultsCompositionsResponse =>
67-
val formats = format - this // remove current serializer from formats to avoid stackoverflow
68-
val baseObj = Extraction.decompose(value.copy(additionalProperties = None))(formats)
69-
70-
value.additionalProperties match {
71-
case Some(fields) => baseObj merge JObject(fields)
72-
case None => baseObj
73-
}
74-
}
75-
}

src/main/scala/algoliasearch/composition/ResultsInjectedItemAppliedRulesInfoResponse.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ package algoliasearch.composition
3131
/** ResultsInjectedItemAppliedRulesInfoResponse
3232
*
3333
* @param objectID
34-
* Unique record identifier.
34+
* The objectID of the applied index level rule on this injected group.
3535
*/
3636
case class ResultsInjectedItemAppliedRulesInfoResponse(
3737
objectID: String

src/main/scala/algoliasearch/composition/ResultsInjectedItemInfoResponse.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ package algoliasearch.composition
3131
import org.json4s._
3232

3333
/** ResultsInjectedItemInfoResponse
34+
*
35+
* @param key
36+
* The key of the injected group.
3437
*/
3538
case class ResultsInjectedItemInfoResponse(
3639
key: String,

src/main/scala/algoliasearch/composition/SearchPagination.scala renamed to src/main/scala/algoliasearch/composition/SearchFields.scala

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,20 +28,30 @@
2828
*/
2929
package algoliasearch.composition
3030

31-
/** SearchPagination
31+
/** SearchFields
3232
*
33-
* @param page
34-
* The current page of the results.
33+
* @param hits
34+
* Search results (hits). Hits are records from your index that match the search criteria, augmented with additional
35+
* attributes, such as, for highlighting.
36+
* @param hitsPerPage
37+
* Number of hits returned per page.
3538
* @param nbHits
3639
* Number of results (hits).
3740
* @param nbPages
3841
* Number of pages of results.
39-
* @param hitsPerPage
40-
* Number of hits returned per page.
42+
* @param page
43+
* The current page of the results.
44+
* @param params
45+
* URL-encoded string of all search parameters.
46+
* @param query
47+
* The search query string.
4148
*/
42-
case class SearchPagination(
43-
page: Int,
49+
case class SearchFields(
50+
hits: Seq[Hit],
51+
hitsPerPage: Int,
4452
nbHits: Int,
4553
nbPages: Int,
46-
hitsPerPage: Int
54+
page: Int,
55+
params: String,
56+
query: String
4757
)

src/main/scala/algoliasearch/composition/SearchHits.scala

Lines changed: 0 additions & 82 deletions
This file was deleted.

src/main/scala/algoliasearch/composition/SearchResultsItem.scala

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -81,21 +81,21 @@ import org.json4s._
8181
* analytics](https://www.algolia.com/doc/guides/analytics/click-analytics).
8282
* @param automaticInsights
8383
* Whether automatic events collection is enabled for the application.
84-
* @param page
85-
* The current page of the results.
84+
* @param hits
85+
* Search results (hits). Hits are records from your index that match the search criteria, augmented with additional
86+
* attributes, such as, for highlighting.
87+
* @param hitsPerPage
88+
* Number of hits returned per page.
8689
* @param nbHits
8790
* Number of results (hits).
8891
* @param nbPages
8992
* Number of pages of results.
90-
* @param hitsPerPage
91-
* Number of hits returned per page.
92-
* @param hits
93-
* Search results (hits). Hits are records from your index that match the search criteria, augmented with additional
94-
* attributes, such as, for highlighting.
95-
* @param query
96-
* The search query string.
93+
* @param page
94+
* The current page of the results.
9795
* @param params
9896
* URL-encoded string of all search parameters.
97+
* @param query
98+
* The search query string.
9999
*/
100100
case class SearchResultsItem(
101101
abTestID: Option[Int] = scala.None,
@@ -124,13 +124,13 @@ case class SearchResultsItem(
124124
userData: Option[Any] = scala.None,
125125
queryID: Option[String] = scala.None,
126126
automaticInsights /* _automaticInsights */: Option[Boolean] = scala.None,
127-
page: Int,
127+
hits: Seq[Hit],
128+
hitsPerPage: Int,
128129
nbHits: Int,
129130
nbPages: Int,
130-
hitsPerPage: Int,
131-
hits: Seq[Hit],
132-
query: String,
131+
page: Int,
133132
params: String,
133+
query: String,
134134
compositions: Map[String, ResultsCompositionInfoResponse]
135135
)
136136

0 commit comments

Comments
 (0)