diff options
| author | JP Appel <jeanpierre.appel01@gmail.com> | 2025-07-13 18:54:40 -0400 |
|---|---|---|
| committer | JP Appel <jeanpierre.appel01@gmail.com> | 2025-07-13 18:54:40 -0400 |
| commit | b1226acdde526ff0dc83a6b7e81d1f6ccf0ad3c2 (patch) | |
| tree | 91b9a2d1a2044d4de9ded06e12af35e4244159db /pkg | |
| parent | 86b712bfce3b0f57be197d6839138aea03034f1f (diff) | |
Add Last-Modified to response
Diffstat (limited to 'pkg')
| -rw-r--r-- | pkg/server/server.go | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/pkg/server/server.go b/pkg/server/server.go index 8b66e62..adde6ad 100644 --- a/pkg/server/server.go +++ b/pkg/server/server.go @@ -6,6 +6,7 @@ import ( "log/slog" "net/http" "strings" + "time" "github.com/jpappel/atlas/pkg/data" "github.com/jpappel/atlas/pkg/index" @@ -47,9 +48,18 @@ func New(db *data.Query) *http.ServeMux { slog.Error("Error executing query", slog.String("err", err.Error())) return } + docs := make([]*index.Document, 0, len(pathDocs)) + var maxFileTime time.Time for _, doc := range pathDocs { docs = append(docs, doc) + if doc.FileTime.After(maxFileTime) { + maxFileTime = doc.FileTime + } + } + + if !maxFileTime.IsZero() { + w.Header().Add("Last-Modified", maxFileTime.UTC().Format(http.TimeFormat)) } var buf bytes.Buffer @@ -60,7 +70,7 @@ func New(db *data.Query) *http.ServeMux { slog.Error("Error writing json output", slog.String("err", err.Error())) } - io.Copy(w, &buf) + http.ServeContent(w, r, "result.json", maxFileTime, bytes.NewReader(buf.Bytes())) }) return mux |
