package server import ( "fmt" "log" "net/http" "dymatrix.de/jspahl/todo/internal/config" "github.com/gin-gonic/gin" ) var httpServer *http.Server var httpRouter *gin.Engine func Setup() { httpRouter = gin.New() httpRouter.Use(gin.Logger()) registerRoutes(httpRouter) } func ListenAndServe() error { var err error = nil for err == nil || err == http.ErrServerClosed { c := config.GetConfig() httpServer = &http.Server{ Handler: httpRouter, Addr: fmt.Sprintf("%s:%d", c.Listen.Host, c.Listen.Port), } log.Printf("Starting web server at %s", httpServer.Addr) err = httpServer.ListenAndServe() } return err }