Skip to content

Commit 803451e

Browse files
committed
Improve get PII
1 parent db98ab3 commit 803451e

File tree

6 files changed

+141
-16
lines changed

6 files changed

+141
-16
lines changed

Source/FikaAmazonAPI.SampleCode/OrdersSample.cs

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,16 +56,26 @@ public void GetOrders()
5656
/// <summary>
5757
/// You must have valid PII developer to be able to call this method
5858
/// </summary>
59-
public void GetOrdersPII()
59+
public void GetOrdersPIISimple()
6060
{
6161
ParameterOrderList serachOrderList = new ParameterOrderList();
6262
serachOrderList.CreatedAfter = DateTime.UtcNow.AddMinutes(-600000);
6363

6464
serachOrderList.OrderStatuses = new List<OrderStatuses>();
65-
serachOrderList.OrderStatuses.Add(OrderStatuses.Pending);
65+
serachOrderList.OrderStatuses.Add(OrderStatuses.Unshipped);
6666

67-
serachOrderList.AmazonOrderIds = new List<string>();
68-
serachOrderList.AmazonOrderIds.Add("405-0426616-1636335");
67+
//You must have valid PII developer to be able to call this
68+
serachOrderList.IsNeedRestrictedDataToken = true;
69+
70+
var orders = amazonConnection.Orders.GetOrders(serachOrderList);
71+
}
72+
public void GetOrdersPIIAdvance()
73+
{
74+
ParameterOrderList serachOrderList = new ParameterOrderList();
75+
serachOrderList.CreatedAfter = DateTime.UtcNow.AddMinutes(-600000);
76+
77+
serachOrderList.OrderStatuses = new List<OrderStatuses>();
78+
serachOrderList.OrderStatuses.Add(OrderStatuses.Unshipped);
6979

7080
//You must have valid PII developer to be able to call this
7181
var restrictedResource = new RestrictedResource();
@@ -100,6 +110,18 @@ public void GetOrderItems()
100110
{
101111
var Items = amazonConnection.Orders.GetOrderItems("402-0467973-4229120");
102112
}
113+
114+
/// <summary>
115+
/// You must have valid PII developer to be able to call this method
116+
/// </summary>
117+
public void GetOrderItemsPIISimple()
118+
{
119+
ParameterBasedPII parameterBasedPII = new ParameterBasedPII();
120+
parameterBasedPII.IsNeedRestrictedDataToken = true;
121+
122+
var order = amazonConnection.Orders.GetOrderItems("405-0426616-1636335", parameterBasedPII);
123+
}
124+
103125
/// <summary>
104126
/// You must have valid PII developer to be able to call this method
105127
/// </summary>

Source/FikaAmazonAPI.SampleCode/Program.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,9 +36,13 @@ static async Task Main(string[] args)
3636
ClientSecret = config.GetSection("FikaAmazonAPI:ClientSecret").Value,
3737
RefreshToken = config.GetSection("FikaAmazonAPI:RefreshToken").Value,
3838
MarketPlace = MarketPlace.GetMarketPlaceByID(config.GetSection("FikaAmazonAPI:MarketPlaceID").Value),
39-
IsDebugMode=true
39+
IsDebugMode = true
4040
});
4141

42+
OrdersSample ordersSample1 = new OrdersSample(amazonConnection);
43+
ordersSample1.GetOrdersPIIAdvance();
44+
ordersSample1.GetOrdersPIISimple();
45+
4246

