package dataplane

import (
	"context"
	"fmt"

	"k8s.io/client-go/rest"
	"k8s.io/client-go/tools/clientcmd"
)

// two rest config construction methods.
func GetRestConfigFromFile(ctx context.Context, kubeconfig string) (*rest.Config, error) {
	restConf, err := clientcmd.BuildConfigFromFlags("", kubeconfig)
	if err != nil {
		return nil, fmt.Errorf("failed to build rest confg: %w", err)
	}
	return restConf, nil
}

func GetRestConfigFromData(ctx context.Context, kubeconfig string) (*rest.Config, error) {
	restConf, err := clientcmd.RESTConfigFromKubeConfig([]byte(kubeconfig))
	if err != nil {
		return nil, fmt.Errorf("failed to build rest config: %w", err)
	}
	return restConf, nil
}
