summaryrefslogtreecommitdiff
path: root/internal/server/server.go
diff options
context:
space:
mode:
Diffstat (limited to 'internal/server/server.go')
-rw-r--r--internal/server/server.go36
1 files changed, 10 insertions, 26 deletions
diff --git a/internal/server/server.go b/internal/server/server.go
index a444958..a2f2d45 100644
--- a/internal/server/server.go
+++ b/internal/server/server.go
@@ -5,55 +5,39 @@ import (
"net"
"time"
- "html/template"
"net/http"
- "codeberg.org/mihna123/openstore/internal/web"
+ "codeberg.org/mihna123/openstore/internal/config"
+ "codeberg.org/mihna123/openstore/internal/server/handlers"
)
-type Config struct {
- Name string
-}
-
type Server struct {
- config *Config
- tmpl *template.Template
+ config *config.Config
mux *http.ServeMux
}
-func (s *Server) routes() {
- s.mux.HandleFunc("GET /{$}", func(w http.ResponseWriter, r *http.Request) {
- err := s.tmpl.ExecuteTemplate(w, "index.html", s.config)
-
- if err != nil {
- slog.Error("render template", "err", err.Error())
- return
- }
- })
-}
-
-func (s *Server) Serve(addr string) error {
+func (s *Server) Serve() error {
httpSrv := &http.Server{
Handler: logRequests(s.mux),
ReadHeaderTimeout: 5 * time.Second,
WriteTimeout: 10 * time.Second,
}
- ln, err := net.Listen("tcp", addr)
+ ln, err := net.Listen("tcp", s.config.Serve.Addr)
if err != nil {
return err
}
- slog.Info("listening", "name", s.config.Name, "addr", addr)
+ slog.Info("listening", "name", s.config.Instance.Name, "addr", s.config.Serve.Addr)
return httpSrv.Serve(ln)
}
-func New(c *Config) *Server {
+func New(c *config.Config) *Server {
+ mux := handlers.Routes(c)
s := &Server{
config: c,
- mux: http.NewServeMux(),
- tmpl: template.Must(template.ParseFS(web.Files, "templates/*.html")),
+ mux: mux,
}
- s.routes()
+
return s
}