From b6402607de95aedd0bd75fef5ebb6d0b576019b0 Mon Sep 17 00:00:00 2001 From: Juan Pedro Moreno Date: Sun, 24 Feb 2019 18:48:34 +0100 Subject: [PATCH 1/3] Makes circe-parser only needed in test stage --- project/ProjectPlugin.scala | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/project/ProjectPlugin.scala b/project/ProjectPlugin.scala index 2c39121d1..eae44cf96 100644 --- a/project/ProjectPlugin.scala +++ b/project/ProjectPlugin.scala @@ -69,10 +69,10 @@ object ProjectPlugin extends AutoPlugin { %%("simulacrum", V.simulacrum), %%("circe-core", V.circe), %%("circe-generic", V.circe), - %%("circe-parser", V.circe), %%("base64", V.base64), - %%("scalamockScalatest", V.scalamockScalatest) % "test", - %%("scalatest", V.scalaTest) % "test" + %%("circe-parser", V.circe) % Test, + %%("scalamockScalatest", V.scalamockScalatest) % Test, + %%("scalatest", V.scalaTest) % Test ) ) @@ -83,7 +83,7 @@ object ProjectPlugin extends AutoPlugin { lazy val jvmDeps = Seq( libraryDependencies ++= Seq( %%("scalaj", V.scalaj), - "org.mock-server" % "mockserver-netty" % "3.10.4" % "test" excludeAll ExclusionRule( + "org.mock-server" % "mockserver-netty" % "3.10.4" % Test excludeAll ExclusionRule( "com.twitter") ) ) @@ -100,7 +100,7 @@ object ProjectPlugin extends AutoPlugin { lazy val catsEffectDependencies = Seq( libraryDependencies ++= Seq( %%("cats-effect", V.catsEffect), - %%("scalatest", V.scalaTest) % "test" + %%("scalatest", V.scalaTest) % Test ) ) From f9b0df6250445039b7beb7bc60fb7ad488cd9684 Mon Sep 17 00:00:00 2001 From: Juan Pedro Moreno Date: Sun, 24 Feb 2019 19:15:57 +0100 Subject: [PATCH 2/3] Replaces parser by decoder --- .../github4s/HttpRequestBuilderExtensionJS.scala | 16 +++++++++------- .../HttpRequestBuilderExtensionJVM.scala | 14 ++++++++------ 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/github4s/js/src/main/scala/github4s/HttpRequestBuilderExtensionJS.scala b/github4s/js/src/main/scala/github4s/HttpRequestBuilderExtensionJS.scala index 0ab212dd7..d2ae91e15 100644 --- a/github4s/js/src/main/scala/github4s/HttpRequestBuilderExtensionJS.scala +++ b/github4s/js/src/main/scala/github4s/HttpRequestBuilderExtensionJS.scala @@ -25,8 +25,8 @@ import fr.hmil.roshttp.response.SimpleHttpResponse import fr.hmil.roshttp.util.HeaderMap import github4s.GithubResponses._ import github4s.HttpClient.{HttpCode200, HttpCode299} -import io.circe.Decoder -import io.circe.parser._ +import io.circe._ +import io.circe.syntax._ import scala.concurrent.Future @@ -81,7 +81,7 @@ trait HttpRequestBuilderExtensionJS { def toEntity[A]( response: SimpleHttpResponse, - mapResponse: (SimpleHttpResponse) => GHResponse[A]): GHResponse[A] = + mapResponse: SimpleHttpResponse => GHResponse[A]): GHResponse[A] = response match { case r if r.statusCode <= HttpCode299.statusCode && r.statusCode >= HttpCode200.statusCode ⇒ mapResponse(r) @@ -97,10 +97,12 @@ trait HttpRequestBuilderExtensionJS { Either.right(GHResult((): Unit, r.statusCode, rosHeaderMapToRegularMap(r.headers))) def decodeEntity[A](r: SimpleHttpResponse)(implicit D: Decoder[A]): GHResponse[A] = - decode[A](r.body).bimap( - e ⇒ JsonParsingException(e.getMessage, r.body), - result ⇒ GHResult(result, r.statusCode, rosHeaderMapToRegularMap(r.headers)) - ) + r.body.asJson + .as[A] + .bimap( + e ⇒ JsonParsingException(e.getMessage, r.body), + result ⇒ GHResult(result, r.statusCode, rosHeaderMapToRegularMap(r.headers)) + ) private def rosHeaderMapToRegularMap( headers: HeaderMap[String]): Map[String, IndexedSeq[String]] = headers.flatMap(m => Map(m._1.toLowerCase -> IndexedSeq(m._2))) diff --git a/github4s/jvm/src/main/scala/github4s/HttpRequestBuilderExtensionJVM.scala b/github4s/jvm/src/main/scala/github4s/HttpRequestBuilderExtensionJVM.scala index aae3d47c5..243219f03 100644 --- a/github4s/jvm/src/main/scala/github4s/HttpRequestBuilderExtensionJVM.scala +++ b/github4s/jvm/src/main/scala/github4s/HttpRequestBuilderExtensionJVM.scala @@ -17,8 +17,8 @@ package github4s import github4s.GithubResponses._ -import io.circe.Decoder -import io.circe.parser._ +import io.circe._ +import io.circe.syntax._ import scalaj.http._ import cats.implicits._ import github4s.free.interpreters.Capture @@ -89,10 +89,12 @@ trait HttpRequestBuilderExtensionJVM { Either.right(GHResult((): Unit, r.code, toLowerCase(r.headers))) def decodeEntity[A](r: HttpResponse[String])(implicit D: Decoder[A]): GHResponse[A] = - decode[A](r.body).bimap( - e ⇒ JsonParsingException(e.getMessage, r.body), - result ⇒ GHResult(result, r.code, toLowerCase(r.headers)) - ) + r.body.asJson + .as[A] + .bimap( + e ⇒ JsonParsingException(e.getMessage, r.body), + result ⇒ GHResult(result, r.code, toLowerCase(r.headers)) + ) private def toLowerCase( headers: Map[String, IndexedSeq[String]]): Map[String, IndexedSeq[String]] = From f0f04759a30621bcd5d939191acb8c1f3311a468 Mon Sep 17 00:00:00 2001 From: Juan Pedro Moreno Date: Sun, 24 Feb 2019 22:55:08 +0100 Subject: [PATCH 3/3] Replaces circe-jawn parser by circe-jackson parser --- .../main/scala/github4s/HttpRequestBuilderExtensionJS.scala | 5 +++-- .../main/scala/github4s/HttpRequestBuilderExtensionJVM.scala | 5 +++-- project/ProjectPlugin.scala | 1 + 3 files changed, 7 insertions(+), 4 deletions(-) diff --git a/github4s/js/src/main/scala/github4s/HttpRequestBuilderExtensionJS.scala b/github4s/js/src/main/scala/github4s/HttpRequestBuilderExtensionJS.scala index d2ae91e15..046ab08d7 100644 --- a/github4s/js/src/main/scala/github4s/HttpRequestBuilderExtensionJS.scala +++ b/github4s/js/src/main/scala/github4s/HttpRequestBuilderExtensionJS.scala @@ -26,6 +26,7 @@ import fr.hmil.roshttp.util.HeaderMap import github4s.GithubResponses._ import github4s.HttpClient.{HttpCode200, HttpCode299} import io.circe._ +import io.circe.jackson._ import io.circe.syntax._ import scala.concurrent.Future @@ -97,8 +98,8 @@ trait HttpRequestBuilderExtensionJS { Either.right(GHResult((): Unit, r.statusCode, rosHeaderMapToRegularMap(r.headers))) def decodeEntity[A](r: SimpleHttpResponse)(implicit D: Decoder[A]): GHResponse[A] = - r.body.asJson - .as[A] + parse(r.body) + .flatMap(_.as[A]) .bimap( e ⇒ JsonParsingException(e.getMessage, r.body), result ⇒ GHResult(result, r.statusCode, rosHeaderMapToRegularMap(r.headers)) diff --git a/github4s/jvm/src/main/scala/github4s/HttpRequestBuilderExtensionJVM.scala b/github4s/jvm/src/main/scala/github4s/HttpRequestBuilderExtensionJVM.scala index 243219f03..9334587d1 100644 --- a/github4s/jvm/src/main/scala/github4s/HttpRequestBuilderExtensionJVM.scala +++ b/github4s/jvm/src/main/scala/github4s/HttpRequestBuilderExtensionJVM.scala @@ -19,6 +19,7 @@ package github4s import github4s.GithubResponses._ import io.circe._ import io.circe.syntax._ +import io.circe.jackson._ import scalaj.http._ import cats.implicits._ import github4s.free.interpreters.Capture @@ -89,8 +90,8 @@ trait HttpRequestBuilderExtensionJVM { Either.right(GHResult((): Unit, r.code, toLowerCase(r.headers))) def decodeEntity[A](r: HttpResponse[String])(implicit D: Decoder[A]): GHResponse[A] = - r.body.asJson - .as[A] + parse(r.body) + .flatMap(_.as[A]) .bimap( e ⇒ JsonParsingException(e.getMessage, r.body), result ⇒ GHResult(result, r.code, toLowerCase(r.headers)) diff --git a/project/ProjectPlugin.scala b/project/ProjectPlugin.scala index eae44cf96..8ce652176 100644 --- a/project/ProjectPlugin.scala +++ b/project/ProjectPlugin.scala @@ -69,6 +69,7 @@ object ProjectPlugin extends AutoPlugin { %%("simulacrum", V.simulacrum), %%("circe-core", V.circe), %%("circe-generic", V.circe), + "io.circe" %% "circe-jackson28" % V.circe, %%("base64", V.base64), %%("circe-parser", V.circe) % Test, %%("scalamockScalatest", V.scalamockScalatest) % Test,