func()

in controllers/keycloakclient/chain/process_policy.go [103:136]


func (h *ProcessPolicy) toPolicyRepresentation(ctx context.Context, policy *keycloakApi.Policy, clientID, realm string) (*gocloak.PolicyRepresentation, error) {
	keycloakPolicy := getBasePolicyRepresentation(policy)

	switch policy.Type {
	case keycloakApi.PolicyTypeAggregate:
		if err := h.toAggregatePolicyRepresentation(ctx, policy, clientID, realm, keycloakPolicy); err != nil {
			return nil, err
		}
	case "client":
		if err := h.toClientPolicyRepresentation(ctx, policy, realm, keycloakPolicy); err != nil {
			return nil, err
		}
	case keycloakApi.PolicyTypeGroup:
		if err := h.toGroupPolicyRepresentation(ctx, policy, realm, keycloakPolicy); err != nil {
			return nil, err
		}
	case keycloakApi.PolicyTypeRole:
		if err := h.toRolePolicyRepresentation(ctx, policy, realm, keycloakPolicy); err != nil {
			return nil, err
		}
	case keycloakApi.PolicyTypeTime:
		if err := h.toTimePolicyRepresentation(ctx, policy, keycloakPolicy); err != nil {
			return nil, err
		}
	case keycloakApi.PolicyTypeUser:
		if err := h.toUserPolicyRepresentation(ctx, policy, realm, keycloakPolicy); err != nil {
			return nil, err
		}
	default:
		return nil, fmt.Errorf("unsupported policy type %s", policy.Type)
	}

	return keycloakPolicy, nil
}