Add (inofficial) routes to get system information

This commit is contained in:
Eike Kettner
2021-01-05 20:54:53 +01:00
parent 30df887934
commit b08e88cd69
7 changed files with 210 additions and 16 deletions

View File

@ -35,7 +35,7 @@ object JoexServer {
.create[F](cfg, signal, pools.connectEC, pools.httpClientEC, pools.blocker)
httpApp = Router(
"/api/info" -> InfoRoutes(),
"/api/info" -> InfoRoutes(cfg),
"/api/v1" -> JoexRoutes(joexApp)
).orNotFound

View File

@ -1,8 +1,10 @@
package docspell.joex.routes
import cats.effect.Sync
import cats.implicits._
import docspell.joex.BuildInfo
import docspell.common.JvmInfo
import docspell.joex.{BuildInfo, Config}
import docspell.joexapi.model.VersionInfo
import org.http4s.HttpRoutes
@ -11,19 +13,23 @@ import org.http4s.dsl.Http4sDsl
object InfoRoutes {
def apply[F[_]: Sync](): HttpRoutes[F] = {
def apply[F[_]: Sync](cfg: Config): HttpRoutes[F] = {
val dsl = new Http4sDsl[F] {}
import dsl._
HttpRoutes.of[F] { case GET -> (Root / "version") =>
Ok(
VersionInfo(
BuildInfo.version,
BuildInfo.builtAtMillis,
BuildInfo.builtAtString,
BuildInfo.gitHeadCommit.getOrElse(""),
BuildInfo.gitDescribedVersion.getOrElse("")
HttpRoutes.of[F] {
case GET -> Root / "version" =>
Ok(
VersionInfo(
BuildInfo.version,
BuildInfo.builtAtMillis,
BuildInfo.builtAtString,
BuildInfo.gitHeadCommit.getOrElse(""),
BuildInfo.gitDescribedVersion.getOrElse("")
)
)
)
case GET -> Root / "system" =>
JvmInfo.create[F](cfg.appId).flatMap(Ok(_))
}
}
}