From a2b8ed88ffd2cc98249e189e57632d00869b610f Mon Sep 17 00:00:00 2001 From: Thibault Duplessis Date: Tue, 13 Mar 2018 23:21:20 -0500 Subject: [PATCH] fix ranking API --- modules/user/src/main/RankingApi.scala | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/modules/user/src/main/RankingApi.scala b/modules/user/src/main/RankingApi.scala index d510ebf340..72de98c5a0 100644 --- a/modules/user/src/main/RankingApi.scala +++ b/modules/user/src/main/RankingApi.scala @@ -87,12 +87,12 @@ final class RankingApi( private def compute(perfId: Perf.ID): Fu[Map[User.ID, Rank]] = coll.find( $doc("perf" -> perfId, "stable" -> true), - $doc("_id" -> false) - ).sort($doc("rating" -> -1)).cursor[Bdoc](readPreference = ReadPreference.secondaryPreferred). - fold(1 -> Map.newBuilder[User.ID, Rank]) { + $doc("_id" -> true) + ).sort($doc("rating" -> -1)).cursor[Bdoc](readPreference = ReadPreference.secondaryPreferred) + .fold(1 -> Map.newBuilder[User.ID, Rank]) { case (state @ (rank, b), doc) => doc.getAs[String]("_id").fold(state) { id => - val user = id takeWhile (":" !=) + val user = id takeWhile (':' !=) b += (user -> rank) (rank + 1) -> b } @@ -147,5 +147,7 @@ final class RankingApi( object RankingApi { - private case class Ranking(user: String, rating: Int, prog: Option[Int]) + private case class Ranking(_id: String, rating: Int, prog: Option[Int]) { + def user = _id.takeWhile(':' !=) + } }