diff options
Diffstat (limited to 'src/http.go')
-rw-r--r-- | src/http.go | 51 |
1 files changed, 14 insertions, 37 deletions
diff --git a/src/http.go b/src/http.go index 071b25c..fce82ba 100644 --- a/src/http.go +++ b/src/http.go @@ -13,8 +13,6 @@ import ( "strings" "time" - "golang.org/x/text/collate" - "golang.org/x/text/language" . "git.thomasvoss.com/euro-cash.eu/pkg/try" "git.thomasvoss.com/euro-cash.eu/src/dbx" @@ -155,7 +153,6 @@ func mintageHandler(next http.Handler) http.Handler { td.FilterBy = "country" } - var err error mt := dbx.NewMintageType(td.Type) switch td.FilterBy { @@ -166,45 +163,25 @@ func mintageHandler(next http.Handler) http.Handler { }) { td.Code = td.Countries[0].Code } - td.CountryMintages, err = dbx.GetMintagesByCountry(td.Code, mt) + + m, err := dbx.GetMintagesByCountry(td.Code, mt) + if err != nil { + throwError(http.StatusInternalServerError, err, w, r) + return + } + td.CountryMintages = makeCountryMintageTable(m, td.Printer) case "year": + var err error td.Year, err = strconv.Atoi(r.FormValue("year")) - if err != nil { + if err != nil || td.Year < 1999 { td.Year = 1999 } - td.YearMintages, err = dbx.GetMintagesByYear(td.Year, mt) - - /* NOTE: It’s safe to use MustParse() here, because by this - point we know that all BCPs are valid. */ - c := collate.New(language.MustParse(td.Printer.Bcp)) - for i, r := range td.YearMintages.Standard { - name := td.Printer.GetC( - countryCodeToName[r.Country], "Place Name") - td.YearMintages.Standard[i].Country = name - } - for i, r := range td.YearMintages.Commemorative { - name := td.Printer.GetC( - countryCodeToName[r.Country], "Place Name") - td.YearMintages.Commemorative[i].Country = name + m, err := dbx.GetMintagesByYear(td.Year, mt) + if err != nil { + throwError(http.StatusInternalServerError, err, w, r) + return } - slices.SortFunc(td.YearMintages.Standard, func(x, y dbx.MSYearRow) int { - Δ := c.CompareString(x.Country, y.Country) - if Δ == 0 { - Δ = c.CompareString(x.Mintmark, y.Mintmark) - } - return Δ - }) - slices.SortFunc(td.YearMintages.Commemorative, func(x, y dbx.MCYearRow) int { - Δ := c.CompareString(x.Country, y.Country) - if Δ == 0 { - Δ = c.CompareString(x.Mintmark, y.Mintmark) - } - return Δ - }) - } - if err != nil { - throwError(http.StatusInternalServerError, err, w, r) - return + td.YearMintages = makeYearMintageTable(m, td.Printer) } next.ServeHTTP(w, r) |