aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/server/server.go
diff options
context:
space:
mode:
authorJP Appel <jeanpierre.appel01@gmail.com>2025-07-13 18:54:40 -0400
committerJP Appel <jeanpierre.appel01@gmail.com>2025-07-13 18:54:40 -0400
commitb1226acdde526ff0dc83a6b7e81d1f6ccf0ad3c2 (patch)
tree91b9a2d1a2044d4de9ded06e12af35e4244159db /pkg/server/server.go
parent86b712bfce3b0f57be197d6839138aea03034f1f (diff)
Add Last-Modified to response
Diffstat (limited to 'pkg/server/server.go')
-rw-r--r--pkg/server/server.go12
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