app/controllers/FrontController.scala (47 lines of code) (raw):

package controllers import com.gu.facia.client.models.FrontJson import config.UpdateManager import permissions.ConfigPermissionCheck import services.Press import updates._ import util.Acl import util.Requests._ import logging.Logging import scala.concurrent.ExecutionContext class FrontController( val acl: Acl, val structuredLogger: StructuredLogger, val updateManager: UpdateManager, val press: Press, val deps: BaseFaciaControllerComponents )(implicit ec: ExecutionContext) extends BaseFaciaController(deps) with Logging { def create = (AccessAPIAuthAction andThen new ConfigPermissionCheck(acl)) { request => request.body.read[CreateFront] match { case Some(createFrontRequest) => val identity = request.user val newCollectionId = updateManager.createFront(createFrontRequest, identity) press.fromSetOfIdsWithForceConfig(Set(newCollectionId)) structuredLogger.putLog(LogUpdate(createFrontRequest, identity.email)) Ok case None => BadRequest } } def update(frontId: String) = (AccessAPIAuthAction andThen new ConfigPermissionCheck(acl)) { request => request.body.read[FrontJson] match { case Some(front) => val identity = request.user updateManager.updateFront(frontId, front, identity) press.fromSetOfIdsWithForceConfig(front.collections.toSet) structuredLogger.putLog( LogUpdate(UpdateFront(frontId, front), identity.email) ) Ok case None => BadRequest } } }