app/controllers/Support.scala (30 lines of code) (raw):

package controllers import com.gu.pandomainauth.PanDomainAuthSettingsRefresher import com.gu.permissions.PermissionsProvider import com.gu.workflow.lib.{ClientLog, ClientMessageLoggable} import config.Config import play.api.Logging import play.api.libs.ws.WSClient import play.api.mvc.{Action, AnyContent, BaseController, ControllerComponents} class Support( override val config: Config, override val controllerComponents: ControllerComponents, override val wsClient: WSClient, override val panDomainSettings: PanDomainAuthSettingsRefresher, override val permissions: PermissionsProvider, ) extends BaseController with PanDomainAuthActions with Logging { def sendLog: Action[AnyContent] = APIAuthAction { implicit request => (for { js <- request.body.asJson msg <- js.validate[ClientLog].asOpt } yield { val logMsg = msg.copy(fields = msg.fields.map(fields => { fields + ("userEmail" -> request.user.email) })) ClientMessageLoggable.logClientMessage(logMsg) }).getOrElse { logger.info(s"unrecognised message ${request.body}") } NoContent } }