app/controllers/Support.scala (17 lines of code) (raw):
package controllers
import com.gu.media.{CapiAccess, CapiException}
import com.gu.pandahmac.HMACAuthActions
import play.api.mvc.{Action, BaseController, ControllerComponents}
class Support(val authActions: HMACAuthActions, val capi: CapiAccess, val controllerComponents: ControllerComponents) extends BaseController {
import authActions.APIAuthAction
def capiProxy(path: String, queryLive: Boolean) = APIAuthAction { request =>
val qs: Map[String, Seq[String]] = request.queryString
try {
val result = capi.complexCapiQuery(path, qs, queryLive)
Ok(result)
} catch {
case CapiException(err, _) =>
InternalServerError(err)
}
}
}