def proxyForId()

in app/controllers/ProxiesController.scala [83:114]


  def proxyForId(fileId:String, proxyType:Option[String]) = IsAuthenticatedAsync { _=> _=>
      proxyType match {
        case None=>
          scanamoAlpakka
            .exec(table.query("fileId"===fileId))
            .runWith(Sink.head)
            .map(result=>{
              val failures = result.collect({case Left(err)=>err})
              if(failures.nonEmpty){
                logger.error(s"Could not look up proxy for $fileId: $failures")
                InternalServerError(GenericErrorResponse("error",failures.map(_.toString).mkString(", ")).asJson)
              } else {
                val output = result.collect({case Right(entry)=>entry})

                Ok(ObjectListResponse("ok","proxy_location",output, output.length).asJson)
              }
            })
        case Some(t)=>
          scanamoAlpakka
            .exec(table.get("fileId"===fileId and ("proxyType"===t.toUpperCase)))
            .runWith(Sink.head)
            .map({
            case None=>
              NotFound(GenericErrorResponse("not_found","No proxy was registered").asJson)
            case Some(Left(err))=>
              logger.error(s"Could not look up proxy for $fileId: ${err.toString}")
              InternalServerError(GenericErrorResponse("db_error", err.toString).asJson)
            case Some(Right(items))=>
              Ok(responses.ObjectGetResponse("ok","proxy_location",items).asJson)
          })
      }
  }