taldir

Directory service to resolve wallet mailboxes by messenger addresses
Log | Files | Refs | Submodules | README | LICENSE

commit 7cc42613647462a3b82d276de0232c392e398fd7
parent 2e130a43d9c77f029a761d47769101d824ca073c
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date:   Fri, 25 Apr 2025 20:18:10 +0200

add format make target, and format source

Diffstat:
MMakefile.in | 5+++++
Mcmd/taldir-cli/main.go | 4++--
Mcmd/taldir-server/main.go | 4++--
Mpkg/rest/taldir.go | 141+++++++++++++++++++++++++++++++++++++++----------------------------------------
4 files changed, 79 insertions(+), 75 deletions(-)

diff --git a/Makefile.in b/Makefile.in @@ -25,4 +25,9 @@ uninstall: ${RM} ${DESTDIR}${bindir}/taldir-* ${RM} -r ${DESTDIR}${datadir}/taldir +format: + ${GO} fmt ./cmd/taldir-server/*.go + ${GO} fmt ./cmd/taldir-cli/*.go + ${GO} fmt ./pkg/rest/*.go + .PHONY: all diff --git a/cmd/taldir-cli/main.go b/cmd/taldir-cli/main.go @@ -23,12 +23,12 @@ import ( "flag" "fmt" "log" - "os" "net/url" + "os" gnunetutil "gnunet/util" - "taler.net/taldir/internal/util" "gopkg.in/ini.v1" + "taler.net/taldir/internal/util" ) // Generates a link from a challenge and address diff --git a/cmd/taldir-server/main.go b/cmd/taldir-server/main.go @@ -36,8 +36,8 @@ import ( ) var ( - t taldir.Taldir - version string + t taldir.Taldir + version string taldirdatahome string ) diff --git a/pkg/rest/taldir.go b/pkg/rest/taldir.go @@ -27,27 +27,27 @@ import ( "crypto/sha512" "encoding/base64" "encoding/json" + "errors" "fmt" "html/template" "log" "net/http" + "net/url" "os" "os/exec" + "regexp" "strings" "time" - "errors" - "regexp" - "net/url" gnunetutil "gnunet/util" + "github.com/gertd/go-pluralize" "github.com/gorilla/mux" + "github.com/kataras/i18n" "github.com/schanzen/taler-go/pkg/merchant" tos "github.com/schanzen/taler-go/pkg/rest" talerutil "github.com/schanzen/taler-go/pkg/util" "github.com/skip2/go-qrcode" - "github.com/kataras/i18n" - "github.com/gertd/go-pluralize" "gopkg.in/ini.v1" "gorm.io/driver/postgres" "gorm.io/gorm" @@ -158,7 +158,6 @@ type Validator struct { // registration/lookup page LandingPageTpl *template.Template - } // VersionResponse is the JSON response of the /config enpoint @@ -429,7 +428,7 @@ func (t *Taldir) validationRequest(w http.ResponseWriter, r *http.Request) { err = t.Db.First(&entry, "hs_address = ?", entry.HsAddress).Error if err == nil { if validation.TargetUri == "" { - log.Printf("Deleted entry for '%s´\n", entry.HsAddress); + log.Printf("Deleted entry for '%s´\n", entry.HsAddress) err = t.Db.Delete(&entry).Error if err != nil { w.WriteHeader(http.StatusInternalServerError) @@ -440,7 +439,7 @@ func (t *Taldir) validationRequest(w http.ResponseWriter, r *http.Request) { } } else { if validation.TargetUri == "" { - log.Printf("Validated a deletion request but no entry found for `%s'\n", entry.HsAddress); + log.Printf("Validated a deletion request but no entry found for `%s'\n", entry.HsAddress) } else { err = t.Db.Create(&entry).Error if err != nil { @@ -550,7 +549,7 @@ func (t *Taldir) registerRequest(w http.ResponseWriter, r *http.Request) { return } err = t.Db.First(&validation, "h_address = ? AND target_uri = ? AND duration = ?", - hAddress, req.TargetUri, reqDuration).Error + hAddress, req.TargetUri, reqDuration).Error validationExists := (nil == err) // FIXME: Always set new challenge? validation.Challenge = util.GenerateChallenge(t.ChallengeBytes) @@ -563,16 +562,16 @@ func (t *Taldir) registerRequest(w http.ResponseWriter, r *http.Request) { sliceDuration := time.Duration(validation.Duration * 1000) cost, err := util.CalculateCost(t.MonthlyFee, - validator.ChallengeFee, - sliceDuration, - monthDuration) + validator.ChallengeFee, + sliceDuration, + monthDuration) if err != nil { fmt.Println(err) w.WriteHeader(http.StatusInternalServerError) return } if !cost.IsZero() { - validation.RequiresPayment = true; + validation.RequiresPayment = true if len(validation.OrderID) == 0 { // Add new order for new validations // FIXME: What is the URL we want to provide here? @@ -704,9 +703,9 @@ func (t *Taldir) validationPage(w http.ResponseWriter, r *http.Request) { encodedPng := base64.StdEncoding.EncodeToString(png) fullData := map[string]interface{}{ - "version": t.Version, - "QRCode": template.URL("data:image/png;base64," + encodedPng), - "WalletLink": template.URL(walletLink), + "version": t.Version, + "QRCode": template.URL("data:image/png;base64," + encodedPng), + "WalletLink": template.URL(walletLink), "productDisclaimerShort": template.HTML(t.I18n.GetLocale(r).GetMessage("productDisclaimerShort")), } t.ValidationTpl.Execute(w, fullData) @@ -719,15 +718,15 @@ func (t *Taldir) validationPage(w http.ResponseWriter, r *http.Request) { confirmDeletionOrRegistration = t.I18n.GetLocale(r).GetMessage("confirmReg", address, validation.TargetUri) } fullData := map[string]interface{}{ - "version": t.Version, - "error": r.URL.Query().Get("error"), - "target_uri": template.URL(validation.TargetUri), - "address": template.URL(address), - "haddress": template.URL(validation.HAddress), - "solution": template.URL(expectedSolution), + "version": t.Version, + "error": r.URL.Query().Get("error"), + "target_uri": template.URL(validation.TargetUri), + "address": template.URL(address), + "haddress": template.URL(validation.HAddress), + "solution": template.URL(expectedSolution), "confirmDeletionOrRegistration": template.HTML(confirmDeletionOrRegistration), - "productDisclaimerShort": template.HTML(t.I18n.GetLocale(r).GetMessage("productDisclaimerShort")), - "tr": t.I18n.GetLocale(r).GetMessage, + "productDisclaimerShort": template.HTML(t.I18n.GetLocale(r).GetMessage("productDisclaimerShort")), + "tr": t.I18n.GetLocale(r).GetMessage, } t.ValidationTpl.Execute(w, fullData) } @@ -752,14 +751,14 @@ func (t *Taldir) landingPage(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "text/html; charset=utf-8") translateFunc := t.I18n.GetLocale(r).GetMessage fullData := map[string]interface{}{ - "validators": t.Validators, - "version": t.Version, - "lookupOrRegisterCardTitle": template.HTML(translateFunc("lookup")), + "validators": t.Validators, + "version": t.Version, + "lookupOrRegisterCardTitle": template.HTML(translateFunc("lookup")), "selectAliasToLookupCardText": template.HTML(translateFunc("selectAliasToLookup")), - "registerCardText": template.HTML(translateFunc("howtoRegisterOrModify")), - "productDisclaimerShort": template.HTML(translateFunc("productDisclaimerShort")), - "error": translateFunc(r.URL.Query().Get("error")), - "tr": translateFunc, + "registerCardText": template.HTML(translateFunc("howtoRegisterOrModify")), + "productDisclaimerShort": template.HTML(translateFunc("productDisclaimerShort")), + "error": translateFunc(r.URL.Query().Get("error")), + "tr": translateFunc, } err := t.LandingPageTpl.Execute(w, fullData) if err != nil { @@ -772,11 +771,11 @@ func (t *Taldir) imprintPage(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "text/html; charset=utf-8") translateFunc := t.I18n.GetLocale(r).GetMessage fullData := map[string]interface{}{ - "validators": t.Validators, - "version": t.Version, + "validators": t.Validators, + "version": t.Version, "productDisclaimerShort": template.HTML(translateFunc("productDisclaimerShort")), - "error": translateFunc(r.URL.Query().Get("error")), - "tr": translateFunc, + "error": translateFunc(r.URL.Query().Get("error")), + "tr": translateFunc, } err := t.ImprintTpl.Execute(w, fullData) if err != nil { @@ -789,12 +788,12 @@ func (t *Taldir) aboutPage(w http.ResponseWriter, r *http.Request) { w.Header().Set("Content-Type", "text/html; charset=utf-8") translateFunc := t.I18n.GetLocale(r).GetMessage fullData := map[string]interface{}{ - "validators": t.Validators, - "version": t.Version, + "validators": t.Validators, + "version": t.Version, "productDisclaimerShort": template.HTML(translateFunc("productDisclaimerShort")), - "productDisclaimer": template.HTML(translateFunc("productDisclaimer")), - "error": translateFunc(r.URL.Query().Get("error")), - "tr": translateFunc, + "productDisclaimer": template.HTML(translateFunc("productDisclaimer")), + "error": translateFunc(r.URL.Query().Get("error")), + "tr": translateFunc, } err := t.AboutPageTpl.Execute(w, fullData) if err != nil { @@ -823,7 +822,7 @@ func (t *Taldir) methodLookupResultPage(w http.ResponseWriter, r *http.Request) if nil != err { log.Printf("Not a valid alias\n") emsg = t.I18n.GetLocale(r).GetMessage("aliasInvalid", alias) - http.Redirect(w, r, fmt.Sprintf("/landing/" + val.Name + "?error=%s", emsg), http.StatusSeeOther) + http.Redirect(w, r, fmt.Sprintf("/landing/"+val.Name+"?error=%s", emsg), http.StatusSeeOther) return } else { hAddressBin := sha512.Sum512([]byte(r.URL.Query().Get("address"))) @@ -837,14 +836,14 @@ func (t *Taldir) methodLookupResultPage(w http.ResponseWriter, r *http.Request) } } fullData := map[string]interface{}{ - "version": t.Version, - "available": !found, - "method": val.Name, - "address": r.URL.Query().Get("address"), - "result": entry.TargetUri, - "error": emsg, + "version": t.Version, + "available": !found, + "method": val.Name, + "address": r.URL.Query().Get("address"), + "result": entry.TargetUri, + "error": emsg, "productDisclaimerShort": template.HTML(t.I18n.GetLocale(r).GetMessage("productDisclaimerShort")), - "tr": t.I18n.GetLocale(r).GetMessage, + "tr": t.I18n.GetLocale(r).GetMessage, } err = t.LookupResultPageTpl.Execute(w, fullData) if err != nil { @@ -864,10 +863,10 @@ func (t *Taldir) methodLandingPage(w http.ResponseWriter, r *http.Request) { return } fullData := map[string]interface{}{ - "version": t.Version, - "error": r.URL.Query().Get("error"), + "version": t.Version, + "error": r.URL.Query().Get("error"), "productDisclaimerShort": template.HTML(t.I18n.GetLocale(r).GetMessage("productDisclaimerShort")), - "tr": t.I18n.GetLocale(r).GetMessage, + "tr": t.I18n.GetLocale(r).GetMessage, } err := val.LandingPageTpl.Execute(w, fullData) if err != nil { @@ -917,15 +916,15 @@ func getFuncs(current *i18n.Locale) template.FuncMap { } func (t *Taldir) getFileName(relativeFileName string, datahome string) string { - _, err := os.Stat(relativeFileName) - if errors.Is(err, os.ErrNotExist) { - _, err := os.Stat(datahome + "/" + relativeFileName) - if errors.Is(err, os.ErrNotExist) { - return "" - } - return datahome + "/" + relativeFileName + _, err := os.Stat(relativeFileName) + if errors.Is(err, os.ErrNotExist) { + _, err := os.Stat(datahome + "/" + relativeFileName) + if errors.Is(err, os.ErrNotExist) { + return "" } - return relativeFileName + return datahome + "/" + relativeFileName + } + return relativeFileName } // Initialize the Taldir instance with cfgfile @@ -962,19 +961,19 @@ func (t *Taldir) Initialize(cfgfile string, version string, datahome string) { continue } vname := strings.TrimPrefix(sec.Name(), "taldir-validator-") - vlandingPageTplFile := sec.Key("registration_page").MustString(t.getFileName("web/templates/landing_" + vname + ".html", datahome)) + vlandingPageTplFile := sec.Key("registration_page").MustString(t.getFileName("web/templates/landing_"+vname+".html", datahome)) vlandingPageTpl, err := template.ParseFiles(vlandingPageTplFile, navTplFile, footerTplFile) if err != nil { log.Printf("`%s` template not found, disabling validator `%s`.\n", vlandingPageTplFile, vname) continue } t.Validators[vname] = Validator{ - Name: vname, - LandingPageTpl: vlandingPageTpl, - ChallengeFee: sec.Key("challenge_fee").MustString("KUDOS:0"), + Name: vname, + LandingPageTpl: vlandingPageTpl, + ChallengeFee: sec.Key("challenge_fee").MustString("KUDOS:0"), PaymentRequired: sec.Key("enabled").MustBool(false), - Command: sec.Key("command").MustString(""), - Type: ValidatorType(sec.Key("type").MustString("")), + Command: sec.Key("command").MustString(""), + Type: ValidatorType(sec.Key("type").MustString("")), ValidAliasRegex: sec.Key("valid_alias_regex").MustString(""), } } @@ -999,11 +998,11 @@ func (t *Taldir) Initialize(cfgfile string, version string, datahome string) { t.MonthlyFee = t.Cfg.Section("taldir").Key("monthly_fee").MustString("KUDOS:0") psqlconn := fmt.Sprintf("host=%s port=%d user=%s password=%s dbname=%s sslmode=disable", - t.Cfg.Section("taldir-pq").Key("host").MustString("localhost"), - t.Cfg.Section("taldir-pq").Key("port").MustInt64(5432), - t.Cfg.Section("taldir-pq").Key("user").MustString("taldir"), - t.Cfg.Section("taldir-pq").Key("password").MustString("secret"), - t.Cfg.Section("taldir-pq").Key("db_name").MustString("taldir")) + t.Cfg.Section("taldir-pq").Key("host").MustString("localhost"), + t.Cfg.Section("taldir-pq").Key("port").MustInt64(5432), + t.Cfg.Section("taldir-pq").Key("user").MustString("taldir"), + t.Cfg.Section("taldir-pq").Key("password").MustString("secret"), + t.Cfg.Section("taldir-pq").Key("db_name").MustString("taldir")) _db, err := gorm.Open(postgres.Open(psqlconn), &gorm.Config{ Logger: logger.Default.LogMode(logger.Silent), }) @@ -1060,7 +1059,7 @@ func (t *Taldir) Initialize(cfgfile string, version string, datahome string) { log.Fatal(err) os.Exit(1) } - aboutTplFile := t.Cfg.Section("taldir").Key("about_page").MustString(t.getFileName("web/templates/about.html", datahome)) + aboutTplFile := t.Cfg.Section("taldir").Key("about_page").MustString(t.getFileName("web/templates/about.html", datahome)) t.AboutPageTpl, err = template.ParseFiles(aboutTplFile, navTplFile, footerTplFile) if err != nil { log.Fatal(err)