lila/app/controllers/KeyPages.scala
2020-03-07 08:37:49 -06:00

39 lines
1.1 KiB
Scala

package controllers
import play.api.mvc._
import scalatags.Text.all.Frag
import lila.api.Context
import lila.app._
import lila.memo.CacheApi._
import views._
final class KeyPages(env: Env)(implicit ec: scala.concurrent.ExecutionContext) {
def home(status: Results.Status)(implicit ctx: Context): Fu[Result] =
env
.preloader(
posts = env.forum.recent(ctx.me, env.team.cached.teamIdsList).nevermind,
tours = env.tournament.cached.promotable.getUnit.nevermind,
events = env.event.api.promoteTo(ctx.req).nevermind,
simuls = env.simul.allCreatedFeaturable.get({}).nevermind
)
.mon(_.lobby segment "preloader.total")
.map { h =>
lila.mon.chronoSync(_.lobby segment "renderSync") {
html.lobby.home(h)
}
}
.dmap { (html: Frag) =>
env.lilaCookie.ensure(ctx.req)(status(html))
}
def notFound(ctx: Context): Result = {
Results.NotFound(html.base.notFound()(ctx))
}
def blacklisted(implicit ctx: Context): Result = {
Results.Unauthorized(html.site.message.blacklisted)
}
}