Merge pull request #48 from Monirzadeh/upgrade-golang
ci: add linter and fix errors
This commit is contained in:
commit
d65d18eb13
21
.github/dependabot.yml
vendored
Normal file
21
.github/dependabot.yml
vendored
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
# Maintain dependencies for GitHub Actions
|
||||||
|
- package-ecosystem: "github-actions"
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: "monthly"
|
||||||
|
groups:
|
||||||
|
all:
|
||||||
|
patterns:
|
||||||
|
- "*"
|
||||||
|
|
||||||
|
# Maintain dependencies for Golang
|
||||||
|
- package-ecosystem: "gomod"
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: "monthly"
|
||||||
|
groups:
|
||||||
|
all:
|
||||||
|
patterns:
|
||||||
|
- "*"
|
26
.github/workflows/linter.yml
vendored
Normal file
26
.github/workflows/linter.yml
vendored
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
name: linter
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ main ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ main ]
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
golangci:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
- uses: actions/setup-go@v5
|
||||||
|
with:
|
||||||
|
go-version-file: go.mod
|
||||||
|
- run: go install github.com/a-h/templ/cmd/templ@latest
|
||||||
|
- run: make build
|
||||||
|
- name: golangci-lint
|
||||||
|
uses: golangci/golangci-lint-action@v6.0.1
|
||||||
|
with:
|
||||||
|
version: latest
|
||||||
|
only-new-issues: true
|
@ -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())
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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())
|
||||||
|
@ -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())
|
||||||
|
@ -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
|
||||||
|
@ -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())
|
||||||
}
|
}
|
||||||
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -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
19
utils/template.go
Normal 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())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user