app/controllers/Management.scala (25 lines of code) (raw):
package controllers
import play.api.mvc._
import java.util.Date
import model.EstateProvider
import org.joda.time.DateTime
class Management(
estateProvider: EstateProvider,
controllerComponents: ControllerComponents
) extends AbstractController(controllerComponents) {
def healthcheck = Action {
estateProvider().lastUpdated match {
case Some(dt) if dt.isBefore(DateTime.now().minusMinutes(5)) => InternalServerError("Out of date data")
case _ => Ok("")
}
}
def manifest() = Action {
val data = Map(
"Build" -> BuildInfo.buildNumber,
"Commit" -> BuildInfo.gitCommitId,
"Date" -> new Date(BuildInfo.buildTime).toString,
"Dependencies" -> BuildInfo.libraryDependencies.mkString(", ")
)
Ok(data map { case (k, v) => s"$k: $v"} mkString "\n")
}
}