app/helpers/ArchiveHunterConfigurationPlay.scala (23 lines of code) (raw):

package helpers import com.theguardian.multimedia.archivehunter.common.{ArchiveHunterConfiguration, ExtValueConverters} import com.typesafe.config.Config import javax.inject.Inject import play.api.{ConfigLoader, Configuration} /** * simple implementation of ArchiveHunterConfiguration that delegates to Play config. * This is so that we can re-bind the injectable component to run without Play in the lambda environment * @param playConfig injected instance of play.api.Configuration */ class ArchiveHunterConfigurationPlay @Inject() (playConfig: Configuration) extends ArchiveHunterConfiguration with ExtValueConverters { override def getOptional[T](key:String)(implicit converter: String=>T): Option[T] = { implicit val configLoader:ConfigLoader[T] = new ConfigLoader[T] { override def load(config: Config, path: String): T = { converter(config.getString(path)) } } playConfig.getOptional[T](key) } override def get[T](key:String)(implicit converter: String=>T):T = { implicit val configLoader:ConfigLoader[T] = new ConfigLoader[T] { override def load(config: Config, path: String): T = { converter(config.getString(path)) } } playConfig.get[T](key) } }