Base Project
This commit is contained in:
45
internal/repositories/auth_repository.go
Normal file
45
internal/repositories/auth_repository.go
Normal file
@@ -0,0 +1,45 @@
|
||||
package repositories
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"wm-backend/internal/mapper"
|
||||
"wm-backend/internal/models"
|
||||
db "wm-backend/sqlc_gen"
|
||||
|
||||
"github.com/jackc/pgx/v5"
|
||||
)
|
||||
|
||||
// GetUserByEmail retrieves a user by their email address using SQLC-generated queries.
|
||||
// Returns nil, nil if no user is found.
|
||||
func GetUserByEmail(ctx context.Context, queries *db.Queries, email string) (*models.User, error) {
|
||||
user, err := queries.GetUserByEmail(ctx, email)
|
||||
if err != nil {
|
||||
if errors.Is(err, pgx.ErrNoRows) {
|
||||
return nil, nil
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
return mapper.ToDomainUser(user), nil
|
||||
}
|
||||
|
||||
func GetUserByUsername(ctx context.Context, queries *db.Queries, username string) (*models.User, error) {
|
||||
user, err := queries.GetUserByUsername(ctx, username)
|
||||
if err != nil {
|
||||
if errors.Is(err, pgx.ErrNoRows) {
|
||||
return nil, nil
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
return mapper.ToDomainUser(user), nil
|
||||
}
|
||||
|
||||
// CreateUser inserts a new user using SQLC-generated queries.
|
||||
// Returns the created user's ID as a string.
|
||||
func CreateUser(ctx context.Context, queries *db.Queries, params db.CreateUserParams) (string, error) {
|
||||
id, err := queries.CreateUser(ctx, params)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
return id.String(), nil
|
||||
}
|
||||
Reference in New Issue
Block a user