lila/app/controllers/Game.scala

88 lines
2.3 KiB
Scala
Raw Normal View History

2013-05-06 19:57:42 -06:00
package controllers
import lila.app._
2014-02-17 02:12:19 -07:00
import lila.game.{ Game => GameModel, GameRepo }
2013-05-06 19:57:42 -06:00
import views._
object Game extends LilaController with BaseGame {
private def paginator = Env.game.paginator
private def analysePaginator = Env.analyse.paginator
private def cached = Env.game.cached
2013-05-09 17:00:27 -06:00
private def searchEnv = Env.gameSearch
def searchForm = searchEnv.forms.search
2014-02-17 02:12:19 -07:00
def search(page: Int) = OpenBody { implicit ctx =>
2013-05-09 17:00:27 -06:00
Reasonable(page, 100) {
implicit def req = ctx.body
2014-02-17 02:12:19 -07:00
makeListMenu flatMap { listMenu =>
2013-05-09 17:00:27 -06:00
searchForm.bindFromRequest.fold(
2014-02-17 02:12:19 -07:00
failure => Ok(html.game.search(listMenu, failure)).fuccess,
2014-03-02 15:58:13 -07:00
data => ???
// data.nonEmptyQuery ?? { query =>
// searchEnv.paginator(query, page) map (_.some)
// } map { pager =>
// Ok(html.game.search(listMenu, searchForm fill data, pager))
// }
)
2013-05-09 17:00:27 -06:00
}
}
}
2013-05-06 19:57:42 -06:00
2014-02-17 02:12:19 -07:00
def realtime = Open { implicit ctx =>
2013-07-30 06:16:39 -06:00
GameRepo.featuredCandidates map lila.game.Featured.sort map (_ take 9) zip
2013-06-05 02:26:42 -06:00
makeListMenu map {
2014-02-17 02:12:19 -07:00
case (games, menu) => html.game.realtime(games, menu)
2013-06-05 02:26:42 -06:00
}
2013-05-06 19:57:42 -06:00
}
2014-02-17 02:12:19 -07:00
def all(page: Int) = Open { implicit ctx =>
2013-05-06 19:57:42 -06:00
Reasonable(page) {
paginator recent page zip makeListMenu map {
2014-02-17 02:12:19 -07:00
case (pag, menu) => html.game.all(pag, menu)
2013-05-06 19:57:42 -06:00
}
}
}
2014-02-17 02:12:19 -07:00
def checkmate(page: Int) = Open { implicit ctx =>
2013-05-06 19:57:42 -06:00
Reasonable(page) {
paginator checkmate page zip makeListMenu map {
2014-02-17 02:12:19 -07:00
case (pag, menu) => html.game.checkmate(pag, menu)
2013-05-06 19:57:42 -06:00
}
}
}
2014-02-17 02:12:19 -07:00
def bookmark(page: Int) = Auth { implicit ctx =>
me =>
2013-05-06 19:57:42 -06:00
Reasonable(page) {
2013-05-09 09:11:06 -06:00
Env.bookmark.api.gamePaginatorByUser(me, page) zip makeListMenu map {
2014-02-17 02:12:19 -07:00
case (pag, menu) => html.game.bookmarked(pag, menu)
2013-05-06 19:57:42 -06:00
}
}
}
2014-02-17 02:12:19 -07:00
def popular(page: Int) = Open { implicit ctx =>
2013-05-06 19:57:42 -06:00
Reasonable(page) {
paginator popular page zip makeListMenu map {
2014-02-17 02:12:19 -07:00
case (pag, menu) => html.game.popular(pag, menu)
2013-05-06 19:57:42 -06:00
}
}
}
2014-02-17 02:12:19 -07:00
def analysed(page: Int) = Open { implicit ctx =>
2013-05-06 19:57:42 -06:00
Reasonable(page) {
analysePaginator games page zip makeListMenu map {
2014-02-17 02:12:19 -07:00
case (pag, menu) => html.game.analysed(pag, menu)
2013-05-06 19:57:42 -06:00
}
}
}
2014-02-17 02:12:19 -07:00
def imported(page: Int) = Open { implicit ctx =>
2013-05-06 19:57:42 -06:00
Reasonable(page) {
paginator imported page zip makeListMenu map {
2014-02-17 02:12:19 -07:00
case (pag, menu) => html.game.imported(pag, menu)
2013-05-06 19:57:42 -06:00
}
}
}
}