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 }