summaryrefslogtreecommitdiff
path: root/srv/src/http/index.go
diff options
context:
space:
mode:
Diffstat (limited to 'srv/src/http/index.go')
-rw-r--r--srv/src/http/index.go24
1 files changed, 23 insertions, 1 deletions
diff --git a/srv/src/http/index.go b/srv/src/http/index.go
index 4557f95..aa606d6 100644
--- a/srv/src/http/index.go
+++ b/srv/src/http/index.go
@@ -30,7 +30,19 @@ func (a *api) renderIndexHandler() http.Handler {
return
}
- posts, hasMore, err := a.params.PostStore.Get(page, pageCount)
+ tag := r.FormValue("tag")
+
+ var (
+ posts []post.StoredPost
+ hasMore bool
+ )
+
+ if tag == "" {
+ posts, hasMore, err = a.params.PostStore.Get(page, pageCount)
+ } else {
+ posts, err = a.params.PostStore.GetByTag(tag)
+ }
+
if err != nil {
apiutil.InternalServerError(
rw, r, fmt.Errorf("fetching page %d of posts: %w", page, err),
@@ -38,13 +50,23 @@ func (a *api) renderIndexHandler() http.Handler {
return
}
+ tags, err := a.params.PostStore.GetTags()
+ if err != nil {
+ apiutil.InternalServerError(
+ rw, r, fmt.Errorf("fething tags: %w", err),
+ )
+ return
+ }
+
tplPayload := struct {
Posts []post.StoredPost
PrevPage, NextPage int
+ Tags []string
}{
Posts: posts,
PrevPage: -1,
NextPage: -1,
+ Tags: tags,
}
if page > 0 {