go-gemini/status.go

66 lines
1.8 KiB
Go
Raw Normal View History

2020-10-27 17:21:33 -06:00
package gemini
2021-02-14 14:23:38 -07:00
// Gemini status codes.
2020-10-27 17:21:33 -06:00
const (
StatusInput = 10
StatusSensitiveInput = 11
StatusSuccess = 20
StatusRedirect = 30
StatusPermanentRedirect = 31
StatusTemporaryFailure = 40
StatusServerUnavailable = 41
StatusCGIError = 42
StatusProxyError = 43
StatusSlowDown = 44
StatusPermanentFailure = 50
StatusNotFound = 51
StatusGone = 52
StatusProxyRequestRefused = 53
StatusBadRequest = 59
StatusCertificateRequired = 60
StatusCertificateNotAuthorized = 61
StatusCertificateNotValid = 62
2020-10-27 17:21:33 -06:00
)
// StatusClass returns the status class for this status code.
2021-02-14 14:23:38 -07:00
// 1x becomes 10, 2x becomes 20, and so on.
func StatusClass(status int) int {
return (status / 10) * 10
2020-10-27 17:21:33 -06:00
}
2021-02-14 17:28:21 -07:00
// Meta returns a description of the provided status code appropriate
// for use in a response.
2021-01-09 22:10:57 -07:00
//
// Meta returns an empty string for input, success, and redirect status codes.
func Meta(status int) string {
switch status {
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 ""
}