-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstatus.go
More file actions
122 lines (108 loc) · 5.15 KB
/
Copy pathstatus.go
File metadata and controls
122 lines (108 loc) · 5.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
package routeit
// 1xx codes
var (
StatusContinue = HttpStatus{100, "Continue"}
StatusSwitchingProtocols = HttpStatus{101, "Switching Protocols"}
StatusProcessing = HttpStatus{102, "Processing"}
StatusEarlyHints = HttpStatus{103, "Early Hints"}
)
// 2xx codes
var (
StatusOK = HttpStatus{200, "OK"}
StatusCreated = HttpStatus{201, "Created"}
StatusAccepted = HttpStatus{202, "Accepted"}
StatusNonAuthoritativeInformation = HttpStatus{203, "Non-Authoritative Information"}
StatusNoContent = HttpStatus{204, "No Content"}
StatusResetContent = HttpStatus{205, "Reset Content"}
StatusPartialContent = HttpStatus{206, "Partial Content"}
StatusMultiStatus = HttpStatus{207, "Multi-Status"}
StatusAlreadyReported = HttpStatus{208, "Already Reported"}
StatusIMUsed = HttpStatus{226, "IM Used"}
)
// 3xx codes
var (
StatusMultipleChoices = HttpStatus{300, "Multiple Choices"}
StatusMovedPermanently = HttpStatus{301, "Moved Permanently"}
StatusFound = HttpStatus{302, "Found"}
StatusSeeOther = HttpStatus{303, "See Other"}
StatusNotModified = HttpStatus{304, "Not Modified"}
StatusUseProxy = HttpStatus{305, "Use Proxy"}
StatusUnused = HttpStatus{306, "Unused"}
StatusTemporaryRedirect = HttpStatus{307, "Temporary Redirect"}
StatusPermanentRedirect = HttpStatus{308, "Permanent Redirect"}
)
// 4xx codes
var (
StatusBadRequest = HttpStatus{400, "Bad Request"}
StatusUnauthorized = HttpStatus{401, "Unauthorized"}
StatusPaymentRequired = HttpStatus{402, "Payment Required"}
StatusForbidden = HttpStatus{403, "Forbidden"}
StatusNotFound = HttpStatus{404, "Not Found"}
StatusMethodNotAllowed = HttpStatus{405, "Method Not Allowed"}
StatusNotAcceptable = HttpStatus{406, "Not Acceptable"}
StatusProxyAuthenticationRequired = HttpStatus{407, "Proxy Authentication Required"}
StatusRequestTimeout = HttpStatus{408, "Request Timeout"}
StatusConflict = HttpStatus{409, "Conflict"}
StatusGone = HttpStatus{410, "Gone"}
StatusLengthRequired = HttpStatus{411, "Length Required"}
StatusPreconditionFailed = HttpStatus{412, "Precondition Failed"}
StatusContentTooLarge = HttpStatus{413, "Content Too Large"}
StatusURITooLong = HttpStatus{414, "URI Too Long"}
StatusUnsupportedMediaType = HttpStatus{415, "Unsupported Media Type"}
StatusRangeNotSatisfiable = HttpStatus{416, "Range Not Satisfiable"}
StatusExpectationFailed = HttpStatus{417, "Expectation Failed"}
StatusImATeapot = HttpStatus{418, "I'm a teapot"}
StatusMisdirectedRequest = HttpStatus{421, "Misdirected Request"}
StatusUnprocessableContent = HttpStatus{422, "Unprocessable Content"}
StatusLocked = HttpStatus{423, "Locked"}
StatusFailedDependency = HttpStatus{424, "Failed Dependency"}
StatusTooEarly = HttpStatus{425, "Too Early"}
StatusUpgradeRequired = HttpStatus{426, "Upgrade Required"}
StatusPreconditionRequired = HttpStatus{428, "Precondition Required"}
StatusTooManyRequests = HttpStatus{429, "Too Many Requests"}
StatusRequestHeaderFieldsTooLarge = HttpStatus{431, "Request Header Fields Too Large"}
StatusUnavailableForLegalReasons = HttpStatus{451, "Unavailable For Legal Reasons"}
)
// 5xx codes
var (
StatusInternalServerError = HttpStatus{500, "Internal Server Error"}
StatusNotImplemented = HttpStatus{501, "Not Implemented"}
StatusBadGateway = HttpStatus{502, "Bad Gateway"}
StatusServiceUnavailable = HttpStatus{503, "Service Unavailable"}
StatusGatewayTimeout = HttpStatus{504, "Gateway Timeout"}
StatusHttpVersionNotSupported = HttpStatus{505, "HTTP Version Not Supported"}
StatusVariantAlsoNegotiates = HttpStatus{506, "Variant Also Negotiates"}
StatusInsufficientStorage = HttpStatus{507, "Insufficient Storage"}
StatusLoopDetected = HttpStatus{508, "Loop Detected"}
StatusNotExtended = HttpStatus{510, "Not Extended"}
StatusNetworkAuthenticationRequired = HttpStatus{511, "Network Authentication Required"}
)
// Http Status codes for responses. https://developer.mozilla.org/en-US/docs/Web/HTTP/Reference/Status
type HttpStatus struct {
code uint16
msg string
}
func (s HttpStatus) Is1xx() bool {
return s.isxx(100)
}
func (s HttpStatus) Is2xx() bool {
return s.isxx(200)
}
func (s HttpStatus) Is3xx() bool {
return s.isxx(300)
}
func (s HttpStatus) Is4xx() bool {
return s.isxx(400)
}
func (s HttpStatus) Is5xx() bool {
return s.isxx(500)
}
func (s HttpStatus) isxx(min uint16) bool {
return min <= s.code && s.code < min+100
}
func (s HttpStatus) isValid() bool {
return s.Is1xx() || s.Is2xx() || s.Is3xx() || s.isError()
}
func (s HttpStatus) isError() bool {
return s.Is4xx() || s.Is5xx()
}