From 7fabe864a8baf81eb8f9a284d4b1db82379c1a85 Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Wed, 19 Dec 2018 08:58:43 +0800 Subject: [PATCH] not all OAuth requests accept JSON - fixes #4796 --- app/controllers/Account.scala | 8 +++----- app/controllers/Challenge.scala | 4 ++-- app/controllers/Dev.scala | 2 +- app/controllers/Irwin.scala | 2 +- app/controllers/LilaController.scala | 3 ++- app/controllers/Pref.scala | 2 +- 6 files changed, 10 insertions(+), 11 deletions(-) diff --git a/app/controllers/Account.scala b/app/controllers/Account.scala index e5b00ceb99..91c7f778a0 100644 --- a/app/controllers/Account.scala +++ b/app/controllers/Account.scala @@ -66,9 +66,7 @@ object Account extends LilaController { } def apiMe = Scoped() { _ => me => - Env.api.userApi.extended(me, me.some) map { json => - Ok(json) as JSON - } + Env.api.userApi.extended(me, me.some) map { JsonOk(_) } } def apiNowPlaying = Scoped() { req => me => @@ -130,7 +128,7 @@ object Account extends LilaController { def apiEmail = Scoped(_.Email.Read) { _ => me => UserRepo email me.id map { _ ?? { email => - Ok(Json.obj("email" -> email.value)) + JsonOk(Json.obj("email" -> email.value)) } } } @@ -230,7 +228,7 @@ object Account extends LilaController { Ok(html.account.kid(me)).fuccess } def apiKid = Scoped(_.Preference.Read) { _ => me => - Ok(Json.obj("kid" -> me.kid)).fuccess + JsonOk(Json.obj("kid" -> me.kid)).fuccess } // App BC diff --git a/app/controllers/Challenge.scala b/app/controllers/Challenge.scala index a9a13e4901..f8f9203835 100644 --- a/app/controllers/Challenge.scala +++ b/app/controllers/Challenge.scala @@ -174,11 +174,11 @@ object Challenge extends LilaController { ) (Env.challenge.api create challenge) map { case true => - Ok(env.jsonView.show(challenge, SocketVersion(0), lila.challenge.Direction.Out.some)) + JsonOk(env.jsonView.show(challenge, SocketVersion(0), lila.challenge.Direction.Out.some)) case false => BadRequest(jsonError("Challenge not created")) } - } + } map (_ as JSON) } ) } diff --git a/app/controllers/Dev.scala b/app/controllers/Dev.scala index 7160b43055..6c159b44dc 100644 --- a/app/controllers/Dev.scala +++ b/app/controllers/Dev.scala @@ -57,7 +57,7 @@ object Dev extends LilaController { def command = ScopedBody(parse.tolerantText)(Seq(_.Preference.Write)) { implicit req => me => lila.security.Granter(_.Cli)(me) ?? { - runAs(me.id, req.body) map { res => Ok(res) } + runAs(me.id, req.body) map { Ok(_) } } } diff --git a/app/controllers/Irwin.scala b/app/controllers/Irwin.scala index fa58877111..e57ef6e0b1 100644 --- a/app/controllers/Irwin.scala +++ b/app/controllers/Irwin.scala @@ -22,7 +22,7 @@ object Irwin extends LilaController { req.body.validate[lila.irwin.IrwinReport].fold( err => fuccess(BadRequest(err.toString)), report => Env.irwin.api.reports.insert(report) inject Ok - ) + ) map (_ as TEXT) } } diff --git a/app/controllers/LilaController.scala b/app/controllers/LilaController.scala index 74324cd009..83a5672ddf 100644 --- a/app/controllers/LilaController.scala +++ b/app/controllers/LilaController.scala @@ -177,7 +177,7 @@ private[controllers] trait LilaController case Right(scoped) => lila.mon.user.oauth.usage.success() f(req)(scoped.user) map OAuthServer.responseHeaders(scopes, scoped.scopes) - } map { _ as JSON } + } } protected def OAuthSecure(perm: Permission.Selector)(f: RequestHeader => UserModel => Fu[Result]): Action[Unit] = @@ -268,6 +268,7 @@ private[controllers] trait LilaController protected def JsonOk[A: Writes](fua: Fu[A]) = fua map { a => Ok(Json toJson a) as JSON } + protected def JsonOk[A: Writes](a: A) = Ok(Json toJson a) as JSON protected def JsonOptionOk[A: Writes](fua: Fu[Option[A]])(implicit ctx: Context) = fua flatMap { _.fold(notFound(ctx))(a => fuccess(Ok(Json toJson a) as JSON)) diff --git a/app/controllers/Pref.scala b/app/controllers/Pref.scala index dbc8d5f570..44e2685043 100644 --- a/app/controllers/Pref.scala +++ b/app/controllers/Pref.scala @@ -14,7 +14,7 @@ object Pref extends LilaController { def apiGet = Scoped(_.Preference.Read) { _ => me => Env.pref.api.getPref(me) map { prefs => - Ok { + JsonOk { import play.api.libs.json._ import lila.pref.JsonView._ Json.obj("prefs" -> prefs)