Skip to content

Commit 3e45fc7

Browse files
committed
Add new order methods
1 parent fcebe75 commit 3e45fc7

File tree

5 files changed

+202
-1
lines changed

5 files changed

+202
-1
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
namespace FikaAmazonAPI.AmazonSpApiSDK.Models.Orders
2+
{
3+
public class NoContentResult
4+
{
5+
}
6+
}
Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,122 @@
1+
using Newtonsoft.Json;
2+
using System;
3+
using System.Collections.Generic;
4+
using System.ComponentModel.DataAnnotations;
5+
using System.IO;
6+
using System.Runtime.Serialization;
7+
using System.Text;
8+
9+
namespace FikaAmazonAPI.AmazonSpApiSDK.Models.Orders
10+
{
11+
/// <summary>
12+
/// The request body for the updateVerificationStatus operation.
13+
/// </summary>
14+
[DataContract]
15+
public partial class UpdateVerificationStatusRequest : IEquatable<UpdateVerificationStatusRequest>, IValidatableObject
16+
{
17+
/// <summary>
18+
/// Initializes a new instance of the <see cref="UpdateVerificationStatusRequest" /> class.
19+
/// </summary>
20+
[JsonConstructorAttribute]
21+
protected UpdateVerificationStatusRequest() { }
22+
/// <summary>
23+
/// Initializes a new instance of the <see cref="UpdateVerificationStatusRequest" /> class.
24+
/// </summary>
25+
/// <param name="regulatedOrderVerificationStatus">The updated values of the VerificationStatus field. (required).</param>
26+
public UpdateVerificationStatusRequest(UpdateVerificationStatusRequestBody regulatedOrderVerificationStatus = default(UpdateVerificationStatusRequestBody))
27+
{
28+
// to ensure "regulatedOrderVerificationStatus" is required (not null)
29+
if (regulatedOrderVerificationStatus == null)
30+
{
31+
throw new InvalidDataException("regulatedOrderVerificationStatus is a required property for UpdateVerificationStatusRequest and cannot be null");
32+
}
33+
else
34+
{
35+
this.RegulatedOrderVerificationStatus = regulatedOrderVerificationStatus;
36+
}
37+
}
38+
39+
/// <summary>
40+
/// The updated values of the VerificationStatus field.
41+
/// </summary>
42+
/// <value>The updated values of the VerificationStatus field.</value>
43+
[DataMember(Name = "regulatedOrderVerificationStatus", EmitDefaultValue = false)]
44+
public UpdateVerificationStatusRequestBody RegulatedOrderVerificationStatus { get; set; }
45+
46+
/// <summary>
47+
/// Returns the string presentation of the object
48+
/// </summary>
49+
/// <returns>String presentation of the object</returns>
50+
public override string ToString()
51+
{
52+
var sb = new StringBuilder();
53+
sb.Append("class UpdateVerificationStatusRequest {\n");
54+
sb.Append(" RegulatedOrderVerificationStatus: ").Append(RegulatedOrderVerificationStatus).Append("\n");
55+
sb.Append("}\n");
56+
return sb.ToString();
57+
}
58+
59+
/// <summary>
60+
/// Returns the JSON string presentation of the object
61+
/// </summary>
62+
/// <returns>JSON string presentation of the object</returns>
63+
public virtual string ToJson()
64+
{
65+
return JsonConvert.SerializeObject(this, Formatting.Indented);
66+
}
67+
68+
/// <summary>
69+
/// Returns true if objects are equal
70+
/// </summary>
71+
/// <param name="input">Object to be compared</param>
72+
/// <returns>Boolean</returns>
73+
public override bool Equals(object input)
74+
{
75+
return this.Equals(input as UpdateVerificationStatusRequest);
76+
}
77+
78+
/// <summary>
79+
/// Returns true if UpdateVerificationStatusRequest instances are equal
80+
/// </summary>
81+
/// <param name="input">Instance of UpdateVerificationStatusRequest to be compared</param>
82+
/// <returns>Boolean</returns>
83+
public bool Equals(UpdateVerificationStatusRequest input)
84+
{
85+
if (input == null)
86+
return false;
87+
88+
return
89+
(
90+
this.RegulatedOrderVerificationStatus == input.RegulatedOrderVerificationStatus ||
91+
(this.RegulatedOrderVerificationStatus != null &&
92+
this.RegulatedOrderVerificationStatus.Equals(input.RegulatedOrderVerificationStatus))
93+
);
94+
}
95+
96+
/// <summary>
97+
/// Gets the hash code
98+
/// </summary>
99+
/// <returns>Hash code</returns>
100+
public override int GetHashCode()
101+
{
102+
unchecked // Overflow is fine, just wrap
103+
{
104+
int hashCode = 41;
105+
if (this.RegulatedOrderVerificationStatus != null)
106+
hashCode = hashCode * 59 + this.RegulatedOrderVerificationStatus.GetHashCode();
107+
return hashCode;
108+
}
109+
}
110+
111+
/// <summary>
112+
/// To validate all properties of the instance
113+
/// </summary>
114+
/// <param name="validationContext">Validation context</param>
115+
/// <returns>Validation Result</returns>
116+
IEnumerable<System.ComponentModel.DataAnnotations.ValidationResult> IValidatableObject.Validate(ValidationContext validationContext)
117+
{
118+
yield break;
119+
}
120+
}
121+
122+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
using FikaAmazonAPI.AmazonSpApiSDK.Models.Orders;
2+
using FikaAmazonAPI.Search;
3+
using System.Collections.Generic;
4+
5+
namespace FikaAmazonAPI.Parameter.Order
6+
{
7+
public class ParameterGetOrderItemsApprovals : ParameterBased
8+
{
9+
public string OrderId { get; set; }
10+
public string NextToken { get; set; }
11+
public IList<ItemApprovalType> ItemApprovalTypes { get; set; }
12+
public IList<ItemApprovalStatus> ItemApprovalStatus { get; set; }
13+
}
14+
}

Source/FikaAmazonAPI/Services/ApiUrls.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -532,6 +532,12 @@ public static string Orders
532532
public static string OrderBuyerInfo(string orderId) => $"{_resourceBaseUrl}/orders/{orderId}/buyerInfo";
533533
public static string OrderItemsBuyerInfo(string orderId) => $"{_resourceBaseUrl}/orders/{orderId}/orderItems/buyerInfo";
534534
public static string OrderShipmentInfo(string orderId) => $"{_resourceBaseUrl}/orders/{orderId}/address";
535+
public static string UpdateShipmentStatus(string orderId) => $"{_resourceBaseUrl}/orders/{orderId}/shipment";
536+
public static string GetOrderRegulatedInfo(string orderId) => $"{_resourceBaseUrl}/orders/{orderId}/regulatedInfo";
537+
public static string UpdateVerificationStatus(string orderId) => $"{_resourceBaseUrl}/orders/{orderId}/regulatedInfo";
538+
public static string GetOrderItemsApprovals(string orderId) => $"{_resourceBaseUrl}/orders/{orderId}/approvals";
539+
public static string UpdateOrderItemsApprovals(string orderId) => $"{_resourceBaseUrl}/orders/{orderId}/approvals";
540+
public static string ConfirmShipment(string orderId) => $"{_resourceBaseUrl}/orders/{orderId}/shipmentConfirmation";
535541
}
536542

