# HG changeset patch # User Sascha L. Teichmann # Date 1532623072 -7200 # Node ID d39f897fae16ccd67b587699b658251f02463122 # Parent 24eb518b03945c7ebbd40bdd74ae45589f3d0def Made models for email, user and country driver.Valuer to get rid of some conversions. diff -r 24eb518b0394 -r d39f897fae16 controllers/user.go --- a/controllers/user.go Thu Jul 26 18:22:40 2018 +0200 +++ b/controllers/user.go Thu Jul 26 18:37:52 2018 +0200 @@ -2,6 +2,7 @@ import ( "database/sql" + "database/sql/driver" "encoding/json" "errors" "net/http" @@ -74,6 +75,10 @@ return nil } +func (e Email) Value() (driver.Value, error) { + return string(e), nil +} + var ( validCountries = []string{ "AT", "BG", "DE", "HU", "HR", @@ -97,6 +102,10 @@ return errNoValidCountry } +func (c Country) Value() (driver.Value, error) { + return string(c), nil +} + var ( validRoles = []string{ "waterway_user", @@ -106,6 +115,10 @@ errNoValidRole = errors.New("Not a valid role") ) +func (r Role) Value() (driver.Value, error) { + return string(r), nil +} + func (r *Role) UnmarshalJSON(data []byte) error { var s string if err := json.Unmarshal(data, &s); err != nil { @@ -166,23 +179,23 @@ _, err = db.Exec( updateUserSQL, user, - string(newUser.Role), + newUser.Role, newUser.User, newUser.Password, - string(newUser.Country), - string(newUser.Email), + newUser.Country, + newUser.Email, ) } else { _, err = db.Exec( updateUserExtentSQL, user, - string(newUser.Role), + newUser.Role, newUser.User, newUser.Password, - string(newUser.Country), + newUser.Country, newUser.Extent.X1, newUser.Extent.Y1, newUser.Extent.X2, newUser.Extent.Y2, - string(newUser.Email), + newUser.Email, ) } @@ -211,22 +224,22 @@ if user.Extent == nil { _, err = db.Exec( createUserSQL, - string(user.Role), + user.Role, user.User, user.Password, - string(user.Country), - string(user.Email), + user.Country, + user.Email, ) } else { _, err = db.Exec( createUserExtentSQL, - string(user.Role), + user.Role, user.User, user.Password, - string(user.Country), + user.Country, user.Extent.X1, user.Extent.Y1, user.Extent.X2, user.Extent.Y2, - string(user.Email), + user.Email, ) }