aboutsummaryrefslogtreecommitdiff
path: root/src/user/routes.go
diff options
context:
space:
mode:
authorAlexander Kavon <me+git@alexkavon.com>2024-01-22 00:37:21 -0500
committerAlexander Kavon <me+git@alexkavon.com>2024-01-22 00:37:21 -0500
commitb3c1584ec4a5bcba84a10cd9b6501d0e978c2457 (patch)
tree87fa8e9f21fd07b1a679a2ed05a3c931a85212cb /src/user/routes.go
parentd6fdb3a460eb228d7b1cd7870b7ef6c8c7391f0b (diff)
update db adapter, server, routes, and user model to be sqlboiler compatible
Diffstat (limited to 'src/user/routes.go')
-rw-r--r--src/user/routes.go26
1 files changed, 14 insertions, 12 deletions
diff --git a/src/user/routes.go b/src/user/routes.go
index d8c8d43..b163fb7 100644
--- a/src/user/routes.go
+++ b/src/user/routes.go
@@ -5,6 +5,8 @@ import (
"net/http"
"github.com/go-playground/validator/v10"
+ "github.com/volatiletech/sqlboiler/v4/boil"
+ "gitlab.com/alexkavon/newsstand/src/models"
"gitlab.com/alexkavon/newsstand/src/server"
"gitlab.com/alexkavon/newsstand/src/sessions"
)
@@ -64,33 +66,33 @@ func Store(s *server.Server) http.HandlerFunc {
return func(w http.ResponseWriter, r *http.Request) {
r.ParseForm()
- user := &User{
- Db: s.Db,
- Username: r.PostFormValue("username"),
- Secret: r.PostFormValue("secret"),
- Email: r.PostFormValue("email"),
- }
+ var user models.User
+ user.Username = r.PostFormValue("username")
+ user.Secret = r.PostFormValue("secret")
+ user.Email = r.PostFormValue("email")
// Validate User Input
v := validator.New()
err := v.Struct(user)
if err != nil {
- log.Println("Validator failed", err.(validator.ValidationErrors))
+ log.Fatal("Validator failed", err.(validator.ValidationErrors))
}
// Hash secret
- err = user.HashSecret()
+ secret := &Secret{Raw: user.Secret}
+ err = secret.HashSecret()
if err != nil {
- log.Println("Hash failure", err)
+ log.Fatal("Hash failure", err)
}
+ user.Secret = secret.Hash()
// Store user
- err = user.Insert()
+ err = user.Insert(r.Context(), s.Db.ToSqlDb(), boil.Infer())
if err != nil {
- log.Println("Insert Error", err)
+ log.Fatal("Insert Error", err)
}
// Send email validation
// Create cookie session
- sessions.NewSession(w, sessions.SessionValues{"uid": user.Id, "username": user.Username})
+ sessions.NewSession(w, sessions.SessionValues{"uid": user.ID, "username": user.Username})
// Redirect to user profile
http.Redirect(w, r, "/u/me", http.StatusSeeOther)
}