app/controllers/DefaultsController.scala (43 lines of code) (raw):
package controllers
import story_packages.auth.PanDomainAuthActions
import story_packages.model.Cached
import play.api.libs.json.{JsValue, Json}
import play.api.mvc._
import conf.ApplicationConfiguration
import play.api.Mode.Dev
import play.api.libs.ws.WSClient
import story_packages.switchboard.SwitchManager
import play.api.libs.json.OWrites
object Defaults {
implicit val jsonFormat: OWrites[Defaults] = Json.writes[Defaults]
}
case class Defaults(
dev: Boolean,
env: String,
email: String,
avatarUrl: Option[String],
sentryPublicDSN: String,
mediaBaseUrl: String,
apiBaseUrl: String,
switches: JsValue,
includedCap: Int,
linkingCap: Int
)
class DefaultsController(config: ApplicationConfiguration, components: ControllerComponents, wsClient: WSClient) extends StoryPackagesBaseController(config, components, wsClient) with PanDomainAuthActions {
def configuration = APIAuthAction { request =>
Cached(60) {
Ok(Json.toJson(Defaults(
config.environment.mode == Dev,
config.environment.stage,
request.user.email,
request.user.avatarUrl,
config.sentry.publicDSN,
config.media.baseUrl.get,
config.media.apiUrl.get,
SwitchManager.getSwitchesAsJson(),
config.facia.includedCollectionCap,
config.facia.linkingCollectionCap
)))
}
}
}