github.com/kubeshop/testkube@v1.17.23/pkg/api/v1/client/config.go (about)

     1  package client
     2  
     3  import (
     4  	"encoding/json"
     5  	"net/http"
     6  
     7  	"github.com/kubeshop/testkube/pkg/api/v1/testkube"
     8  )
     9  
    10  // NewConfigClient creates new Cnfig client
    11  func NewConfigClient(configTransport Transport[testkube.Config]) ConfigClient {
    12  	return ConfigClient{
    13  		configTransport: configTransport,
    14  	}
    15  }
    16  
    17  // ConfigClient is a client for config
    18  type ConfigClient struct {
    19  	configTransport Transport[testkube.Config]
    20  }
    21  
    22  func (c ConfigClient) UpdateConfig(config testkube.Config) (outputConfig testkube.Config, err error) {
    23  	uri := c.configTransport.GetURI("/config")
    24  
    25  	body, err := json.Marshal(config)
    26  	if err != nil {
    27  		return outputConfig, err
    28  	}
    29  
    30  	return c.configTransport.Execute(http.MethodPatch, uri, body, nil)
    31  }
    32  
    33  func (c ConfigClient) GetConfig() (config testkube.Config, err error) {
    34  	uri := c.configTransport.GetURI("/config")
    35  	return c.configTransport.Execute(http.MethodGet, uri, nil, nil)
    36  }