package handlers import ( "html/template" "mealprep/auth" "mealprep/database" "net/http" ) // GroceryListHandler handles the grocery list page func GroceryListHandler(w http.ResponseWriter, r *http.Request) { userID := auth.GetUserID(r) groceryItems, err := database.GetGroceryList(userID) if err != nil { http.Error(w, err.Error(), http.StatusInternalServerError) return } tmpl := `

Grocery List

This list is automatically generated from your week plan.

{{if .Items}}
{{range .Items}}
{{.IngredientName}} {{printf "%.2f" .TotalQuantity}} {{.Unit}}
{{end}}
{{else}}

No items in your grocery list. Add meals to your week plan to generate a grocery list.

{{end}}
` data := struct { Items interface{} }{ Items: groceryItems, } t := template.Must(template.New("grocerylist").Parse(tmpl)) t.Execute(w, data) }