app/com/gu/viewer/config/AppConfig.scala (38 lines of code) (raw):

package com.gu.viewer.config import com.gu.viewer.aws.AwsInstanceTags import play.api.Configuration class AppConfig(tags: AwsInstanceTags, config: Configuration) { private def getConfigString(key: String) = config.getOptional[String](key).getOrElse { sys.error(s"Config key required: $key") } lazy val app: String = tags.readTag("App").getOrElse("viewer") lazy val stage: String = tags.readTag("Stage").getOrElse("DEV") lazy val stack: String = tags.readTag("Stack").getOrElse("flexible") val logstashKinesisStream = config.getOptional[String]("aws.kinesis.logging.streamName") val previewHost = getConfigString(s"previewHost.$stage") val liveHost = getConfigString(s"liveHost.$stage") val previewHostForceHTTP = config.getOptional[Boolean](s"previewHostForceHTTP.$stage").getOrElse(false) val googleTrackingId = config.getOptional[String]("google.tracking.id").getOrElse("") val composerReturn = getConfigString(s"composerReturnUri.$stage") val pandaBucket = "pan-domain-auth-settings" val pandaSettingsFileKey = s"$pandaDomain.settings" def pandaDomain = { if (stage == "PROD") { "gutools.co.uk" } else if (stage == "CODE") { "code.dev-gutools.co.uk" } else { "local.dev-gutools.co.uk" } } def pandaAuthCallback = { if (stage == "PROD") { "https://viewer.gutools.co.uk/oauthCallback" } else if (stage == "CODE") { "https://viewer.code.dev-gutools.co.uk/oauthCallback" } else { "https://viewer.local.dev-gutools.co.uk/oauthCallback" } } }