Skip to content

Commit

Permalink
Add configuration options for Amazon Shipping API
Browse files Browse the repository at this point in the history
Updated `AmazonShippingApiOptions` to include `IsDevelopment` and `ClientId` properties for better environment configuration.
Modified `AmazonShippingRateProvider` and `AmazonShippingShipmentProvider` to utilize the new options, adjusting the base URL based on the development environment.
Replaced references to the old `_amazonShippingApi` field with `_shippingApi` for consistency across method implementations.
  • Loading branch information
Brandon Moffett committed Dec 16, 2024
1 parent 0ef5294 commit 7202305
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

public class AmazonShippingApiOptions
{
public bool IsDevelopment { get; set; } = true;

public string ClientId { get; set; } = string.Empty;

public string ClientSecret { get; set; } = string.Empty;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,20 +1,25 @@
using EasyKeys.Shipping.Abstractions.Models;
using EasyKeys.Shipping.Amazon.Abstractions.OpenApis.V2.Shipping;
using EasyKeys.Shipping.Amazon.Abstractions.Options;
using EasyKeys.Shipping.Amazon.Abstractions.Services;

namespace EasyKeys.Shipping.Amazon.Rates;

public class AmazonShippingRateProvider : IAmazonShippingRateProvider
{
private readonly IAmazonApiAuthenticatorService _authenticatorService;
private readonly AmazonShippingApiOptions _options;
private readonly AmazonShippingApi _shippingApi;

public AmazonShippingRateProvider(
AmazonShippingApiOptions options,
IAmazonApiAuthenticatorService authenticatorService,
AmazonShippingApi shippingApi)
{
_options = options;
_authenticatorService = authenticatorService;
_shippingApi = shippingApi;
_shippingApi.BaseUrl = _options.IsDevelopment ? _shippingApi.BaseUrl : "https://sellingpartnerapi-na.amazon.com";
}

public async Task<Shipment> GetRatesAsync(Shipment shipment, CancellationToken cancellationToken = default)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,22 +3,27 @@

using EasyKeys.Shipping.Abstractions.Models;
using EasyKeys.Shipping.Amazon.Abstractions.OpenApis.V2.Shipping;
using EasyKeys.Shipping.Amazon.Abstractions.Options;
using EasyKeys.Shipping.Amazon.Abstractions.Services;
using EasyKeys.Shipping.Amazon.Shipment.Models;

namespace EasyKeys.Shipping.Amazon.Shipment;

public class AmazonShippingShipmentProvider : IAmazonShippingShipmentProvider
{
private readonly AmazonShippingApi _amazonShippingApi;
private readonly AmazonShippingApi _shippingApi;
private readonly AmazonShippingApiOptions _options;
private readonly IAmazonApiAuthenticatorService _authenticatorService;

public AmazonShippingShipmentProvider(
AmazonShippingApiOptions options,
AmazonShippingApi amazonShippingApi,
IAmazonApiAuthenticatorService amazonApiAuthenticator)
{
_amazonShippingApi = amazonShippingApi;
_options = options;
_shippingApi = amazonShippingApi;
_authenticatorService = amazonApiAuthenticator;
_shippingApi.BaseUrl = _options.IsDevelopment ? _shippingApi.BaseUrl : "https://sellingpartnerapi-na.amazon.com";
}

public Task<ShipmentLabel> CreateShipmentAsync(
Expand Down Expand Up @@ -144,7 +149,7 @@ public async Task<ShipmentLabel> CreateSmartShipmentAsync(

var accessToken = await _authenticatorService.GetTokenAsync(cancellationToken);

var shipmentResult = await _amazonShippingApi
var shipmentResult = await _shippingApi
.OneClickShipmentAsync(
accessToken,
XAmznShippingBusinessId3.AmazonShipping_US,
Expand Down Expand Up @@ -194,7 +199,7 @@ public async Task<ShipmentCancelledResult> CancelShipmentAsync(string shipmentId
{
var accessToken = await _authenticatorService.GetTokenAsync(cancellationToken);

await _amazonShippingApi.CancelShipmentAsync(
await _shippingApi.CancelShipmentAsync(
shipmentId,
accessToken,
XAmznShippingBusinessId6.AmazonShipping_US,
Expand Down

0 comments on commit 7202305

Please sign in to comment.