From 37e383e47da31d07d7198534d9f970f4be21cfe3 Mon Sep 17 00:00:00 2001 From: 0xTylerHolmes Date: Wed, 18 Sep 2024 22:42:32 -0400 Subject: [PATCH 1/2] add simple content-type hook for forkdata --- handlers/forks.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/handlers/forks.go b/handlers/forks.go index ca0b65f..fb4b902 100644 --- a/handlers/forks.go +++ b/handlers/forks.go @@ -1,6 +1,8 @@ package handlers import ( + "encoding/json" + "fmt" "net/http" "sort" "time" @@ -31,6 +33,18 @@ func Forks(w http.ResponseWriter, r *http.Request) { handlePageError(w, r, pageError) return } + + if r.Header.Get("Content-Type") == "application/json" { + w.Header().Set("Content-Type", "application/json") + forksDataBytes, err := json.Marshal(data.Data) + if err != nil { + w.Write([]byte(fmt.Sprintf("%s", err.Error()))) + return + } + w.Write(forksDataBytes) + return + } + w.Header().Set("Content-Type", "text/html") if handleTemplateError(w, r, "forks.go", "Forks", "", pageTemplate.ExecuteTemplate(w, "layout", data)) != nil { return // an error has occurred and was processed From b60f277abebfd2f21d6fff93dc24303d24552248 Mon Sep 17 00:00:00 2001 From: 0xTylerHolmes Date: Wed, 18 Sep 2024 22:42:32 -0400 Subject: [PATCH 2/2] add simple content-type hook for forkdata --- handlers/forks.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/handlers/forks.go b/handlers/forks.go index ca0b65f..1aa0d70 100644 --- a/handlers/forks.go +++ b/handlers/forks.go @@ -1,6 +1,8 @@ package handlers import ( + "encoding/json" + "fmt" "net/http" "sort" "time" @@ -31,6 +33,21 @@ func Forks(w http.ResponseWriter, r *http.Request) { handlePageError(w, r, pageError) return } + + if r.Header.Get("Content-Type") == "application/json" { + w.Header().Set("Content-Type", "application/json") + forksDataBytes, err := json.Marshal(data.Data) + if err != nil { + http.Error(w, err.Error(), http.StatusInternalServerError) + return + } + _, err = w.Write(forksDataBytes) + if err != nil { + http.Error(w, fmt.Sprintf("Error writing response: %v", err), http.StatusInternalServerError) + } + return + } + w.Header().Set("Content-Type", "text/html") if handleTemplateError(w, r, "forks.go", "Forks", "", pageTemplate.ExecuteTemplate(w, "layout", data)) != nil { return // an error has occurred and was processed