inline middlewares
This commit is contained in:
@@ -21,7 +21,7 @@ type Resource struct {
|
||||
// - PUT /pattern/:id update a resource
|
||||
// - PATCH /pattern/:id partial update a resource
|
||||
// - DELETE /resource/:id delete a resource
|
||||
func (m *Mux) Resource(pattern string, fn func(res *Resource)) {
|
||||
func (m *Mux) Resource(pattern string, fn func(res *Resource), mw ...func(http.Handler) http.Handler) {
|
||||
if m == nil {
|
||||
panic("mux: Resource() called on nil")
|
||||
}
|
||||
@@ -35,9 +35,14 @@ func (m *Mux) Resource(pattern string, fn func(res *Resource)) {
|
||||
}
|
||||
|
||||
// Copy root middlewares.
|
||||
mws := make([]func(http.Handler) http.Handler, len(m.middlewares))
|
||||
mws := make([]func(http.Handler) http.Handler, 0, len(m.middlewares)+len(mw))
|
||||
copy(mws, m.middlewares)
|
||||
|
||||
// Append inline middlewares.
|
||||
if len(mw) > 0 {
|
||||
mws = append(mws, mw...)
|
||||
}
|
||||
|
||||
fn(&Resource{
|
||||
mux: m.mux,
|
||||
pattern: pattern,
|
||||
|
Reference in New Issue
Block a user