controllers/user/chain/remove_user.go (23 lines of code) (raw):
package chain
import (
"context"
"fmt"
ctrl "sigs.k8s.io/controller-runtime"
sonarApi "github.com/epam/edp-sonar-operator/api/v1alpha1"
"github.com/epam/edp-sonar-operator/pkg/client/sonar"
)
// RemoveUser is handler for removing sonar user.
type RemoveUser struct {
sonarApiClient sonar.UserInterface
}
// NewRemoveUser returns RemoveUser handler.
func NewRemoveUser(sonarApiClient sonar.UserInterface) *RemoveUser {
return &RemoveUser{sonarApiClient: sonarApiClient}
}
// ServeRequest handles sonar user removal.
func (r RemoveUser) ServeRequest(ctx context.Context, user *sonarApi.SonarUser) error {
log := ctrl.LoggerFrom(ctx).WithValues("userlogin", user.Spec.Login)
log.Info("Removing user from sonar")
if err := r.sonarApiClient.DeactivateUser(ctx, user.Spec.Login); err != nil {
return fmt.Errorf("failed to delete user: %w", err)
}
log.Info("User has been deleted")
return nil
}