diff --git a/obp-api/pom.xml b/obp-api/pom.xml index a9eaadb93..36e14374a 100644 --- a/obp-api/pom.xml +++ b/obp-api/pom.xml @@ -23,6 +23,39 @@ src/main/resources/web.xml + + http4s-jar + + + + org.apache.maven.plugins + maven-assembly-plugin + 3.6.0 + + false + ${project.artifactId}-http4s + + + bootstrap.http4s.Http4sServer + + + + jar-with-dependencies + + + + + http4s-fat-jar + package + + single + + + + + + + @@ -612,6 +645,20 @@ net.alchim31.maven scala-maven-plugin + 4.8.1 + + true + + -Xms4G + -Xmx12G + -XX:MaxMetaspaceSize=4G + -XX:+UseG1GC + + + -deprecation + -feature + + org.apache.maven.plugins diff --git a/obp-api/src/main/scala/code/api/v7_0_0/Http4s700.scala b/obp-api/src/main/scala/code/api/v7_0_0/Http4s700.scala index 10907b1e8..877b91b72 100644 --- a/obp-api/src/main/scala/code/api/v7_0_0/Http4s700.scala +++ b/obp-api/src/main/scala/code/api/v7_0_0/Http4s700.scala @@ -1,6 +1,6 @@ package code.api.v7_0_0 -import cats.data.Kleisli +import cats.data.{Kleisli, OptionT} import cats.effect._ import cats.implicits._ import code.api.util.{APIUtil, CustomJsonFormats} @@ -19,6 +19,8 @@ import scala.language.{higherKinds, implicitConversions} object Http4s700 { + type HttpF[A] = OptionT[IO, A] + implicit val formats: Formats = CustomJsonFormats.formats implicit def convertAnyToJsonString(any: Any): String = prettyRender(Extraction.decompose(any)) @@ -31,12 +33,13 @@ object Http4s700 { object CallContextMiddleware { - def withCallContext(routes: HttpRoutes[IO]): HttpRoutes[IO] = Kleisli { req: Request[IO] => - val callContext = CallContext(userId = "example-user", requestId = java.util.UUID.randomUUID().toString) - val updatedAttributes = req.attributes.insert(callContextKey, callContext) - val updatedReq = req.withAttributes(updatedAttributes) - routes(updatedReq) - } + def withCallContext(routes: HttpRoutes[IO]): HttpRoutes[IO] = + Kleisli[HttpF, Request[IO], Response[IO]] { req: Request[IO] => + val callContext = CallContext(userId = "example-user", requestId = java.util.UUID.randomUUID().toString) + val updatedAttributes = req.attributes.insert(callContextKey, callContext) + val updatedReq = req.withAttributes(updatedAttributes) + routes(updatedReq) + } } val v700Services: HttpRoutes[IO] = HttpRoutes.of[IO] {