Files
ultrashorty/internal/http.go
T
2026-03-30 22:04:50 +01:00

27 lines
578 B
Go

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)
}
}