aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/server
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/server')
-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