func()

in controllers/group/chain/create_group.go [23:58]


func (c CreateGroup) ServeRequest(ctx context.Context, group *sonarApi.SonarGroup) error {
	log := ctrl.LoggerFrom(ctx).WithValues("name", group.Spec.Name)
	log.Info("Start creating group")

	sonarGroup, err := c.sonarApiClient.GetGroup(ctx, group.Spec.Name)
	if err != nil {
		if !sonar.IsErrNotFound(err) {
			return err
		}

		log.Info("Group doesn't exist, creating new one")
		if err = c.sonarApiClient.CreateGroup(ctx, &sonar.Group{
			Name:        group.Spec.Name,
			Description: group.Spec.Description,
		}); err != nil {
			return err
		}

		log.Info("Group has been created")
		return nil
	}

	if group.Spec.Description != sonarGroup.Description {
		log.Info("Updating group")
		if err = c.sonarApiClient.UpdateGroup(ctx, group.Spec.Name, &sonar.Group{
			Name:        group.Spec.Name,
			Description: group.Spec.Description,
		}); err != nil {
			return err
		}

		log.Info("Group has been updated")
	}

	return nil
}