Skip to content

Commit f557db3

Browse files
authored
Merge pull request #123 from andreaTP/switch-to-std-uritemplate
Switch to std-uritemplate
2 parents 260ae84 + 667a6d6 commit f557db3

File tree

4 files changed

+16
-10
lines changed

4 files changed

+16
-10
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
77

88
## [Unreleased]
99

10+
## [1.3.2] - 2023-09-21
11+
12+
### Changed
13+
14+
- Switched from `Tavis.UriTemplates` to `Std.UriTemplate` for URI template parsing.
15+
1016
## [1.3.1] - 2023-08-08
1117

1218
### Fixed

Microsoft.Kiota.Abstractions.Tests/RequestInformationTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,7 @@ public void SetsScalarCollectionContent()
317317
serializationWriterMock.Verify(x => x.WriteCollectionOfPrimitiveValues(It.IsAny<string>(), It.IsAny<IEnumerable<string>>()), Times.Once);
318318
}
319319
[Fact]
320-
public void GetUriResolvesParametersCaseInsensitive()
320+
public void GetUriResolvesParametersCaseSensitive()
321321
{
322322
// Arrange
323323
var testRequest = new RequestInformation()
@@ -326,8 +326,8 @@ public void GetUriResolvesParametersCaseInsensitive()
326326
UrlTemplate = "http://localhost/{URITemplate}/ParameterMapping?IsCaseSensitive={IsCaseSensitive}"
327327
};
328328
// Act
329-
testRequest.PathParameters.Add("UriTemplate", "UriTemplate");
330-
testRequest.QueryParameters.Add("iscasesensitive", "false");
329+
testRequest.PathParameters.Add("URITemplate", "UriTemplate");
330+
testRequest.QueryParameters.Add("IsCaseSensitive", false);
331331

332332
// Assert
333333
Assert.Equal("http://localhost/UriTemplate/ParameterMapping?IsCaseSensitive=false", testRequest.URI.ToString());

src/Microsoft.Kiota.Abstractions.csproj

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
<PackageProjectUrl>https://aka.ms/kiota/docs</PackageProjectUrl>
1515
<EmbedUntrackedSources>true</EmbedUntrackedSources>
1616
<Deterministic>true</Deterministic>
17-
<VersionPrefix>1.3.1</VersionPrefix>
17+
<VersionPrefix>1.3.2</VersionPrefix>
1818
<VersionSuffix></VersionSuffix>
1919
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
2020
<SignAssembly>false</SignAssembly>
@@ -43,7 +43,7 @@
4343
</PackageReference>
4444
<PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.1.1" PrivateAssets="All" />
4545
<PackageReference Include="System.Diagnostics.DiagnosticSource" Version="[6.0,8.0)" />
46-
<PackageReference Include="Tavis.UriTemplates" Version="2.0.0" />
46+
<PackageReference Include="Std.UriTemplate" Version="0.0.42" />
4747
</ItemGroup>
4848

4949
<PropertyGroup Condition="'$(TF_BUILD)' == 'true'">

src/RequestInformation.cs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
using System.Linq;
1111
using Microsoft.Kiota.Abstractions.Extensions;
1212
using Microsoft.Kiota.Abstractions.Serialization;
13-
using Tavis.UriTemplates;
1413

1514
namespace Microsoft.Kiota.Abstractions
1615
{
@@ -49,20 +48,21 @@ public Uri URI
4948
if(UrlTemplate?.IndexOf("{+baseurl}", StringComparison.OrdinalIgnoreCase) >= 0 && !PathParameters.ContainsKey("baseurl"))
5049
throw new InvalidOperationException($"{nameof(PathParameters)} must contain a value for \"baseurl\" for the url to be built.");
5150

52-
var parsedUrlTemplate = new UriTemplate(UrlTemplate, caseInsensitiveParameterNames: true);
51+
var substitutions = new Dictionary<string, object>();
5352
foreach(var urlTemplateParameter in PathParameters)
5453
{
55-
parsedUrlTemplate.SetParameter(urlTemplateParameter.Key, GetSanitizedValue(urlTemplateParameter.Value));
54+
substitutions.Add(urlTemplateParameter.Key, GetSanitizedValue(urlTemplateParameter.Value));
5655
}
5756

5857
foreach(var queryStringParameter in QueryParameters)
5958
{
6059
if(queryStringParameter.Value != null)
6160
{
62-
parsedUrlTemplate.SetParameter(queryStringParameter.Key, GetSanitizedValue(queryStringParameter.Value));
61+
substitutions.Add(queryStringParameter.Key, GetSanitizedValue(queryStringParameter.Value));
6362
}
6463
}
65-
return new Uri(parsedUrlTemplate.Resolve());
64+
65+
return new Uri(Std.UriTemplate.Expand(UrlTemplate, substitutions));
6666
}
6767
}
6868
}

0 commit comments

Comments
 (0)