github.com/jghiloni/cli@v6.28.1-0.20170628223758-0ce05fe032a2+incompatible/command/v2/shared/handle_error.go (about)

     1  package shared
     2  
     3  import (
     4  	"code.cloudfoundry.org/cli/actor/pushaction"
     5  	"code.cloudfoundry.org/cli/actor/sharedaction"
     6  	"code.cloudfoundry.org/cli/actor/v2action"
     7  	"code.cloudfoundry.org/cli/api/cloudcontroller/ccerror"
     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 ccerror.APINotFoundError:
    15  		return command.APINotFoundError{URL: e.URL}
    16  	case ccerror.RequestError:
    17  		return command.APIRequestError{Err: e.Err}
    18  	case ccerror.SSLValidationHostnameError:
    19  		return command.SSLCertErrorError{Message: e.Message}
    20  	case ccerror.UnverifiedServerError:
    21  		return command.InvalidSSLCertError{API: e.URL}
    22  
    23  	case ccerror.JobFailedError:
    24  		return JobFailedError{
    25  			JobGUID: e.JobGUID,
    26  			Message: e.Message,
    27  		}
    28  	case ccerror.JobTimeoutError:
    29  		return JobTimeoutError{JobGUID: e.JobGUID}
    30  
    31  	case uaa.BadCredentialsError:
    32  		return command.BadCredentialsError{}
    33  	case uaa.InvalidAuthTokenError:
    34  		return InvalidRefreshTokenError{}
    35  
    36  	case sharedaction.NotLoggedInError:
    37  		return command.NotLoggedInError{BinaryName: e.BinaryName}
    38  	case sharedaction.NoOrganizationTargetedError:
    39  		return command.NoOrganizationTargetedError{BinaryName: e.BinaryName}
    40  	case sharedaction.NoSpaceTargetedError:
    41  		return command.NoSpaceTargetedError{BinaryName: e.BinaryName}
    42  
    43  	case v2action.ApplicationNotFoundError:
    44  		return command.ApplicationNotFoundError{Name: e.Name}
    45  	case v2action.OrganizationNotFoundError:
    46  		return OrganizationNotFoundError{Name: e.Name}
    47  	case v2action.SecurityGroupNotFoundError:
    48  		return SecurityGroupNotFoundError{Name: e.Name}
    49  	case v2action.ServiceInstanceNotFoundError:
    50  		return command.ServiceInstanceNotFoundError{Name: e.Name}
    51  	case v2action.SpaceNotFoundError:
    52  		return SpaceNotFoundError{Name: e.Name}
    53  	case v2action.HTTPHealthCheckInvalidError:
    54  		return HTTPHealthCheckInvalidError{}
    55  	case v2action.RouteInDifferentSpaceError:
    56  		return RouteInDifferentSpaceError{Route: e.Route}
    57  	case v2action.FileChangedError:
    58  		return FileChangedError{Filename: e.Filename}
    59  	case v2action.EmptyDirectoryError:
    60  		return EmptyDirectoryError{Path: e.Path}
    61  
    62  	case pushaction.NoDomainsFoundError:
    63  		return NoDomainsFoundError{}
    64  	case pushaction.UploadFailedError:
    65  		return UploadFailedError{Err: HandleError(e.Err)}
    66  	}
    67  
    68  	return err
    69  }