app/models/FlexibleStack.scala (34 lines of code) (raw):
package models
import config.AppConfig
case class FlexibleStack(
id: String,
displayName: String,
stack: String,
stage: String,
isSecondary: Boolean,
apiPrefix: String,
composerPrefix: String,
snapshotBucket: String
)
object FlexibleStack {
def apply(stack: String, stage: String): FlexibleStack = {
val secondarySuffix = "-secondary"
val domain = AppConfig.domainFromStage(stage)
val isSecondary = stack.endsWith(secondarySuffix)
val suffix = if (isSecondary) secondarySuffix else ""
val displayName = s"Composer$suffix ($stage)"
val apiPrefix = if (isSecondary) s"http://apiv2.$stage.$stack.gudiscovery.:8080" else s"http://flexible-api.$stage.$stack.gudiscovery.:8080"
val composerPrefix = s"https://composer$suffix.$domain"
val snapshotBucket = s"$stack-snapshotter-${stage.toLowerCase}"
FlexibleStack(
s"$stage:$stack",
displayName,
stack,
stage,
isSecondary,
apiPrefix,
composerPrefix,
snapshotBucket
)
}
}