Files
hanko/backend/flow_api/flow/shared/hook_get_user_data.go
2025-09-25 19:15:20 +02:00

34 lines
794 B
Go

package shared
import (
"fmt"
"github.com/gofrs/uuid"
"github.com/teamhanko/hanko/backend/v2/dto"
"github.com/teamhanko/hanko/backend/v2/flowpilot"
)
type GetUserData struct {
Action
}
func (h GetUserData) Execute(c flowpilot.HookExecutionContext) error {
deps := h.GetDeps(c)
userId, err := uuid.FromString(c.Stash().Get("user_id").String())
if err != nil {
return fmt.Errorf("failed to parse stashed user_id into a uuid: %w", err)
}
userModel, err := deps.Persister.GetUserPersisterWithConnection(deps.Tx).Get(userId)
if err != nil {
return fmt.Errorf("failed to get user from db: %w", err)
}
err = c.Payload().Set("user", dto.ProfileDataFromUserModel(userModel, &deps.Cfg))
if err != nil {
return fmt.Errorf("failed to set user payload: %w", err)
}
return nil
}