commit - 247c5494088a4a93b3a2290e9175f34adde47cc3
commit + 4b027dd5ebf86a899817b235cb999dc9cd37f2a8
blob - 60238e8a438264893569d426e11a67367d81bc03
blob + b61e87ec0010a3943819ef43bf5d601f5796072f
--- internal/service/handlers.go
+++ internal/service/handlers.go
package service
import (
+ "fmt"
"html/template"
"log"
"net/http"
results, err := service.findChannel(searchQuery)
if err != nil {
- panic("TODO")
+ msg := fmt.Sprintf("find %q: %v", searchQuery, err)
+ log.Println(msg)
+ w.WriteHeader(http.StatusInternalServerError)
+ render(w, "error", msg)
+ return
}
if isHtmx {
channelPage := ChannelResult{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
+ // Check to see if we have the feed in the database
+ channel, err := service.db.GetChannel(channelUrl)
+ if err != nil {
+ msg := fmt.Sprintf("get %q: %v", channelUrl, err)
+ log.Println(msg)
+ w.WriteHeader(http.StatusInternalServerError)
+ render(w, "error", msg)
+ return
}
-
- err := render(w, "channelPage", channelPage)
+ channelPage.Channel = *channel
+ err = render(w, "channelPage", channelPage)
if err != nil {
log.Printf("Error executing template - %s", err)
}
blob - /dev/null
blob + c0063f254eb9a0bc787e58bc08a0c92beab96e71 (mode 644)
--- /dev/null
+++ internal/templates/error.tmpl
+{{ define "error" }}
+{{ template "header" }}
+<main>
+<h2>Error</h2>
+<p>{{ . }}</p>
+</main>
+{{ template "footer" }}
+{{ end }}