diff options
| -rw-r--r-- | walrss/internal/core/users.go | 24 |
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) { |
