66 lines
3.5 KiB
Go
66 lines
3.5 KiB
Go
package json
|
|
|
|
import (
|
|
"bytes"
|
|
"net/http"
|
|
)
|
|
|
|
var (
|
|
// 200
|
|
ResponseOK = ResponseMessage(http.StatusText(http.StatusOK))
|
|
ResponsePartialContent = ResponseMessage(http.StatusText(http.StatusPartialContent))
|
|
|
|
// 300
|
|
ResponseMovedPermanently = ResponseMessage(http.StatusText(http.StatusMovedPermanently))
|
|
ResponseFound = ResponseMessage(http.StatusText(http.StatusFound))
|
|
ResponseSeeOther = ResponseMessage(http.StatusText(http.StatusSeeOther))
|
|
ResponseTemporaryRedirect = ResponseMessage(http.StatusText(http.StatusTemporaryRedirect))
|
|
ResponsePermanentRedirect = ResponseMessage(http.StatusText(http.StatusPermanentRedirect))
|
|
ResponseUnauthorized = ResponseMessage(http.StatusText(http.StatusUnauthorized))
|
|
ResponsePaymentRequired = ResponseMessage(http.StatusText(http.StatusPaymentRequired))
|
|
|
|
// 400
|
|
ResponseBadRequest = ResponseMessage(http.StatusText(http.StatusBadRequest))
|
|
ResponseForbidden = ResponseMessage(http.StatusText(http.StatusForbidden))
|
|
ResponseNotFound = ResponseMessage(http.StatusText(http.StatusNotFound))
|
|
ResponseMethodNotAllowed = ResponseMessage(http.StatusText(http.StatusMethodNotAllowed))
|
|
ResponseNotAcceptable = ResponseMessage(http.StatusText(http.StatusNotAcceptable))
|
|
ResponseRequestTimeout = ResponseMessage(http.StatusText(http.StatusRequestTimeout))
|
|
ResponseConflict = ResponseMessage(http.StatusText(http.StatusConflict))
|
|
ResponseGone = ResponseMessage(http.StatusText(http.StatusGone))
|
|
ResponsePreconditionFailed = ResponseMessage(http.StatusText(http.StatusPreconditionFailed))
|
|
ResponseRequestEntityTooLarge = ResponseMessage(http.StatusText(http.StatusRequestEntityTooLarge))
|
|
ResponseRequestURITooLong = ResponseMessage(http.StatusText(http.StatusRequestURITooLong))
|
|
ResponseUnsupportedMediaType = ResponseMessage(http.StatusText(http.StatusUnsupportedMediaType))
|
|
ResponseUpgradeRequired = ResponseMessage(http.StatusText(http.StatusUpgradeRequired))
|
|
ResponsePreconditionRequired = ResponseMessage(http.StatusText(http.StatusPreconditionRequired))
|
|
ResponseTooManyRequests = ResponseMessage(http.StatusText(http.StatusTooManyRequests))
|
|
ResponseRequestHeaderFieldsTooLarge = ResponseMessage(http.StatusText(http.StatusRequestHeaderFieldsTooLarge))
|
|
ResponseUnavailableForLegalReasons = ResponseMessage(http.StatusText(http.StatusUnavailableForLegalReasons))
|
|
|
|
// 500
|
|
ResponseInternalServerError = ResponseMessage(http.StatusText(http.StatusInternalServerError))
|
|
ResponseNotImplemented = ResponseMessage(http.StatusText(http.StatusNotImplemented))
|
|
ResponseBadGateway = ResponseMessage(http.StatusText(http.StatusBadGateway))
|
|
ResponseServiceUnavailable = ResponseMessage(http.StatusText(http.StatusServiceUnavailable))
|
|
ResponseGatewayTimeout = ResponseMessage(http.StatusText(http.StatusGatewayTimeout))
|
|
ResponseHTTPVersionNotSupported = ResponseMessage(http.StatusText(http.StatusHTTPVersionNotSupported))
|
|
ResponseInsufficientStorage = ResponseMessage(http.StatusText(http.StatusInsufficientStorage))
|
|
)
|
|
|
|
type ResponseMessage string
|
|
|
|
const (
|
|
responseMessagePayloadStart = `{"message":"`
|
|
responseMessagePayloadEnd = `"}`
|
|
)
|
|
|
|
func (rm ResponseMessage) MarshalJSON() ([]byte, error) {
|
|
buf := bytes.Buffer{}
|
|
buf.WriteString(responseMessagePayloadStart)
|
|
buf.WriteString(string(rm))
|
|
buf.WriteString(responseMessagePayloadEnd)
|
|
|
|
return buf.Bytes(), nil
|
|
}
|