lyrics

lyrics
git clone git://brookjeynes.dev/bjeynes/lyrics.git
Log | Files | Refs

index.go (735B)


      1 package server
      2 
      3 import (
      4 	"context"
      5 	"errors"
      6 	"lyrics/internal/db"
      7 	"lyrics/internal/server/ui/views/index"
      8 	"net/http"
      9 )
     10 
     11 func (ss *ServerState) Index(w http.ResponseWriter, r *http.Request) {
     12 	logger := ss.logger.With("handler", "Index")
     13 
     14 	songs, err := db.RecentSongs(ss.db, 10)
     15 	if err != nil {
     16 		logger.Error("failed to get recent songs", "err", err)
     17 		http.Error(w, "Internal Server Error", http.StatusInternalServerError)
     18 		return
     19 	}
     20 
     21 	err = index.Index(index.IndexParams{Songs: songs}).Render(r.Context(), w)
     22 	if err != nil {
     23 		if errors.Is(err, context.Canceled) {
     24 			return
     25 		}
     26 
     27 		logger.Error("failed to render index page", "err", err)
     28 		http.Error(w, "Internal Server Error", http.StatusInternalServerError)
     29 		return
     30 	}
     31 }