errhttp.Return()

master
Charles Iliya Krempeaux 2024-02-21 12:30:28 -08:00
parent d5eea959fb
commit b355103d69
1 changed files with 100 additions and 0 deletions

100
return.go 100644
View File

@ -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)
}
}