forked from grassrootseconomics/visedriver
Compare commits
No commits in common. "refactor/bun-router-integration" and "master" have entirely different histories.
refactor/b
...
master
1
go.mod
1
go.mod
@ -19,7 +19,6 @@ require (
|
||||
github.com/mattn/kinako v0.0.0-20170717041458-332c0a7e205a // indirect
|
||||
github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect
|
||||
github.com/stretchr/testify v1.9.0 // indirect
|
||||
github.com/uptrace/bunrouter v1.0.23 // indirect
|
||||
github.com/x448/float16 v0.8.4 // indirect
|
||||
golang.org/x/crypto v0.27.0 // indirect
|
||||
golang.org/x/sync v0.8.0 // indirect
|
||||
|
2
go.sum
2
go.sum
@ -33,8 +33,6 @@ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UV
|
||||
github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
|
||||
github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
|
||||
github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
|
||||
github.com/uptrace/bunrouter v1.0.23 h1:Bi7NKw3uCQkcA/GUCtDNPq5LE5UdR9pe+UyWbjHB/wU=
|
||||
github.com/uptrace/bunrouter v1.0.23/go.mod h1:O3jAcl+5qgnF+ejhgkmbceEk0E/mqaK+ADOocdNpY8M=
|
||||
github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
|
||||
github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
|
||||
golang.org/x/crypto v0.27.0 h1:GXm2NjJrPaiv/h1tb2UH8QfgC/hOf/+z0p6PT8o1w7A=
|
||||
|
@ -7,7 +7,6 @@ import (
|
||||
"git.defalsify.org/vise.git/logging"
|
||||
"git.grassecon.net/grassrootseconomics/visedriver/errors"
|
||||
"git.grassecon.net/grassrootseconomics/visedriver/request"
|
||||
"github.com/uptrace/bunrouter"
|
||||
)
|
||||
|
||||
var (
|
||||
@ -17,7 +16,6 @@ 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) {
|
||||
@ -32,25 +30,12 @@ func (f *HTTPRequestHandler) WriteError(w http.ResponseWriter, code int, err err
|
||||
}
|
||||
|
||||
func NewHTTPRequestHandler(h request.RequestHandler) *HTTPRequestHandler {
|
||||
handler := &HTTPRequestHandler{
|
||||
return &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
|
||||
@ -62,18 +47,17 @@ func (hh *HTTPRequestHandler) handleViseRequest(w http.ResponseWriter, req bunro
|
||||
|
||||
rp := hh.GetRequestParser()
|
||||
cfg := hh.GetConfig()
|
||||
cfg.SessionId, err = rp.GetSessionId(req.Context(), req.Request)
|
||||
cfg.SessionId, err = rp.GetSessionId(req.Context(), req)
|
||||
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.Request)
|
||||
rqs.Input, err = rp.GetInput(req)
|
||||
if err != nil {
|
||||
logg.ErrorCtxf(rqs.Ctx, "", "header processing error", err)
|
||||
hh.WriteError(w, 400, err)
|
||||
return err
|
||||
return
|
||||
}
|
||||
|
||||
rqs, err = hh.Process(rqs)
|
||||
@ -90,7 +74,7 @@ func (hh *HTTPRequestHandler) handleViseRequest(w http.ResponseWriter, req bunro
|
||||
|
||||
if code != 200 {
|
||||
hh.WriteError(w, 500, err)
|
||||
return err
|
||||
return
|
||||
}
|
||||
|
||||
w.WriteHeader(200)
|
||||
@ -99,11 +83,10 @@ func (hh *HTTPRequestHandler) handleViseRequest(w http.ResponseWriter, req bunro
|
||||
rqs, perr = hh.Reset(rqs.Ctx, rqs)
|
||||
if err != nil {
|
||||
hh.WriteError(w, 500, err)
|
||||
return err
|
||||
return
|
||||
}
|
||||
if perr != nil {
|
||||
hh.WriteError(w, 500, perr)
|
||||
return perr
|
||||
return
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
@ -99,7 +99,9 @@ func TestRequestHandler_ServeHTTP(t *testing.T) {
|
||||
},
|
||||
}
|
||||
|
||||
sessionHandler := NewHTTPRequestHandler(mockRequestHandler)
|
||||
sessionHandler := &HTTPRequestHandler{
|
||||
RequestHandler: mockRequestHandler,
|
||||
}
|
||||
|
||||
req := httptest.NewRequest(http.MethodPost, "/", bytes.NewBuffer(tt.input))
|
||||
req.Header.Set("X-Vise-Session", tt.sessionID)
|
||||
@ -117,7 +119,7 @@ func TestRequestHandler_ServeHTTP(t *testing.T) {
|
||||
}
|
||||
|
||||
func TestRequestHandler_WriteError(t *testing.T) {
|
||||
handler := NewHTTPRequestHandler(&httpmocks.MockRequestHandler{})
|
||||
handler := &HTTPRequestHandler{}
|
||||
mockWriter := &httpmocks.MockWriter{}
|
||||
err := errors.New("test error")
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user