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")
}
}