37 lines
768 B
Go
37 lines
768 B
Go
package web
|
|
|
|
import (
|
|
"log"
|
|
"net/http"
|
|
|
|
"github.com/Jaculabilis/intake/core"
|
|
"github.com/Jaculabilis/intake/web/html"
|
|
)
|
|
|
|
func (env *Env) getSource(writer http.ResponseWriter, req *http.Request) {
|
|
source := req.PathValue("source")
|
|
if exists, err := core.SourceExists(env.db, source); !exists || err != nil {
|
|
http.NotFound(writer, req)
|
|
return
|
|
}
|
|
|
|
var items []core.Item
|
|
var err error
|
|
inactive := req.URL.Query().Get("inactive") == "1"
|
|
log.Printf("inactive = %t", inactive)
|
|
if inactive {
|
|
items, err = core.GetAllItemsForSource(env.db, source)
|
|
} else {
|
|
items, err = core.GetActiveItemsForSource(env.db, source)
|
|
}
|
|
if err != nil {
|
|
http.Error(writer, err.Error(), 500)
|
|
return
|
|
}
|
|
|
|
data := html.FeedData{
|
|
Items: items,
|
|
}
|
|
html.Feed(writer, data)
|
|
}
|