Tables url encoding (#6312)

* test1

* dsaf

* clangs

* remove enum_operators as they where only used for sas related operations

* URLEncode

* gfd

* clang

* PR comments

* CLAAAAAAANG
This commit is contained in:
gearama 2025-01-13 11:50:09 -08:00 committed by GitHub
parent 53a74b0299
commit a6beedc115
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 21 additions and 23 deletions

View File

@ -2,5 +2,5 @@
"AssetsRepo": "Azure/azure-sdk-assets",
"AssetsRepoPrefixPath": "cpp",
"TagPrefix": "cpp/tables",
"Tag": "cpp/tables_0b3363cab7"
"Tag": "cpp/tables_e3324fac2a"
}

View File

@ -85,7 +85,7 @@ Azure::Response<Models::PreflightCheckResult> TableServiceClient::PreflightCheck
Core::Context const& context)
{
auto url = m_url;
url.AppendPath(options.TableName);
url.AppendPath(Azure::Core::Url::Encode(options.TableName));
Core::Http::Request request(Core::Http::HttpMethod::Options, url);
request.SetHeader(OriginHeader, options.Origin);
request.SetHeader(AccessControlRequestMethodHeader, Core::Http::HttpMethod::Options.ToString());
@ -400,7 +400,7 @@ Azure::Response<Models::DeleteTableResult> TableServiceClient::DeleteTable(
Core::Context const& context)
{
auto url = m_url;
url.AppendPath("Tables('" + tableName + ClosingFragment);
url.AppendPath("Tables('" + Azure::Core::Url::Encode(tableName) + ClosingFragment);
Core::Http::Request request(Core::Http::HttpMethod::Delete, url);
@ -424,7 +424,7 @@ Azure::Response<Models::AddEntityResult> TableClient::AddEntity(
Core::Context const& context)
{
auto url = m_url;
url.AppendPath(m_tableName);
url.AppendPath(Azure::Core::Url::Encode(m_tableName));
std::string jsonBody = Serializers::CreateEntity(tableEntity);
@ -454,10 +454,9 @@ Azure::Response<Models::UpdateEntityResult> TableClient::UpdateEntity(
Core::Context const& context)
{
auto url = m_url;
url.AppendPath(
m_tableName + PartitionKeyFragment
+ Azure::Core::Url::Encode(tableEntity.GetPartitionKey().Value) + RowKeyFragment
+ Azure::Core::Url::Encode(tableEntity.GetRowKey().Value) + ClosingFragment);
url.AppendPath(Azure::Core::Url::Encode(
m_tableName + PartitionKeyFragment + tableEntity.GetPartitionKey().Value + RowKeyFragment
+ tableEntity.GetRowKey().Value + ClosingFragment));
std::string jsonBody = Serializers::UpdateEntity(tableEntity);
@ -497,10 +496,9 @@ Azure::Response<Models::MergeEntityResult> TableClient::MergeEntity(
Core::Context const& context)
{
auto url = m_url;
url.AppendPath(
m_tableName + PartitionKeyFragment
+ Azure::Core::Url::Encode(tableEntity.GetPartitionKey().Value) + RowKeyFragment
+ Azure::Core::Url::Encode(tableEntity.GetRowKey().Value) + ClosingFragment);
url.AppendPath(Azure::Core::Url::Encode(
m_tableName + PartitionKeyFragment + tableEntity.GetPartitionKey().Value + RowKeyFragment
+ tableEntity.GetRowKey().Value + ClosingFragment));
std::string jsonBody = Serializers::MergeEntity(tableEntity);
@ -540,10 +538,9 @@ Azure::Response<Models::DeleteEntityResult> TableClient::DeleteEntity(
Core::Context const& context)
{
auto url = m_url;
url.AppendPath(
m_tableName + PartitionKeyFragment
+ Azure::Core::Url::Encode(tableEntity.GetPartitionKey().Value) + RowKeyFragment
+ Azure::Core::Url::Encode(tableEntity.GetRowKey().Value) + ClosingFragment);
url.AppendPath(Azure::Core::Url::Encode(
m_tableName + PartitionKeyFragment + tableEntity.GetPartitionKey().Value + RowKeyFragment
+ tableEntity.GetRowKey().Value + ClosingFragment));
Core::Http::Request request(Core::Http::HttpMethod::Delete, url);
@ -609,9 +606,9 @@ Azure::Response<Models::TableEntity> TableClient::GetEntity(
Core::Context const& context)
{
auto url = m_url;
url.AppendPath(
m_tableName + PartitionKeyFragment + Azure::Core::Url::Encode(partitionKey) + RowKeyFragment
+ Azure::Core::Url::Encode(rowKey) + ClosingFragment);
url.AppendPath(Azure::Core::Url::Encode(
m_tableName + PartitionKeyFragment + partitionKey + RowKeyFragment + rowKey
+ ClosingFragment));
Core::Http::Request request(Core::Http::HttpMethod::Get, url);
request.SetHeader(AcceptHeader, AcceptFullMeta);
@ -643,13 +640,14 @@ Models::QueryEntitiesPagedResponse TableClient::QueryEntities(
auto url = m_url;
if (!options.NextPartitionKey.empty() && !options.NextRowKey.empty())
{
url.AppendPath(m_tableName);
url.AppendQueryParameter("NextPartitionKey", options.NextPartitionKey);
url.AppendQueryParameter("NextRowKey", options.NextRowKey);
url.AppendPath(Azure::Core::Url::Encode(m_tableName));
url.AppendQueryParameter(
"NextPartitionKey", Azure::Core::Url::Encode(options.NextPartitionKey));
url.AppendQueryParameter("NextRowKey", Azure::Core::Url::Encode(options.NextRowKey));
}
else
{
std::string appendPath = m_tableName + "(";
std::string appendPath = Azure::Core::Url::Encode(m_tableName) + "(";
if (!options.PartitionKey.empty())
{
appendPath += "PartitionKey='" + Azure::Core::Url::Encode(options.PartitionKey) + "'";