func cloudControllerErrorHandler(statusCode int, body []byte) error { response := ccErrorResponse{} json.Unmarshal(body, &response) if response.Code == 1000 { // MAGICKAL NUMBERS AHOY return errors.NewInvalidTokenError(response.Description) } else { return errors.NewHttpError(statusCode, strconv.Itoa(response.Code), response.Description) } }
package net import ( "encoding/json" "github.com/nttlabs/cli/cf/configuration/core_config" "github.com/nttlabs/cli/cf/errors" "github.com/nttlabs/cli/cf/terminal" ) type uaaErrorResponse struct { Code string `json:"error"` Description string `json:"error_description"` } var uaaErrorHandler = func(statusCode int, body []byte) error { response := uaaErrorResponse{} json.Unmarshal(body, &response) if response.Code == "invalid_token" { return errors.NewInvalidTokenError(response.Description) } else { return errors.NewHttpError(statusCode, response.Code, response.Description) } } func NewUAAGateway(config core_config.Reader, ui terminal.UI) Gateway { return newGateway(uaaErrorHandler, config, ui) }