override def reads()

in membership-common/src/main/scala/com/gu/memsub/subsv2/reads/CommonReads.scala [33:41]


    override def reads(json: JsValue): JsResult[List[A]] = json match {
      case JsArray(items) =>
        items.map(_.validate[A]).partition(_.isSuccess) match {
          case (successes, errors) if successes.nonEmpty || errors.isEmpty =>
            (successes.toList: List[JsResult[A]]).sequence[JsResult, A]
          case (successes, errors) if successes.isEmpty => JsError(errors.mkString)
        }
      case _ => JsError(s"Failed to read $json as a list")
    }