diff --git a/CHANGELOG.md b/CHANGELOG.md index 49d08ad1..7e301bb3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,9 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.3.3] - 2023-09-25 + ### Changed - Removed the code that changed the first character of the query parameter name to lower case +- Added sanitization of guid values in query parameters ## [1.3.2] - 2023-09-21 diff --git a/Microsoft.Kiota.Abstractions.Tests/RequestInformationTests.cs b/Microsoft.Kiota.Abstractions.Tests/RequestInformationTests.cs index dedb0761..be4cd9d8 100644 --- a/Microsoft.Kiota.Abstractions.Tests/RequestInformationTests.cs +++ b/Microsoft.Kiota.Abstractions.Tests/RequestInformationTests.cs @@ -173,6 +173,28 @@ public void SetsPathParametersOfBooleanType() // Assert Assert.Contains("%24count=true", requestInfo.URI.OriginalString); } + [Fact] + public void SetsPathParametersOfGuidType() + { + // Arrange as the request builders would + var requestInfo = new RequestInformation + { + HttpMethod = Method.GET, + UrlTemplate = "http://localhost/users{?%24requestId}" + }; + + // Act + var guid = Guid.Parse("6d320a89-2d8f-4204-855d-b98a1bc176d4"); + var pathParameters = new Dictionary + { + { "%24requestId", guid } + }; + + requestInfo.PathParameters = pathParameters; + + // Assert + Assert.Contains($"%24requestId=6d320a89-2d8f-4204-855d-b98a1bc176d4", requestInfo.URI.OriginalString); + } [Fact] public void ThrowsInvalidOperationExceptionWhenBaseUrlNotSet() @@ -389,6 +411,9 @@ internal class GetQueryParameters /// Select properties to be returned\ [QueryParameter("%24select")] public string[] Select { get; set; } + /// Unique id of the request + [QueryParameter("%24requestId")] + public Guid RequestId { get; set; } /// Include count of items [QueryParameter("%24count")] public bool? Count { get; set; } diff --git a/src/Microsoft.Kiota.Abstractions.csproj b/src/Microsoft.Kiota.Abstractions.csproj index d45f2c34..17989e23 100644 --- a/src/Microsoft.Kiota.Abstractions.csproj +++ b/src/Microsoft.Kiota.Abstractions.csproj @@ -14,7 +14,7 @@ https://aka.ms/kiota/docs true true - 1.3.2 + 1.3.3 true false diff --git a/src/RequestInformation.cs b/src/RequestInformation.cs index 2540d78d..b9485a91 100644 --- a/src/RequestInformation.cs +++ b/src/RequestInformation.cs @@ -77,6 +77,7 @@ public Uri URI bool boolean => boolean.ToString().ToLower(),// pass in a lowercase string as the final url will be uppercase due to the way ToString() works for booleans DateTimeOffset dateTimeOffset => dateTimeOffset.ToString("o"),// Default to ISO 8601 for datetimeoffsets in the url. DateTime dateTime => dateTime.ToString("o"),// Default to ISO 8601 for datetimes in the url. + Guid guid => guid.ToString("D"),// Default of 32 digits separated by hyphens _ => value,//return object as is as the ToString method is good enough. };