github.com/liamawhite/cli-with-i18n@v6.32.1-0.20171122084555-dede0a5c3448+incompatible/command/v3/shared/handle_error.go (about)

     1  package shared
     2  
     3  import (
     4  	"strings"
     5  
     6  	"github.com/liamawhite/cli-with-i18n/actor/sharedaction"
     7  	"github.com/liamawhite/cli-with-i18n/actor/v3action"
     8  	"github.com/liamawhite/cli-with-i18n/api/cloudcontroller/ccerror"
     9  	"github.com/liamawhite/cli-with-i18n/command/translatableerror"
    10  )
    11  
    12  func HandleError(err error) error {
    13  	switch e := err.(type) {
    14  	case ccerror.APINotFoundError:
    15  		return translatableerror.APINotFoundError(e)
    16  	case ccerror.RequestError:
    17  		return translatableerror.APIRequestError(e)
    18  	case ccerror.SSLValidationHostnameError:
    19  		return translatableerror.SSLCertError(e)
    20  	case ccerror.UnprocessableEntityError:
    21  		if strings.Contains(e.Message, "Task must have a droplet. Specify droplet or assign current droplet to app.") {
    22  			return translatableerror.RunTaskError{
    23  				Message: "App is not staged."}
    24  		}
    25  	case ccerror.UnverifiedServerError:
    26  		return translatableerror.InvalidSSLCertError{API: e.URL}
    27  
    28  	case sharedaction.NotLoggedInError:
    29  		return translatableerror.NotLoggedInError(e)
    30  	case sharedaction.NoOrganizationTargetedError:
    31  		return translatableerror.NoOrganizationTargetedError(e)
    32  	case sharedaction.NoSpaceTargetedError:
    33  		return translatableerror.NoSpaceTargetedError(e)
    34  
    35  	case v3action.ApplicationNotFoundError:
    36  		return translatableerror.ApplicationNotFoundError(e)
    37  	case v3action.AssignDropletError:
    38  		return translatableerror.AssignDropletError(e)
    39  	case sharedaction.EmptyDirectoryError:
    40  		return translatableerror.EmptyDirectoryError(e)
    41  	case v3action.IsolationSegmentNotFoundError:
    42  		return translatableerror.IsolationSegmentNotFoundError(e)
    43  	case v3action.OrganizationNotFoundError:
    44  		return translatableerror.OrganizationNotFoundError(e)
    45  	case v3action.ProcessNotFoundError:
    46  		return translatableerror.ProcessNotFoundError(e)
    47  	case v3action.ProcessInstanceNotFoundError:
    48  		return translatableerror.ProcessInstanceNotFoundError(e)
    49  	case v3action.StagingTimeoutError:
    50  		return translatableerror.StagingTimeoutError(e)
    51  	case v3action.TaskWorkersUnavailableError:
    52  		return translatableerror.RunTaskError{Message: "Task workers are unavailable."}
    53  	}
    54  
    55  	return err
    56  }