github.com/adityamillind98/moby@v23.0.0-rc.4+incompatible/errdefs/http_helpers.go (about) 1 package errdefs // import "github.com/docker/docker/errdefs" 2 3 import ( 4 "net/http" 5 ) 6 7 // FromStatusCode creates an errdef error, based on the provided HTTP status-code 8 func FromStatusCode(err error, statusCode int) error { 9 if err == nil { 10 return nil 11 } 12 switch statusCode { 13 case http.StatusNotFound: 14 err = NotFound(err) 15 case http.StatusBadRequest: 16 err = InvalidParameter(err) 17 case http.StatusConflict: 18 err = Conflict(err) 19 case http.StatusUnauthorized: 20 err = Unauthorized(err) 21 case http.StatusServiceUnavailable: 22 err = Unavailable(err) 23 case http.StatusForbidden: 24 err = Forbidden(err) 25 case http.StatusNotModified: 26 err = NotModified(err) 27 case http.StatusNotImplemented: 28 err = NotImplemented(err) 29 case http.StatusInternalServerError: 30 if !IsSystem(err) && !IsUnknown(err) && !IsDataLoss(err) && !IsDeadline(err) && !IsCancelled(err) { 31 err = System(err) 32 } 33 default: 34 switch { 35 case statusCode >= 200 && statusCode < 400: 36 // it's a client error 37 case statusCode >= 400 && statusCode < 500: 38 err = InvalidParameter(err) 39 case statusCode >= 500 && statusCode < 600: 40 err = System(err) 41 default: 42 err = Unknown(err) 43 } 44 } 45 return err 46 }