Skip to content

Commit

Permalink
Merge pull request #610 from gemini-hlsw/fix-error-type
Browse files Browse the repository at this point in the history
Fix ConnectionError payload type
  • Loading branch information
rpiaggio authored Jul 16, 2024
2 parents 42f7c96 + f6769d0 commit 52b9565
Show file tree
Hide file tree
Showing 4 changed files with 15 additions and 14 deletions.
2 changes: 1 addition & 1 deletion build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -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(_))
Expand Down
4 changes: 3 additions & 1 deletion model/src/main/scala/clue/model/StreamingMessage.scala
Original file line number Diff line number Diff line change
Expand Up @@ -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] =
Expand Down
20 changes: 9 additions & 11 deletions model/src/main/scala/clue/model/json/package.scala
Original file line number Diff line number Diff line change
Expand Up @@ -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)
)

Expand Down Expand Up @@ -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] =
Expand Down
3 changes: 2 additions & 1 deletion model/src/test/scala/clue/model/arb/ArbFromServer.scala
Original file line number Diff line number Diff line change
Expand Up @@ -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.*
Expand Down Expand Up @@ -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] =
Expand Down

0 comments on commit 52b9565

Please sign in to comment.