From b268dbdf86a158e039de2bb98d025a90eedf0a8b Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Mon, 24 Apr 2017 00:25:39 +0200 Subject: [PATCH] restore previous irwin endpoint --- app/controllers/Mod.scala | 25 ++++++++++++++++++++++++- conf/base.conf | 2 +- conf/routes | 1 + 3 files changed, 26 insertions(+), 2 deletions(-) diff --git a/app/controllers/Mod.scala b/app/controllers/Mod.scala index 98c155033b..e212109522 100644 --- a/app/controllers/Mod.scala +++ b/app/controllers/Mod.scala @@ -81,7 +81,7 @@ object Mod extends LilaController { import lila.irwin.JSONHandlers.reportReader - def irwin(username: String) = OpenBody(parse.json) { implicit ctx => + def irwin2(username: String) = OpenBody(parse.json) { implicit ctx => Mod.ModExternalBot { OptionFuResult(UserRepo named username) { user => UserRepo.irwin.flatten("Missing irwin user") flatMap { irwin => @@ -94,6 +94,29 @@ object Mod extends LilaController { } } + private case class Irwin(result: Boolean, reason: String) + private implicit val IrwinReads = Json.reads[Irwin] + + def irwin(username: String) = OpenBody(parse.json) { implicit ctx => + Mod.ModExternalBot { + OptionFuResult(UserRepo named username) { user => + UserRepo.irwin.flatten("Missing irwin user") flatMap { irwin => + ctx.body.body.validate[Irwin].fold( + err => fuccess(BadRequest(err.toString)), + data => { + val text = + if (data.result) s"Irwin would mark as engine: ${data.reason}" + else s"Irwin is indecise: ${data.reason}" + (if (data.result) modApi.setEngine(irwin.id, username, true) + else funit) >> + Env.user.noteApi.write(user, text, irwin, true) inject Ok + } + ) + } + } + } + } + def setTitle(username: String) = SecureBody(_.SetTitle) { implicit ctx => me => implicit def req = ctx.body lila.user.DataForm.title.bindFromRequest.fold( diff --git a/conf/base.conf b/conf/base.conf index 94f1f33995..dc470717e5 100644 --- a/conf/base.conf +++ b/conf/base.conf @@ -10,7 +10,7 @@ net { ip = "5.196.91.160" asset { domain = ${net.domain} - version = 1687 + version = 1688 } email = "contact@lichess.org" crawlable = false diff --git a/conf/routes b/conf/routes index 1e220722f1..384115f07d 100644 --- a/conf/routes +++ b/conf/routes @@ -370,6 +370,7 @@ GET /mod/:username/permissions controllers.Mod.permissions(username: Str POST /mod/:username/permissions controllers.Mod.savePermissions(username: String) GET /mod/public-chat controllers.Mod.publicChat POST /mod/:username/irwin controllers.Mod.irwin(username: String) +POST /mod/:username/irwin2 controllers.Mod.irwin2(username: String) GET /mod/:username/assessment controllers.Mod.assessment(username: String) GET /mod/users-mark-and-current-report controllers.Mod.usersMarkAndCurrentReport(ids: String)