def withVaultForId()

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)
    })
  }