Documentation ¶
Index ¶
Constants ¶
const CodeBadGateway = "M_BAD_GATEWAY" // 502
const CodeBadRequest = "M_BAD_REQUEST" // 400
Standard Errors in Matrix errcode format.
const CodeConflict = "M_CONFLICT" // 409
const CodeExpectationFailed = "M_EXPECTATION_FAILED" // 417
const CodeFailedDependency = "M_FAILED_DEPENDENCY" // 424
const CodeForbidden = "M_FORBIDDEN" // 403
const CodeGatewayTimeout = "M_GATEWAY_TIMEOUT" // 504
const CodeGone = "M_GONE" // 410
const CodeHTTPVersionNotSupported = "M_HTTP_VERSION_NOT_SUPPORTED" // 505
const CodeInsufficientStorage = "M_INSUFFICIENT_STORAGE" // 507
const CodeInternalServerError = "M_INTERNAL_SERVER_ERROR" // 500
const CodeLengthRequired = "M_LENGTH_REQUIRED" // 411
const CodeLocked = "M_LOCKED" // 423
const CodeLoopDetected = "M_LOOP_DETECTED" // 508
const CodeMethodNotAllowed = "M_METHOD_NOT_ALLOWED" // 405
const CodeMisdirectedRequest = "M_MISDIRECTED_REQUEST" // 421
const CodeNetworkAuthenticationRequired = "M_NETWORK_AUTHENTICATION_REQUIRED" // 511
const CodeNotAcceptable = "M_NOT_ACCEPTABLE" // 406
const CodeNotExtended = "M_NOT_EXTENDED" // 510
const CodeNotFound = "M_NOT_FOUND" // 404
const CodeNotImplemented = "M_NOT_IMPLEMENTED" // 501
const CodePaymentRequired = "M_PAYMENT_REQUIRED" // 402
const CodePreconditionFailed = "M_PRECONDITION_FAILED" // 412
const CodePreconditionRequired = "M_PRECONDITION_REQUIRED" // 428
const CodeProxyAuthRequired = "M_PROXY_AUTH_REQUIRED" // 407
const CodeRequestEntityTooLarge = "M_REQUEST_ENTITY_TOO_LARGE" // 413
const CodeRequestHeaderFieldsTooLarge = "M_REQUEST_HEADER_FIELDS_TOO_LARGE" // 431
const CodeRequestTimeout = "M_REQUEST_TIMEOUT" // 408
const CodeRequestURITooLong = "M_REQUEST_URI_TOO_LONG" // 414
const CodeRequestedRangeNotSatisfiable = "M_REQUESTED_RANGE_NOT_SATISFIABLE" // 416
const CodeTeapot = "M_TEAPOT" // 418
const CodeTooEarly = "M_TOO_EARLY" // 425
const CodeTooManyRequests = "M_TOO_MANY_REQUESTS" // 429
const CodeUnprocessableEntity = "M_UNPROCESSABLE_ENTITY" // 422
const CodeUnsupportedMediaType = "M_UNSUPPORTED_MEDIA_TYPE" // 415
const CodeUpgradeRequired = "M_UPGRADE_REQUIRED" // 426
const CodeVariantAlsoNegotiates = "M_VARIANT_ALSO_NEGOTIATES" // 506
Variables ¶
var ErrorBadGateway = NewHALError("Bad Gateway", CodeBadGateway)
var ErrorBadRequest = NewHALError("Bad Request", CodeBadRequest)
Error* are net/http status codes to Error objects.
var ErrorConflict = NewHALError("Conflict", CodeConflict)
var ErrorExpectationFailed = NewHALError("Expectation Failed", CodeExpectationFailed)
var ErrorFailedDependency = NewHALError("Failed Dependency", CodeFailedDependency)
var ErrorForbidden = NewHALError("Forbidden", CodeForbidden)
var ErrorGatewayTimeout = NewHALError("Gateway Timeout", CodeGatewayTimeout)
var ErrorGone = NewHALError("Gone", CodeGone)
var ErrorHTTPVersionNotSupported = NewHALError("HTTP Version Not Supported", CodeHTTPVersionNotSupported)
var ErrorInsufficientStorage = NewHALError("Insufficient Storage", CodeInsufficientStorage)
var ErrorInternalServerError = NewHALError("Internal Server Error", CodeInternalServerError)
var ErrorLengthRequired = NewHALError("Length Required", CodeLengthRequired)
var ErrorLocked = NewHALError("Locked", CodeLocked)
var ErrorLoopDetected = NewHALError("Loop Detected", CodeLoopDetected)
var ErrorMethodNotAllowed = NewHALError("Method Not Allowed", CodeMethodNotAllowed)
var ErrorMisdirectedRequest = NewHALError("Misdirected Request", CodeMisdirectedRequest)
var ErrorNetworkAuthenticationRequired = NewHALError("Network Authentication Required", CodeNetworkAuthenticationRequired)
var ErrorNotAcceptable = NewHALError("Not Acceptable", CodeNotAcceptable)
var ErrorNotExtended = NewHALError("Not Extended", CodeNotExtended)
var ErrorNotFound = NewHALError("Not Found", CodeNotFound)
var ErrorNotImplemented = NewHALError("Not Implemented", CodeNotImplemented)
var ErrorPaymentRequired = NewHALError("Payment Required", CodePaymentRequired)
var ErrorPreconditionFailed = NewHALError("Precondition Failed", CodePreconditionFailed)
var ErrorPreconditionRequired = NewHALError("Precondition Required", CodePreconditionRequired)
var ErrorProxyAuthRequired = NewHALError("Proxy Auth Required", CodeProxyAuthRequired)
var ErrorRequestEntityTooLarge = NewHALError("Request Entity Too Large", CodeRequestEntityTooLarge)
var ErrorRequestHeaderFieldsTooLarge = NewHALError("Request Header Fields Too Large", CodeRequestHeaderFieldsTooLarge)
var ErrorRequestTimeout = NewHALError("Request Timeout", CodeRequestTimeout)
var ErrorRequestURITooLong = NewHALError("Request URI Too Long", CodeRequestURITooLong)
var ErrorRequestedRangeNotSatisfiable = NewHALError("Requested Range Not Satisfiable", CodeRequestedRangeNotSatisfiable)
var ErrorTeapot = NewHALError("Teapot", CodeTeapot)
var ErrorTooEarly = NewHALError("Too Early", CodeTooEarly)
var ErrorTooManyRequests = NewHALError("Too Many Requests", CodeTooManyRequests)
var ErrorUnprocessableEntity = NewHALError("Unprocessable Entity", CodeUnprocessableEntity)
var ErrorUnsupportedMediaType = NewHALError("Unsupported Media Type", CodeUnsupportedMediaType)
var ErrorUpgradeRequired = NewHALError("Upgrade Required", CodeUpgradeRequired)
var ErrorVariantAlsoNegotiates = NewHALError("Variant Also Negotiates", CodeVariantAlsoNegotiates)
var Errors = map[int]*HALError{ http.StatusBadRequest: ErrorBadRequest, http.StatusUnauthorized: ErrorUnauthorized, http.StatusPaymentRequired: ErrorPaymentRequired, http.StatusForbidden: ErrorForbidden, http.StatusNotFound: ErrorNotFound, http.StatusMethodNotAllowed: ErrorMethodNotAllowed, http.StatusNotAcceptable: ErrorNotAcceptable, http.StatusProxyAuthRequired: ErrorProxyAuthRequired, http.StatusRequestTimeout: ErrorRequestTimeout, http.StatusConflict: ErrorConflict, http.StatusGone: ErrorGone, http.StatusLengthRequired: ErrorLengthRequired, http.StatusPreconditionFailed: ErrorPreconditionFailed, http.StatusRequestEntityTooLarge: ErrorRequestEntityTooLarge, http.StatusRequestURITooLong: ErrorRequestURITooLong, http.StatusUnsupportedMediaType: ErrorUnsupportedMediaType, http.StatusRequestedRangeNotSatisfiable: ErrorRequestedRangeNotSatisfiable, http.StatusExpectationFailed: ErrorExpectationFailed, http.StatusTeapot: ErrorTeapot, http.StatusMisdirectedRequest: ErrorMisdirectedRequest, http.StatusUnprocessableEntity: ErrorUnprocessableEntity, http.StatusLocked: ErrorLocked, http.StatusFailedDependency: ErrorFailedDependency, http.StatusTooEarly: ErrorTooEarly, http.StatusRequestHeaderFieldsTooLarge: ErrorRequestHeaderFieldsTooLarge, http.StatusUnavailableForLegalReasons: ErrorUnavailableForLegalReasons, http.StatusInternalServerError: ErrorInternalServerError, http.StatusNotImplemented: ErrorNotImplemented, http.StatusBadGateway: ErrorBadGateway, http.StatusServiceUnavailable: ErrorServiceUnavailable, http.StatusGatewayTimeout: ErrorGatewayTimeout, http.StatusHTTPVersionNotSupported: ErrorHTTPVersionNotSupported, http.StatusVariantAlsoNegotiates: ErrorVariantAlsoNegotiates, http.StatusInsufficientStorage: ErrorInsufficientStorage, http.StatusLoopDetected: ErrorLoopDetected, http.StatusNotExtended: ErrorNotExtended, http.StatusNetworkAuthenticationRequired: ErrorNetworkAuthenticationRequired, }
Errors is a mapping of net/http status codes to Error*'s.
Functions ¶
This section is empty.
Types ¶
type Context ¶
type Context struct {
echo.Context
}
Context is essentially a wrapper for echo's context.
type Error ¶
type Error struct { Extra interface{} `json:"extra,omitempty"` Code string `json:"errcode"` Message string `json:"error"` }
Error provides the basic JSON fields that are expected by the Matrix specification, and Extra for additional details.
type Module ¶
type Module struct { echo.Group Router }
TODO: These feel weird living in the root directory and should probably be moved.
Module is essentially a wrapper over the echo Group type.
type Route ¶
type Route struct { RouteMeta Handler echo.HandlerFunc }
Route defines a Handler and some metadata about the route.
type RouteMeta ¶
type RouteMeta struct { Method string `json:"method"` Path string `json:"path"` Name string `json:"name"` }
RouteMeta is a clone of the echo.Route object that we use to extend our routes with.
type Router ¶
type Router interface {
Routes() []*Route
}
Router is a group of routes to expose and serve through the server.
type Server ¶
type Server struct { Modules []*Module // contains filtered or unexported fields }
Server is the core process.
func (*Server) Logger ¶
func (s *Server) Logger() echo.Logger
Logger returns the (echo) engine logger.