537543
protected class CategoryApiUrls

Source/FikaAmazonAPI/Services/OrderService.cs

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ public async Task<OrderList> GetOrdersAsync(ParameterOrderList searchOrderList,
6060
{
6161
while (!string.IsNullOrEmpty(nextToken))
6262
{
63-
var orderPayload = await GetGetOrdersByNextTokenAsync(nextToken, searchOrderList, cancellationToken);
63+
var orderPayload = await GetGetOrdersByNextTokenAsync(nextToken, searchOrderList, cancellationToken);
6464
orderList.AddRange(orderPayload.Orders);
6565
nextToken = orderPayload.NextToken;
6666

@@ -190,5 +190,58 @@ public async Task<Address> GetOrderAddressAsync(string orderId, CancellationToke
190190
var response = await ExecuteRequestAsync<GetOrderAddressResponse>(Utils.RateLimitType.Order_GetOrderAddress, cancellationToken);
191191
return response.Payload.ShippingAddress;
192192
}
193+
194+
public bool UpdateShipmentStatus(string orderId, UpdateShipmentStatusRequest updateShipmentStatusRequest) =>
195+
Task.Run(() => UpdateShipmentStatusAsync(orderId, updateShipmentStatusRequest)).ConfigureAwait(false).GetAwaiter().GetResult();
196+
public async Task<bool> UpdateShipmentStatusAsync(string orderId, UpdateShipmentStatusRequest updateShipmentStatusRequest, CancellationToken cancellationToken = default)
197+
{
198+
await CreateAuthorizedRequestAsync(OrdersApiUrls.UpdateShipmentStatus(orderId), RestSharp.Method.Post, postJsonObj: updateShipmentStatusRequest, cancellationToken: cancellationToken);
199+
200+
var response = await ExecuteRequestAsync<NoContentResult>(Utils.RateLimitType.Order_UpdateShipmentStatus, cancellationToken);
201+
return true;
202+
}
203+
204+
205+
public OrderRegulatedInfo GetOrderRegulatedInfo(string orderId) =>
206+
Task.Run(() => GetOrderRegulatedInfoAsync(orderId)).ConfigureAwait(false).GetAwaiter().GetResult();
207+
public async Task<OrderRegulatedInfo> GetOrderRegulatedInfoAsync(string orderId, CancellationToken cancellationToken = default)
208+
{
209+
await CreateAuthorizedRequestAsync(OrdersApiUrls.GetOrderRegulatedInfo(orderId), RestSharp.Method.Get, cancellationToken: cancellationToken);
210+
var response = await ExecuteRequestAsync<GetOrderRegulatedInfoResponse>(Utils.RateLimitType.Order_GetOrderRegulatedInfo, cancellationToken);
211+
return response.Payload;
212+
}
213+
214+
public bool UpdateVerificationStatus(string orderId, UpdateShipmentStatusRequest updateShipmentStatusRequest) =>
215+
Task.Run(() => UpdateVerificationStatusAsync(orderId, updateShipmentStatusRequest)).ConfigureAwait(false).GetAwaiter().GetResult();
216+
public async Task<bool> UpdateVerificationStatusAsync(string orderId, UpdateShipmentStatusRequest updateShipmentStatusRequest, CancellationToken cancellationToken = default)
217+
{
218+
await CreateAuthorizedRequestAsync(OrdersApiUrls.UpdateVerificationStatus(orderId), RestSharp.Method.Patch, postJsonObj: updateShipmentStatusRequest, cancellationToken: cancellationToken);
219+
220+
var response = await ExecuteRequestAsync<NoContentResult>(Utils.RateLimitType.Order_UpdateShipmentStatus, cancellationToken);
221+
return true;
222+
}
223+
224+
225+
public OrderApprovalsResponse GetOrderItemsApprovals(ParameterGetOrderItemsApprovals parameterGetOrderItemsApprovals) =>
226+
Task.Run(() => GetOrderItemsApprovalsAsync(parameterGetOrderItemsApprovals)).ConfigureAwait(false).GetAwaiter().GetResult();
227+
public async Task<OrderApprovalsResponse> GetOrderItemsApprovalsAsync(ParameterGetOrderItemsApprovals parameterGetOrderItemsApprovals, CancellationToken cancellationToken = default)
228+
{
229+
var queryParameters = parameterGetOrderItemsApprovals.getParameters();
230+
231+
await CreateAuthorizedRequestAsync(OrdersApiUrls.GetOrderItemsApprovals(parameterGetOrderItemsApprovals.OrderId), RestSharp.Method.Get, queryParameters, cancellationToken: cancellationToken);
232+
var response = await ExecuteRequestAsync<GetOrderApprovalsResponse>(Utils.RateLimitType.Order_GetOrderRegulatedInfo, cancellationToken);
233+
return response.Payload;
234+
}
235+
236+
237+
public bool ConfirmShipment(string orderId, ConfirmShipmentRequest confirmShipmentRequest) =>
238+
Task.Run(() => ConfirmShipmentAsync(orderId, confirmShipmentRequest)).ConfigureAwait(false).GetAwaiter().GetResult();
239+
public async Task<bool> ConfirmShipmentAsync(string orderId, ConfirmShipmentRequest confirmShipmentRequest, CancellationToken cancellationToken = default)
240+
{
241+
await CreateAuthorizedRequestAsync(OrdersApiUrls.ConfirmShipment(orderId), RestSharp.Method.Post, postJsonObj: confirmShipmentRequest, cancellationToken: cancellationToken);
242+
243+
var response = await ExecuteRequestAsync<NoContentResult>(Utils.RateLimitType.Order_UpdateShipmentStatus, cancellationToken);
244+
return true;
245+
}
193246
}
194247
}

0 commit comments

Comments
 (0)