diff --git a/server/config.go b/server/config.go new file mode 100644 index 0000000..a1c476d --- /dev/null +++ b/server/config.go @@ -0,0 +1,32 @@ +package server + +import ( + lib "git.sr.ht/~cco/go-scopes" + "git.sr.ht/~cco/go-scopes/config" + "github.com/gin-gonic/gin" +) + +type Cfg struct { + *config.BaseCfg + Port string + Addr string + routes []routeCfg +} + +type routeCfg struct { + methods []string + path string + spec routeSpec +} + +type routeSpec interface{} + +type fsSpec struct { + docRoot string +} + +type rcellSpec struct { + lib.Config +} + +type Handler func(lib.Context, *gin.Context) diff --git a/server/server.go b/server/server.go index 7531bed..84d186b 100644 --- a/server/server.go +++ b/server/server.go @@ -4,30 +4,10 @@ import ( "net/http" lib "git.sr.ht/~cco/go-scopes" - "git.sr.ht/~cco/go-scopes/config" "git.sr.ht/~cco/go-scopes/core" "github.com/gin-gonic/gin" ) -type Cfg struct { - *config.BaseCfg - Port string - Routes []RouteCfg -} - -type RouteCfg struct { - Method string - Path string - Handler Handler -} - -type FSCfg struct { - RouteCfg - DocRoot string -} - -type Handler func(lib.Context, *gin.Context) - type ServerState struct { server *http.Server } @@ -45,7 +25,6 @@ func HandleDone(ctx lib.Context) bool { } func Serve(ctx lib.Context) { - //r := gin.Default() r := gin.New() r.Use(gin.Recovery()) r.Use(Logger(ctx)) diff --git a/tests/etc/etc.go b/tests/etc/etc.go index ceaaa17..5484273 100644 --- a/tests/etc/etc.go +++ b/tests/etc/etc.go @@ -31,6 +31,9 @@ func Config() lib.Config { BaseCfg: b("server", server.Start), Port: ovr("8123", SERVER_PORT), } + // server_c.AddRoute("/docs", FileServer("html")) + // server_rc := server_c.AddRoute("/api", RCellHandler()) + // server_rc.AddAction("demo", action.Base(action.Forward, "test-receiver")) test_client := &client.Cfg{ BaseCfg: b("test-client", core.Start),