Skip to content
This repository was archived by the owner on Sep 13, 2019. It is now read-only.

Commit 39200b2

Browse files
committed
Fix path variables in URLs
1 parent 37c5583 commit 39200b2

File tree

3 files changed

+9
-15
lines changed

3 files changed

+9
-15
lines changed

Postman.WebApi.MsBuildTask/CollectionGenerator.cs

+6-12
Original file line numberDiff line numberDiff line change
@@ -157,33 +157,27 @@ public PostmanCollection Create(string assemblyFilePath, string environmentKey,
157157
}
158158

159159
// scrub curly braces from url parameter values
160-
var cleanUrlParameterUrl = _urlParameterVariableRegEx.Replace(apiDescription.RelativePath, "=$1-value");
161-
162-
// get path variables from url
163-
var pathVariables = _pathVariableRegEx.Matches(cleanUrlParameterUrl)
164-
.Cast<Match>()
165-
.Select(m => m.Value)
166-
.Select(s => s.Substring(1, s.Length - 2))
167-
.ToDictionary(s => s, s => string.Format("{0}-value", s));
160+
var pathTokens = apiDescription.RelativePath.Split(new char[] { '?' }, 2);
161+
var path = _pathVariableRegEx.Replace(pathTokens[0], ":$1");
162+
var queryString = pathTokens.Length > 1 ? _urlParameterVariableRegEx.Replace(pathTokens[1], "=") : string.Empty;
168163

169164
// prefix url with postman environment key variable
170-
var url = baseUrl + apiDescription.RelativePath;
165+
var url = path + (pathTokens.Length > 1 ? "?" + queryString : string.Empty);
171166

172167
var postmanRequest = new PostmanRequest
173168
{
174169
CollectionId = postManCollection.Id,
175170
Id = Guid.NewGuid(),
176-
Name = apiDescription.RelativePath,
171+
Name = url,
177172
Description = ToMarkdown(apiDescription),
178-
Url = url,
173+
Url = baseUrl + url,
179174
Method = apiDescription.HttpMethod.Method,
180175
Headers = "Content-Type: application/json",
181176
RawModeData = sampleData == null ? null : sampleData.Text,
182177
DataMode = "raw",
183178
Time = postManCollection.Timestamp,
184179
DescriptionFormat = "markdown",
185180
Responses = new Collection<string>(),
186-
PathVariables = pathVariables,
187181
Folder = postManFolder.Id
188182
};
189183

Postman.WebApi.MsBuildTask/Properties/AssemblyInfo.cs

+2-2
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
[assembly: AssemblyConfiguration("")]
1111
[assembly: AssemblyCompany("jamesholcomb")]
1212
[assembly: AssemblyProduct("Postman.WebApi.MsBuildTask")]
13-
[assembly: AssemblyCopyright("Copyright © 2015")]
13+
[assembly: AssemblyCopyright("Copyright © 2016")]
1414
[assembly: AssemblyTrademark("")]
1515
[assembly: AssemblyCulture("")]
1616

@@ -32,4 +32,4 @@
3232
// You can specify all the values or you can default the Build and Revision Numbers
3333
// by using the '*' as shown below:
3434
// [assembly: AssemblyVersion("1.0.*")]
35-
[assembly: AssemblyVersion("0.0.1.0")]
35+
[assembly: AssemblyVersion("0.0.2.0")]

build/Postman.WebApi.MsBuildTask.targets

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
22
<UsingTask
33
TaskName="Postman.WebApi.MsBuildTask.GenerateTask"
4-
AssemblyFile="$(SolutionDir)packages\Postman.WebApi.MsBuildTask.0.0.1.0\tools\Postman.WebApi.MsBuildTask.dll">
4+
AssemblyFile="$(SolutionDir)packages\Postman.WebApi.MsBuildTask.0.0.2.0\tools\Postman.WebApi.MsBuildTask.dll">
55
</UsingTask>
66
<Target Name="AfterBuild">
77
<Postman.WebApi.MsBuildTask.GenerateTask

0 commit comments

Comments
 (0)