lila/app/controllers/Challenge.scala

39 lines
1.2 KiB
Scala
Raw Normal View History

package controllers
import play.api.data.Form
import play.api.i18n.Messages.Implicits._
import play.api.libs.json.Json
import play.api.mvc.{ Result, Results, Call, RequestHeader, Accepting }
import scala.concurrent.duration._
2016-01-28 05:04:55 -07:00
import lila.api.{ Context, BodyContext }
import lila.app._
import lila.common.{ HTTPRequest, LilaCookie }
2016-01-26 22:56:30 -07:00
object Challenge extends LilaController {
private def env = Env.challenge
private val PostRateLimit = new lila.memo.RateLimit(5, 1 minute)
def all = Auth { implicit ctx =>
me =>
env.api.findByDestId(me.id) zip
2016-01-28 05:04:55 -07:00
env.api.findByChallengerId(me.id) map {
case (out, in) => Ok(env.jsonView.all(in, out)) as JSON
}
}
def reach(id: String)(implicit ctx: Context) =
env.api byId id map {
case None => notFound
case Some(challenge) if isMine(challenge) => html.challenge.mine(challenge)
case Some(challenge) => html.challenge.theirs(challenge)
}
private def isMine(challenge: Challenge)(implicit ctx: Context) = challenge.challenger match {
case Left(anon) => HTTPRequest sid req contains anon.secret
case Right(user) => ctx.userId contains user.id
}
}