go-gemini/status.go

77 lines
2.1 KiB
Go
Raw Normal View History

2020-10-27 17:21:33 -06:00
package gemini
// Status represents a Gemini status code.
type Status int
2021-02-14 14:23:38 -07:00
// Gemini status codes.
2020-10-27 17:21:33 -06:00
const (
StatusInput Status = 10
StatusSensitiveInput Status = 11
StatusSuccess Status = 20
StatusRedirect Status = 30
StatusPermanentRedirect Status = 31
StatusTemporaryFailure Status = 40
StatusServerUnavailable Status = 41
StatusCGIError Status = 42
StatusProxyError Status = 43
StatusSlowDown Status = 44
StatusPermanentFailure Status = 50
StatusNotFound Status = 51
StatusGone Status = 52
StatusProxyRequestRefused Status = 53
StatusBadRequest Status = 59
StatusCertificateRequired Status = 60
StatusCertificateNotAuthorized Status = 61
StatusCertificateNotValid Status = 62
2020-10-27 17:21:33 -06:00
)
// Class returns the status class for the status code.
2021-02-14 14:23:38 -07:00
// 1x becomes 10, 2x becomes 20, and so on.
func (s Status) Class() Status {
return (s / 10) * 10
2020-10-27 17:21:33 -06:00
}
// String returns a text for the status code.
// It returns the empty string if the status code is unknown.
func (s Status) String() string {
switch s {
case StatusInput:
return "Input"
case StatusSensitiveInput:
return "Sensitive input"
case StatusSuccess:
return "Success"
case StatusRedirect:
2021-02-17 10:23:03 -07:00
return "Redirect"
case StatusPermanentRedirect:
return "Permanent redirect"
2020-10-27 17:21:33 -06:00
case StatusTemporaryFailure:
2020-10-27 21:35:22 -06:00
return "Temporary failure"
2020-10-27 17:21:33 -06:00
case StatusServerUnavailable:
return "Server unavailable"
case StatusCGIError:
return "CGI error"
case StatusProxyError:
return "Proxy error"
case StatusSlowDown:
return "Slow down"
case StatusPermanentFailure:
2020-10-27 21:35:22 -06:00
return "Permanent failure"
2020-10-27 17:21:33 -06:00
case StatusNotFound:
return "Not found"
case StatusGone:
return "Gone"
case StatusProxyRequestRefused:
return "Proxy request refused"
case StatusBadRequest:
return "Bad request"
case StatusCertificateRequired:
return "Certificate required"
case StatusCertificateNotAuthorized:
return "Certificate not authorized"
case StatusCertificateNotValid:
return "Certificate not valid"
}
return ""
}