def cancelSubscription()

in src/main/scala/ZuoraService.scala [281:295]


  def cancelSubscription(accountId: String, subscriptionNumber: String): String \/ Unit = {
    logInfo(accountId, s"attempting to cancel $subscriptionNumber")
    val json = Json.obj(
      "cancellationPolicy" -> "SpecificDate",
      "cancellationEffectiveDate" -> LocalDate.now(),
      "invoiceCollect" -> false
    )
    val body = RequestBody.create(MediaType.parse("application/json"), json.toString)
    val request = buildRequest(config, s"subscriptions/$subscriptionNumber/cancel").put(body).build()
    val call = restClient.newCall(request)
    val response = call.execute
    convertResponseToCaseClass[CancelResult](accountId, response) match {
      case \/-(result) => if (result.success) { \/-(()) } else { -\/(s"Zuora result indicated a failure when attempting to cancel subscription $subscriptionNumber") }
      case -\/(error) => -\/(error)
    }