closes #1638
This commit is contained in:
parent
53278a4a27
commit
32d1eca2e4
|
@ -1,6 +1,6 @@
|
||||||
package controllers
|
package controllers
|
||||||
|
|
||||||
import play.api.libs.json.Json
|
import play.api.libs.json._
|
||||||
import play.api.mvc._, Results._
|
import play.api.mvc._, Results._
|
||||||
|
|
||||||
import lila.api.{ Context, BodyContext }
|
import lila.api.{ Context, BodyContext }
|
||||||
|
@ -147,7 +147,7 @@ object User extends LilaController {
|
||||||
nbDay = nbDay,
|
nbDay = nbDay,
|
||||||
nbAllTime = nbAllTime))),
|
nbAllTime = nbAllTime))),
|
||||||
api = _ => fuccess {
|
api = _ => fuccess {
|
||||||
import lila.user.JsonView.lightPerfWrites
|
implicit val lpWrites = OWrites[UserModel.LightPerf](env.jsonView.lightPerfIsOnline)
|
||||||
Ok(Json.obj(
|
Ok(Json.obj(
|
||||||
"bullet" -> leaderboards.bullet,
|
"bullet" -> leaderboards.bullet,
|
||||||
"blitz" -> leaderboards.blitz,
|
"blitz" -> leaderboards.blitz,
|
||||||
|
|
|
@ -3,13 +3,13 @@ package lila.user
|
||||||
import lila.common.PimpedJson._
|
import lila.common.PimpedJson._
|
||||||
import lila.rating.{ Perf, Glicko, PerfType }
|
import lila.rating.{ Perf, Glicko, PerfType }
|
||||||
import play.api.libs.json._
|
import play.api.libs.json._
|
||||||
import User.PlayTime
|
import User.{PlayTime,LightPerf}
|
||||||
|
|
||||||
final class JsonView(isOnline: String => Boolean) {
|
final class JsonView(isOnline: String => Boolean) {
|
||||||
|
|
||||||
import JsonView._
|
import JsonView._
|
||||||
|
|
||||||
private implicit val perfWrites: Writes[Perf] = Writes { o =>
|
private implicit val perfWrites: OWrites[Perf] = OWrites { o =>
|
||||||
Json.obj(
|
Json.obj(
|
||||||
"games" -> o.nb,
|
"games" -> o.nb,
|
||||||
"rating" -> o.glicko.rating.toInt,
|
"rating" -> o.glicko.rating.toInt,
|
||||||
|
@ -36,7 +36,7 @@ final class JsonView(isOnline: String => Boolean) {
|
||||||
"playTime" -> u.playTime
|
"playTime" -> u.playTime
|
||||||
).noNull
|
).noNull
|
||||||
|
|
||||||
def lightPerfIsOnline(lp: User.LightPerf) = {
|
def lightPerfIsOnline(lp: LightPerf) = {
|
||||||
val json = lightPerfWrites.writes(lp)
|
val json = lightPerfWrites.writes(lp)
|
||||||
if (isOnline(lp.user.id)) json ++ Json.obj("online" -> true)
|
if (isOnline(lp.user.id)) json ++ Json.obj("online" -> true)
|
||||||
else json
|
else json
|
||||||
|
@ -49,7 +49,7 @@ object JsonView {
|
||||||
JsString(u.username)
|
JsString(u.username)
|
||||||
}
|
}
|
||||||
|
|
||||||
implicit val lightPerfWrites = OWrites[User.LightPerf] { l =>
|
implicit val lightPerfWrites = OWrites[LightPerf] { l =>
|
||||||
Json.obj(
|
Json.obj(
|
||||||
"id" -> l.user.id,
|
"id" -> l.user.id,
|
||||||
"username" -> l.user.name,
|
"username" -> l.user.name,
|
||||||
|
|
Loading…
Reference in a new issue