Move password hashing in handler
diff --git a/core/kg/api/rest/handler.go b/core/kg/api/rest/handler.go
index dbc5882..88d0670 100644
--- a/core/kg/api/rest/handler.go
+++ b/core/kg/api/rest/handler.go
@@ -23,9 +23,7 @@
 		return err
 	}
 
-	if statusCode != http.StatusOK {
-		w.WriteHeader(statusCode)
-	}
+	w.WriteHeader(statusCode)
 
 	encoder := json.NewEncoder(w)
 	encoder.SetEscapeHTML(true)
@@ -35,9 +33,5 @@
 		return err
 	}
 
-	if f, ok := w.(http.Flusher); ok {
-		f.Flush()
-	}
-
 	return nil
 }
diff --git a/core/kg/api/rest/user_service.go b/core/kg/api/rest/user_service.go
index ee7abc2..c976de7 100644
--- a/core/kg/api/rest/user_service.go
+++ b/core/kg/api/rest/user_service.go
@@ -5,6 +5,7 @@
 	"net/http"
 	"strconv"
 
+	"github.com/giolekva/pcloud/core/kg/app"
 	"github.com/giolekva/pcloud/core/kg/model"
 	"github.com/gorilla/mux"
 	"github.com/pkg/errors"
@@ -22,6 +23,10 @@
 		if err := json.NewDecoder(r.Body).Decode(&user); err != nil {
 			return errors.Wrap(err, "can't decode request body")
 		}
+		if err := user.IsValidInput(); err != nil {
+			return errors.Wrap(err, "invalid user input")
+		}
+		user.Password = app.HashPassword(user.Password)
 		user.SanitizeInput()
 		updatedUser, err := router.App.CreateUser(user)
 		if err != nil {