From fd3f0c1af5a1d5dd0c23f8ad556e91eae7bd33a7 Mon Sep 17 00:00:00 2001 From: Ivan Stoyanov Date: Fri, 12 Feb 2016 12:55:33 +0200 Subject: [PATCH] Implement the getOrders endpoint. --- .../com/nopcommerce/NopCommerceClient.java | 3 ++ .../java/com/nopcommerce/domain/Order.java | 52 +++++++++++++++++++ .../com/nopcommerce/domain/OrderItem.java | 15 ++++++ .../com/nopcommerce/domain/OrderList.java | 14 +++++ .../com/nopcommerce/domain/OrderStatus.java | 25 +++++++++ .../com/nopcommerce/domain/PaymentStatus.java | 30 +++++++++++ .../nopcommerce/domain/ShippingStatus.java | 28 ++++++++++ .../com/nopcommerce/json/JsonConstants.java | 16 ++++++ 8 files changed, 183 insertions(+) create mode 100644 src/main/java/com/nopcommerce/domain/Order.java create mode 100644 src/main/java/com/nopcommerce/domain/OrderItem.java create mode 100644 src/main/java/com/nopcommerce/domain/OrderList.java create mode 100644 src/main/java/com/nopcommerce/domain/OrderStatus.java create mode 100644 src/main/java/com/nopcommerce/domain/PaymentStatus.java create mode 100644 src/main/java/com/nopcommerce/domain/ShippingStatus.java diff --git a/src/main/java/com/nopcommerce/NopCommerceClient.java b/src/main/java/com/nopcommerce/NopCommerceClient.java index 4b62075..7bc181c 100644 --- a/src/main/java/com/nopcommerce/NopCommerceClient.java +++ b/src/main/java/com/nopcommerce/NopCommerceClient.java @@ -19,4 +19,7 @@ public interface NopCommerceClient @RequestLine("GET /api/collects?limit={limit}&since_id={since-id}&page={page}&fields={fields}") ProductCategoryMappingList getProductCategoryMappings(@Param("limit") Integer limit, @Param("page") Integer page, @Param("since-id") String sinceId, @Param("fields") String fields); + + @RequestLine("GET /api/orders?limit={limit}&since_id={since-id}&page={page}&fields={fields}") + OrderList getOrders(@Param("limit") Integer limit, @Param("page") Integer page, @Param("since-id") String sinceId, @Param("fields") String fields); } diff --git a/src/main/java/com/nopcommerce/domain/Order.java b/src/main/java/com/nopcommerce/domain/Order.java new file mode 100644 index 0000000..90c4f55 --- /dev/null +++ b/src/main/java/com/nopcommerce/domain/Order.java @@ -0,0 +1,52 @@ +package com.nopcommerce.domain; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.nopcommerce.jackson.FlexDateDeserializer; +import com.nopcommerce.jackson.FlexDateSerializer; +import com.nopcommerce.json.JsonConstants; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +@Data +public class Order +{ + @JsonProperty(value = JsonConstants.ID) + private int id; + + @JsonProperty(value = JsonConstants.ORDER_TOTAL) + private BigDecimal orderTotal; + + @JsonProperty(value = JsonConstants.BILLING_ADDRESS) + private Address billingAddress; + + @JsonProperty(value = JsonConstants.SHIPPING_ADDRESS) + private Address shippingAddress; + + @JsonProperty(value = JsonConstants.CUSTOMER) + private Customer customer; + + @JsonProperty(value = JsonConstants.SHIPPING_METHOD) + private String shippingMethod; + + @JsonProperty(value = JsonConstants.ORDER_STATUS) + private OrderStatus orderStatus; + + @JsonProperty(value = JsonConstants.PAYMENT_STATUS) + private PaymentStatus paymentStatus; + + @JsonProperty(value = JsonConstants.SHIPPING_STATUS) + private ShippingStatus shippingStatus; + + @JsonProperty(value = JsonConstants.ORDER_ITEMS) + private List orderItems; + + @JsonProperty(value = JsonConstants.CREATED_ON_UTC) + @JsonDeserialize(using = FlexDateDeserializer.class) + @JsonSerialize(using = FlexDateSerializer.class) + private Date createdDate; +} diff --git a/src/main/java/com/nopcommerce/domain/OrderItem.java b/src/main/java/com/nopcommerce/domain/OrderItem.java new file mode 100644 index 0000000..cd62835 --- /dev/null +++ b/src/main/java/com/nopcommerce/domain/OrderItem.java @@ -0,0 +1,15 @@ +package com.nopcommerce.domain; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.nopcommerce.json.JsonConstants; +import lombok.Data; + +@Data +public class OrderItem +{ + @JsonProperty(value = JsonConstants.QUANTITY) + private int quantity; + + @JsonProperty(value = JsonConstants.PRODUCT) + private Product product; +} diff --git a/src/main/java/com/nopcommerce/domain/OrderList.java b/src/main/java/com/nopcommerce/domain/OrderList.java new file mode 100644 index 0000000..f11ac53 --- /dev/null +++ b/src/main/java/com/nopcommerce/domain/OrderList.java @@ -0,0 +1,14 @@ +package com.nopcommerce.domain; + +import com.fasterxml.jackson.annotation.JsonProperty; +import com.nopcommerce.json.JsonConstants; +import lombok.Data; + +import java.util.List; + +@Data +public class OrderList +{ + @JsonProperty(value = JsonConstants.ORDERS) + private List orders; +} diff --git a/src/main/java/com/nopcommerce/domain/OrderStatus.java b/src/main/java/com/nopcommerce/domain/OrderStatus.java new file mode 100644 index 0000000..6073577 --- /dev/null +++ b/src/main/java/com/nopcommerce/domain/OrderStatus.java @@ -0,0 +1,25 @@ +package com.nopcommerce.domain; + +import com.fasterxml.jackson.annotation.JsonValue; + +public enum OrderStatus +{ + Pending("Pending"), + + Processing("Processing"), + + Complete("Complete"), + + Cancelled("Cancelled"); + + private String value; + + OrderStatus(final String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return this.value; + } +} \ No newline at end of file diff --git a/src/main/java/com/nopcommerce/domain/PaymentStatus.java b/src/main/java/com/nopcommerce/domain/PaymentStatus.java new file mode 100644 index 0000000..16ccafa --- /dev/null +++ b/src/main/java/com/nopcommerce/domain/PaymentStatus.java @@ -0,0 +1,30 @@ +package com.nopcommerce.domain; + +import com.fasterxml.jackson.annotation.JsonValue; + +public enum PaymentStatus +{ + Pending("Pending"), + + Authorized("Authorized"), + + Paid("Paid"), + + PartiallyRefunded("PartiallyRefunded"), + + Refunded("Refunded"), + + Voided("Voided"); + + + private String value; + + PaymentStatus(final String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return this.value; + } +} \ No newline at end of file diff --git a/src/main/java/com/nopcommerce/domain/ShippingStatus.java b/src/main/java/com/nopcommerce/domain/ShippingStatus.java new file mode 100644 index 0000000..1658bc8 --- /dev/null +++ b/src/main/java/com/nopcommerce/domain/ShippingStatus.java @@ -0,0 +1,28 @@ +package com.nopcommerce.domain; + +import com.fasterxml.jackson.annotation.JsonValue; + +public enum ShippingStatus +{ + ShippingNotRequired("ShippingNotRequired"), + + NotYetShipped("NotYetShipped"), + + PartiallyShipped("PartiallyShipped"), + + Shipped("Shipped"), + + Delivered("Delivered"); + + + private String value; + + ShippingStatus(final String value) { + this.value = value; + } + + @JsonValue + public String getValue() { + return this.value; + } +} \ No newline at end of file diff --git a/src/main/java/com/nopcommerce/json/JsonConstants.java b/src/main/java/com/nopcommerce/json/JsonConstants.java index ea0edfb..4f0c3f6 100644 --- a/src/main/java/com/nopcommerce/json/JsonConstants.java +++ b/src/main/java/com/nopcommerce/json/JsonConstants.java @@ -30,6 +30,7 @@ public final class JsonConstants // Product public static final String PRODUCTS = "products"; + public static final String PRODUCT = "product"; public static final String SHORT_DESCRIPTION = "short_description"; public static final String FULL_DESCRIPTION = "full_description"; @@ -46,4 +47,19 @@ public final class JsonConstants public static final String PRODUCT_ID = "product_id"; public static final String CATEGORY_ID = "category_id"; + + // Order + public static final String ORDERS = "orders"; + + public static final String ORDER_TOTAL = "order_total"; + public static final String ORDER_ITEMS = "order_items"; + public static final String BILLING_ADDRESS = "billing_address"; + public static final String SHIPPING_ADDRESS = "shipping_address"; + public static final String CUSTOMER = "customer"; + public static final String ORDER_STATUS = "order_status"; + public static final String PAYMENT_STATUS = "payment_status"; + public static final String SHIPPING_STATUS = "shipping_status"; + public static final String SHIPPING_METHOD = "shipping_method"; + + public static final String QUANTITY = "quantity"; }