github.com/dcarley/cf-cli@v6.24.1-0.20170220111324-4225ff346898+incompatible/command/v2/shared/handle_error.go (about)

     1  package shared
     2  
     3  import (
     4  	"code.cloudfoundry.org/cli/actor/sharedaction"
     5  	"code.cloudfoundry.org/cli/actor/v2action"
     6  	"code.cloudfoundry.org/cli/api/cloudcontroller"
     7  	"code.cloudfoundry.org/cli/api/cloudcontroller/ccv2"
     8  	"code.cloudfoundry.org/cli/api/uaa"
     9  	"code.cloudfoundry.org/cli/command"
    10  )
    11  
    12  func HandleError(err error) error {
    13  	switch e := err.(type) {
    14  	case cloudcontroller.APINotFoundError:
    15  		return command.APINotFoundError{URL: e.URL}
    16  	case cloudcontroller.RequestError:
    17  		return command.APIRequestError{Err: e.Err}
    18  	case cloudcontroller.SSLValidationHostnameError:
    19  		return command.SSLCertErrorError{Message: e.Message}
    20  	case cloudcontroller.UnverifiedServerError:
    21  		return command.InvalidSSLCertError{API: e.URL}
    22  
    23  	case ccv2.JobFailedError:
    24  		return JobFailedError{JobGUID: e.JobGUID}
    25  	case ccv2.JobTimeoutError:
    26  		return JobTimeoutError{JobGUID: e.JobGUID}
    27  
    28  	case uaa.InvalidAuthTokenError:
    29  		return InvalidRefreshTokenError{}
    30  
    31  	case sharedaction.NotLoggedInError:
    32  		return command.NotLoggedInError{BinaryName: e.BinaryName}
    33  	case sharedaction.NoTargetedOrganizationError:
    34  		return command.NoTargetedOrganizationError{BinaryName: e.BinaryName}
    35  	case sharedaction.NoTargetedSpaceError:
    36  		return command.NoTargetedSpaceError{BinaryName: e.BinaryName}
    37  
    38  	case v2action.ApplicationNotFoundError:
    39  		return command.ApplicationNotFoundError{Name: e.Name}
    40  	case v2action.OrganizationNotFoundError:
    41  		return OrganizationNotFoundError{Name: e.Name}
    42  	case v2action.ServiceInstanceNotFoundError:
    43  		return command.ServiceInstanceNotFoundError{Name: e.Name}
    44  	case v2action.SpaceNotFoundError:
    45  		return SpaceNotFoundError{Name: e.Name}
    46  	case v2action.HTTPHealthCheckInvalidError:
    47  		return HTTPHealthCheckInvalidError{}
    48  	}
    49  
    50  	return err
    51  }