Avoid inheriting from an internal base class for KeyVault PagedResponse Options and expose fields directly (#2590)
* Avoid inheriting from an internal base class for KeyVault PagedResponse Options and expose fields directly * fix for compilation Co-authored-by: Victor Vazquez <vhvb1989@gmail.com>
This commit is contained in:
parent
5619c64811
commit
07861a9687
@ -1,11 +1,11 @@
|
||||
# Release History
|
||||
|
||||
## 4.0.0 (2021-07-08)
|
||||
## 4.0.0 (2021-07-09)
|
||||
|
||||
### Breaking Changes
|
||||
|
||||
- Removed `SHA256`, `SHA384`, and `SHA512` hashing classes by making them internal since the end user doesn't need them.
|
||||
- Renamed header `single_page.hpp` to `get_page_results_options.hpp`.
|
||||
- Removed header `single_page.hpp`.
|
||||
|
||||
## 4.0.0-beta.3 (2021-06-08)
|
||||
|
||||
|
||||
@ -28,7 +28,6 @@ endif()
|
||||
|
||||
set(
|
||||
AZURE_KEYVAULT_COMMON_HEADER
|
||||
inc/azure/keyvault/common/internal/get_page_results_options.hpp
|
||||
inc/azure/keyvault/common/internal/keyvault_pipeline.hpp
|
||||
)
|
||||
|
||||
|
||||
@ -1,22 +0,0 @@
|
||||
// Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
// SPDX-License-Identifier: MIT
|
||||
|
||||
/**
|
||||
* @brief Define the base classes for using single page responses.
|
||||
*
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
#include <azure/core/nullable.hpp>
|
||||
|
||||
#include <string>
|
||||
|
||||
namespace Azure { namespace Security { namespace KeyVault { namespace _internal {
|
||||
struct GetPageResultOptions
|
||||
{
|
||||
virtual ~GetPageResultOptions() = default;
|
||||
Azure::Nullable<std::string> NextPageToken;
|
||||
Azure::Nullable<int32_t> MaxPageResults;
|
||||
};
|
||||
}}}} // namespace Azure::Security::KeyVault::_internal
|
||||
@ -12,8 +12,6 @@
|
||||
#include <azure/core/http/http.hpp>
|
||||
#include <azure/core/paged_response.hpp>
|
||||
|
||||
#include <azure/keyvault/common/internal/get_page_results_options.hpp>
|
||||
|
||||
#include "azure/keyvault/keys/deleted_key.hpp"
|
||||
#include "azure/keyvault/keys/json_web_key.hpp"
|
||||
#include "azure/keyvault/keys/key_vault_key.hpp"
|
||||
@ -125,8 +123,9 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Keys {
|
||||
*
|
||||
*/
|
||||
struct GetPropertiesOfKeysOptions final
|
||||
: public Azure::Security::KeyVault::_internal::GetPageResultOptions
|
||||
{
|
||||
Azure::Nullable<std::string> NextPageToken;
|
||||
Azure::Nullable<int32_t> MaxPageResults;
|
||||
};
|
||||
|
||||
/**
|
||||
@ -134,8 +133,9 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Keys {
|
||||
*
|
||||
*/
|
||||
struct GetPropertiesOfKeyVersionsOptions final
|
||||
: public Azure::Security::KeyVault::_internal::GetPageResultOptions
|
||||
{
|
||||
Azure::Nullable<std::string> NextPageToken;
|
||||
Azure::Nullable<int32_t> MaxPageResults;
|
||||
};
|
||||
|
||||
/**
|
||||
@ -143,7 +143,8 @@ namespace Azure { namespace Security { namespace KeyVault { namespace Keys {
|
||||
*
|
||||
*/
|
||||
struct GetDeletedKeysOptions final
|
||||
: public Azure::Security::KeyVault::_internal::GetPageResultOptions
|
||||
{
|
||||
Azure::Nullable<std::string> NextPageToken;
|
||||
Azure::Nullable<int32_t> MaxPageResults;
|
||||
};
|
||||
}}}} // namespace Azure::Security::KeyVault::Keys
|
||||
|
||||
@ -13,7 +13,6 @@
|
||||
using namespace Azure::Security::KeyVault::Keys;
|
||||
using namespace Azure::Security::KeyVault::Keys::_detail;
|
||||
using namespace Azure::Core::Json::_internal;
|
||||
using namespace Azure::Security::KeyVault::_internal;
|
||||
|
||||
std::string
|
||||
Azure::Security::KeyVault::Keys::_detail::ImportKeyOptionsSerializer::ImportKeyOptionsSerialize(
|
||||
|
||||
@ -5,8 +5,6 @@
|
||||
#include <azure/core/http/http.hpp>
|
||||
#include <azure/core/http/policies/policy.hpp>
|
||||
|
||||
#include <azure/keyvault/common/internal/get_page_results_options.hpp>
|
||||
|
||||
#include "azure/keyvault/keys/key_client.hpp"
|
||||
#include "private/key_backup.hpp"
|
||||
#include "private/key_constants.hpp"
|
||||
@ -32,7 +30,61 @@ struct RequestWithContinuationToken final
|
||||
};
|
||||
|
||||
static inline RequestWithContinuationToken BuildRequestFromContinuationToken(
|
||||
Azure::Security::KeyVault::_internal::GetPageResultOptions const& options,
|
||||
Azure::Security::KeyVault::Keys::GetPropertiesOfKeysOptions const& options,
|
||||
std::vector<std::string>&& defaultPath)
|
||||
{
|
||||
RequestWithContinuationToken request;
|
||||
request.Path = defaultPath;
|
||||
if (options.NextPageToken)
|
||||
{
|
||||
// Using a continuation token requires to send the request to the continuation token URL instead
|
||||
// of the default URL which is used only for the first page.
|
||||
Azure::Core::Url nextPageUrl(options.NextPageToken.Value());
|
||||
request.Query
|
||||
= std::make_unique<std::map<std::string, std::string>>(nextPageUrl.GetQueryParameters());
|
||||
request.Path.clear();
|
||||
request.Path.emplace_back(nextPageUrl.GetPath());
|
||||
}
|
||||
if (options.MaxPageResults)
|
||||
{
|
||||
if (request.Query == nullptr)
|
||||
{
|
||||
request.Query = std::make_unique<std::map<std::string, std::string>>();
|
||||
}
|
||||
request.Query->emplace("maxResults", std::to_string(options.MaxPageResults.Value()));
|
||||
}
|
||||
return request;
|
||||
}
|
||||
|
||||
static inline RequestWithContinuationToken BuildRequestFromContinuationToken(
|
||||
Azure::Security::KeyVault::Keys::GetPropertiesOfKeyVersionsOptions const& options,
|
||||
std::vector<std::string>&& defaultPath)
|
||||
{
|
||||
RequestWithContinuationToken request;
|
||||
request.Path = defaultPath;
|
||||
if (options.NextPageToken)
|
||||
{
|
||||
// Using a continuation token requires to send the request to the continuation token URL instead
|
||||
// of the default URL which is used only for the first page.
|
||||
Azure::Core::Url nextPageUrl(options.NextPageToken.Value());
|
||||
request.Query
|
||||
= std::make_unique<std::map<std::string, std::string>>(nextPageUrl.GetQueryParameters());
|
||||
request.Path.clear();
|
||||
request.Path.emplace_back(nextPageUrl.GetPath());
|
||||
}
|
||||
if (options.MaxPageResults)
|
||||
{
|
||||
if (request.Query == nullptr)
|
||||
{
|
||||
request.Query = std::make_unique<std::map<std::string, std::string>>();
|
||||
}
|
||||
request.Query->emplace("maxResults", std::to_string(options.MaxPageResults.Value()));
|
||||
}
|
||||
return request;
|
||||
}
|
||||
|
||||
static inline RequestWithContinuationToken BuildRequestFromContinuationToken(
|
||||
Azure::Security::KeyVault::Keys::GetDeletedKeysOptions const& options,
|
||||
std::vector<std::string>&& defaultPath)
|
||||
{
|
||||
RequestWithContinuationToken request;
|
||||
|
||||
Loading…
Reference in New Issue
Block a user