app/controllers/SwitchesController.scala (22 lines of code) (raw):
package controllers
import com.gu.pandomainauth.PanDomainAuthSettingsRefresher
import config.{Off, On, SwitchState}
class SwitchesController(
deps: LoginControllerComponents, panDomainSettings: PanDomainAuthSettingsRefresher
) extends LoginController(deps, panDomainSettings) {
private def errorMessage(state: SwitchState) = s"Failed to update Emergency switch to ${state.name}. Contact digitalcms.dev@theguardian.com for more help."
private def success(state: SwitchState) = s"Emergency switch updated to ${state.name}"
def index = AuthAction { req =>
Ok(views.html.switches.switchValues(switches.allSwitches))
}
def emergencyOn = EmergencySwitchChangeAccess { req =>
switches.setEmergencySwitch(On).map { _ =>
Ok(views.html.switches.switchChange(success(On)))
}.getOrElse(InternalServerError(views.html.switches.switchChange(errorMessage(On))))
}
def emergencyOff = EmergencySwitchChangeAccess { req =>
switches.setEmergencySwitch(Off).map { _ =>
Ok(views.html.switches.switchChange(success(Off)))
}.getOrElse(InternalServerError(views.html.switches.switchChange(errorMessage(Off))))
}
}