private[serialization] def parseAllContacts()

in anghammarad/src/main/scala/com/gu/anghammarad/serialization/Serialization.scala [150:162]


  private[serialization] def parseAllContacts(jsonContacts: Json): Try[List[Contact]] = {
    val c: HCursor = jsonContacts.hcursor
    val allContacts = for {
      key <- c.keys.map(k => k.toList).getOrElse(List.empty)
      address <- c.downField(key).as[String].toOption
      parsedContact = parseContact(key, address).toEither
    } yield parsedContact

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