commit - e396d327ce7472ac9a79ab7df26755d6e50ef0c7
commit + 5dfdd66b09fe47403bcc7678f431f06feba5cbb1
blob - 4fdd36ec7bd8c1eff3fe3f07c55628360acf7a7f
blob + fe60e21b6bd1a72734687ab0197b479fd2332ae8
--- internal/service/handlers.go
+++ internal/service/handlers.go
"html/template"
"net/http"
"net/url"
+ "strings"
+
+ "github.com/streatCodes/rss/rss"
)
var templateFuncs = template.FuncMap{
}
render(w, "home", results)
}
+
+type ChannelPage struct {
+ ShowSubscribeButton bool
+ Channel *rss.Channel
+}
+
+func (service *Service) channelHandler(w http.ResponseWriter, r *http.Request) {
+ channelPage := ChannelPage{ShowSubscribeButton: true}
+ channelUrl := strings.TrimPrefix(r.URL.Path, "/channel/")
+
+ //Check to see if we have the feed in the database
+ if channel, err := service.db.GetChannel(channelUrl); channel != nil && err == nil {
+ channelPage.Channel = channel
+ }
+
+ render(w, "channelPage", channelPage)
+}
blob - c25c607897bf71ad59b2e2c57879c2fea54275f2
blob + ac7ddbc2113c05ea5b8035af45c91779d98f0819
--- internal/service/service.go
+++ internal/service/service.go
mux.Handle("GET /static/", http.StripPrefix("/static/", http.FileServer(http.Dir("web"))))
mux.HandleFunc("GET /", service.homeHandler)
mux.HandleFunc("GET /search", service.searchHandler)
+ mux.HandleFunc("GET /channel/", service.channelHandler)
addr := ":8080"
log.Printf("Server running at %s", addr)
blob - /dev/null
blob + ef0a5d66297f2c3b8c46267193799a428e007726 (mode 644)
--- /dev/null
+++ internal/templates/channelPage.tmpl
+{{ define "channelPage" }}
+{{ template "header" }}
+<main class="search-area">
+ Channels todo {{.Channel.Title}}
+</main>
+{{ template "footer" }}
+{{ end }}