func()

in controllers/keycloakauthflow/keycloakauthflow_controller.go [129:172]


func (r *Reconcile) tryReconcile(ctx context.Context, instance *keycloakApi.KeycloakAuthFlow) error {
	if err := r.helper.SetRealmOwnerRef(ctx, instance); err != nil {
		return fmt.Errorf("unable to set realm owner ref: %w", err)
	}

	kClient, err := r.helper.CreateKeycloakClientFromRealmRef(ctx, instance)
	if err != nil {
		return fmt.Errorf("unable to create keycloak client from realm ref: %w", err)
	}

	realm, err := r.helper.GetKeycloakRealmFromRef(ctx, instance, kClient)
	if err != nil {
		return fmt.Errorf("unable to get realm from ref: %w", err)
	}

	keycloakAuthFlow := authFlowSpecToAdapterAuthFlow(&instance.Spec)

	deleted, err := r.helper.TryToDelete(
		ctx,
		instance,
		makeTerminator(
			gocloak.PString(realm.Realm),
			instance.GetRealmRef().Name,
			keycloakAuthFlow,
			r.client,
			kClient,
			objectmeta.PreserveResourcesOnDeletion(instance),
		),
		finalizerName,
	)
	if err != nil {
		return fmt.Errorf("unable to delete auth flow: %w", err)
	}

	if deleted {
		return nil
	}

	if err = kClient.SyncAuthFlow(gocloak.PString(realm.Realm), keycloakAuthFlow); err != nil {
		return fmt.Errorf("unable to sync auth flow: %w", err)
	}

	return nil
}