63 lines
1.5 KiB
Scala
63 lines
1.5 KiB
Scala
package controllers
|
|
|
|
import play.api.libs.json._
|
|
import play.api.mvc._
|
|
|
|
import lila.app._
|
|
import views._
|
|
|
|
final class Lobby(
|
|
env: Env
|
|
) extends LilaController(env) {
|
|
|
|
private lazy val lobbyJson = Json.obj(
|
|
"lobby" -> Json.obj(
|
|
"version" -> 0,
|
|
"pools" -> lila.pool.PoolList.json
|
|
),
|
|
"assets" -> Json.obj(
|
|
"domain" -> env.net.assetDomain.value
|
|
)
|
|
)
|
|
|
|
def home =
|
|
Open { implicit ctx =>
|
|
pageHit
|
|
negotiate(
|
|
html = env.pageCache { () =>
|
|
keyPages.homeHtml.dmap { html =>
|
|
NoCache(Ok(html))
|
|
}
|
|
} map env.lilaCookie.ensure(ctx.req),
|
|
api = _ =>
|
|
fuccess {
|
|
val expiration = 60 * 60 * 24 * 7 // set to one hour, one week before changing the pool config
|
|
Ok(lobbyJson).withHeaders(CACHE_CONTROL -> s"max-age=$expiration")
|
|
}
|
|
)
|
|
}
|
|
|
|
def handleStatus(req: RequestHeader, status: Results.Status): Fu[Result] =
|
|
reqToCtx(req) flatMap { ctx =>
|
|
keyPages.home(status)(ctx)
|
|
}
|
|
|
|
def seeks =
|
|
Open { implicit ctx =>
|
|
negotiate(
|
|
html = fuccess(NotFound),
|
|
api = _ =>
|
|
ctx.me.fold(env.lobby.seekApi.forAnon)(env.lobby.seekApi.forUser) map { seeks =>
|
|
Ok(JsArray(seeks.map(_.render))).withHeaders(CACHE_CONTROL -> s"max-age=10")
|
|
}
|
|
)
|
|
}
|
|
|
|
def timeline =
|
|
Auth { implicit ctx => me =>
|
|
env.timeline.entryApi.userEntries(me.id) map { entries =>
|
|
Ok(html.timeline.entries(entries)).withHeaders(CACHE_CONTROL -> s"max-age=20")
|
|
}
|
|
}
|
|
}
|