bootstrap problem module, model, env and api

This commit is contained in:
Thibault Duplessis 2014-02-01 22:00:24 +01:00
parent a5ab67bce6
commit 68556cb3d6
6 changed files with 74 additions and 6 deletions

View file

@ -3,9 +3,4 @@ package lila
package object chat extends PackageObject with WithPlay {
private[chat] type ChatId = String
object tube {
// implicit lazy val chatTube = Chat.tube inColl Env.current.chatColl
}
}

View file

@ -0,0 +1,30 @@
package lila.problem
import akka.actor.{ ActorSystem, Props }
import com.typesafe.config.Config
import lila.common.PimpedConfig._
final class Env(
config: Config,
db: lila.db.Env,
system: ActorSystem) {
private val settings = new {
val CollectionProblem = config getString "collection.problem"
}
import settings._
lazy val api = new ProblemApi(
coll = problemColl)
private[problem] lazy val problemColl = db(CollectionProblem)
}
object Env {
lazy val current: Env = "[boot] problem" describes new Env(
config = lila.common.PlayApp loadConfig "problem",
db = lila.db.Env.current,
system = lila.common.PlayApp.system)
}

View file

@ -0,0 +1,16 @@
package lila.problem
import org.joda.time.DateTime
case class Problem(
id: ProblemId,
gameId: String,
date: DateTime)
object Problem {
import reactivemongo.bson._
import lila.db.BSON.BSONJodaDateTimeHandler
implicit val problemBSONHandler = Macros.handler[Problem]
}

View file

@ -0,0 +1,16 @@
package lila.problem
import reactivemongo.bson.BSONDocument
import lila.db.Types.Coll
import lila.user.{ User, UserRepo }
private[problem] final class ProblemApi(coll: Coll) {
import Problem.problemBSONHandler
def find(id: ProblemId): Fu[Option[Problem]] =
coll.find(BSONDocument("_id" -> id)).one[Problem]
def write(problem: Problem): Funit = coll insert problem void
}

View file

@ -0,0 +1,6 @@
package lila
package object problem extends PackageObject with WithPlay {
private[problem] type ProblemId = String
}

View file

@ -31,7 +31,7 @@ object ApplicationBuild extends Build {
gameSearch, timeline, forum, forumSearch, team, teamSearch,
ai, analyse, mod, monitor, site, round, lobby, setup,
importer, tournament, relation, report, pref, simulation,
evaluation, chat)
evaluation, chat, problem)
lazy val moduleRefs = modules map projectToRef
lazy val moduleCPDeps = moduleRefs map { new sbt.ClasspathDependency(_, None) }
@ -43,6 +43,11 @@ object ApplicationBuild extends Build {
actuarius, scalastic, findbugs, RM)
) aggregate (moduleRefs: _*)
lazy val problem = project("problem", Seq(
common, hub, db, user)).settings(
libraryDependencies ++= provided(play.api, RM, PRM)
)
lazy val evaluation = project("evaluation", Seq(
common, hub, db, user, game)).settings(
libraryDependencies ++= provided(play.api, RM, PRM)