Skip to content

Commit

Permalink
Implement the getOrders endpoint.
Browse files Browse the repository at this point in the history
  • Loading branch information
ivanst-stoyanov committed Feb 12, 2016
1 parent 0fa66c3 commit fd3f0c1
Show file tree
Hide file tree
Showing 8 changed files with 183 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/main/java/com/nopcommerce/NopCommerceClient.java
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}
52 changes: 52 additions & 0 deletions src/main/java/com/nopcommerce/domain/Order.java
Original file line number Diff line number Diff line change
@@ -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<OrderItem> orderItems;

@JsonProperty(value = JsonConstants.CREATED_ON_UTC)
@JsonDeserialize(using = FlexDateDeserializer.class)
@JsonSerialize(using = FlexDateSerializer.class)
private Date createdDate;
}
15 changes: 15 additions & 0 deletions src/main/java/com/nopcommerce/domain/OrderItem.java
Original file line number Diff line number Diff line change
@@ -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;
}
14 changes: 14 additions & 0 deletions src/main/java/com/nopcommerce/domain/OrderList.java
Original file line number Diff line number Diff line change
@@ -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<Order> orders;
}
25 changes: 25 additions & 0 deletions src/main/java/com/nopcommerce/domain/OrderStatus.java
Original file line number Diff line number Diff line change
@@ -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;
}
}
30 changes: 30 additions & 0 deletions src/main/java/com/nopcommerce/domain/PaymentStatus.java
Original file line number Diff line number Diff line change
@@ -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;
}
}
28 changes: 28 additions & 0 deletions src/main/java/com/nopcommerce/domain/ShippingStatus.java
Original file line number Diff line number Diff line change
@@ -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;
}
}
16 changes: 16 additions & 0 deletions src/main/java/com/nopcommerce/json/JsonConstants.java
Original file line number Diff line number Diff line change
Expand Up @@ -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";
Expand All @@ -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";
}

0 comments on commit fd3f0c1

Please sign in to comment.