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 }