fix: resolve jikan api eof and context cancellation errors

- add http transport with connection pooling to prevent stale connections
- check ctx.Done() before each retry attempt to abort early
- pass context to renderer to skip writing on canceled requests
This commit is contained in:
2026-05-02 23:27:25 +02:00
parent 723152f370
commit 56f0951d5e
6 changed files with 48 additions and 18 deletions

View File

@@ -115,7 +115,7 @@ func (h *Handler) HandleGetWatchlist(w http.ResponseWriter, r *http.Request) {
entries, err := h.service.GetUserWatchlist(r.Context(), user.ID)
if err != nil {
log.Printf("failed to fetch watchlist: %v", err)
if err := templates.GetRenderer().ExecuteTemplate(w, "not_found.gohtml", map[string]any{
if err := templates.GetRenderer().ExecuteTemplate(r.Context(), w, "not_found.gohtml", map[string]any{
"CurrentPath": r.URL.Path,
}); err != nil {
log.Printf("render error: %v", err)
@@ -158,7 +158,7 @@ func (h *Handler) HandleGetWatchlist(w http.ResponseWriter, r *http.Request) {
templateName = "watchlist_partial.gohtml"
}
if err := templates.GetRenderer().ExecuteTemplate(w, templateName, data); err != nil {
if err := templates.GetRenderer().ExecuteTemplate(r.Context(), w, templateName, data); err != nil {
log.Printf("render error: %v", err)
}
}