From a046842adddd7ed5454ea8e5386340e3a85afc7f Mon Sep 17 00:00:00 2001 From: Ahson Khan Date: Sat, 14 Dec 2024 01:28:09 -0800 Subject: [PATCH] Add samples for Get, Set, and Delete Configuration Settings with comparisons of what we'd expect the user experience to be. (#6286) --- .../samples/appconfig_basic_operation.cpp | 151 ++++++++++++++++-- 1 file changed, 139 insertions(+), 12 deletions(-) diff --git a/sdk/appconfiguration/azure-data-appconfiguration/samples/appconfig_basic_operation.cpp b/sdk/appconfiguration/azure-data-appconfiguration/samples/appconfig_basic_operation.cpp index df3f03d91..d72d6bc3c 100644 --- a/sdk/appconfiguration/azure-data-appconfiguration/samples/appconfig_basic_operation.cpp +++ b/sdk/appconfiguration/azure-data-appconfiguration/samples/appconfig_basic_operation.cpp @@ -3,7 +3,7 @@ /** * @brief This sample provides the code implementation to use the App Configuration client SDK for - * C++ to get one or more configuration settings. + * C++ to create, retrieve and delete a configuration setting. */ #include @@ -21,24 +21,151 @@ int main() std::string url = "https://.azconfig.io"; auto credential = std::make_shared(); - // create client + // Create a ConfigurationClient ConfigurationClient configurationClient(url, credential); - Azure::Response response = configurationClient.GetKeyValue("key", "accept"); + // Create a configuration setting - GetKeyValueResult result = response.Value; - Azure::Nullable valueOfKey = result.Value; + // Current + { + KeyValue entity; + entity.Value = "some-value"; - if (valueOfKey.HasValue()) - { - std::cout << valueOfKey.Value() << std::endl; + PutKeyValueOptions options; + options.Label = "some-label"; + options.Entity = entity; + + Azure::Response putKeyValueResult = configurationClient.PutKeyValue( + PutKeyValueRequestContentType::ApplicationJson, "some-key", "accept", options); + + PutKeyValueResult result = putKeyValueResult.Value; + Azure::Nullable valueOfKey = result.Value; + + std::cout << result.Key << std::endl; // some-key + + if (valueOfKey.HasValue()) + { + std::cout << valueOfKey.Value() << std::endl; // some-value + } } - else + + // Expected + +#if 0 { - std::cout << "Value for: '" - << "key" - << "' does not exist." << std::endl; + ConfigurationSetting setting; + setting.Key = "some-key"; + setting.Value = "some-value"; + + SetSettingOptions options; + options.Label = "some-label"; + + Azure::Response setResult + = configurationClient.SetConfigurationSetting(setting, options); + + ConfigurationSetting result = setResult.Value; + Azure::Nullable valueOfKey = result.Value; + + std::cout << result.Key << std::endl; // some-key + + if (valueOfKey.HasValue()) + { + std::cout << valueOfKey.Value() << std::endl; // some-value + } } +#endif + + // Retrieve a configuration setting + + // Current + { + GetKeyValueOptions options; + options.Label = "some-label"; + Azure::Response getKeyValueResult + = configurationClient.GetKeyValue("some-key", "accept", options); + + GetKeyValueResult result = getKeyValueResult.Value; + Azure::Nullable valueOfKey = result.Value; + + if (valueOfKey.HasValue()) + { + std::cout << valueOfKey.Value() << std::endl; // some-value + } + else + { + std::cout << "Value for: '" << result.Key << "' does not exist." << std::endl; + } + } + + // Expected + +#if 0 + { + GetConfigurationSettingOptions options; + options.Label = "some-label"; + Azure::Response getResult + = configurationClient.GetConfigurationSetting("some-key", options); + + ConfigurationSetting result = getResult.Value; + Azure::Nullable valueOfKey = result.Value; + + if (valueOfKey.HasValue()) + { + std::cout << valueOfKey.Value() << std::endl; // some-value + } + else + { + std::cout << "Value for: '" << result.Key << "' does not exist." << std::endl; + } + } +#endif + + // Delete a configuration setting + + // Current + { + DeleteKeyValueOptions options; + options.Label = "some-label"; + + Azure::Response deleteKeyValueResult + = configurationClient.DeleteKeyValue("some-key", "accept", options); + + DeleteKeyValueResult result = deleteKeyValueResult.Value; + Azure::Nullable valueOfKey = result.Value; + + if (valueOfKey.HasValue()) + { + std::cout << valueOfKey.Value() << std::endl; // some-value + } + else + { + std::cout << "Value for: '" << result.Key << "' does not exist." << std::endl; + } + } + + // Expected + +#if 0 + { + DeleteKeyValueOptions options; + options.Label = "some-label"; + + Azure::Response deleteKeyValueResult + = configurationClient.DeleteConfigurationSetting("some-key", options); + + ConfigurationSetting result = deleteKeyValueResult.Value; + Azure::Nullable valueOfKey = result.Value; + + if (valueOfKey.HasValue()) + { + std::cout << valueOfKey.Value() << std::endl; // some-value + } + else + { + std::cout << "Value for: '" << result.Key << "' does not exist." << std::endl; + } + } +#endif } catch (Azure::Core::Credentials::AuthenticationException const& e) {