membership-attribute-service/app/configuration/OptionalConfig.scala (11 lines of code) (raw):

package configuration import com.typesafe.config.Config object OptionalConfig { implicit class RichConfig(config: Config) { def optionalValue[T](key: String, f: Config => T, config: Config): Option[T] = if (config.hasPath(key)) Some(f(config)) else None def optionalBoolean(key: String, default: Boolean): Boolean = optionalValue(key, _.getBoolean(key), config).getOrElse(default) def optionalString(key: String): Option[String] = optionalValue(key, _.getString(key), config) def optionalConfig(key: String): Option[Config] = optionalValue(key, _.getConfig(key), config) } }