Files
uPortal2/backend/internal/middleware/middleware.go
T
2026-10-21 19:41:26 +03:00

26 lines
498 B
Go

package middleware
import (
"net/http"
)
type Middleware func(http.Handler) http.Handler
type MiddlewareChain []Middleware
func (c MiddlewareChain) Then(finalHandler http.Handler) http.Handler {
for i := len(c) - 1; i >= 0; i-- {
finalHandler = c[i](finalHandler)
}
return finalHandler
}
func (c MiddlewareChain) ThenFunc(finalHandler http.HandlerFunc) http.Handler {
result := http.Handler(finalHandler)
for i := len(c) - 1; i >= 0; i-- {
result = c[i](result)
}
return result
}