Add tag parameter to feed endpoint
This commit is contained in:
parent
1f42c5e000
commit
c4692f72e3
@ -7,12 +7,31 @@ import (
|
||||
|
||||
"github.com/gorilla/feeds"
|
||||
"github.com/mediocregopher/blog.mediocregopher.com/srv/http/apiutil"
|
||||
"github.com/mediocregopher/blog.mediocregopher.com/srv/post"
|
||||
)
|
||||
|
||||
func (a *api) renderFeedHandler() http.Handler {
|
||||
|
||||
return http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
|
||||
|
||||
tag := r.FormValue("tag")
|
||||
|
||||
var (
|
||||
posts []post.StoredPost
|
||||
err error
|
||||
)
|
||||
|
||||
if tag == "" {
|
||||
posts, _, err = a.params.PostStore.Get(0, 20)
|
||||
} else {
|
||||
posts, err = a.params.PostStore.GetByTag(tag)
|
||||
}
|
||||
|
||||
if err != nil {
|
||||
apiutil.InternalServerError(rw, r, fmt.Errorf("fetching recent posts: %w", err))
|
||||
return
|
||||
}
|
||||
|
||||
author := &feeds.Author{
|
||||
Name: "mediocregopher",
|
||||
}
|
||||
@ -26,13 +45,7 @@ func (a *api) renderFeedHandler() http.Handler {
|
||||
Author: author,
|
||||
}
|
||||
|
||||
recentPosts, _, err := a.params.PostStore.Get(0, 20)
|
||||
if err != nil {
|
||||
apiutil.InternalServerError(rw, r, fmt.Errorf("fetching recent posts: %w", err))
|
||||
return
|
||||
}
|
||||
|
||||
for _, post := range recentPosts {
|
||||
for _, post := range posts {
|
||||
|
||||
if post.PublishedAt.After(feed.Updated) {
|
||||
feed.Updated = post.PublishedAt
|
||||
|
Loading…
Reference in New Issue
Block a user