User returns a single user by id or email. Requires super-admin auth. Logic migrated from internal/graphql/user.go.
(ctx context.Context, meta RequestMetadata, params *model.GetUserRequest)
| 48 | // User returns a single user by id or email. Requires super-admin auth. |
| 49 | // Logic migrated from internal/graphql/user.go. |
| 50 | func (p *provider) User(ctx context.Context, meta RequestMetadata, params *model.GetUserRequest) (*model.User, *ResponseSideEffects, error) { |
| 51 | log := p.Log.With().Str("func", "User").Logger() |
| 52 | if err := p.requireSuperAdmin(ctx, meta); err != nil { |
| 53 | return nil, nil, err |
| 54 | } |
| 55 | // Try getting user by ID. |
| 56 | if params.ID != nil && strings.Trim(*params.ID, " ") != "" { |
| 57 | res, err := p.StorageProvider.GetUserByID(ctx, *params.ID) |
| 58 | if err != nil { |
| 59 | log.Debug().Err(err).Msg("failed GetUserByID") |
| 60 | return nil, nil, err |
| 61 | } |
| 62 | return res.AsAPIUser(), nil, nil |
| 63 | } |
| 64 | // Try getting user by email. |
| 65 | if params.Email != nil && strings.Trim(*params.Email, " ") != "" { |
| 66 | res, err := p.StorageProvider.GetUserByEmail(ctx, *params.Email) |
| 67 | if err != nil { |
| 68 | log.Debug().Err(err).Msg("failed GetUserByEmail") |
| 69 | return nil, nil, err |
| 70 | } |
| 71 | return res.AsAPIUser(), nil, nil |
| 72 | } |
| 73 | // Return error if no params are provided. |
| 74 | return nil, nil, fmt.Errorf("invalid params, user id or email is required") |
| 75 | } |
| 76 | |
| 77 | // UpdateUser updates a user's profile, roles, MFA, or verification state and |
| 78 | // returns the updated user. Requires super-admin auth. Logic migrated from |
nothing calls this directly
no test coverage detected