Add bunrouter dependency

This commit is contained in:
2025-08-26 16:13:05 +02:00
parent c8c0daac24
commit 31d505d969
4 changed files with 29 additions and 11 deletions

View File

@@ -7,6 +7,7 @@ import (
"git.defalsify.org/vise.git/logging"
"git.grassecon.net/grassrootseconomics/visedriver/errors"
"git.grassecon.net/grassrootseconomics/visedriver/request"
"github.com/uptrace/bunrouter"
)
var (
@@ -16,6 +17,7 @@ var (
// HTTPRequestHandler implements the session handler for HTTP
type HTTPRequestHandler struct {
request.RequestHandler
router *bunrouter.Router
}
func (f *HTTPRequestHandler) WriteError(w http.ResponseWriter, code int, err error) {
@@ -30,12 +32,25 @@ func (f *HTTPRequestHandler) WriteError(w http.ResponseWriter, code int, err err
}
func NewHTTPRequestHandler(h request.RequestHandler) *HTTPRequestHandler {
return &HTTPRequestHandler{
handler := &HTTPRequestHandler{
RequestHandler: h,
router: bunrouter.New(),
}
// Route all requests to existing vise logic
handler.router.GET("/*path", handler.handleViseRequest)
handler.router.POST("/*path", handler.handleViseRequest)
handler.router.PUT("/*path", handler.handleViseRequest)
handler.router.DELETE("/*path", handler.handleViseRequest)
return handler
}
func (hh *HTTPRequestHandler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
hh.router.ServeHTTP(w, req)
}
func (hh *HTTPRequestHandler) handleViseRequest(w http.ResponseWriter, req bunrouter.Request) error {
var code int
var err error
var perr error
@@ -47,17 +62,18 @@ func (hh *HTTPRequestHandler) ServeHTTP(w http.ResponseWriter, req *http.Request
rp := hh.GetRequestParser()
cfg := hh.GetConfig()
cfg.SessionId, err = rp.GetSessionId(req.Context(), req)
cfg.SessionId, err = rp.GetSessionId(req.Context(), req.Request)
if err != nil {
logg.ErrorCtxf(rqs.Ctx, "", "header processing error", err)
hh.WriteError(w, 400, err)
return err
}
rqs.Config = cfg
rqs.Input, err = rp.GetInput(req)
rqs.Input, err = rp.GetInput(req.Request)
if err != nil {
logg.ErrorCtxf(rqs.Ctx, "", "header processing error", err)
hh.WriteError(w, 400, err)
return
return err
}
rqs, err = hh.Process(rqs)
@@ -74,7 +90,7 @@ func (hh *HTTPRequestHandler) ServeHTTP(w http.ResponseWriter, req *http.Request
if code != 200 {
hh.WriteError(w, 500, err)
return
return err
}
w.WriteHeader(200)
@@ -83,10 +99,11 @@ func (hh *HTTPRequestHandler) ServeHTTP(w http.ResponseWriter, req *http.Request
rqs, perr = hh.Reset(rqs.Ctx, rqs)
if err != nil {
hh.WriteError(w, 500, err)
return
return err
}
if perr != nil {
hh.WriteError(w, 500, perr)
return
return perr
}
return nil
}