quick implementation of middleware

This commit is contained in:
luke.rodham
2018-03-12 10:08:30 +00:00
parent 6740568afb
commit 1e787689aa
12 changed files with 187 additions and 84 deletions
+28
View File
@@ -0,0 +1,28 @@
package tuu
type Middleware func(Handler) Handler
type MiddlewareStack struct {
stack []Middleware
}
func (m *MiddlewareStack) Use(mw ...Middleware) {
m.stack = append(m.stack, mw...)
}
func (m *MiddlewareStack) Get() []Middleware {
return m.stack
}
func (m *MiddlewareStack) handler(r *Route) Handler {
handler := r.Handler
if len(m.stack) == 0 {
return handler
}
for _, mw := range m.stack {
handler = mw(handler)
}
return handler
}