Skip to content

Commit

Permalink
Refactored API versioning in service classes (#399)
Browse files Browse the repository at this point in the history
The API version string has been refactored into a constant across multiple service classes. This change improves code maintainability by centralizing the API version value, making it easier to update in the future. The affected services include CatalogService, FixUriService, and OrderService.
  • Loading branch information
michaelstonis authored May 30, 2024
1 parent 72ad00d commit 4f9173b
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 10 deletions.
12 changes: 7 additions & 5 deletions src/ClientApp/Services/Catalog/CatalogService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ namespace eShop.ClientApp.Services.Catalog;
public class CatalogService : ICatalogService
{
private const string ApiUrlBase = "api/catalog";
private const string ApiVersion = "api-version=1.0";

private readonly IFixUriService _fixUriService;
private readonly IRequestProvider _requestProvider;
private readonly ISettingsService _settingsService;
Expand All @@ -24,7 +26,7 @@ public CatalogService(ISettingsService settingsService, IRequestProvider request
public async Task<IEnumerable<CatalogItem>> FilterAsync(int catalogBrandId, int catalogTypeId)
{
var uri = UriHelper.CombineUri(_settingsService.GatewayCatalogEndpointBase,
$"{ApiUrlBase}/items/type/{catalogTypeId}/brand/{catalogBrandId}?PageSize=100&PageIndex=0&api-version=1.0");
$"{ApiUrlBase}/items/type/{catalogTypeId}/brand/{catalogBrandId}?PageSize=100&PageIndex=0&{ApiVersion}");

var catalog = await _requestProvider.GetAsync<CatalogRoot>(uri).ConfigureAwait(false);

Expand All @@ -33,7 +35,7 @@ public async Task<IEnumerable<CatalogItem>> FilterAsync(int catalogBrandId, int

public async Task<IEnumerable<CatalogItem>> GetCatalogAsync()
{
var uri = UriHelper.CombineUri(_settingsService.GatewayCatalogEndpointBase, $"{ApiUrlBase}/items?PageSize=100&api-version=1.0");
var uri = UriHelper.CombineUri(_settingsService.GatewayCatalogEndpointBase, $"{ApiUrlBase}/items?PageSize=100&{ApiVersion}");

var catalog = await _requestProvider.GetAsync<CatalogRoot>(uri).ConfigureAwait(false);

Expand All @@ -49,7 +51,7 @@ public async Task<IEnumerable<CatalogItem>> GetCatalogAsync()
public async Task<CatalogItem> GetCatalogItemAsync(int catalogItemId)
{
var uri = UriHelper.CombineUri(_settingsService.GatewayCatalogEndpointBase,
$"{ApiUrlBase}/items/{catalogItemId}?api-version=1.0");
$"{ApiUrlBase}/items/{catalogItemId}?{ApiVersion}");

var catalogItem = await _requestProvider.GetAsync<CatalogItem>(uri).ConfigureAwait(false);

Expand All @@ -64,7 +66,7 @@ public async Task<CatalogItem> GetCatalogItemAsync(int catalogItemId)

public async Task<IEnumerable<CatalogBrand>> GetCatalogBrandAsync()
{
var uri = UriHelper.CombineUri(_settingsService.GatewayCatalogEndpointBase, $"{ApiUrlBase}/catalogbrands?api-version=1.0");
var uri = UriHelper.CombineUri(_settingsService.GatewayCatalogEndpointBase, $"{ApiUrlBase}/catalogbrands?{ApiVersion}");

var brands = await _requestProvider.GetAsync<IEnumerable<CatalogBrand>>(uri).ConfigureAwait(false);

Expand All @@ -73,7 +75,7 @@ public async Task<IEnumerable<CatalogBrand>> GetCatalogBrandAsync()

public async Task<IEnumerable<CatalogType>> GetCatalogTypeAsync()
{
var uri = UriHelper.CombineUri(_settingsService.GatewayCatalogEndpointBase, $"{ApiUrlBase}/catalogtypes?api-version=1.0");
var uri = UriHelper.CombineUri(_settingsService.GatewayCatalogEndpointBase, $"{ApiUrlBase}/catalogtypes?{ApiVersion}");

var types = await _requestProvider.GetAsync<IEnumerable<CatalogType>>(uri).ConfigureAwait(false);

Expand Down
4 changes: 3 additions & 1 deletion src/ClientApp/Services/FixUri/FixUriService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ namespace eShop.ClientApp.Services.FixUri;

public class FixUriService : IFixUriService
{
private const string ApiVersion = "api-version=1.0";

private readonly ISettingsService _settingsService;

private readonly Regex IpRegex = new(@"\b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b");
Expand All @@ -31,7 +33,7 @@ public void FixCatalogItemPictureUri(IEnumerable<CatalogItem> catalogItems)
{
foreach (var catalogItem in catalogItems)
{
catalogItem.PictureUri = Path.Combine(_settingsService.GatewayCatalogEndpointBase, $"api/catalog/items/{catalogItem.Id}/pic?api-version=1.0");
catalogItem.PictureUri = Path.Combine(_settingsService.GatewayCatalogEndpointBase, $"api/catalog/items/{catalogItem.Id}/pic?{ApiVersion}");
}
}
}
Expand Down
10 changes: 6 additions & 4 deletions src/ClientApp/Services/Order/OrderService.cs
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ namespace eShop.ClientApp.Services.Order;
public class OrderService : IOrderService
{
private const string ApiUrlBase = "api/orders";
private const string ApiVersion = "api-version=1.0";

private readonly IIdentityService _identityService;
private readonly IRequestProvider _requestProvider;
private readonly ISettingsService _settingsService;
Expand All @@ -32,7 +34,7 @@ public async Task CreateOrderAsync(Models.Orders.Order newOrder)
return;
}

var uri = $"{UriHelper.CombineUri(_settingsService.GatewayOrdersEndpointBase, ApiUrlBase)}?api-version=1.0";
var uri = $"{UriHelper.CombineUri(_settingsService.GatewayOrdersEndpointBase, ApiUrlBase)}?{ApiVersion}";

var success = await _requestProvider.PostAsync(uri, newOrder, authToken, "x-requestid").ConfigureAwait(false);
}
Expand All @@ -46,7 +48,7 @@ public async Task CreateOrderAsync(Models.Orders.Order newOrder)
return Enumerable.Empty<Models.Orders.Order>();
}

var uri = $"{UriHelper.CombineUri(_settingsService.GatewayOrdersEndpointBase, ApiUrlBase)}?api-version=1.0";
var uri = $"{UriHelper.CombineUri(_settingsService.GatewayOrdersEndpointBase, ApiUrlBase)}?{ApiVersion}";

var orders =
await _requestProvider.GetAsync<IEnumerable<Models.Orders.Order>>(uri, authToken).ConfigureAwait(false);
Expand All @@ -65,7 +67,7 @@ public async Task CreateOrderAsync(Models.Orders.Order newOrder)

try
{
var uri = $"{UriHelper.CombineUri(_settingsService.GatewayOrdersEndpointBase, $"{ApiUrlBase}/{orderId}")}?api-version=1.0";
var uri = $"{UriHelper.CombineUri(_settingsService.GatewayOrdersEndpointBase, $"{ApiUrlBase}/{orderId}")}?{ApiVersion}";

var order =
await _requestProvider.GetAsync<Models.Orders.Order>(uri, authToken).ConfigureAwait(false);
Expand All @@ -87,7 +89,7 @@ public async Task<bool> CancelOrderAsync(int orderId)
return false;
}

var uri = $"{UriHelper.CombineUri(_settingsService.GatewayOrdersEndpointBase, $"{ApiUrlBase}/cancel")}?api-version=1.0";
var uri = $"{UriHelper.CombineUri(_settingsService.GatewayOrdersEndpointBase, $"{ApiUrlBase}/cancel")}?{ApiVersion}";

var cancelOrderCommand = new CancelOrderCommand(orderId);

Expand Down

0 comments on commit 4f9173b

Please sign in to comment.