From 4afc255f748496f2f8ee975ae1059edf9eb0f858 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Piaggio?= Date: Mon, 15 Jul 2024 20:48:44 -0300 Subject: [PATCH 1/3] ConnectionError payload is an object --- .../scala/clue/model/StreamingMessage.scala | 4 +++- .../main/scala/clue/model/json/package.scala | 20 +++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/model/src/main/scala/clue/model/StreamingMessage.scala b/model/src/main/scala/clue/model/StreamingMessage.scala index acd332d7..608f870f 100644 --- a/model/src/main/scala/clue/model/StreamingMessage.scala +++ b/model/src/main/scala/clue/model/StreamingMessage.scala @@ -122,7 +122,9 @@ object StreamingMessage { * @param payload * error information */ - final case class ConnectionError(payload: Json) extends FromServer with Payload[Json] + final case class ConnectionError(payload: JsonObject) + extends FromServer + with Payload[JsonObject] object ConnectionError { implicit val EqConnectionError: Eq[ConnectionError] = diff --git a/model/src/main/scala/clue/model/json/package.scala b/model/src/main/scala/clue/model/json/package.scala index 949bdc53..edad18e7 100644 --- a/model/src/main/scala/clue/model/json/package.scala +++ b/model/src/main/scala/clue/model/json/package.scala @@ -136,7 +136,7 @@ package object json { Decoder.instance(c => for { _ <- checkType(c, "connection_error") - p <- c.get[Json]("payload") + p <- c.get[JsonObject]("payload") } yield ConnectionError(p) ) @@ -273,16 +273,14 @@ package object json { } yield GraphQLError.Location(line, column) ) - implicit val EncoderGraphQLError: Encoder[GraphQLError] = - Encoder.instance(a => - Json - .obj( - "message" -> a.message.asJson, - "path" -> a.path.asJson, - "locations" -> a.locations.asJson, - "extensions" -> a.extensions.asJson - ) - .dropNullValues + implicit val EncoderGraphQLError: Encoder.AsObject[GraphQLError] = + Encoder.AsObject.instance(a => + JsonObject( + "message" -> a.message.asJson, + "path" -> a.path.asJson, + "locations" -> a.locations.asJson, + "extensions" -> a.extensions.asJson + ).filter { case (_, v) => !v.isNull } ) implicit val DecoderGraphQLError: Decoder[GraphQLError] = From a46c0e3a2df7c14c9f4383d203911771240da721 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Piaggio?= Date: Mon, 15 Jul 2024 20:49:04 -0300 Subject: [PATCH 2/3] bump base version --- build.sbt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 6b914e87..74a8e649 100644 --- a/build.sbt +++ b/build.sbt @@ -5,7 +5,7 @@ lazy val scala3Version = "3.4.2" lazy val rulesCrossVersions = Seq(V.scala213) lazy val allVersions = rulesCrossVersions :+ scala3Version -ThisBuild / tlBaseVersion := "0.37" +ThisBuild / tlBaseVersion := "0.38" ThisBuild / tlCiReleaseBranches := Seq("master") ThisBuild / tlJdkRelease := Some(8) ThisBuild / githubWorkflowJavaVersions := Seq("11", "17").map(JavaSpec.temurin(_)) From f6769d037a1fa826221e4c8d9cd0c1c47c82b8e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ra=C3=BAl=20Piaggio?= Date: Mon, 15 Jul 2024 20:56:31 -0300 Subject: [PATCH 3/3] scalafix, fix tests --- model/src/test/scala/clue/model/arb/ArbFromServer.scala | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/model/src/test/scala/clue/model/arb/ArbFromServer.scala b/model/src/test/scala/clue/model/arb/ArbFromServer.scala index 01abffc6..7e76c4f6 100644 --- a/model/src/test/scala/clue/model/arb/ArbFromServer.scala +++ b/model/src/test/scala/clue/model/arb/ArbFromServer.scala @@ -10,6 +10,7 @@ import clue.model.GraphQLResponse import clue.model.StreamingMessage.FromServer import clue.model.StreamingMessage.FromServer.* import io.circe.Json +import io.circe.JsonObject import io.circe.testing.instances.* import org.scalacheck.Arbitrary import org.scalacheck.Arbitrary.* @@ -73,7 +74,7 @@ trait ArbFromServer { implicit val arbConnectionError: Arbitrary[ConnectionError] = Arbitrary { - arbitrary[Json](arbJsonString).map(ConnectionError(_)) + arbitrary[JsonObject](arbitraryJsonObject).map(ConnectionError(_)) } implicit val arbData: Arbitrary[Data] =