Skip to content

Commit 70506cf

Browse files
Amin GolMahalehAmin GolMahaleh
Amin GolMahaleh
authored and
Amin GolMahaleh
committed
remove additional requestUri parameter from extension methods
1 parent ed65f2c commit 70506cf

File tree

8 files changed

+48
-108
lines changed

8 files changed

+48
-108
lines changed

src/HttpClientToCurl/Builder.cs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ string CheckAndAddWarningMessageForIncorrectSlash(bool hasOnBaseUrl, bool hasOnR
8181
internal static StringBuilder AddHeaders(this StringBuilder stringBuilder, HttpClient httpClient, HttpRequestMessage httpRequestMessage, bool needAddDefaultHeaders = true)
8282
{
8383
bool hasHeader = false;
84+
8485
if (needAddDefaultHeaders && httpClient.DefaultRequestHeaders.Any())
8586
{
8687
var defaultHeaders = httpClient.DefaultRequestHeaders.Where(dh => dh.Key != HttpRequestHeader.ContentLength.ToString());
@@ -89,7 +90,7 @@ internal static StringBuilder AddHeaders(this StringBuilder stringBuilder, HttpC
8990
stringBuilder
9091
.Append("-H")
9192
.Append(' ')
92-
.Append($"\'{header.Key}: {header.Value.FirstOrDefault()}\'")
93+
.Append($"\'{header.Key}: {header.Value?.FirstOrDefault()}\'")
9394
.Append(' ');
9495
}
9596

@@ -104,7 +105,7 @@ internal static StringBuilder AddHeaders(this StringBuilder stringBuilder, HttpC
104105
stringBuilder
105106
.Append("-H")
106107
.Append(' ')
107-
.Append($"\'{header.Key}: {header.Value.FirstOrDefault()}\'")
108+
.Append($"\'{header.Key}: {header.Value?.FirstOrDefault()}\'")
108109
.Append(' ');
109110
}
110111

@@ -118,7 +119,7 @@ internal static StringBuilder AddHeaders(this StringBuilder stringBuilder, HttpC
118119
stringBuilder
119120
.Append("-H")
120121
.Append(' ')
121-
.Append($"\'{header.Key}: {header.Value.FirstOrDefault()}\'")
122+
.Append($"\'{header.Key}: {header.Value?.FirstOrDefault()}\'")
122123
.Append(' ');
123124
}
124125

src/HttpClientToCurl/Generator.cs

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5,22 +5,22 @@ namespace HttpClientToCurl;
55

66
public static class Generator
77
{
8-
public static string GenerateCurl(HttpClient httpClient, HttpRequestMessage httpRequestMessage, string requestUri, bool needAddDefaultHeaders)
8+
public static string GenerateCurl(HttpClient httpClient, HttpRequestMessage httpRequestMessage, bool needAddDefaultHeaders)
99
{
1010
string script;
1111

1212
try
1313
{
1414
if (httpRequestMessage.Method == HttpMethod.Post)
15-
script = _GeneratePostMethod(httpClient, httpRequestMessage, requestUri, needAddDefaultHeaders);
15+
script = _GeneratePostMethod(httpClient, httpRequestMessage, needAddDefaultHeaders);
1616
else if (httpRequestMessage.Method == HttpMethod.Get)
17-
script = _GenerateGetMethod(httpClient, httpRequestMessage, requestUri, needAddDefaultHeaders);
17+
script = _GenerateGetMethod(httpClient, httpRequestMessage, needAddDefaultHeaders);
1818
else if (httpRequestMessage.Method == HttpMethod.Put)
19-
script = _GeneratePutMethod(httpClient, httpRequestMessage, requestUri, needAddDefaultHeaders);
19+
script = _GeneratePutMethod(httpClient, httpRequestMessage, needAddDefaultHeaders);
2020
else if (httpRequestMessage.Method == HttpMethod.Patch)
21-
script = _GeneratePatchMethod(httpClient, httpRequestMessage, requestUri, needAddDefaultHeaders);
21+
script = _GeneratePatchMethod(httpClient, httpRequestMessage, needAddDefaultHeaders);
2222
else if (httpRequestMessage.Method == HttpMethod.Delete)
23-
script = _GenerateDeleteMethod(httpClient, httpRequestMessage, requestUri, needAddDefaultHeaders);
23+
script = _GenerateDeleteMethod(httpClient, httpRequestMessage, needAddDefaultHeaders);
2424
else
2525
throw new DataException($"invalid HttpMethod: {httpRequestMessage.Method.Method}!");
2626
}
@@ -34,60 +34,60 @@ public static string GenerateCurl(HttpClient httpClient, HttpRequestMessage http
3434

3535
#region :: CURL GENERATORS ::
3636

37-
private static string _GenerateGetMethod(HttpClient httpClient, HttpRequestMessage httpRequestMessage, string requestUri, bool needAddDefaultHeaders)
37+
private static string _GenerateGetMethod(HttpClient httpClient, HttpRequestMessage httpRequestMessage, bool needAddDefaultHeaders)
3838
{
3939
StringBuilder stringBuilder = Builder.Initialize(httpRequestMessage.Method);
4040

4141
return stringBuilder
42-
.AddAbsoluteUrl(httpClient.BaseAddress?.AbsoluteUri, requestUri)
43-
.AddHeaders(httpClient, httpRequestMessage, needAddDefaultHeaders)
42+
.AddAbsoluteUrl(httpClient.BaseAddress?.AbsoluteUri, httpRequestMessage.RequestUri?.ToString())
43+
.AddHeaders(httpClient, httpRequestMessage, needAddDefaultHeaders)?
4444
.Append(' ')
4545
.ToString();
4646
}
4747

48-
private static string _GeneratePostMethod(HttpClient httpClient, HttpRequestMessage httpRequestMessage, string requestUri, bool needAddDefaultHeaders)
48+
private static string _GeneratePostMethod(HttpClient httpClient, HttpRequestMessage httpRequestMessage, bool needAddDefaultHeaders)
4949
{
5050
StringBuilder stringBuilder = Builder.Initialize(httpRequestMessage.Method);
5151

5252
return stringBuilder
53-
.AddAbsoluteUrl(httpClient.BaseAddress?.AbsoluteUri, requestUri)
54-
.AddHeaders(httpClient, httpRequestMessage, needAddDefaultHeaders)
53+
.AddAbsoluteUrl(httpClient.BaseAddress?.AbsoluteUri, httpRequestMessage.RequestUri?.ToString())
54+
.AddHeaders(httpClient, httpRequestMessage, needAddDefaultHeaders)?
5555
.AddBody(httpRequestMessage.Content)?
5656
.Append(' ')
5757
.ToString();
5858
}
5959

60-
private static string _GeneratePutMethod(HttpClient httpClient, HttpRequestMessage httpRequestMessage, string requestUri, bool needAddDefaultHeaders)
60+
private static string _GeneratePutMethod(HttpClient httpClient, HttpRequestMessage httpRequestMessage, bool needAddDefaultHeaders)
6161
{
6262
StringBuilder stringBuilder = Builder.Initialize(httpRequestMessage.Method);
6363

6464
return stringBuilder
65-
.AddAbsoluteUrl(httpClient.BaseAddress?.AbsoluteUri, requestUri)
66-
.AddHeaders(httpClient, httpRequestMessage, needAddDefaultHeaders)
65+
.AddAbsoluteUrl(httpClient.BaseAddress?.AbsoluteUri, httpRequestMessage.RequestUri?.ToString())
66+
.AddHeaders(httpClient, httpRequestMessage, needAddDefaultHeaders)?
6767
.AddBody(httpRequestMessage.Content)?
6868
.Append(' ')
6969
.ToString();
7070
}
7171

72-
private static string _GeneratePatchMethod(HttpClient httpClient, HttpRequestMessage httpRequestMessage, string requestUri, bool needAddDefaultHeaders)
72+
private static string _GeneratePatchMethod(HttpClient httpClient, HttpRequestMessage httpRequestMessage, bool needAddDefaultHeaders)
7373
{
7474
StringBuilder stringBuilder = Builder.Initialize(httpRequestMessage.Method);
7575

7676
return stringBuilder
77-
.AddAbsoluteUrl(httpClient.BaseAddress?.AbsoluteUri, requestUri)
78-
.AddHeaders(httpClient, httpRequestMessage, needAddDefaultHeaders)
77+
.AddAbsoluteUrl(httpClient.BaseAddress?.AbsoluteUri, httpRequestMessage.RequestUri?.ToString())
78+
.AddHeaders(httpClient, httpRequestMessage, needAddDefaultHeaders)?
7979
.AddBody(httpRequestMessage.Content)?
8080
.Append(' ')
8181
.ToString();
8282
}
8383

84-
private static string _GenerateDeleteMethod(HttpClient httpClient, HttpRequestMessage httpRequestMessage, string requestUri, bool needAddDefaultHeaders)
84+
private static string _GenerateDeleteMethod(HttpClient httpClient, HttpRequestMessage httpRequestMessage, bool needAddDefaultHeaders)
8585
{
8686
StringBuilder stringBuilder = Builder.Initialize(httpRequestMessage.Method);
8787

8888
return stringBuilder
89-
.AddAbsoluteUrl(httpClient.BaseAddress?.AbsoluteUri, requestUri)
90-
.AddHeaders(httpClient, httpRequestMessage, needAddDefaultHeaders)
89+
.AddAbsoluteUrl(httpClient.BaseAddress?.AbsoluteUri, httpRequestMessage.RequestUri?.ToString())
90+
.AddHeaders(httpClient, httpRequestMessage, needAddDefaultHeaders)?
9191
.Append(' ')
9292
.ToString();
9393
}

src/HttpClientToCurl/Main.cs

Lines changed: 11 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,7 @@ public static class Main
88
{
99
#region :: EXTENSIONS ::
1010

11-
public static string GenerateCurlInString(
12-
this HttpClient httpClient,
13-
HttpRequestMessage httpRequestMessage,
14-
string requestUri = null,
15-
Action<StringConfig> config = null)
11+
public static string GenerateCurlInString(this HttpClient httpClient, HttpRequestMessage httpRequestMessage, Action<StringConfig> config = null)
1612
{
1713
var stringConfig = new StringConfig();
1814
config?.Invoke(stringConfig);
@@ -23,9 +19,6 @@ public static string GenerateCurlInString(
2319
string script = Generator.GenerateCurl(
2420
httpClient,
2521
httpRequestMessage,
26-
string.IsNullOrWhiteSpace(requestUri)
27-
? httpRequestMessage.RequestUri?.ToString()
28-
: requestUri,
2922
stringConfig.NeedAddDefaultHeaders);
3023

3124
return script;
@@ -45,38 +38,22 @@ public static string GenerateCurlInString(
4538
if (!stringConfig.TurnOn)
4639
return string.Empty;
4740

48-
var httpRequestMessage = Helpers.FillHttpRequestMessage(httpMethod, requestHeaders, requestBody);
41+
var httpRequestMessage = Helpers.FillHttpRequestMessage(httpMethod, requestHeaders, requestBody, requestUri);
4942

50-
string script = Generator.GenerateCurl(
51-
httpClient,
52-
httpRequestMessage,
53-
string.IsNullOrWhiteSpace(requestUri)
54-
? httpRequestMessage.RequestUri?.ToString()
55-
: requestUri,
56-
stringConfig.NeedAddDefaultHeaders);
43+
string script = Generator.GenerateCurl(httpClient, httpRequestMessage, stringConfig.NeedAddDefaultHeaders);
5744

5845
return script;
5946
}
6047

61-
public static void GenerateCurlInConsole(
62-
this HttpClient httpClient,
63-
HttpRequestMessage httpRequestMessage,
64-
string requestUri = null,
65-
Action<ConsoleConfig> config = null)
48+
public static void GenerateCurlInConsole(this HttpClient httpClient, HttpRequestMessage httpRequestMessage, Action<ConsoleConfig> config = null)
6649
{
6750
var consoleConfig = new ConsoleConfig();
6851
config?.Invoke(consoleConfig);
6952

7053
if (!consoleConfig.TurnOn)
7154
return;
7255

73-
string script = Generator.GenerateCurl(
74-
httpClient,
75-
httpRequestMessage,
76-
string.IsNullOrWhiteSpace(requestUri)
77-
? httpRequestMessage.RequestUri?.ToString()
78-
: requestUri,
79-
consoleConfig.NeedAddDefaultHeaders);
56+
string script = Generator.GenerateCurl(httpClient, httpRequestMessage, consoleConfig.NeedAddDefaultHeaders);
8057

8158
Helpers.WriteInConsole(script, consoleConfig.EnableCodeBeautification, httpRequestMessage.Method);
8259
}
@@ -95,38 +72,22 @@ public static void GenerateCurlInConsole(
9572
if (!consoleConfig.TurnOn)
9673
return;
9774

98-
var httpRequestMessage = Helpers.FillHttpRequestMessage(httpMethod, requestHeaders, requestBody);
75+
var httpRequestMessage = Helpers.FillHttpRequestMessage(httpMethod, requestHeaders, requestBody, requestUri);
9976

100-
string script = Generator.GenerateCurl(
101-
httpClient,
102-
httpRequestMessage,
103-
string.IsNullOrWhiteSpace(requestUri)
104-
? httpRequestMessage.RequestUri?.ToString()
105-
: requestUri,
106-
consoleConfig.NeedAddDefaultHeaders);
77+
string script = Generator.GenerateCurl(httpClient, httpRequestMessage, consoleConfig.NeedAddDefaultHeaders);
10778

10879
Helpers.WriteInConsole(script, consoleConfig.EnableCodeBeautification, httpRequestMessage.Method);
10980
}
11081

111-
public static void GenerateCurlInFile(
112-
this HttpClient httpClient,
113-
HttpRequestMessage httpRequestMessage,
114-
string requestUri = null,
115-
Action<FileConfig> config = null)
82+
public static void GenerateCurlInFile(this HttpClient httpClient, HttpRequestMessage httpRequestMessage, Action<FileConfig> config = null)
11683
{
11784
var fileConfig = new FileConfig();
11885
config?.Invoke(fileConfig);
11986

12087
if (!fileConfig.TurnOn)
12188
return;
12289

123-
string script = Generator.GenerateCurl(
124-
httpClient,
125-
httpRequestMessage,
126-
string.IsNullOrWhiteSpace(requestUri)
127-
? httpRequestMessage.RequestUri?.ToString()
128-
: requestUri,
129-
fileConfig.NeedAddDefaultHeaders);
90+
string script = Generator.GenerateCurl(httpClient, httpRequestMessage, fileConfig.NeedAddDefaultHeaders);
13091

13192
Helpers.WriteInFile(script, fileConfig.Filename, fileConfig.Path);
13293
}
@@ -145,15 +106,9 @@ public static void GenerateCurlInFile(
145106
if (!fileConfig.TurnOn)
146107
return;
147108

148-
var httpRequestMessage = Helpers.FillHttpRequestMessage(httpMethod, requestHeaders, requestBody);
109+
var httpRequestMessage = Helpers.FillHttpRequestMessage(httpMethod, requestHeaders, requestBody, requestUri);
149110

150-
string script = Generator.GenerateCurl(
151-
httpClient,
152-
httpRequestMessage,
153-
string.IsNullOrWhiteSpace(requestUri)
154-
? httpRequestMessage.RequestUri?.ToString()
155-
: requestUri,
156-
fileConfig.NeedAddDefaultHeaders);
111+
string script = Generator.GenerateCurl(httpClient, httpRequestMessage, fileConfig.NeedAddDefaultHeaders);
157112

158113
Helpers.WriteInFile(script, fileConfig.Filename, fileConfig.Path);
159114
}

src/HttpClientToCurl/Utility/Helpers.cs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ public static void WriteInFile(string script, string filename, string path)
3535
}
3636
}
3737

38-
public static HttpRequestMessage FillHttpRequestMessage(HttpMethod httpMethod, HttpRequestHeaders requestHeaders, HttpContent requestBody)
38+
public static HttpRequestMessage FillHttpRequestMessage(HttpMethod httpMethod, HttpRequestHeaders requestHeaders, HttpContent requestBody, string requestUri)
3939
{
4040
var httpRequestMessage = new HttpRequestMessage
4141
{
@@ -53,9 +53,11 @@ public static HttpRequestMessage FillHttpRequestMessage(HttpMethod httpMethod, H
5353
}
5454
}
5555

56+
httpRequestMessage.RequestUri = !string.IsNullOrWhiteSpace(requestUri) ? new Uri(requestUri, UriKind.RelativeOrAbsolute) : null;
57+
5658
return httpRequestMessage;
5759
}
58-
60+
5961
public static bool IsValidBody(string body, string contentType)
6062
{
6163
switch (contentType)

src/HttpClientToCurlGeneratorTest/FunctionalTest/SuccessScenariosTests.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ public void Success_GenerateCurlInString_For_PostMethod()
2727
httpClient.BaseAddress = new Uri("http://localhost:1213/v1");
2828

2929
// Act
30-
string curlResult = httpClient.GenerateCurlInString(httpRequestMessage, requestUri);
30+
string curlResult = httpClient.GenerateCurlInString(httpRequestMessage);
3131

3232
// Assert
3333
Assert.That(curlResult, Is.Not.Null);
@@ -101,7 +101,7 @@ public void Success_GenerateCurlInString_When_RequestBody_Is_Null_For_PostMethod
101101
httpClient.BaseAddress = new Uri("http://localhost:1213/v1");
102102

103103
// Act
104-
string curlResult = httpClient.GenerateCurlInString(httpRequestMessage, requestUri);
104+
string curlResult = httpClient.GenerateCurlInString(httpRequestMessage);
105105

106106
// Assert
107107
Assert.That(curlResult, Is.Not.Null);
@@ -124,7 +124,7 @@ public void Success_GenerateCurlInString_When_HttpContent_Is_Null_For_PostMethod
124124
httpClient.BaseAddress = new Uri("http://localhost:1213/v1");
125125

126126
// Act
127-
string curlResult = httpClient.GenerateCurlInString(httpRequestMessage, requestUri);
127+
string curlResult = httpClient.GenerateCurlInString(httpRequestMessage);
128128

129129
// Assert
130130
Assert.That(curlResult, Is.Not.Null);

src/HttpClientToCurlGeneratorTest/UnitTest/MediaTypes/Json/FailedCurlGeneratorTests.cs

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ public void GenerateCurl_When_Invalid_HttpMethod()
2727
string script = Generator.GenerateCurl(
2828
httpClient,
2929
httpRequestMessage,
30-
requestUri,
3130
true);
3231

3332
// Assert
@@ -55,7 +54,6 @@ public void GenerateCurl_When_Invalid_JsonBody()
5554
string script = Generator.GenerateCurl(
5655
httpClient,
5756
httpRequestMessage,
58-
requestUri,
5957
true);
6058

6159
// Assert
@@ -83,7 +81,6 @@ public void GenerateCurl_When_Invalid_BaseUrl()
8381
string script = Generator.GenerateCurl(
8482
httpClient,
8583
httpRequestMessage,
86-
requestUri,
8784
true);
8885

8986
// Assert

0 commit comments

Comments
 (0)