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] {