feat: implement user profile retrieval with roles and permissions caching
This commit is contained in:
@@ -5,6 +5,8 @@ import (
|
||||
"wm-backend/internal/mapper"
|
||||
"wm-backend/internal/models"
|
||||
db "wm-backend/sqlc_gen"
|
||||
|
||||
"github.com/google/uuid"
|
||||
)
|
||||
|
||||
func CreateRole(ctx context.Context, queries *db.Queries, body models.Role) (models.Role, error) {
|
||||
@@ -14,3 +16,24 @@ func CreateRole(ctx context.Context, queries *db.Queries, body models.Role) (mod
|
||||
}
|
||||
return *mapper.ToDomainRole(role), nil
|
||||
}
|
||||
|
||||
// GetUserRolesByUserID retrieves all roles assigned to a user with role info.
|
||||
func GetUserRolesByUserID(ctx context.Context, queries *db.Queries, userID string) ([]models.Role, error) {
|
||||
uid, err := uuid.Parse(userID)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
rows, err := queries.GetUserRolesByUserID(ctx, uid)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
roles := make([]models.Role, 0, len(rows))
|
||||
for _, row := range rows {
|
||||
roles = append(roles, models.Role{
|
||||
ID: row.RoleID.String(),
|
||||
Name: row.RoleName,
|
||||
Description: row.RoleDescription.String,
|
||||
})
|
||||
}
|
||||
return roles, nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user