changeset 243:d39f897fae16

Made models for email, user and country driver.Valuer to get rid of some conversions.
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 26 Jul 2018 18:37:52 +0200
parents 24eb518b0394
children 9f6d29f8ac2b
files controllers/user.go
diffstat 1 files changed, 25 insertions(+), 12 deletions(-) [+]
line wrap: on
line diff
--- 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,
 		)
 	}