Commit Diff


commit - 247c5494088a4a93b3a2290e9175f34adde47cc3
commit + 4b027dd5ebf86a899817b235cb999dc9cd37f2a8
blob - 60238e8a438264893569d426e11a67367d81bc03
blob + b61e87ec0010a3943819ef43bf5d601f5796072f
--- internal/service/handlers.go
+++ internal/service/handlers.go
@@ -1,6 +1,7 @@
 package service
 
 import (
+	"fmt"
 	"html/template"
 	"log"
 	"net/http"
@@ -32,7 +33,11 @@ func (service *Service) searchHandler(w http.ResponseW
 
 	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 {
@@ -49,12 +54,17 @@ func (service *Service) channelHandler(w http.Response
 	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
@@ -0,0 +1,8 @@
+{{ define "error" }}
+{{ template "header" }}
+<main>
+<h2>Error</h2>
+<p>{{ . }}</p>
+</main>
+{{ template "footer" }}
+{{ end }}