refactor: fix linter errors

This commit is contained in:
rramiachraf 2024-07-14 00:43:06 +01:00
parent ea14549d6f
commit b6cae441b3
9 changed files with 55 additions and 43 deletions

View File

@ -1,7 +1,6 @@
package handlers package handlers
import ( import (
"context"
"fmt" "fmt"
"net/http" "net/http"
@ -20,7 +19,7 @@ func album(l *utils.Logger) http.HandlerFunc {
id := fmt.Sprintf("%s/%s", artist, albumName) id := fmt.Sprintf("%s/%s", artist, albumName)
if a, err := getCache[data.Album](id); err == nil { if a, err := getCache[data.Album](id); err == nil {
views.AlbumPage(a).Render(context.Background(), w) utils.RenderTemplate(w, views.AlbumPage(a), l)
return return
} }
@ -30,7 +29,7 @@ func album(l *utils.Logger) http.HandlerFunc {
if err != nil { if err != nil {
l.Error(err.Error()) l.Error(err.Error())
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
views.ErrorPage(500, "cannot reach Genius servers").Render(context.Background(), w) utils.RenderTemplate(w, views.ErrorPage(500, "cannot reach Genius servers"), l)
return return
} }
@ -38,7 +37,7 @@ func album(l *utils.Logger) http.HandlerFunc {
if resp.StatusCode == http.StatusNotFound { if resp.StatusCode == http.StatusNotFound {
w.WriteHeader(http.StatusNotFound) w.WriteHeader(http.StatusNotFound)
views.ErrorPage(404, "page not found").Render(context.Background(), w) utils.RenderTemplate(w, views.ErrorPage(404, "page not found"), l)
return return
} }
@ -46,14 +45,14 @@ func album(l *utils.Logger) http.HandlerFunc {
if err != nil { if err != nil {
l.Error(err.Error()) l.Error(err.Error())
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
views.ErrorPage(500, "something went wrong").Render(context.Background(), w) utils.RenderTemplate(w, views.ErrorPage(500, "something went wrong"), l)
return return
} }
cf := doc.Find(".cloudflare_content").Length() cf := doc.Find(".cloudflare_content").Length()
if cf > 0 { if cf > 0 {
l.Error("cloudflare got in the way") l.Error("cloudflare got in the way")
views.ErrorPage(500, "cloudflare is detected").Render(context.Background(), w) utils.RenderTemplate(w, views.ErrorPage(500, "cloudflare is detected"), l)
return return
} }
@ -62,7 +61,7 @@ func album(l *utils.Logger) http.HandlerFunc {
l.Error(err.Error()) l.Error(err.Error())
} }
views.AlbumPage(a).Render(context.Background(), w) utils.RenderTemplate(w, views.AlbumPage(a), l)
if err = setCache(id, a); err != nil { if err = setCache(id, a); err != nil {
l.Error(err.Error()) l.Error(err.Error())

View File

@ -2,7 +2,6 @@ package handlers
import ( import (
"bytes" "bytes"
"context"
"encoding/json" "encoding/json"
"fmt" "fmt"
"net/http" "net/http"
@ -33,7 +32,7 @@ func annotations(l *utils.Logger) http.HandlerFunc {
if err != nil { if err != nil {
l.Error(err.Error()) l.Error(err.Error())
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
views.ErrorPage(500, "cannot reach genius servers").Render(context.Background(), w) utils.RenderTemplate(w, views.ErrorPage(500, "cannot reach genius servers"), l)
return return
} }
@ -41,7 +40,7 @@ func annotations(l *utils.Logger) http.HandlerFunc {
if resp.StatusCode == http.StatusNotFound { if resp.StatusCode == http.StatusNotFound {
w.WriteHeader(http.StatusNotFound) w.WriteHeader(http.StatusNotFound)
views.ErrorPage(404, "page not found").Render(context.Background(), w) utils.RenderTemplate(w, views.ErrorPage(404, "page not found"), l)
return return
} }
@ -50,7 +49,7 @@ func annotations(l *utils.Logger) http.HandlerFunc {
if err != nil { if err != nil {
l.Error("Error paring genius api response: %s", err.Error()) l.Error("Error paring genius api response: %s", err.Error())
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
views.ErrorPage(500, "something went wrong").Render(context.Background(), w) utils.RenderTemplate(w, views.ErrorPage(500, "something went wrong"), l)
return return
} }
@ -59,7 +58,7 @@ func annotations(l *utils.Logger) http.HandlerFunc {
if err != nil { if err != nil {
l.Error("could not unmarshal json: %s\n", err) l.Error("could not unmarshal json: %s\n", err)
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
views.ErrorPage(500, "something went wrong").Render(context.Background(), w) utils.RenderTemplate(w, views.ErrorPage(500, "something went wrong"), l)
return return
} }

View File

@ -1,7 +1,6 @@
package handlers package handlers
import ( import (
"context"
"fmt" "fmt"
"net/http" "net/http"
@ -17,7 +16,7 @@ func article(l *utils.Logger) http.HandlerFunc {
articleSlug := mux.Vars(r)["article"] articleSlug := mux.Vars(r)["article"]
if a, err := getCache[data.Article](articleSlug); err == nil { if a, err := getCache[data.Article](articleSlug); err == nil {
views.ArticlePage(a).Render(context.Background(), w) utils.RenderTemplate(w, views.ArticlePage(a), l)
return return
} }
@ -27,7 +26,7 @@ func article(l *utils.Logger) http.HandlerFunc {
if err != nil { if err != nil {
l.Error(err.Error()) l.Error(err.Error())
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
views.ErrorPage(500, "cannot reach Genius servers").Render(context.Background(), w) utils.RenderTemplate(w, views.ErrorPage(500, "cannot reach Genius servers"), l)
return return
} }
@ -35,7 +34,7 @@ func article(l *utils.Logger) http.HandlerFunc {
if resp.StatusCode == http.StatusNotFound { if resp.StatusCode == http.StatusNotFound {
w.WriteHeader(http.StatusNotFound) w.WriteHeader(http.StatusNotFound)
views.ErrorPage(404, "page not found").Render(context.Background(), w) utils.RenderTemplate(w, views.ErrorPage(404, "page not found"), l)
return return
} }
@ -43,14 +42,14 @@ func article(l *utils.Logger) http.HandlerFunc {
if err != nil { if err != nil {
l.Error(err.Error()) l.Error(err.Error())
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
views.ErrorPage(500, "something went wrong").Render(context.Background(), w) utils.RenderTemplate(w, views.ErrorPage(500, "something went wrong"), l)
return return
} }
cf := doc.Find(".cloudflare_content").Length() cf := doc.Find(".cloudflare_content").Length()
if cf > 0 { if cf > 0 {
l.Error("cloudflare got in the way") l.Error("cloudflare got in the way")
views.ErrorPage(500, "cloudflare is detected").Render(context.Background(), w) utils.RenderTemplate(w, views.ErrorPage(500, "cloudflare is detected"), l)
return return
} }
@ -59,7 +58,7 @@ func article(l *utils.Logger) http.HandlerFunc {
l.Error(err.Error()) l.Error(err.Error())
} }
views.ArticlePage(a).Render(context.Background(), w) utils.RenderTemplate(w, views.ArticlePage(a), l)
if err = setCache(articleSlug, a); err != nil { if err = setCache(articleSlug, a); err != nil {
l.Error(err.Error()) l.Error(err.Error())

View File

@ -1,7 +1,6 @@
package handlers package handlers
import ( import (
"context"
"fmt" "fmt"
"net/http" "net/http"
@ -19,7 +18,7 @@ func artist(l *utils.Logger) http.HandlerFunc {
id := fmt.Sprintf("artist:%s", artistName) id := fmt.Sprintf("artist:%s", artistName)
if a, err := getCache[data.Artist](id); err == nil { if a, err := getCache[data.Artist](id); err == nil {
views.ArtistPage(a).Render(context.Background(), w) utils.RenderTemplate(w, views.ArtistPage(a), l)
return return
} }
@ -29,7 +28,7 @@ func artist(l *utils.Logger) http.HandlerFunc {
if err != nil { if err != nil {
l.Error(err.Error()) l.Error(err.Error())
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
views.ErrorPage(500, "cannot reach Genius servers").Render(context.Background(), w) utils.RenderTemplate(w, views.ErrorPage(500, "cannot reach Genius servers"), l)
return return
} }
@ -37,7 +36,7 @@ func artist(l *utils.Logger) http.HandlerFunc {
if resp.StatusCode == http.StatusNotFound { if resp.StatusCode == http.StatusNotFound {
w.WriteHeader(http.StatusNotFound) w.WriteHeader(http.StatusNotFound)
views.ErrorPage(404, "page not found").Render(context.Background(), w) utils.RenderTemplate(w, views.ErrorPage(404, "page not found"), l)
return return
} }
@ -45,14 +44,14 @@ func artist(l *utils.Logger) http.HandlerFunc {
if err != nil { if err != nil {
l.Error(err.Error()) l.Error(err.Error())
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
views.ErrorPage(500, "something went wrong").Render(context.Background(), w) utils.RenderTemplate(w, views.ErrorPage(500, "something went wrong"), l)
return return
} }
cf := doc.Find(".cloudflare_content").Length() cf := doc.Find(".cloudflare_content").Length()
if cf > 0 { if cf > 0 {
l.Error("cloudflare got in the way") l.Error("cloudflare got in the way")
views.ErrorPage(500, "cloudflare is detected").Render(context.Background(), w) utils.RenderTemplate(w, views.ErrorPage(500, "cloudflare is detected"), l)
return return
} }
@ -61,7 +60,7 @@ func artist(l *utils.Logger) http.HandlerFunc {
l.Error(err.Error()) l.Error(err.Error())
} }
views.ArtistPage(a).Render(context.Background(), w) utils.RenderTemplate(w, views.ArtistPage(a), l)
if err = setCache(id, a); err != nil { if err = setCache(id, a); err != nil {
l.Error(err.Error()) l.Error(err.Error())

View File

@ -1,7 +1,6 @@
package handlers package handlers
import ( import (
"context"
"net/http" "net/http"
"github.com/a-h/templ" "github.com/a-h/templ"
@ -45,7 +44,7 @@ func New(logger *utils.Logger, staticFiles static) *mux.Router {
r.NotFoundHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { r.NotFoundHandler = http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusNotFound) w.WriteHeader(http.StatusNotFound)
views.ErrorPage(404, "page not found").Render(context.Background(), w) utils.RenderTemplate(w, views.ErrorPage(404, "page not found"), logger)
}) })
return r return r

View File

@ -1,7 +1,6 @@
package handlers package handlers
import ( import (
"context"
"fmt" "fmt"
"net/http" "net/http"
@ -23,7 +22,7 @@ func lyrics(l *utils.Logger) http.HandlerFunc {
} }
if s, err := getCache[data.Song](id); err == nil { if s, err := getCache[data.Song](id); err == nil {
views.LyricsPage(s).Render(context.Background(), w) utils.RenderTemplate(w, views.LyricsPage(s), l)
return return
} }
@ -32,7 +31,7 @@ func lyrics(l *utils.Logger) http.HandlerFunc {
if err != nil { if err != nil {
l.Error(err.Error()) l.Error(err.Error())
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
views.ErrorPage(500, "cannot reach Genius servers").Render(context.Background(), w) utils.RenderTemplate(w, views.ErrorPage(500, "cannot reach Genius servers"), l)
return return
} }
@ -40,7 +39,7 @@ func lyrics(l *utils.Logger) http.HandlerFunc {
if resp.StatusCode == http.StatusNotFound { if resp.StatusCode == http.StatusNotFound {
w.WriteHeader(http.StatusNotFound) w.WriteHeader(http.StatusNotFound)
views.ErrorPage(404, "page not found").Render(context.Background(), w) utils.RenderTemplate(w, views.ErrorPage(404, "page not found"), l)
return return
} }
@ -48,14 +47,14 @@ func lyrics(l *utils.Logger) http.HandlerFunc {
if err != nil { if err != nil {
l.Error(err.Error()) l.Error(err.Error())
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
views.ErrorPage(500, "something went wrong").Render(context.Background(), w) utils.RenderTemplate(w, views.ErrorPage(500, "something went wrong"), l)
return return
} }
cf := doc.Find(".cloudflare_content").Length() cf := doc.Find(".cloudflare_content").Length()
if cf > 0 { if cf > 0 {
l.Error("cloudflare got in the way") l.Error("cloudflare got in the way")
views.ErrorPage(500, "cloudflare is detected").Render(context.Background(), w) utils.RenderTemplate(w, views.ErrorPage(500, "cloudflare is detected"), l)
return return
} }
@ -64,7 +63,8 @@ func lyrics(l *utils.Logger) http.HandlerFunc {
l.Error(err.Error()) l.Error(err.Error())
} }
views.LyricsPage(s).Render(context.Background(), w) utils.RenderTemplate(w, views.LyricsPage(s), l)
if err = setCache(id, s); err != nil { if err = setCache(id, s); err != nil {
l.Error(err.Error()) l.Error(err.Error())
} }

View File

@ -1,7 +1,6 @@
package handlers package handlers
import ( import (
"context"
"fmt" "fmt"
"io" "io"
"mime" "mime"
@ -35,7 +34,7 @@ func imageProxy(l *utils.Logger) http.HandlerFunc {
if !isValidExt(ext) { if !isValidExt(ext) {
w.WriteHeader(http.StatusBadRequest) w.WriteHeader(http.StatusBadRequest)
views.ErrorPage(400, "something went wrong").Render(context.Background(), w) utils.RenderTemplate(w, views.ErrorPage(400, "something went wrong"), l)
return return
} }
@ -46,13 +45,13 @@ func imageProxy(l *utils.Logger) http.HandlerFunc {
if err != nil { if err != nil {
l.Error(err.Error()) l.Error(err.Error())
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
views.ErrorPage(500, "cannot reach Genius servers").Render(context.Background(), w) utils.RenderTemplate(w, views.ErrorPage(500, "cannot reach Genius servers"), l)
return return
} }
if res.StatusCode != http.StatusOK { if res.StatusCode != http.StatusOK {
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
views.ErrorPage(500, "something went wrong").Render(context.Background(), w) utils.RenderTemplate(w, views.ErrorPage(500, "something went wrong"), l)
return return
} }

View File

@ -1,7 +1,6 @@
package handlers package handlers
import ( import (
"context"
"encoding/json" "encoding/json"
"fmt" "fmt"
"net/http" "net/http"
@ -21,7 +20,7 @@ func search(l *utils.Logger) http.HandlerFunc {
if err != nil { if err != nil {
l.Error(err.Error()) l.Error(err.Error())
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
views.ErrorPage(500, "cannot reach Genius servers").Render(context.Background(), w) utils.RenderTemplate(w, views.ErrorPage(500, "cannot reach Genius servers"), l)
return return
} }
@ -33,12 +32,12 @@ func search(l *utils.Logger) http.HandlerFunc {
if err = d.Decode(&sRes); err != nil { if err = d.Decode(&sRes); err != nil {
l.Error(err.Error()) l.Error(err.Error())
w.WriteHeader(http.StatusInternalServerError) w.WriteHeader(http.StatusInternalServerError)
views.ErrorPage(500, "something went wrong").Render(context.Background(), w) utils.RenderTemplate(w, views.ErrorPage(500, "something went wrong"), l)
} }
results := data.SearchResults{Query: query, Sections: sRes.Response.Sections} results := data.SearchResults{Query: query, Sections: sRes.Response.Sections}
views.SearchPage(results).Render(context.Background(), w) utils.RenderTemplate(w, views.SearchPage(results), l)
} }
} }

19
utils/template.go Normal file
View File

@ -0,0 +1,19 @@
package utils
import (
"context"
"net/http"
"github.com/a-h/templ"
)
func RenderTemplate(w http.ResponseWriter, t templ.Component, l *Logger) {
if err := t.Render(context.Background(), w); err != nil {
l.Error("unable to render template %s", err)
w.WriteHeader(http.StatusInternalServerError)
_, err := w.Write([]byte{})
if err != nil {
l.Error(err.Error())
}
}
}