about summary refs log tree commit diff stats
path: root/internal/index
diff options
context:
space:
mode:
Diffstat (limited to 'internal/index')
-rw-r--r--internal/index/index_meta.go11
-rw-r--r--internal/index/search.go5
2 files changed, 16 insertions, 0 deletions
diff --git a/internal/index/index_meta.go b/internal/index/index_meta.go
index 635965a..0ff835b 100644
--- a/internal/index/index_meta.go
+++ b/internal/index/index_meta.go
@@ -118,3 +118,14 @@ func (i *Meta) SetSourceMeta(source string, meta *SourceMeta) {
 	}
 	i.data.Sources[source] = meta
 }
+
+func (i *Meta) LastUpdated() time.Time {
+	var last time.Time
+	for _, sourceMeta := range i.data.Sources {
+		if sourceMeta.Updated.After(last) {
+			last = sourceMeta.Updated
+		}
+	}
+
+	return last
+}
diff --git a/internal/index/search.go b/internal/index/search.go
index 3f9c13a..d5bf177 100644
--- a/internal/index/search.go
+++ b/internal/index/search.go
@@ -4,6 +4,7 @@ import (
 	"bytes"
 	"context"
 	"encoding/gob"
+	"time"
 
 	"go.alanpearce.eu/searchix/internal/config"
 	"go.alanpearce.eu/searchix/internal/nix"
@@ -33,6 +34,10 @@ type ReadIndex struct {
 	meta  *Meta
 }
 
+func (index *ReadIndex) LastUpdated() time.Time {
+	return index.meta.LastUpdated()
+}
+
 func (index *ReadIndex) GetEnabledSources() ([]string, errors.E) {
 	facet := bleve.NewFacetRequest("Source", 100)
 	query := bleve.NewMatchAllQuery()