Skip to content

Commit fd52303

Browse files
committed
Handle error validating
1 parent 205e3b8 commit fd52303

3 files changed

Lines changed: 15 additions & 10 deletions

File tree

modules/server/src/main/scala/es/weso/server/APIService.scala

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ import org.http4s.client.Client
2121
import org.http4s.dsl.Http4sDsl
2222
import org.http4s.headers._
2323
import org.http4s.multipart.Multipart
24-
import org.http4s.server.staticcontent.{ResourceService, resourceService}
24+
import org.http4s.server.staticcontent.{ResourceService, resourceServiceBuilder}
2525
import org.log4s.getLogger
2626

2727
import scala.concurrent.duration._
@@ -44,7 +44,7 @@ class APIService[F[_]:ConcurrentEffect: Timer](blocker: Blocker,
4444
private val logger = getLogger
4545

4646
private val swagger =
47-
resourceService[F](ResourceService.Config("/swagger", blocker))
47+
resourceServiceBuilder[F]("/swagger", blocker) // ResourceService.Config())
4848

4949
val routes = HttpRoutes.of[F] {
5050

@@ -62,9 +62,8 @@ class APIService[F[_]:ConcurrentEffect: Timer](blocker: Blocker,
6262
resp <- eitherOutgoing.fold((s: String) => errJson(s"Error: $s"), (outgoing: Outgoing) => Ok(outgoing.toJson))
6363
} yield resp
6464

65-
6665
// Contents on /swagger are directly mapped to /swagger
67-
case r @ GET -> _ if r.pathInfo.startsWith(UriPath.fromString("/swagger/")) => swagger(r).getOrElseF(NotFound())
66+
// case r @ GET -> _ if r.pathInfo.startsWith(UriPath.fromString("/swagger/")) => swagger.toRoutes. // getOrElseF(NotFound())
6867

6968
}
7069

modules/server/src/main/scala/es/weso/server/ApiHelper.scala

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -105,14 +105,20 @@ private[server] def validate(rdf: RDFReasoner,
105105
pm, schema.pm) match {
106106
case Left(msg) =>
107107
err(s"Cannot obtain trigger: $triggerMode\nshapeMap: $optShapeMapStr\nmsg: $msg")
108-
case Right(trigger) => for {
108+
case Right(trigger) => {
109+
val run = for {
109110
startTime <- IO { System.nanoTime() }
110111
result <- schema.validate(rdf, trigger,builder)
111112
endTime <- IO { System.nanoTime() }
112113
time: Long = endTime - startTime
113-
} yield (result,Some(trigger),time)
114+
} yield (result,Some(trigger),time)
115+
run.handleErrorWith(e => {
116+
pprint.log(e,"Error validating")
117+
err(s"Error validating: ${e.getMessage}")
118+
})
119+
}
114120
}
115-
} yield pair
121+
} yield pair
116122
}
117123

118124
private[server] def validateStr(data: String,

modules/server/src/main/scala/es/weso/server/utils/Http4sUtils.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ object Http4sUtils {
1515
def mkClient[F[_]:Concurrent](c: Client[F]): Client[F] =
1616
withRedirect(withLogging(c))
1717

18-
def getBody[F[_]:Monad](uri: Uri, r: Response[F]): F[Either[String,Stream[F,String]]] =
19-
Monad[F].pure(if (r.status.isSuccess) Right(r.bodyAsText)
20-
else Left(s"Status error fetching $uri: ${r.status}"))
18+
def getBody[F[_]:Monad: Concurrent](uri: Uri, r: Response[F]): F[Either[String,Stream[F,String]]] =
19+
if (r.status.isSuccess) r.bodyText.asRight.pure[F]
20+
else s"Status error fetching $uri: ${r.status}".asLeft.pure[F]
2121

2222
def resolveStream[F[_]:Monad: Concurrent](uri: Uri,
2323
client: Client[F]): F[Either[String,Stream[F,String]]] = {

0 commit comments

Comments
 (0)