Add create from email
This commit is contained in:
@@ -164,7 +164,7 @@ func (a *Auth) AddRoutes(e *echo.Echo) []ersteller_lib.Route {
|
|||||||
userId, err := a.userRepo.GetUserId(data.Email)
|
userId, err := a.userRepo.GetUserId(data.Email)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ersteller_lib.LogError("Failed to get user id: %v", err)
|
ersteller_lib.LogError("Failed to get user id: %v", err)
|
||||||
userId, err = a.userRepo.Create(data.Email)
|
userId, err = a.userRepo.CreateFromEmail(data.Email)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ersteller_lib.LogError("Failed to create user: %v", err)
|
ersteller_lib.LogError("Failed to create user: %v", err)
|
||||||
return err
|
return err
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ func RunKeycloakAuth(e *echo.Echo, environment KeycloakEnv, cookieStore *session
|
|||||||
}
|
}
|
||||||
|
|
||||||
func createUser(gothUser goth.User, repo UserRepository) (int, error) {
|
func createUser(gothUser goth.User, repo UserRepository) (int, error) {
|
||||||
return repo.Create(gothUser.Email)
|
return repo.CreateFromEmail(gothUser.Email)
|
||||||
}
|
}
|
||||||
|
|
||||||
func saveEmailToSessionStore(c echo.Context, sessionStore *sessions.CookieStore, email string, userId int, environment KeycloakEnv) error {
|
func saveEmailToSessionStore(c echo.Context, sessionStore *sessions.CookieStore, email string, userId int, environment KeycloakEnv) error {
|
||||||
|
|||||||
@@ -2,5 +2,5 @@ package authentication
|
|||||||
|
|
||||||
type UserRepository interface {
|
type UserRepository interface {
|
||||||
GetUserId(email string) (int, error)
|
GetUserId(email string) (int, error)
|
||||||
Create(email string) (int, error)
|
CreateFromEmail(email string) (int, error)
|
||||||
}
|
}
|
||||||
|
|||||||
+12
-6
@@ -333,14 +333,14 @@ func (r *UserRepository) jsonToString(jsonData any) string {
|
|||||||
return string(bytes)
|
return string(bytes)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (u *UserRepository) DoesUserEmailExist(email string) (bool, error) {
|
func (r *UserRepository) DoesUserEmailExist(email string) (bool, error) {
|
||||||
sql, args, _ := u.dialect.From("user").
|
sql, args, _ := r.dialect.From("user").
|
||||||
Prepared(true).
|
Prepared(true).
|
||||||
Select(goqu.COUNT("email")).
|
Select(goqu.COUNT("email")).
|
||||||
Where(goqu.Ex{"email": email}).
|
Where(goqu.Ex{"email": email}).
|
||||||
ToSQL()
|
ToSQL()
|
||||||
|
|
||||||
rows, err := u.connPool.Query(context.Background(), sql, args...)
|
rows, err := r.connPool.Query(context.Background(), sql, args...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ersteller_lib.LogError("failed to run sql query: %v", err)
|
ersteller_lib.LogError("failed to run sql query: %v", err)
|
||||||
return false, err
|
return false, err
|
||||||
@@ -357,14 +357,14 @@ func (u *UserRepository) DoesUserEmailExist(email string) (bool, error) {
|
|||||||
return false, nil
|
return false, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (u *UserRepository) GetUserId(email string) (int, error) {
|
func (r *UserRepository) GetUserId(email string) (int, error) {
|
||||||
sql, args, _ := u.dialect.From("user").
|
sql, args, _ := r.dialect.From("user").
|
||||||
Prepared(true).
|
Prepared(true).
|
||||||
Select("id").
|
Select("id").
|
||||||
Where(goqu.Ex{"email": email}).
|
Where(goqu.Ex{"email": email}).
|
||||||
ToSQL()
|
ToSQL()
|
||||||
|
|
||||||
rows, err := u.connPool.Query(context.Background(), sql, args...)
|
rows, err := r.connPool.Query(context.Background(), sql, args...)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
ersteller_lib.LogError("failed to run sql query: %v", err)
|
ersteller_lib.LogError("failed to run sql query: %v", err)
|
||||||
return -1, err
|
return -1, err
|
||||||
@@ -381,6 +381,12 @@ func (u *UserRepository) GetUserId(email string) (int, error) {
|
|||||||
return -1, errors.New("did not find user with email " + email)
|
return -1, errors.New("did not find user with email " + email)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (r *UserRepository) CreateFromEmail(email string) (int, error) {
|
||||||
|
return r.Create(User{
|
||||||
|
Email: email,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
func (r *UserRepository) VerifyPassword(email string, password string) (bool, int, error) {
|
func (r *UserRepository) VerifyPassword(email string, password string) (bool, int, error) {
|
||||||
userId, err := r.GetUserId(email)
|
userId, err := r.GetUserId(email)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user