lila/app/controllers/Lobby.scala

51 lines
1.2 KiB
Scala
Raw Normal View History

2013-03-18 17:36:22 -06:00
package controllers
2014-12-18 16:25:37 -07:00
import play.api.libs.json._
2013-05-24 08:37:24 -06:00
import play.api.mvc._
2013-05-08 15:34:37 -06:00
import lila.app._
import views._
2013-03-18 17:36:22 -06:00
2019-12-04 16:39:16 -07:00
final class Lobby(
env: Env
) extends LilaController(env) {
2013-03-18 17:36:22 -06:00
2016-11-29 16:05:42 -07:00
private val lobbyJson = Json.obj(
2016-12-10 04:47:03 -07:00
"lobby" -> Json.obj(
"version" -> 0,
2019-12-13 07:30:20 -07:00
"pools" -> env.api.lobbyApi.poolsJson
2016-12-10 04:47:03 -07:00
)
2016-11-29 16:05:42 -07:00
)
2014-02-17 02:12:19 -07:00
def home = Open { implicit ctx =>
2019-12-04 16:39:16 -07:00
pageHit
negotiate(
2019-12-21 14:55:45 -07:00
html = keyPages.home(Results.Ok).dmap(NoCache),
2019-12-13 07:30:20 -07:00
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")
}
)
2013-05-08 15:34:37 -06:00
}
2019-07-08 12:51:54 -06:00
def handleStatus(req: RequestHeader, status: Results.Status): Fu[Result] =
2019-12-13 07:30:20 -07:00
reqToCtx(req) flatMap { ctx =>
keyPages.home(status)(ctx)
}
2013-05-08 15:34:37 -06:00
2014-12-17 17:02:59 -07:00
def seeks = Open { implicit ctx =>
2014-12-28 16:15:42 -07:00
negotiate(
html = fuccess(NotFound),
2019-12-13 07:30:20 -07:00
api = _ =>
ctx.me.fold(env.lobby.seekApi.forAnon)(env.lobby.seekApi.forUser) map { seeks =>
Ok(JsArray(seeks.map(_.render)))
}
2014-12-28 16:15:42 -07:00
)
2014-12-17 17:02:59 -07:00
}
2016-09-22 17:29:39 -06:00
def timeline = Auth { implicit ctx => me =>
2019-12-04 16:39:16 -07:00
env.timeline.entryApi.userEntries(me.id) map { html.timeline.entries(_) }
2016-09-22 17:29:39 -06:00
}
2013-03-18 17:36:22 -06:00
}