From d3fb280a146759ca1468c1773f41599b4fabb5fa Mon Sep 17 00:00:00 2001 From: Julio Capote Date: Sat, 17 Dec 2022 10:31:03 -0500 Subject: initial --- main.go | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 main.go (limited to 'main.go') diff --git a/main.go b/main.go new file mode 100644 index 0000000..dcf6034 --- /dev/null +++ b/main.go @@ -0,0 +1,59 @@ +package main + +import ( + "net/http" + + "git.capotej.com/capotej/communique/cgi" + "git.capotej.com/capotej/communique/config" + "github.com/BurntSushi/toml" + "go.uber.org/zap" + "go.uber.org/zap/zapio" + + "github.com/gin-gonic/gin" +) + +func main() { + // ctx := context.Background() + // Logger + logger, _ := zap.NewDevelopment() + defer logger.Sync() // flushes buffer, if any + log := logger.Sugar() + + // Config + var cfg config.Config + //TODO use a flag here + _, err := toml.DecodeFile("sample-config.toml", &cfg) + if err != nil { + log.Fatal(err) + } + + log.Debugf("Loaded TOML Config: %+v", cfg) + + // Server + writer := &zapio.Writer{Log: logger, Level: zap.DebugLevel} + defer writer.Close() + + // CGI Servers + servers := cgi.NewServers() + servers.Start(cfg) + + // HTTP Server + router := gin.Default() + router.SetTrustedProxies(nil) + gin.DisableConsoleColor() + gin.DefaultWriter = writer // send gin logs to zap + + router.GET("/ping", func(c *gin.Context) { + c.JSON(http.StatusOK, gin.H{ + "message": "pong", + }) + }) + + // This handler will match /user/john but will not match /user/ or /user + router.GET("/.well-known/webfinger", func(c *gin.Context) { + // resource := c.Query("resource") + c.JSON(http.StatusOK, nil) + }) + + router.Run() +} -- cgit v1.2.3