in src/frontend/handlers.go [499:523]
func (fe *frontendServer) setCurrencyHandler(w http.ResponseWriter, r *http.Request) {
log := r.Context().Value(ctxKeyLog{}).(logrus.FieldLogger)
cur := r.FormValue("currency_code")
payload := validator.SetCurrencyPayload{Currency: cur}
if err := payload.Validate(); err != nil {
renderHTTPError(log, r, w, validator.ValidationErrorResponse(err), http.StatusUnprocessableEntity)
return
}
log.WithField("curr.new", payload.Currency).WithField("curr.old", currentCurrency(r)).
Debug("setting currency")
if payload.Currency != "" {
http.SetCookie(w, &http.Cookie{
Name: cookieCurrency,
Value: payload.Currency,
MaxAge: cookieMaxAge,
})
}
referer := r.Header.Get("referer")
if referer == "" {
referer = baseUrl + "/"
}
w.Header().Set("Location", referer)
w.WriteHeader(http.StatusFound)
}