Skip to content

Commit 4138834

Browse files
authored
Merge pull request #768 from TManITtech/main
Fixed bugs getting orders with PII and Debug logging. Added getAdditionalInputs to the Shipping API v2.
2 parents e3a1867 + c3d18f2 commit 4138834

File tree

9 files changed

+127
-54
lines changed

9 files changed

+127
-54
lines changed

Source/FikaAmazonAPI.SampleCode/FulFillmentInboundv20240320Sample .cs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
1-
namespace FikaAmazonAPI.SampleCode
1+
using FikaAmazonAPI.AmazonSpApiSDK.Models.FulfillmentInboundv20240320;
2+
3+
namespace FikaAmazonAPI.SampleCode
24
{
35
public class FulFillmentInboundv20240320Sample
46
{
@@ -17,6 +19,7 @@ public void CreateShipmentPlan()
1719
oCreateInboundShipmentPlanRequest.DestinationMarketplaces = new List<string> {amazonConnection.GetCurrentMarketplace.ID};
1820

1921

22+
2023
oCreateInboundShipmentPlanRequest.SourceAddress = new FikaAmazonAPI.AmazonSpApiSDK.Models.FulfillmentInboundv20240320.AddressInput();
2124
oCreateInboundShipmentPlanRequest.SourceAddress.AddressLine1 = "Add";
2225
oCreateInboundShipmentPlanRequest.SourceAddress.AddressLine2 = "ADD2";
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
using Newtonsoft.Json;
2+
using System.Runtime.Serialization;
3+
using System.Text;
4+
5+
namespace FikaAmazonAPI.AmazonSpApiSDK.Models.ShippingV2
6+
{
7+
[DataContract]
8+
public class GetAdditionalInputsRequest
9+
{
10+
/// <summary>
11+
/// The request token returned in the response to the getRates operation.
12+
/// </summary>
13+
[DataMember(Name = "requestToken", EmitDefaultValue = false)]
14+
[JsonProperty(PropertyName = "requestToken")]
15+
public string RequestToken { get; set; }
16+
17+
/// <summary>
18+
/// The rate identifier for the shipping offering (rate) returned in the response to the getRates operation.
19+
/// </summary>
20+
[DataMember(Name = "rateId", EmitDefaultValue = false)]
21+
[JsonProperty(PropertyName = "rateId")]
22+
public string RateId { get; set; }
23+
24+
25+
/// <summary>
26+
/// Get the string presentation of the object
27+
/// </summary>
28+
/// <returns>String presentation of the object</returns>
29+
public override string ToString()
30+
{
31+
var sb = new StringBuilder();
32+
sb.Append("class " + nameof(GetAdditionalInputsRequest) + " {\n");
33+
sb.Append($" {nameof(RequestToken)}: ").Append(RequestToken).Append("\n");
34+
sb.Append($" {nameof(RateId)}: ").Append(RateId).Append("\n");
35+
sb.Append("}\n");
36+
return sb.ToString();
37+
}
38+
39+
/// <summary>
40+
/// Get the JSON string presentation of the object
41+
/// </summary>
42+
/// <returns>JSON string presentation of the object</returns>
43+
public string ToJson()
44+
{
45+
return JsonConvert.SerializeObject(this, Formatting.Indented);
46+
}
47+
}
48+
49+
}

Source/FikaAmazonAPI/AmazonSpApiSDK/Models/ShippingV2/GetAdditionalInputsResponse.cs

Lines changed: 36 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,44 +1,47 @@
1-
using System;
2-
using System.Text;
3-
using System.Collections;
4-
using System.Collections.Generic;
5-
using System.Runtime.Serialization;
61
using Newtonsoft.Json;
2+
using System.Runtime.Serialization;
3+
using System.Text;
74

8-
namespace FikaAmazonAPI.AmazonSpApiSDK.Models.ShippingV2 {
5+
namespace FikaAmazonAPI.AmazonSpApiSDK.Models.ShippingV2
6+
{
97

10-
/// <summary>
11-
/// The response schema for the getAdditionalInputs operation.
12-
/// </summary>
13-
[DataContract]
14-
public class GetAdditionalInputsResponse {
158
/// <summary>
16-
/// Gets or Sets Payload
9+
/// The response schema for the getAdditionalInputs operation.
1710
/// </summary>
18-
[DataMember(Name="payload", EmitDefaultValue=false)]
19-
[JsonProperty(PropertyName = "payload")]
20-
public GetAdditionalInputsResult Payload { get; set; }
11+
[DataContract]
12+
public class GetAdditionalInputsResponse
13+
{
14+
/// <summary>
15+
/// Gets or Sets Payload
16+
/// See: https://developer-docs.amazon.com/amazon-shipping/docs/shipping-api-v2-reference#getadditionalinputsresponse
17+
/// </summary>
18+
[DataMember(Name = "payload", EmitDefaultValue = false)]
19+
[JsonProperty(PropertyName = "payload", Required = Required.AllowNull, NullValueHandling = NullValueHandling.Ignore)]
20+
public GetAdditionalInputsResult Payload { get; set; }
2121

2222

23-
/// <summary>
24-
/// Get the string presentation of the object
25-
/// </summary>
26-
/// <returns>String presentation of the object</returns>
27-
public override string ToString() {
28-
var sb = new StringBuilder();
29-
sb.Append("class GetAdditionalInputsResponse {\n");
30-
sb.Append(" Payload: ").Append(Payload).Append("\n");
31-
sb.Append("}\n");
32-
return sb.ToString();
33-
}
23+
/// <summary>
24+
/// Get the string presentation of the object
25+
/// </summary>
26+
/// <returns>String presentation of the object</returns>
27+
public override string ToString()
28+
{
29+
var sb = new StringBuilder();
30+
sb.Append("class GetAdditionalInputsResponse {\n");
31+
sb.Append(" Payload: ").Append(Payload).Append("\n");
32+
sb.Append("}\n");
33+
return sb.ToString();
34+
}
35+
36+
/// <summary>
37+
/// Get the JSON string presentation of the object
38+
/// </summary>
39+
/// <returns>JSON string presentation of the object</returns>
40+
public string ToJson()
41+
{
42+
return JsonConvert.SerializeObject(this, Formatting.Indented);
43+
}
3444

35-
/// <summary>
36-
/// Get the JSON string presentation of the object
37-
/// </summary>
38-
/// <returns>JSON string presentation of the object</returns>
39-
public string ToJson() {
40-
return JsonConvert.SerializeObject(this, Formatting.Indented);
4145
}
4246

4347
}
44-
}

Source/FikaAmazonAPI/AmazonSpApiSDK/Models/ShippingV2/GetAdditionalInputsResult.cs

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -11,26 +11,29 @@ namespace FikaAmazonAPI.AmazonSpApiSDK.Models.ShippingV2 {
1111
/// The JSON schema to use to provide additional inputs when required to purchase a shipping offering.
1212
/// </summary>
1313
[DataContract]
14-
public class GetAdditionalInputsResult : Dictionary<String, Object> {
14+
public class GetAdditionalInputsResult : Dictionary<String, Object>
15+
{
1516

1617
/// <summary>
1718
/// Get the string presentation of the object
1819
/// </summary>
1920
/// <returns>String presentation of the object</returns>
20-
public override string ToString() {
21-
var sb = new StringBuilder();
22-
sb.Append("class GetAdditionalInputsResult {\n");
23-
sb.Append("}\n");
24-
return sb.ToString();
21+
public override string ToString()
22+
{
23+
var sb = new StringBuilder();
24+
sb.Append("class GetAdditionalInputsResult {\n");
25+
sb.Append("}\n");
26+
return sb.ToString();
2527
}
2628

2729
/// <summary>
2830
/// Get the JSON string presentation of the object
2931
/// </summary>
3032
/// <returns>JSON string presentation of the object</returns>
31-
public new string ToJson() {
32-
return JsonConvert.SerializeObject(this, Formatting.Indented);
33+
public string ToJson()
34+
{
35+
return JsonConvert.SerializeObject(this, Formatting.Indented);
3336
}
3437

35-
}
38+
}
3639
}

Source/FikaAmazonAPI/FikaAmazonAPI.csproj

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
<Product>CSharp Amazon Sp API</Product>
88
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
99
<LangVersion>8.0</LangVersion>
10-
<Version>1.7.24</Version>
11-
<AssemblyVersion>1.7.24</AssemblyVersion>
12-
<FileVersion>1.7.24</FileVersion>
10+
<Version>1.7.25.1</Version>
11+
<AssemblyVersion>1.7.25.1</AssemblyVersion>
12+
<FileVersion>1.7.25.1</FileVersion>
1313
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
1414
<PackageProjectUrl>https://github.com/abuzuhri/Amazon-SP-API-CSharp</PackageProjectUrl>
1515
<PackageLicenseExpression>MIT</PackageLicenseExpression>

Source/FikaAmazonAPI/Services/ApiUrls.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,7 @@ public static string PurchaseShipment
223223
{
224224
get => $"{_resourceBaseUrl}/shipments";
225225
}
226+
public static string GetAdditionalInputs(string requestToken, string rateId) => $"{_resourceBaseUrl}/shipments/additionalInputs/schema?requestToken={requestToken}&rateId={rateId}";
226227
public static string GetTracking(string carrierId, string trackingId) => $"{_resourceBaseUrl}/tracking?carrierId={carrierId}&trackingId={trackingId}";
227228
public static string GetShipmentDocuments(string shipmentId, string packageClientReferenceId, string format) => $"{_resourceBaseUrl}/shipments/{shipmentId}/documents?packageClientReferenceId={packageClientReferenceId}&format={format}";
228229
public static string CancelShipment(string shipmentId) => $"{_resourceBaseUrl}/shipments/{shipmentId}/cancel";

Source/FikaAmazonAPI/Services/OrderService.cs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -136,11 +136,9 @@ public async Task<OrderList> GetOrdersAsync(ParameterOrderList searchOrderList)
136136

137137
return orderList;
138138
}
139-
140-
139+
141140
public async Task<OrdersList> GetGetOrdersByNextTokenAsync(string nextToken, ParameterOrderList searchOrderList)
142141
{
143-
144142
var parameterOrderList = new ParameterOrderList
145143
{
146144
MarketplaceIds = searchOrderList.MarketplaceIds,
@@ -151,10 +149,13 @@ public async Task<OrdersList> GetGetOrdersByNextTokenAsync(string nextToken, Par
151149

152150
List<KeyValuePair<string, string>> queryParameters = parameterOrderList.getParameters();
153151

154-
await CreateAuthorizedRequestAsync(OrdersApiUrls.Orders, RestSharp.Method.Get, queryParameters);
152+
await CreateAuthorizedRequestAsync(OrdersApiUrls.Orders, RestSharp.Method.Get, queryParameters, parameter: parameterOrderList);
153+
155154
var response = await ExecuteRequestAsync<GetOrdersResponse>(Utils.RateLimitType.Order_GetOrders);
155+
156156
return response.Payload;
157157
}
158+
158159
public OrdersList GetOrdersList(ParameterOrderList searchOrderList) =>
159160
Task.Run(() => GetOrdersListAsync(searchOrderList)).ConfigureAwait(false).GetAwaiter().GetResult();
160161
public async Task<OrdersList> GetOrdersListAsync(ParameterOrderList searchOrderList)

Source/FikaAmazonAPI/Services/RequestService.cs

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
using RestSharp.Serializers.NewtonsoftJson;
1010
using System;
1111
using System.Collections.Generic;
12+
using System.Diagnostics;
1213
using System.Globalization;
1314
using System.Linq;
1415
using System.Net;
@@ -179,10 +180,11 @@ private void LogRequest(RestRequest request, RestResponse response)
179180
responseUri = response.ResponseUri,
180181
errorMessage = response.ErrorMessage,
181182
};
182-
Console.WriteLine("\n\n");
183-
Console.WriteLine(string.Format("Request completed, \nRequest: {0} \n\nResponse: {1}",
184-
JsonConvert.SerializeObject(requestToLog),
185-
JsonConvert.SerializeObject(responseToLog)));
183+
184+
Debug.WriteLine("\n\n---------------------------------------------------------\n");
185+
string msg = string.Format("Request completed, \nRequest: {0} \n\nResponse: {1}", requestToLog, responseToLog);
186+
187+
Debug.WriteLine(msg);
186188
}
187189
}
188190

Source/FikaAmazonAPI/Services/ShippingServiceV2.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,17 @@ public async Task<GetRatesResult> GetRatesAsync(GetRatesRequest getRatesRequest,
4747
return null;
4848
}
4949

50+
public GetAdditionalInputsResult GetAdditionalInputs(GetAdditionalInputsRequest getRatesRequest) =>
51+
Task.Run(() => GetAdditionalInputsAsync(getRatesRequest)).ConfigureAwait(false).GetAwaiter().GetResult();
52+
public async Task<GetAdditionalInputsResult> GetAdditionalInputsAsync(GetAdditionalInputsRequest getRatesRequest, CancellationToken cancellationToken = default)
53+
{
54+
await CreateAuthorizedRequestAsync(ShippingApiV2Urls.GetAdditionalInputs(getRatesRequest.RequestToken, getRatesRequest.RateId), RestSharp.Method.Get, cancellationToken: cancellationToken);
55+
var response = await ExecuteRequestAsync<GetAdditionalInputsResponse>(RateLimitType.ShippingV2_GetAdditionalInputs, cancellationToken);
56+
if (response != null && response.Payload != null)
57+
return response.Payload;
58+
return null;
59+
}
60+
5061
public GetTrackingResult GetTracking(string carrierId, string trackingId) =>
5162
Task.Run(() => GetTrackingAsync(carrierId, trackingId)).ConfigureAwait(false).GetAwaiter().GetResult();
5263
public async Task<GetTrackingResult> GetTrackingAsync(string carrierId, string trackingId, CancellationToken cancellationToken = default)

0 commit comments

Comments
 (0)