private def getConsentOptInField()

in formstack-consents/src/main/scala/com/gu/identity/formstackconsents/Lambda.scala [74:83]


  private def getConsentOptInField(cursor: HCursor): Option[Boolean] = {
    val field = cursor.downField("opt_in").as[String]
      .orElse(cursor.downField("supporter_consent_opt_in").as[String])

    field match {
      case Right(_) => Some(true) // assumes single opt in checkbox so value is irrelevant
      case Left(error) if error.message == "Attempt to decode value on failed cursor" => None // field does not exist b/c no opt in required eg. newsletters
      case Left(_) => Some(false) // field is null
      }
  }