github.com/cloudfoundry-community/cloudfoundry-cli@v6.44.1-0.20240130060226-cda5ed8e89a5+incompatible/api/cloudcontroller/ccv2/env_var_group.go (about)

     1  package ccv2
     2  
     3  import (
     4  	"bytes"
     5  	"code.cloudfoundry.org/cli/api/cloudcontroller"
     6  	"code.cloudfoundry.org/cli/api/cloudcontroller/ccv2/internal"
     7  	"encoding/json"
     8  )
     9  
    10  // EnvVarGroup represents a Cloud Controller env var group.
    11  type EnvVarGroup map[string]string
    12  
    13  // GetEnvVarGroup returns back a env var group running.
    14  func (client *Client) GetEnvVarGroupRunning() (EnvVarGroup, Warnings, error) {
    15  	request, err := client.newHTTPRequest(requestOptions{
    16  		RequestName: internal.GetConfigEnvVarGroupRunningRequest,
    17  		URIParams:   Params{},
    18  	})
    19  	if err != nil {
    20  		return EnvVarGroup{}, nil, err
    21  	}
    22  
    23  	var obj EnvVarGroup
    24  	response := cloudcontroller.Response{
    25  		DecodeJSONResponseInto: &obj,
    26  	}
    27  
    28  	err = client.connection.Make(request, &response)
    29  	return obj, response.Warnings, err
    30  }
    31  
    32  // SetEnvVarGroupRunning set a cloud controller env var group running in with the given settings.
    33  func (client *Client) SetEnvVarGroupRunning(envVarGroup EnvVarGroup) (Warnings, error) {
    34  	body, err := json.Marshal(envVarGroup)
    35  	if err != nil {
    36  		return nil, err
    37  	}
    38  
    39  	request, err := client.newHTTPRequest(requestOptions{
    40  		RequestName: internal.PutConfigEnvVarGroupRunningRequest,
    41  		Body:        bytes.NewReader(body),
    42  	})
    43  	if err != nil {
    44  		return nil, err
    45  	}
    46  
    47  	response := cloudcontroller.Response{}
    48  
    49  	err = client.connection.Make(request, &response)
    50  	return response.Warnings, err
    51  }
    52  
    53  // AddEnvVarRunning add env var to current env var group running.
    54  func (client *Client) AddEnvVarRunning(envVar EnvVarGroup) (Warnings, error) {
    55  	envVarGroup, _, err := client.GetEnvVarGroupRunning()
    56  	if err != nil {
    57  		return nil, err
    58  	}
    59  
    60  	for k, v := range envVar {
    61  		envVarGroup[k] = v
    62  	}
    63  
    64  	return client.SetEnvVarGroupRunning(envVarGroup)
    65  }
    66  
    67  // GetEnvVarGroup returns back a env var group staging.
    68  func (client *Client) GetEnvVarGroupStaging() (EnvVarGroup, Warnings, error) {
    69  	request, err := client.newHTTPRequest(requestOptions{
    70  		RequestName: internal.GetConfigEnvVarGroupStagingRequest,
    71  		URIParams:   Params{},
    72  	})
    73  	if err != nil {
    74  		return EnvVarGroup{}, nil, err
    75  	}
    76  
    77  	var obj EnvVarGroup
    78  	response := cloudcontroller.Response{
    79  		DecodeJSONResponseInto: &obj,
    80  	}
    81  
    82  	err = client.connection.Make(request, &response)
    83  	return obj, response.Warnings, err
    84  }
    85  
    86  // SetEnvVarGroupStaging set a cloud controller env var group staging in with the given settings.
    87  func (client *Client) SetEnvVarGroupStaging(envVarGroup EnvVarGroup) (Warnings, error) {
    88  	body, err := json.Marshal(envVarGroup)
    89  	if err != nil {
    90  		return nil, err
    91  	}
    92  
    93  	request, err := client.newHTTPRequest(requestOptions{
    94  		RequestName: internal.PutConfigEnvVarGroupStagingRequest,
    95  		Body:        bytes.NewReader(body),
    96  	})
    97  	if err != nil {
    98  		return nil, err
    99  	}
   100  
   101  	response := cloudcontroller.Response{}
   102  
   103  	err = client.connection.Make(request, &response)
   104  	return response.Warnings, err
   105  }
   106  
   107  // AddEnvVarStaging add env var to current env var group staging.
   108  func (client *Client) AddEnvVarStaging(envVar EnvVarGroup) (Warnings, error) {
   109  	envVarGroup, _, err := client.GetEnvVarGroupStaging()
   110  	if err != nil {
   111  		return nil, err
   112  	}
   113  
   114  	for k, v := range envVar {
   115  		envVarGroup[k] = v
   116  	}
   117  
   118  	return client.SetEnvVarGroupStaging(envVarGroup)
   119  }