private def handleZuoraFaults()

in membership-common/src/main/scala/com/gu/zuora/soap/models/Errors.scala [106:139]


  private def handleZuoraFaults(result: Node) =
    ZuoraFault((result \ "faultcode").text, (result \ "faultstring").text)

  private def handleZuoraPartialErrors(result: Node) = {
    val code = (result \ "Errors" \ "Code").head.text
    val message = (result \ "Errors" \ "Message").head.text

    val `type` = code match {
      case "API_DISABLED" => ApiDisabled
      case "CANNOT_DELETE" => CannotDelete
      case "CREDIT_CARD_PROCESSING_FAILURE" => CreditCardProcessingFailure
      case "DUPLICATE_VALUE" => DuplicateValue
      case "INVALID_FIELD" => InvalidField
      case "INVALID_ID" => InvalidId
      case "INVALID_LOGIN" => InvalidLogin
      case "INVALID_SESSION" => InvalidSession
      case "INVALID_TYPE" => InvalidType
      case "INVALID_VALUE" => InvalidValue
      case "INVALID_VERSION" => InvalidVersion
      case "LOCK_COMPETITION" => LockCompetition
      case "MALFORMED_QUERY" => MalformedQuery
      case "MAX_RECORDS_EXCEEDED" => MaxRecordsExceeded
      case "MISSING_REQUIRED_VALUE" => MissingRequiredValue
      case "REQUEST_EXCEEDED_LIMIT" => RequestExceededLimit
      case "REQUEST_EXCEEDED_RATE" => RequestExceededRate
      case "SERVER_UNAVAILABLE" => ServerUnavailable
      case "TRANSACTION_FAILED" => TransactionFailed
      case "TRANSACTION_TERMINATED" => TransactionTerminated
      case "TRANSACTION_TIMEOUT" => TransactionTimeout
      case "UNKNOWN_ERROR" => UnknownError
    }

    ZuoraPartialError(code, message, `type`)
  }