distinguish unset/empty in form values
This commit is contained in:
@@ -20,25 +20,25 @@ import (
|
|||||||
_ "net/http/pprof"
|
_ "net/http/pprof"
|
||||||
)
|
)
|
||||||
|
|
||||||
func ifEmpty(s, alternative string) string {
|
func ifEmpty(form url.Values, key, alternative string) string {
|
||||||
if s == "" {
|
if len(form[key]) == 0 {
|
||||||
return alternative
|
return alternative
|
||||||
}
|
}
|
||||||
return s
|
return form[key][0]
|
||||||
}
|
}
|
||||||
|
|
||||||
func qrchFromRequest(r *http.Request) *qrbill.QRCH {
|
func qrchFromRequest(r *http.Request) *qrbill.QRCH {
|
||||||
return &qrbill.QRCH{
|
return &qrbill.QRCH{
|
||||||
CdtrInf: qrbill.QRCHCdtrInf{
|
CdtrInf: qrbill.QRCHCdtrInf{
|
||||||
IBAN: ifEmpty(r.FormValue("criban"), "CH0209000000870913543"),
|
IBAN: ifEmpty(r.Form, "criban", "CH0209000000870913543"),
|
||||||
Cdtr: qrbill.Address{
|
Cdtr: qrbill.Address{
|
||||||
AdrTp: qrbill.AddressTypeCombined,
|
AdrTp: qrbill.AddressTypeCombined,
|
||||||
Name: ifEmpty(r.FormValue("crname"), "Legalize it!"),
|
Name: ifEmpty(r.Form, "crname", "Legalize it!"),
|
||||||
StrtNmOrAdrLine1: ifEmpty(r.FormValue("craddr1"), "Quellenstrasse 25"),
|
StrtNmOrAdrLine1: ifEmpty(r.Form, "craddr1", "Quellenstrasse 25"),
|
||||||
BldgNbOrAdrLine2: ifEmpty(r.FormValue("craddr2"), "8005 Zürich"),
|
BldgNbOrAdrLine2: ifEmpty(r.Form, "craddr2", "8005 Zürich"),
|
||||||
PstCd: ifEmpty(r.FormValue("crpost"), ""),
|
PstCd: ifEmpty(r.Form, "crpost", ""),
|
||||||
TwnNm: ifEmpty(r.FormValue("crcity"), ""),
|
TwnNm: ifEmpty(r.Form, "crcity", ""),
|
||||||
Ctry: ifEmpty(r.FormValue("crcountry"), "CH"),
|
Ctry: ifEmpty(r.Form, "crcountry", "CH"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
CcyAmt: qrbill.QRCHCcyAmt{
|
CcyAmt: qrbill.QRCHCcyAmt{
|
||||||
@@ -47,18 +47,18 @@ func qrchFromRequest(r *http.Request) *qrbill.QRCH {
|
|||||||
},
|
},
|
||||||
UltmtDbtr: qrbill.Address{
|
UltmtDbtr: qrbill.Address{
|
||||||
AdrTp: qrbill.AddressTypeCombined,
|
AdrTp: qrbill.AddressTypeCombined,
|
||||||
Name: ifEmpty(r.FormValue("udname"), "Michael Stapelberg"),
|
Name: ifEmpty(r.Form, "udname", "Michael Stapelberg"),
|
||||||
StrtNmOrAdrLine1: ifEmpty(r.FormValue("udaddr1"), "Stauffacherstr 42"),
|
StrtNmOrAdrLine1: ifEmpty(r.Form, "udaddr1", "Stauffacherstr 42"),
|
||||||
BldgNbOrAdrLine2: ifEmpty(r.FormValue("udaddr2"), "8004 Zürich"),
|
BldgNbOrAdrLine2: ifEmpty(r.Form, "udaddr2", "8004 Zürich"),
|
||||||
PstCd: ifEmpty(r.FormValue("udpost"), ""),
|
PstCd: ifEmpty(r.Form, "udpost", ""),
|
||||||
TwnNm: ifEmpty(r.FormValue("udcity"), ""),
|
TwnNm: ifEmpty(r.Form, "udcity", ""),
|
||||||
Ctry: ifEmpty(r.FormValue("udcountry"), "CH"),
|
Ctry: ifEmpty(r.Form, "udcountry", "CH"),
|
||||||
},
|
},
|
||||||
RmtInf: qrbill.QRCHRmtInf{
|
RmtInf: qrbill.QRCHRmtInf{
|
||||||
Tp: "NON", // Reference type
|
Tp: "NON", // Reference type
|
||||||
Ref: "", // Reference
|
Ref: "", // Reference
|
||||||
AddInf: qrbill.QRCHRmtInfAddInf{
|
AddInf: qrbill.QRCHRmtInfAddInf{
|
||||||
Ustrd: ifEmpty(r.FormValue("message"), "Spende 420"),
|
Ustrd: ifEmpty(r.Form, "message", "Spende 420"),
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
@@ -98,6 +98,12 @@ func logic() error {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err := r.ParseForm(); err != nil {
|
||||||
|
log.Printf("%s %s", prefix, err)
|
||||||
|
http.Error(w, err.Error(), http.StatusInternalServerError)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
qrch := qrchFromRequest(r)
|
qrch := qrchFromRequest(r)
|
||||||
|
|
||||||
bill, err := qrch.Encode()
|
bill, err := qrch.Encode()
|
||||||
|
|||||||
Reference in New Issue
Block a user