59 lines
1.4 KiB
Scala
59 lines
1.4 KiB
Scala
![]() |
package controllers
|
||
|
|
||
|
import play.api.mvc._
|
||
|
|
||
|
import lila.app._
|
||
|
import views._
|
||
|
|
||
![]() |
object Event extends LilaController {
|
||
![]() |
|
||
![]() |
private def api = Env.event.api
|
||
![]() |
|
||
![]() |
def index = Open { implicit ctx =>
|
||
|
api.list.map { events =>
|
||
|
Ok(html.event.index(events))
|
||
|
}
|
||
|
}
|
||
|
|
||
|
def manager = Secure(_.ManageEvent) { implicit ctx =>
|
||
![]() |
me =>
|
||
|
api.list map { events =>
|
||
![]() |
html.event.manager(events)
|
||
![]() |
}
|
||
|
}
|
||
|
|
||
|
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,
|
||
![]() |
data => api.update(event, data) inject Redirect(routes.Event.edit(id))
|
||
![]() |
)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
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 =>
|
||
![]() |
Redirect(routes.Event.edit(event.id))
|
||
![]() |
}
|
||
|
)
|
||
|
}
|
||
|
}
|