private[serialization] def parseAllTargets()

in anghammarad/src/main/scala/com/gu/anghammarad/serialization/Serialization.scala [128:140]


  private[serialization] def parseAllTargets(jsonTargets: Json): Try[List[Target]] = {
    val c: HCursor = jsonTargets.hcursor
    val allTargets = for {
      key <- c.keys.map(k => k.toList).getOrElse(List.empty)
      address <- c.downField(key).as[String].toOption
      parsedTarget = parseTarget(key, address).toEither
    } yield parsedTarget

    allTargets match {
      case _ :: _ => allTargets.traverseE(identity).toTry
      case Nil => Fail(s"Parsing error: List of targets is empty")
    }
  }