lila/app/controllers/Event.scala

59 lines
1.4 KiB
Scala
Raw Normal View History

2016-08-22 16:05:10 -06:00
package controllers
import play.api.mvc._
import lila.app._
import views._
2016-08-23 07:16:27 -06:00
object Event extends LilaController {
2016-08-22 16:05:10 -06:00
2016-08-23 07:16:27 -06:00
private def api = Env.event.api
2016-08-22 16:05:10 -06:00
2016-08-23 07:16:27 -06:00
def index = Open { implicit ctx =>
2016-08-24 03:54:51 -06:00
api.recentEnabled.map { events =>
2016-08-23 07:16:27 -06:00
Ok(html.event.index(events))
}
}
def manager = Secure(_.ManageEvent) { implicit ctx =>
2016-08-22 16:05:10 -06:00
me =>
api.list map { events =>
2016-08-23 07:16:27 -06:00
html.event.manager(events)
2016-08-22 16:05:10 -06:00
}
}
def edit(id: String) = Secure(_.ManageEvent) { implicit ctx =>
me =>
OptionOk(api one id) { event =>
html.event.edit(event, api editForm event)
}
}
def update(id: String) = SecureBody(_.ManageEvent) { implicit ctx =>
me =>
OptionFuResult(api one id) { event =>
implicit val req = ctx.body
api.editForm(event).bindFromRequest.fold(
err => BadRequest(html.event.edit(event, err)).fuccess,
2016-08-23 07:16:27 -06:00
data => api.update(event, data) inject Redirect(routes.Event.edit(id))
2016-08-22 16:05:10 -06:00
)
}
}
def form = Secure(_.ManageEvent) { implicit ctx =>
me =>
Ok(html.event.create(api.createForm)).fuccess
}
def create = SecureBody(_.ManageEvent) { implicit ctx =>
me =>
implicit val req = ctx.body
api.createForm.bindFromRequest.fold(
err => BadRequest(html.event.create(err)).fuccess,
data => api.create(data, me.id) map { event =>
2016-08-23 07:16:27 -06:00
Redirect(routes.Event.edit(event.id))
2016-08-22 16:05:10 -06:00
}
)
}
}