Как вывести ошибки mongoDB в Result
с ReactiveMon go (16.6)? Я провел практически весь день, просматривая образцы, но пока не смог достичь этого. В разделе об ошибках документации возвращается Future[Unit]
, а не Future[Result]
. И каждый другой пример / пример, который я могу найти, либо устарел, либо не делает этого; example_1 , example2
Вот что я хотел бы сделать:
def updateById(collName: String, id: BSONObjectID) = authAction.async(parse.json) { implicit request: Request[JsValue] =>
val oWriteJso = request.body.asOpt[JsObject]
lazy val qJso = Json.obj("_id" -> id)
val res = oWriteJso.map(
wJso => mongoRepo.update(collName)(qJso, wJso)().recoverWith {
case WriteResult.Code(11000) => Future.successful(BadRequest("it went bad"))
case _ => Future.successful(BadRequest("also bad"))
}
)
res
}
Конечно, с сигнатурой функции как recoverWith[U >: T](pf: PartialFunction[Throwable, Future[U]])(implicit executor: ExecutionContext): Future[U]
this приведенный выше код вернет ошибку, так как он должен вернуть Future[WriteResult]
. Но как тогда я смогу поместить любые сообщения об ошибках, коды и т. Д. c (из mongoDB
) в Result
?