4347
var offfers = amazonConnection.ProductPricing.GetItemOffers(new Parameter.ProductPricing.ParameterGetItemOffers
4448
{
@@ -51,8 +55,7 @@ static async Task Main(string[] args)
5155
var dddd = amazonConnection.Seller.GetMarketplaceParticipations();
5256

5357
FeedsSample feedsSample = new FeedsSample(amazonConnection);
54-
OrdersSample ordersSample1 = new OrdersSample(amazonConnection);
55-
ordersSample1.GetOrdersPII();
58+
5659

5760

5861
ReportManager reportManageree = new ReportManager(amazonConnection);

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.5.16</Version>
11-
<AssemblyVersion>1.5.16</AssemblyVersion>
12-
<FileVersion>1.5.16</FileVersion>
10+
<Version>1.5.17</Version>
11+
<AssemblyVersion>1.5.17</AssemblyVersion>
12+
<FileVersion>1.5.17</FileVersion>
1313
<PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
1414
<PackageProjectUrl>https://github.com/abuzuhri/Amazon-SP-API-CSharp</PackageProjectUrl>
1515
<PackageLicenseExpression>MIT</PackageLicenseExpression>

Source/FikaAmazonAPI/Services/MerchantFulfillmentService.cs

Lines changed: 56 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
using FikaAmazonAPI.AmazonSpApiSDK.Models.MerchantFulfillment;
2+
using FikaAmazonAPI.AmazonSpApiSDK.Models.Token;
23
using FikaAmazonAPI.Search;
34
using FikaAmazonAPI.Utils;
5+
using System.Collections.Generic;
46
using System.Threading.Tasks;
57

68
namespace FikaAmazonAPI.Services
@@ -43,6 +45,19 @@ public Shipment GetShipment(string shipmentId, IParameterBasedPII ParameterBased
4345
Task.Run(() => GetShipmentAsync(shipmentId, ParameterBasedPII = null)).ConfigureAwait(false).GetAwaiter().GetResult();
4446
public async Task<Shipment> GetShipmentAsync(string shipmentId, IParameterBasedPII ParameterBasedPII = null)
4547
{
48+
if (ParameterBasedPII != null && ParameterBasedPII.IsNeedRestrictedDataToken && ParameterBasedPII.RestrictedDataTokenRequest == null)
49+
{
50+
var restrictedResource = new RestrictedResource();
51+
restrictedResource.method = Method.GET.ToString();
52+
restrictedResource.path = MerchantFulfillmentApiUrls.GetShipment(shipmentId);
53+
54+
var createRDT = new CreateRestrictedDataTokenRequest()
55+
{
56+
restrictedResources = new List<RestrictedResource> { restrictedResource }
57+
};
58+
ParameterBasedPII.RestrictedDataTokenRequest = createRDT;
59+
}
60+
4661
await CreateAuthorizedRequestAsync(MerchantFulfillmentApiUrls.GetShipment(shipmentId), RestSharp.Method.Get, parameter: ParameterBasedPII);
4762

4863
var response = await ExecuteRequestAsync<GetShipmentResponse>(RateLimitType.MerchantFulFillment_GetShipment);
@@ -54,6 +69,19 @@ public Shipment CancelShipment(string shipmentId, IParameterBasedPII parameterBa
5469
Task.Run(() => CancelShipmentAsync(shipmentId, parameterBasedPII)).ConfigureAwait(false).GetAwaiter().GetResult();
5570
public async Task<Shipment> CancelShipmentAsync(string shipmentId, IParameterBasedPII parameterBasedPII = null)
5671
{
72+
if (parameterBasedPII != null && parameterBasedPII.IsNeedRestrictedDataToken && parameterBasedPII.RestrictedDataTokenRequest == null)
73+
{
74+
var restrictedResource = new RestrictedResource();
75+
restrictedResource.method = Method.DELETE.ToString();
76+
restrictedResource.path = MerchantFulfillmentApiUrls.GetShipment(shipmentId);
77+
78+
var createRDT = new CreateRestrictedDataTokenRequest()
79+
{
80+
restrictedResources = new List<RestrictedResource> { restrictedResource }
81+
};
82+
parameterBasedPII.RestrictedDataTokenRequest = createRDT;
83+
}
84+
5785
await CreateAuthorizedRequestAsync(MerchantFulfillmentApiUrls.GetShipment(shipmentId), RestSharp.Method.Delete, parameter: parameterBasedPII);
5886

5987
var response = await ExecuteRequestAsync<GetShipmentResponse>(RateLimitType.MerchantFulFillment_CancelShipment);
@@ -64,9 +92,22 @@ public async Task<Shipment> CancelShipmentAsync(string shipmentId, IParameterBas
6492

6593
public Shipment CancelShipmentOld(string shipmentId, IParameterBasedPII parameterBasedPII = null) =>
6694
Task.Run(() => CancelShipmentOldAsync(shipmentId, parameterBasedPII)).ConfigureAwait(false).GetAwaiter().GetResult();
67-
public async Task<Shipment> CancelShipmentOldAsync(string shipmentId, IParameterBasedPII ParameterBasedPII = null)
95+
public async Task<Shipment> CancelShipmentOldAsync(string shipmentId, IParameterBasedPII parameterBasedPII = null)
6896
{
69-
await CreateAuthorizedRequestAsync(MerchantFulfillmentApiUrls.CancelShipmentOld(shipmentId), RestSharp.Method.Put, parameter: ParameterBasedPII);
97+
if (parameterBasedPII != null && parameterBasedPII.IsNeedRestrictedDataToken && parameterBasedPII.RestrictedDataTokenRequest == null)
98+
{
99+
var restrictedResource = new RestrictedResource();
100+
restrictedResource.method = Method.PUT.ToString();
101+
restrictedResource.path = MerchantFulfillmentApiUrls.CancelShipmentOld(shipmentId);
102+
103+
var createRDT = new CreateRestrictedDataTokenRequest()
104+
{
105+
restrictedResources = new List<RestrictedResource> { restrictedResource }
106+
};
107+
parameterBasedPII.RestrictedDataTokenRequest = createRDT;
108+
}
109+
110+
await CreateAuthorizedRequestAsync(MerchantFulfillmentApiUrls.CancelShipmentOld(shipmentId), RestSharp.Method.Put, parameter: parameterBasedPII);
70111

71112
var response = await ExecuteRequestAsync<GetShipmentResponse>(RateLimitType.MerchantFulFillment_CancelShipmentOld);
72113
if (response != null && response.Payload != null)
@@ -78,6 +119,19 @@ public Shipment CreateShipment(CreateShipmentRequest createShipmentRequest, IPar
78119
Task.Run(() => CreateShipmentAsync(createShipmentRequest, parameterBasedPII)).ConfigureAwait(false).GetAwaiter().GetResult();
79120
public async Task<Shipment> CreateShipmentAsync(CreateShipmentRequest createShipmentRequest, IParameterBasedPII parameterBasedPII = null)
80121
{
122+
if (parameterBasedPII != null && parameterBasedPII.IsNeedRestrictedDataToken && parameterBasedPII.RestrictedDataTokenRequest == null)
123+
{
124+
var restrictedResource = new RestrictedResource();
125+
restrictedResource.method = Method.POST.ToString();
126+
restrictedResource.path = MerchantFulfillmentApiUrls.CreateShipment;
127+
128+
var createRDT = new CreateRestrictedDataTokenRequest()
129+
{
130+
restrictedResources = new List<RestrictedResource> { restrictedResource }
131+
};
132+
parameterBasedPII.RestrictedDataTokenRequest = createRDT;
133+
}
134+
81135
await CreateAuthorizedRequestAsync(MerchantFulfillmentApiUrls.CreateShipment, RestSharp.Method.Post, postJsonObj: createShipmentRequest, parameter: parameterBasedPII);
82136

83137
var response = await ExecuteRequestAsync<CreateShipmentResponse>(RateLimitType.MerchantFulFillment_CreateShipment);

Source/FikaAmazonAPI/Services/OrderService.cs

Lines changed: 48 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using FikaAmazonAPI.AmazonSpApiSDK.Models.Orders;
2+
using FikaAmazonAPI.AmazonSpApiSDK.Models.Token;
23
using FikaAmazonAPI.Parameter.Order;
34
using FikaAmazonAPI.Search;
45
using System.Collections.Generic;
@@ -19,13 +20,30 @@ public OrderList GetOrders(ParameterOrderList searchOrderList) =>
1920
Task.Run(() => GetOrdersAsync(searchOrderList)).ConfigureAwait(false).GetAwaiter().GetResult();
2021
public async Task<OrderList> GetOrdersAsync(ParameterOrderList searchOrderList)
2122
{
23+
2224
var orderList = new OrderList();
2325

2426
if (searchOrderList.MarketplaceIds == null || searchOrderList.MarketplaceIds.Count == 0)
2527
{
2628
searchOrderList.MarketplaceIds = new List<string>();
2729
searchOrderList.MarketplaceIds.Add(AmazonCredential.MarketPlace.ID);
2830
}
31+
32+
if (searchOrderList.IsNeedRestrictedDataToken && searchOrderList.RestrictedDataTokenRequest == null)
33+
{
34+
var restrictedResource = new RestrictedResource();
35+
restrictedResource.method = Method.GET.ToString();
36+
restrictedResource.path = OrdersApiUrls.Orders;
37+
restrictedResource.dataElements = new List<string> { "buyerInfo", "shippingAddress" };
38+
39+
40+
var createRDT = new CreateRestrictedDataTokenRequest()
41+
{
42+
restrictedResources = new List<RestrictedResource> { restrictedResource }
43+
};
44+
searchOrderList.RestrictedDataTokenRequest = createRDT;
45+
}
46+
2947
var queryParameters = searchOrderList.getParameters();
3048

3149
await CreateAuthorizedRequestAsync(OrdersApiUrls.Orders, RestSharp.Method.Get, queryParameters, parameter: searchOrderList);
@@ -76,19 +94,47 @@ public Order GetOrder(ParameterGetOrder parameter) =>
7694
Task.Run(() => GetOrderAsync(parameter)).ConfigureAwait(false).GetAwaiter().GetResult();
7795
public async Task<Order> GetOrderAsync(ParameterGetOrder parameter)
7896
{
97+
if (parameter.IsNeedRestrictedDataToken && parameter.RestrictedDataTokenRequest == null)
98+
{
99+
var restrictedResource = new RestrictedResource();
100+
restrictedResource.method = Method.GET.ToString();
101+
restrictedResource.path = OrdersApiUrls.Order(parameter.OrderId);
102+
restrictedResource.dataElements = new List<string> { "buyerInfo", "shippingAddress" };
103+
104+
105+
var createRDT = new CreateRestrictedDataTokenRequest()
106+
{
107+
restrictedResources = new List<RestrictedResource> { restrictedResource }
108+
};
109+
parameter.RestrictedDataTokenRequest = createRDT;
110+
}
111+
79112
await CreateAuthorizedRequestAsync(OrdersApiUrls.Order(parameter.OrderId), RestSharp.Method.Get, parameter: parameter);
80113
var response = await ExecuteRequestAsync<GetOrderResponse>(Utils.RateLimitType.Order_GetOrder);
81114
if (response != null && response.Payload != null)
82115
return response.Payload;
83116
else return null;
84117
}
85-
86-
87118
public OrderItemList GetOrderItems(string orderId, IParameterBasedPII parameterBasedPII = null) =>
88119
Task.Run(() => GetOrderItemsAsync(orderId, parameterBasedPII)).ConfigureAwait(false).GetAwaiter().GetResult();
89120
public async Task<OrderItemList> GetOrderItemsAsync(string orderId, IParameterBasedPII ParameterBasedPII = null)
90121
{
91122
var orderItemList = new OrderItemList();
123+
124+
if (ParameterBasedPII != null && ParameterBasedPII.IsNeedRestrictedDataToken && ParameterBasedPII.RestrictedDataTokenRequest == null)
125+
{
126+
var restrictedResource = new RestrictedResource();
127+
restrictedResource.method = Method.GET.ToString();
128+
restrictedResource.path = OrdersApiUrls.OrderItems(orderId);
129+
restrictedResource.dataElements = new List<string> { "buyerInfo", "shippingAddress" };
130+
131+
var createRDT = new CreateRestrictedDataTokenRequest()
132+
{
133+
restrictedResources = new List<RestrictedResource> { restrictedResource }
134+
};
135+
ParameterBasedPII.RestrictedDataTokenRequest = createRDT;
136+
}
137+
92138
await CreateAuthorizedRequestAsync(OrdersApiUrls.OrderItems(orderId), RestSharp.Method.Get, parameter: ParameterBasedPII);
93139
var response = await ExecuteRequestAsync<GetOrderItemsResponse>(Utils.RateLimitType.Order_GetOrderItems);
94140
var nextToken = response.Payload.NextToken;

Source/FikaAmazonAPI/Services/RequestService.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -153,8 +153,8 @@ private void LogRequest(RestRequest request, RestResponse response)
153153
responseUri = response.ResponseUri,
154154
errorMessage = response.ErrorMessage,
155155
};
156-
157-
Console.WriteLine(string.Format("Request completed, Request: {0}, Response: {1}",
156+
Console.WriteLine("\n\n");
157+
Console.WriteLine(string.Format("Request completed, \nRequest: {0} \n\nResponse: {1}",
158158
JsonConvert.SerializeObject(requestToLog),
159159
JsonConvert.SerializeObject(responseToLog)));
160160
}

0 commit comments

Comments
 (0)