From 868a1676601ff77fbc77e250c8c5fb3a216de94f Mon Sep 17 00:00:00 2001 From: Achim Rohn Date: Sun, 27 Jul 2025 19:15:16 +0200 Subject: [PATCH] Add create from email --- authentication/google/auth.go | 2 +- authentication/keycloak.go | 2 +- authentication/user.go | 2 +- user/user_repository.go | 18 ++++++++++++------ 4 files changed, 15 insertions(+), 9 deletions(-) diff --git a/authentication/google/auth.go b/authentication/google/auth.go index 08d8ddb..5d4c83d 100644 --- a/authentication/google/auth.go +++ b/authentication/google/auth.go @@ -164,7 +164,7 @@ func (a *Auth) AddRoutes(e *echo.Echo) []ersteller_lib.Route { userId, err := a.userRepo.GetUserId(data.Email) if err != nil { 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 { ersteller_lib.LogError("Failed to create user: %v", err) return err diff --git a/authentication/keycloak.go b/authentication/keycloak.go index 91cd282..438cb9a 100644 --- a/authentication/keycloak.go +++ b/authentication/keycloak.go @@ -114,7 +114,7 @@ func RunKeycloakAuth(e *echo.Echo, environment KeycloakEnv, cookieStore *session } 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 { diff --git a/authentication/user.go b/authentication/user.go index a065200..062ae07 100644 --- a/authentication/user.go +++ b/authentication/user.go @@ -2,5 +2,5 @@ package authentication type UserRepository interface { GetUserId(email string) (int, error) - Create(email string) (int, error) + CreateFromEmail(email string) (int, error) } diff --git a/user/user_repository.go b/user/user_repository.go index 8fcd0cb..97e4aee 100644 --- a/user/user_repository.go +++ b/user/user_repository.go @@ -333,14 +333,14 @@ func (r *UserRepository) jsonToString(jsonData any) string { return string(bytes) } -func (u *UserRepository) DoesUserEmailExist(email string) (bool, error) { - sql, args, _ := u.dialect.From("user"). +func (r *UserRepository) DoesUserEmailExist(email string) (bool, error) { + sql, args, _ := r.dialect.From("user"). Prepared(true). Select(goqu.COUNT("email")). Where(goqu.Ex{"email": email}). ToSQL() - rows, err := u.connPool.Query(context.Background(), sql, args...) + rows, err := r.connPool.Query(context.Background(), sql, args...) if err != nil { ersteller_lib.LogError("failed to run sql query: %v", err) return false, err @@ -357,14 +357,14 @@ func (u *UserRepository) DoesUserEmailExist(email string) (bool, error) { return false, nil } -func (u *UserRepository) GetUserId(email string) (int, error) { - sql, args, _ := u.dialect.From("user"). +func (r *UserRepository) GetUserId(email string) (int, error) { + sql, args, _ := r.dialect.From("user"). Prepared(true). Select("id"). Where(goqu.Ex{"email": email}). ToSQL() - rows, err := u.connPool.Query(context.Background(), sql, args...) + rows, err := r.connPool.Query(context.Background(), sql, args...) if err != nil { ersteller_lib.LogError("failed to run sql query: %v", 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) } +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) { userId, err := r.GetUserId(email) if err != nil {