func()

in controllers/repository/chain/remove_repository.go [21:45]


func (h *RemoveRepository) ServeRequest(ctx context.Context, repository *nexusApi.NexusRepository) error {
	log := ctrl.LoggerFrom(ctx)

	repoData, err := nexus.GetRepoData(&repository.Spec)
	if err != nil {
		return fmt.Errorf("failed to get repository data: %w", err)
	}

	log = log.WithValues("type", repoData.Type, "format", repoData.Format, "name", repoData.Name)

	log.Info("Deleting repository")

	if err = h.nexusRepositoryApiClient.Delete(ctx, repoData.Name); err != nil {
		if nexus.IsErrNotFound(err) {
			log.Info("Repository doesn't exist, skipping removal")
			return nil
		}

		return fmt.Errorf("failed to delete repository: %w", err)
	}

	log.Info("Repository has been deleted")

	return nil
}