Skip to content

Commit 4f2071d

Browse files
committed
refactor: add helper method to add query param
1 parent d03f67a commit 4f2071d

File tree

2 files changed

+15
-12
lines changed

2 files changed

+15
-12
lines changed

src/CompaniesHouse/UriBuilders/SearchCompanyUriBuilder.cs

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,10 +13,7 @@ protected override string BuildQuery(SearchCompanyRequest request)
1313
{
1414
var queryBuilder = new StringBuilder(base.BuildQuery(request));
1515

16-
if (!string.IsNullOrWhiteSpace(request.Restrictions))
17-
{
18-
queryBuilder.Append($"&restrictions={Uri.EscapeDataString(request.Restrictions)}");
19-
}
16+
AppendParameterIfValid(queryBuilder, "restrictions", request.Restrictions, value => !string.IsNullOrWhiteSpace(value));
2017

2118
return queryBuilder.ToString();
2219
}

src/CompaniesHouse/UriBuilders/SearchUriBuilder.cs

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,17 +25,23 @@ protected virtual string BuildQuery(TSearch request)
2525
{
2626
var queryBuilder = new StringBuilder($"?q={Uri.EscapeDataString(request.Query)}");
2727

28-
if (request.ItemsPerPage.HasValue)
29-
{
30-
queryBuilder.Append($"&items_per_page={request.ItemsPerPage.Value}");
31-
}
28+
AppendParameterIfValid(queryBuilder, "items_per_page", request.ItemsPerPage, value => value.HasValue);
29+
AppendParameterIfValid(queryBuilder, "start_index", request.StartIndex, value => value.HasValue);
30+
31+
return queryBuilder.ToString();
32+
}
3233

33-
if (request.StartIndex.HasValue)
34+
protected void AppendParameterIfValid<T>(StringBuilder builder, string parameterName, T parameterValue, Func<T, bool> isValid)
35+
{
36+
if (!isValid(parameterValue)) return;
37+
38+
var value = parameterValue switch
3439
{
35-
queryBuilder.Append($"&start_index={request.StartIndex.Value}");
36-
}
40+
string s => Uri.EscapeDataString(s),
41+
_ => parameterValue.ToString()
42+
};
3743

38-
return queryBuilder.ToString();
44+
builder.Append($"&{parameterName}={value}");
3945
}
4046
}
4147
}

0 commit comments

Comments
 (0)