feat: implement user profile retrieval with roles and permissions caching
This commit is contained in:
@@ -7,6 +7,7 @@ import (
|
||||
"wm-backend/internal/models"
|
||||
db "wm-backend/sqlc_gen"
|
||||
|
||||
"github.com/google/uuid"
|
||||
"github.com/jackc/pgx/v5"
|
||||
)
|
||||
|
||||
@@ -43,3 +44,20 @@ func CreateUser(ctx context.Context, queries *db.Queries, params db.CreateUserPa
|
||||
}
|
||||
return id.String(), nil
|
||||
}
|
||||
|
||||
// GetUserByID retrieves a user by their ID using SQLC-generated queries.
|
||||
// Returns nil, nil if no user is found.
|
||||
func GetUserByID(ctx context.Context, queries *db.Queries, id string) (*models.User, error) {
|
||||
uid, err := uuid.Parse(id)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
user, err := queries.GetUserByID(ctx, uid)
|
||||
if err != nil {
|
||||
if errors.Is(err, pgx.ErrNoRows) {
|
||||
return nil, nil
|
||||
}
|
||||
return nil, err
|
||||
}
|
||||
return mapper.ToDomainUser(user), nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user