aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--walrss/internal/core/users.go24
1 files changed, 13 insertions, 11 deletions
diff --git a/walrss/internal/core/users.go b/walrss/internal/core/users.go
index dfd2c86..5e7c80c 100644
--- a/walrss/internal/core/users.go
+++ b/walrss/internal/core/users.go
@@ -33,12 +33,7 @@ func RegisterUser(st *state.State, email, password string) (*db.User, error) {
u.Password = hash
- if _, err := st.Data.NewInsert().Model(u).Exec(context.Background()); err != nil {
- if e, ok := err.(*sqlite3.Error); ok {
- if e.Code == sqlite3.ErrConstraint {
- return nil, NewUserError("email address in use")
- }
- }
+ if err := coreRegisterUser(st, u); err != nil {
return nil, err
}
@@ -51,16 +46,23 @@ func RegisterUserOIDC(st *state.State, email string) (*db.User, error) {
Email: email,
}
+ if err := coreRegisterUser(st, u); err != nil {
+ return nil, err
+ }
+
+ return u, nil
+}
+
+func coreRegisterUser(st *state.State, u *db.User) error {
if _, err := st.Data.NewInsert().Model(u).Exec(context.Background()); err != nil {
- if e, ok := err.(*sqlite3.Error); ok {
+ if e, ok := err.(sqlite3.Error); ok {
if e.Code == sqlite3.ErrConstraint {
- return nil, NewUserError("email address in use")
+ return NewUserError("email address in use")
}
}
- return nil, err
+ return err
}
-
- return u, nil
+ return nil
}
func AreUserCredentialsCorrect(st *state.State, email, password string) (bool, error) {