Bookmark imported game

pull/83/head
Thibault Duplessis 2013-02-26 13:50:41 +01:00
parent 51013bc56c
commit 649a8c7659
6 changed files with 18 additions and 15 deletions

View File

@ -13,13 +13,13 @@ final class BookmarkApi(
userRepo: UserRepo,
paginator: PaginatorBuilder) {
def toggle(gameId: String, user: User): IO[Unit] = for {
def toggle(gameId: String, userId: String): IO[Unit] = for {
gameOption gameRepo game gameId
_ gameOption.fold(
game for {
bookmarked bookmarkRepo.toggle(game.id, user.id)
bookmarked bookmarkRepo.toggle(game.id, userId)
_ gameRepo.incBookmarks(game.id, bookmarked.fold(1, -1))
_ io(cached invalidateUserId user.id)
_ io(cached invalidateUserId userId)
} yield (),
io())
} yield ()

View File

@ -12,7 +12,6 @@ object Bookmark extends LilaController {
private def gameRepo = env.game.gameRepo
def toggle(gameId: String) = Auth { implicit ctx
me
IOk(api.toggle(gameId, me))
me IOk(api.toggle(gameId, me.id))
}
}

View File

@ -117,7 +117,8 @@ final class CoreEnv private (application: Application, val settings: Settings) {
lazy val importer = new lila.importer.ImporterEnv(
gameRepo = game.gameRepo,
hand = round.hand,
finisher = round.finisher)
finisher = round.finisher,
bookmark = bookmark.api.toggle _)
lazy val tournament = new lila.tournament.TournamentEnv(
app = app,

View File

@ -12,7 +12,8 @@ import akka.dispatch.Future
final class Importer(
gameRepo: GameRepo,
hand: Hand,
finisher: Finisher) extends Futuristic {
finisher: Finisher,
bookmark: (String, String) IO[Unit]) extends Futuristic {
val delayInMs = 100
@ -26,6 +27,9 @@ final class Importer(
_ ((result |@| dbGame) apply {
case (res, dbg) finish(dbg, res)
}) | Future()
_ ((dbGame |@| user) apply {
case (dbg, u) bookmark(dbg.id, u).toFuture
}) | Future()
} yield game.some
case _ Future(none)
}

View File

@ -4,12 +4,15 @@ package importer
import game.GameRepo
import round.{ Hand, Finisher }
import scalaz.effects.IO
final class ImporterEnv(
gameRepo: GameRepo,
hand: Hand,
finisher: Finisher) {
gameRepo: GameRepo,
hand: Hand,
finisher: Finisher,
bookmark: (String, String) IO[Unit]) {
lazy val forms = new DataForm
lazy val importer = new Importer(gameRepo, hand, finisher)
lazy val importer = new Importer(gameRepo, hand, finisher, bookmark)
}

4
todo
View File

@ -58,7 +58,3 @@ recognize pgn in forum and show a pgn4web
localize in chrome web store
make deploy of translations easier (new project?)
show language list on 2/3 columns
deploy
------
db.game4.ensureIndex({"me.pgni.user":1},{sparse:1})