Properly isolate http session handler

This commit is contained in:
lash
2025-01-11 08:33:52 +00:00
parent fd6e5caf53
commit 977d14c529
4 changed files with 28 additions and 44 deletions

View File

@@ -3,8 +3,6 @@ package request
import (
"context"
"io"
"net/http"
"strconv"
"git.defalsify.org/vise.git/resource"
"git.defalsify.org/vise.git/persist"
@@ -27,7 +25,6 @@ type RequestSession struct {
Continue bool
}
// TODO: seems like can remove this.
type RequestParser interface {
GetSessionId(ctx context.Context, rq any) (string, error)
@@ -43,24 +40,3 @@ type RequestHandler interface {
Reset(rs RequestSession) (RequestSession, error)
Shutdown()
}
type SessionHandler struct {
RequestHandler
}
func (f *SessionHandler) WriteError(w http.ResponseWriter, code int, err error) {
s := err.Error()
w.Header().Set("Content-Length", strconv.Itoa(len(s)))
w.WriteHeader(code)
_, err = w.Write([]byte(s))
if err != nil {
logg.Errorf("error writing error!!", "err", err, "olderr", s)
w.WriteHeader(500)
}
}
func ToSessionHandler(h RequestHandler) *SessionHandler {
return &SessionHandler{
RequestHandler: h,
}
}