nirvash/lfo/middleware.go

28 lines
762 B
Go

package lfo
import (
"context"
"net/http"
core "nilfm.cc/git/nirvash/archetype"
)
func WithAdapter(next http.Handler, adapter core.Adapter) http.Handler {
handlerFunc := func(w http.ResponseWriter, req *http.Request) {
*req = *req.WithContext(context.WithValue(req.Context(), "adapter", adapter))
next.ServeHTTP(w, req)
}
return http.HandlerFunc(handlerFunc)
}
func WithEditModes(next http.Handler) http.Handler {
handlerFunc := func(w http.ResponseWriter, req *http.Request) {
*req = *req.WithContext(context.WithValue(req.Context(), "edit-modes", map[string]core.EditMode{
"Literal": core.EditModeLiteralTextArea,
"Escaped": core.EditModeEscapedContentEditable,
}))
next.ServeHTTP(w, req)
}
return http.HandlerFunc(handlerFunc)
}