errhttp.Return()
parent
d5eea959fb
commit
b355103d69
|
@ -0,0 +1,100 @@
|
|||
package errhttp
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
)
|
||||
|
||||
// Return returns the appropriate error based on the status code.
|
||||
func Return(statusCode int) error {
|
||||
|
||||
switch statusCode {
|
||||
|
||||
case http.StatusBadRequest: // 400
|
||||
return ErrBadRequest
|
||||
case http.StatusUnauthorized: // 401
|
||||
return ErrUnauthorized
|
||||
case http.StatusPaymentRequired: // 402
|
||||
return ErrPaymentRequired
|
||||
case http.StatusForbidden: // 403
|
||||
return ErrForbidden
|
||||
case http.StatusNotFound: // 404
|
||||
return ErrNotFound
|
||||
case http.StatusMethodNotAllowed: // 405
|
||||
return ErrMethodNotAllowed
|
||||
case http.StatusNotAcceptable: // 406
|
||||
return ErrNotAcceptable
|
||||
case http.StatusProxyAuthRequired: // 407
|
||||
return ErrProxyAuthRequired
|
||||
case http.StatusRequestTimeout: // 408
|
||||
return ErrRequestTimeout
|
||||
case http.StatusConflict: // 409
|
||||
return ErrConflict
|
||||
case http.StatusGone: // 410
|
||||
return ErrGone
|
||||
case http.StatusLengthRequired: // 411
|
||||
return ErrLengthRequired
|
||||
case http.StatusPreconditionFailed: // 412
|
||||
return ErrPreconditionFailed
|
||||
case http.StatusRequestEntityTooLarge: // 413
|
||||
return ErrRequestEntityTooLarge
|
||||
case http.StatusRequestURITooLong: // 414
|
||||
return ErrRequestURITooLong
|
||||
case http.StatusUnsupportedMediaType: // 415
|
||||
return ErrUnsupportedMediaType
|
||||
case http.StatusRequestedRangeNotSatisfiable: // 416
|
||||
return ErrRequestedRangeNotSatisfiable
|
||||
case http.StatusExpectationFailed: // 417
|
||||
return ErrExpectationFailed
|
||||
case http.StatusTeapot: // 418
|
||||
return ErrTeapot
|
||||
case http.StatusMisdirectedRequest: // 421
|
||||
return ErrMisdirectedRequest
|
||||
case http.StatusUnprocessableEntity: // 422
|
||||
return ErrUnprocessableEntity
|
||||
case http.StatusLocked: // 423
|
||||
return ErrLocked
|
||||
case http.StatusFailedDependency: // 424
|
||||
return ErrFailedDependency
|
||||
case http.StatusTooEarly: // 425
|
||||
return ErrTooEarly
|
||||
case http.StatusUpgradeRequired: // 426
|
||||
return ErrUpgradeRequired
|
||||
case http.StatusPreconditionRequired: // 428
|
||||
return ErrPreconditionRequired
|
||||
case http.StatusTooManyRequests: // 429
|
||||
return ErrTooManyRequests
|
||||
case http.StatusRequestHeaderFieldsTooLarge: // 431
|
||||
return ErrRequestHeaderFieldsTooLarge
|
||||
case http.StatusUnavailableForLegalReasons: // 451
|
||||
return ErrUnavailableForLegalReasons
|
||||
|
||||
|
||||
case http.StatusInternalServerError: // 500
|
||||
return ErrInternalServerError
|
||||
case http.StatusNotImplemented: // 501
|
||||
return ErrNotImplemented
|
||||
case http.StatusBadGateway: // 502
|
||||
return ErrBadGateway
|
||||
case http.StatusServiceUnavailable: // 503
|
||||
return ErrServiceUnavailable
|
||||
case http.StatusGatewayTimeout: // 504
|
||||
return ErrGatewayTimeout
|
||||
case http.StatusHTTPVersionNotSupported: // 505
|
||||
return ErrHTTPVersionNotSupported
|
||||
case http.StatusVariantAlsoNegotiates: // 506
|
||||
return ErrVariantAlsoNegotiates
|
||||
case http.StatusInsufficientStorage: // 507
|
||||
return ErrInsufficientStorage
|
||||
case http.StatusLoopDetected: // 508
|
||||
return ErrLoopDetected
|
||||
case http.StatusNotExtended: // 510
|
||||
return ErrNotExtended
|
||||
case http.StatusNetworkAuthenticationRequired: // 511
|
||||
return ErrNetworkAuthenticationRequired
|
||||
|
||||
|
||||
default:
|
||||
return fmt.Errorf("errhttp: unknown HTTP error — status-code %d", statusCode)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue