Skip to content

Commit

Permalink
remove code duplication
Browse files Browse the repository at this point in the history
  • Loading branch information
ornicar committed Dec 10, 2024
1 parent d0e4b49 commit f15b96d
Showing 1 changed file with 8 additions and 7 deletions.
15 changes: 8 additions & 7 deletions src/main/scala/evalCache/EvalCacheApi.scala
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ final class EvalCacheApi(mongo: Mongo)(using

private def putTrusted(sri: Sri, user: User.Id, input: Input): Future[Unit] =
mongo.evalCacheColl.flatMap: c =>
validate(input) match
validate(input).match
case Left(error) =>
Logger("EvalCacheApi.put").info(s"Invalid from ${user} $error ${input.fen}")
Future.successful(())
Expand All @@ -124,19 +124,20 @@ final class EvalCacheApi(mongo: Mongo)(using
.one(entry)
.recover(mongo.ignoreDuplicateKey)
.map: _ =>
cache.put(input.id, Future.successful(entry.some))
upgrade.onEval(input, sri)
multi.onEval(input, sri)
afterPut(input, sri, entry)
case Some(oldEntry) =>
val entry = oldEntry.add(input.eval)
if entry.similarTo(oldEntry) then Future.successful(())
else
c.update
.one(BSONDocument("_id" -> entry.id), entry, upsert = true)
.map: _ =>
cache.put(input.id, Future.successful(entry.some))
upgrade.onEval(input, sri)
multi.onEval(input, sri)
afterPut(input, sri, entry)

private def afterPut(input: Input, sri: Sri, entry: EvalCacheEntry): Unit =
cache.put(input.id, Future.successful(entry.some))
upgrade.onEval(input, sri)
multi.onEval(input, sri)

private def validate(in: EvalCacheEntry.Input): Either[ErrorStr, Unit] =
in.eval.pvs.traverse_ { pv =>
Expand Down

0 comments on commit f15b96d

Please sign in to comment.