in magenta-lib/src/main/scala/magenta/input/RiffRaffYamlReader.scala [45:69]
def fromString(
yaml: String
): Validated[ConfigErrors, RiffRaffDeployConfig] = {
yamlToJson(yaml) match {
case Success(json) =>
Json.fromJson[RiffRaffDeployConfig](json) match {
case JsSuccess(config, _) => Valid(config)
case JsError(errors :: tail) =>
val nelErrors = NEL(errors, tail)
Invalid(
ConfigErrors(nelErrors.map { case (path, validationErrors) =>
val pathName = if (path.path.isEmpty) "YAML" else path.toString
ConfigError(
s"Parsing $pathName",
validationErrors.map(ve => ve.message).mkString(", ")
)
})
)
case JsError(_) => `wtf?`
}
case Failure(exception) =>
val error = ConfigError("Converting YAML to JSON", exception.getMessage)
Invalid(ConfigErrors(error))
}
}