lila/modules/coach_old/src/main/Env.scala

47 lines
1.2 KiB
Scala

package lila.coach
import akka.actor._
import com.typesafe.config.Config
import scala.concurrent.duration._
import akka.actor._
import lila.common.PimpedConfig._
final class Env(
config: Config,
getPref: String => Fu[lila.pref.Pref],
areFriends: (String, String) => Fu[Boolean],
lightUser: String => Option[lila.common.LightUser],
system: ActorSystem,
db: lila.db.Env) {
private val settings = new {
val CollectionStat = config getString "collection.stat"
}
import settings._
private lazy val jsonWriters = new JSONWriters(lightUser = lightUser)
lazy val share = new Share(getPref, areFriends)
lazy val jsonView = new JsonView(jsonWriters)
lazy val statApi = new StatApi(
coll = db(CollectionStat))
lazy val aggregator = new Aggregator(
api = statApi,
sequencer = system.actorOf(Props(classOf[lila.hub.Sequencer], None)))
}
object Env {
lazy val current: Env = "coach" boot new Env(
config = lila.common.PlayApp loadConfig "coach",
getPref = lila.pref.Env.current.api.getPrefById,
areFriends = lila.relation.Env.current.api.areFriends,
lightUser = lila.user.Env.current.lightUser,
system = lila.common.PlayApp.system,
db = lila.db.Env.current)
}