package internal import ( "net/http" "github.com/rs/zerolog" ) type HttpServer struct { CLI *CLI Log zerolog.Logger Redirects Redirects } func (srv *HttpServer) ServeHTTP(w http.ResponseWriter, req *http.Request) { redirect := srv.Redirects.Find(req.URL.Path) if redirect != nil { srv.Log.Info().Int("result", redirect.StatusCode).Msg(req.URL.Path) w.Header().Add("location", redirect.To) w.WriteHeader(redirect.StatusCode) } else { statusCode := 404 srv.Log.Error().Int("result", statusCode).Msg(req.URL.Path) w.WriteHeader(statusCode) } }