in app/controllers/VaultController.scala [54:69]
def withVaultForId(vaultId:String)(block: Vault=>Future[Result]) = {
val maybeResult = userInfoCache.infoForVaultId(vaultId) match {
case Some(userInfo)=>
val maybeVault = Future { MatrixStore.openVault(userInfo)}
maybeVault
.flatMap(v=>block(v).andThen({
case _=>v.dispose()
}))
case None=>Future(NotFound(GenericErrorResponse("not_found","either the vault or file id is not valid").asJson))
}
maybeResult.recover({
case err:Throwable=>
logger.error(s"Could not perform vault operation: ", err)
InternalServerError(GenericErrorResponse("server_error", err.getMessage).asJson)
})
}