gnunet-gns-registrar

GNU Name System registrar
Log | Files | Refs | README

commit 86720503ed335c39b4d5a87d2189e1ebbaf5acb4
parent dfa72ebc7df107045f5a5ac0e0aa7ba5f4f3c1fa
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date:   Sat,  9 Dec 2023 15:09:50 +0100

Fix error handling

Diffstat:
Mpkg/rest/gnsregistrar.go | 10+++++++---
Mweb/templates/landing.html | 9+++++++++
2 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/pkg/rest/gnsregistrar.go b/pkg/rest/gnsregistrar.go @@ -149,13 +149,13 @@ func (t *Registrar) configResponse(w http.ResponseWriter, r *http.Request) { // FIXME: Implement https://docs.taler.net/design-documents/051-fractional-digits.html and move to taler-go func (t *Registrar) localizedAmountString() (string) { - p := message.NewPrinter(language.English) + p := message.NewPrinter(language.English) costStr := t.RegistrationCost.String() costSplit := strings.Split(costStr, ":") left := costSplit[0] right := costSplit[1] cur, err := currency.ParseISO(left) - if nil != err { + if nil != err { return fmt.Sprintf("%s %s", right, left) } amf, _ := strconv.ParseFloat(right, 8) @@ -169,6 +169,7 @@ func (t *Registrar) landingPage(w http.ResponseWriter, r *http.Request) { fullData := map[string]interface{}{ "suffixHint": t.SuffixHint, "zoneKey": t.RootZoneKey, + "error": r.URL.Query().Get("error"), } t.LandingTpl.Execute(w, fullData) return @@ -471,20 +472,23 @@ func (t *Registrar) namePage(w http.ResponseWriter, r *http.Request) { respData, err := io.ReadAll(resp.Body) if err != nil { fmt.Println("Failed to get zone contents: " + err.Error()) + http.Redirect(w, r, "/" + "?error=Failed to get zone contents.", http.StatusSeeOther) return } err = json.NewDecoder(bytes.NewReader(respData)).Decode(&namestoreResponse) if err != nil { fmt.Println("Failed to get zone contents: " + err.Error()) + http.Redirect(w, r, "/" + "?error=Failed to get zone contents.", http.StatusSeeOther) return } regMetadata, err = t.getCurrentRegistrationMetadata(vars["label"], &namestoreResponse) if err != nil { fmt.Println("Failed to get registration metadata: " + err.Error()) + http.Redirect(w, r, "/" + "?error=Failed to get registration metadata.", http.StatusSeeOther) return } } else if http.StatusNotFound != resp.StatusCode { - http.Redirect(w, r, "/name/" + vars["label"] + "?error=Error retrieving zone information.", http.StatusSeeOther) + http.Redirect(w, r, "/" + "?error=Error retrieving zone information.", http.StatusSeeOther) return } for _, record := range namestoreResponse.Records { diff --git a/web/templates/landing.html b/web/templates/landing.html @@ -12,6 +12,15 @@ <h1 class="text-center mb-5">GNUnet GNS Registrar<br/> <span class="text-center fs-5 text-secondary">Zone: {{.zoneKey}}</span> </h1> + {{if .error}} + <div class="container pt-5"> + <div class="alert alert-danger" role="alert"> + <h4 class="alert-heading">Oh no!</h4> + <hr> + <p class="mb-0">{{.error}}.</p> + </div> + </div> + {{end}} <form action="/search" method="get" class="row"> <div class="row"> <div class="col-lg-6 offset-lg-3">