Properly injecting playban API

This commit is contained in:
Kian Samii 2018-02-05 10:22:58 -08:00
parent 40c8111895
commit 7156790085
2 changed files with 8 additions and 3 deletions

View file

@ -19,6 +19,7 @@ final class Env(
getTourAndRanks: lila.game.Game => Fu[Option[lila.tournament.TourAndRanks]],
crosstableApi: lila.game.CrosstableApi,
prefApi: lila.pref.PrefApi,
playBanApi: lila.playban.PlaybanApi,
gamePgnDump: lila.game.PgnDump,
gameCache: lila.game.Cached,
userEnv: lila.user.Env,
@ -84,6 +85,7 @@ final class Env(
relationApi = relationApi,
bookmarkApi = bookmarkApi,
crosstableApi = crosstableApi,
playBanApi = playBanApi,
gameCache = gameCache,
prefApi = prefApi
)
@ -166,6 +168,7 @@ object Env {
bookmarkApi = lila.bookmark.Env.current.api,
getTourAndRanks = lila.tournament.Env.current.tourAndRanks,
crosstableApi = lila.game.Env.current.crosstableApi,
playBanApi = lila.playban.Env.current.api,
prefApi = lila.pref.Env.current.api,
gamePgnDump = lila.game.Env.current.pgnDump,
gameCache = lila.game.Env.current.cached,

View file

@ -11,6 +11,7 @@ private[api] final class UserApi(
relationApi: lila.relation.RelationApi,
bookmarkApi: lila.bookmark.BookmarkApi,
crosstableApi: lila.game.CrosstableApi,
playBanApi: lila.playban.PlaybanApi,
gameCache: lila.game.Cached,
prefApi: lila.pref.PrefApi,
makeUrl: String => String
@ -40,16 +41,17 @@ private[api] final class UserApi(
bookmarkApi.countByUser(u) zip
gameCache.nbPlaying(u.id) zip
gameCache.nbImportedBy(u.id) zip
lila.playban.Env.current.api.completionRate(u.id).map(_.map { cr => math.round(cr * 100) }.getOrElse(0)) map
playBanApi.completionRate(u.id).map(_.map { cr => math.round(cr * 100) }.getOrElse(0L)) map
{
case gameOption ~ nbGamesWithMe ~ following ~ followers ~ followable ~ relation ~ isFollowed ~ nbBookmarks ~ nbPlaying ~ nbImported ~ completionRate =>
case gameOption ~ nbGamesWithMe ~ following ~ followers ~ followable ~ relation ~
isFollowed ~ nbBookmarks ~ nbPlaying ~ nbImported ~ completionRate =>
jsonView(u) ++ {
Json.obj(
"url" -> makeUrl(s"@/$username"),
"playing" -> gameOption.map(g => makeUrl(s"${g.gameId}/${g.color.name}")),
"nbFollowing" -> following,
"nbFollowers" -> followers,
"completionRate" -> completionRate.asInstanceOf[Int],
"completionRate" -> completionRate,
"count" -> Json.obj(
"all" -> u.count.game,
"rated" -> u.count.rated,