Skip to content

Commit

Permalink
**APIs added**:
Browse files Browse the repository at this point in the history
A new resource called Order is introduced. This can be used for integrating ChargeBee with any shipping/order management application (like ShipStation). Orders are not automatically generated or updated by ChargeBee currently. They have to be created/updated either via api or merchant web console (a.k.a admin console). An order can be created against an invoice irrespective of the status of the invoice and an invoice can have multiple orders associated with it.
See https://apidocs.chargebee.com/docs/api/orders for details.

**API Updates**:
Ability to filter Invoices with painOnAfter. see https://apidocs.chargebee.com/docs/api/invoices#list_invoices.
  • Loading branch information
rraman committed Dec 2, 2014
1 parent 6403cfa commit bcf195e
Show file tree
Hide file tree
Showing 10 changed files with 329 additions and 4 deletions.
10 changes: 10 additions & 0 deletions CHANGELOG.md
@@ -1,3 +1,13 @@
### v1.1.51 (2014-12-02)
* * *

**APIs added**:
A new resource called Order is introduced. This can be used for integrating ChargeBee with any shipping/order management application (like ShipStation). Orders are not automatically generated or updated by ChargeBee currently. They have to be created/updated either via api or merchant web console (a.k.a admin console). An order can be created against an invoice irrespective of the status of the invoice and an invoice can have multiple orders associated with it.
See https://apidocs.chargebee.com/docs/api/orders?lang=java for details.

**API Updates**:
Ability to filter Invoices with paidOnAfter parameter. See https://apidocs.chargebee.com/docs/api/invoices?lang=java#list_invoices.

### v1.1.50 (2014-11-24)
* * *

Expand Down
Binary file removed dist/chargebee-java-1.1.50-javadoc.jar
Binary file not shown.
Binary file added dist/chargebee-java-1.1.51-javadoc.jar
Binary file not shown.
Binary file not shown.
Binary file not shown.
2 changes: 1 addition & 1 deletion pom.xml
Expand Up @@ -4,7 +4,7 @@

<groupId>com.chargebee</groupId>
<artifactId>chargebee-java</artifactId>
<version>1.1.49-SNAPSHOT</version>
<version>1.1.51-SNAPSHOT</version>

<packaging>jar</packaging>

Expand Down
2 changes: 1 addition & 1 deletion src/main/java/com/chargebee/Environment.java
Expand Up @@ -32,7 +32,7 @@ public class Environment {

public static final String API_VERSION = "v1";

public static final String LIBRARY_VERSION = "1.1.50";
public static final String LIBRARY_VERSION = "1.1.51";

private final String apiBaseUrl;

Expand Down
4 changes: 4 additions & 0 deletions src/main/java/com/chargebee/internal/ResultBase.java
Expand Up @@ -28,6 +28,10 @@ public Invoice invoice() {
return (Invoice)get("invoice");
}

public Order order() {
return (Order)get("order");
}

public Transaction transaction() {
return (Transaction)get("transaction");
}
Expand Down
93 changes: 91 additions & 2 deletions src/main/java/com/chargebee/models/Invoice.java
Expand Up @@ -152,6 +152,61 @@ public Integer txnAmount() {

}

public static class LinkedOrder extends Resource<LinkedOrder> {
public enum Status {
NEW, PROCESSING, COMPLETE, CANCELLED, VOIDED;
}

public LinkedOrder(JSONObject jsonObj) {
super(jsonObj);
}

public String id() {
return reqString("id");
}

public String invoiceId() {
return reqString("invoice_id");
}

public Status status() {
return optEnum("status", Status.class);
}

public String referenceId() {
return optString("reference_id");
}

public String fulfillmentStatus() {
return optString("fulfillment_status");
}

public String note() {
return optString("note");
}

public String trackingId() {
return optString("tracking_id");
}

public String batchId() {
return optString("batch_id");
}

public String createdBy() {
return optString("created_by");
}

public Timestamp createdAt() {
return reqTimestamp("created_at");
}

public Timestamp statusUpdateAt() {
return reqTimestamp("status_update_at");
}

}

//Constructors
//============

Expand Down Expand Up @@ -234,6 +289,10 @@ public List<Invoice.LinkedTransaction> linkedTransactions() {
return optList("linked_transactions", Invoice.LinkedTransaction.class);
}

public List<Invoice.LinkedOrder> linkedOrders() {
return optList("linked_orders", Invoice.LinkedOrder.class);
}

// Operations
//===========

Expand All @@ -247,9 +306,9 @@ public static ChargeAddonRequest chargeAddon() throws IOException {
return new ChargeAddonRequest(Method.POST, uri);
}

public static ListRequest list() throws IOException {
public static InvoiceListRequest list() throws IOException {
String uri = uri("invoices");
return new ListRequest(uri);
return new InvoiceListRequest(uri);
}

public static ListRequest invoicesForCustomer(String id) throws IOException {
Expand Down Expand Up @@ -380,6 +439,36 @@ public Params params() {
}
}

public static class InvoiceListRequest extends ListRequest<InvoiceListRequest> {

private InvoiceListRequest(String uri) {
super(uri);
}

public InvoiceListRequest limit(Integer limit) {
params.addOpt("limit", limit);
return this;
}


public InvoiceListRequest offset(String offset) {
params.addOpt("offset", offset);
return this;
}


public InvoiceListRequest paidOnAfter(Timestamp paidOnAfter) {
params.addOpt("paid_on_after", paidOnAfter);
return this;
}


@Override
public Params params() {
return params;
}
}

public static class AddChargeRequest extends Request<AddChargeRequest> {

private AddChargeRequest(Method httpMeth, String uri) {
Expand Down
222 changes: 222 additions & 0 deletions src/main/java/com/chargebee/models/Order.java
@@ -0,0 +1,222 @@
package com.chargebee.models;

import com.chargebee.*;
import com.chargebee.internal.*;
import com.chargebee.internal.HttpUtil.Method;
import com.chargebee.models.enums.*;
import org.json.*;
import java.io.*;
import java.sql.Timestamp;
import java.util.*;

public class Order extends Resource<Order> {

public enum Status {
NEW,
PROCESSING,
COMPLETE,
CANCELLED,
VOIDED,
_UNKNOWN; /*Indicates unexpected value for this enum. You can get this when there is a
java-client version incompatibility. We suggest you to upgrade to the latest version */
}

//Constructors
//============

public Order(String jsonStr) {
super(jsonStr);
}

public Order(JSONObject jsonObj) {
super(jsonObj);
}

// Fields
//=======

public String id() {
return reqString("id");
}

public String invoiceId() {
return reqString("invoice_id");
}

public Status status() {
return optEnum("status", Status.class);
}

public String referenceId() {
return optString("reference_id");
}

public String fulfillmentStatus() {
return optString("fulfillment_status");
}

public String note() {
return optString("note");
}

public String trackingId() {
return optString("tracking_id");
}

public String batchId() {
return optString("batch_id");
}

public String createdBy() {
return optString("created_by");
}

public Timestamp createdAt() {
return reqTimestamp("created_at");
}

public Timestamp statusUpdateAt() {
return reqTimestamp("status_update_at");
}

// Operations
//===========

public static CreateRequest create() throws IOException {
String uri = uri("orders");
return new CreateRequest(Method.POST, uri);
}

public static UpdateRequest update(String id) throws IOException {
String uri = uri("orders", nullCheck(id));
return new UpdateRequest(Method.POST, uri);
}

public static Request retrieve(String id) throws IOException {
String uri = uri("orders", nullCheck(id));
return new Request(Method.GET, uri);
}

public static ListRequest list() throws IOException {
String uri = uri("orders");
return new ListRequest(uri);
}

public static ListRequest ordersForInvoice(String id) throws IOException {
String uri = uri("invoices", nullCheck(id), "orders");
return new ListRequest(uri);
}


// Operation Request Classes
//==========================

public static class CreateRequest extends Request<CreateRequest> {

private CreateRequest(Method httpMeth, String uri) {
super(httpMeth, uri);
}

public CreateRequest id(String id) {
params.addOpt("id", id);
return this;
}


public CreateRequest invoiceId(String invoiceId) {
params.add("invoice_id", invoiceId);
return this;
}


public CreateRequest status(Status status) {
params.addOpt("status", status);
return this;
}


public CreateRequest referenceId(String referenceId) {
params.addOpt("reference_id", referenceId);
return this;
}


public CreateRequest fulfillmentStatus(String fulfillmentStatus) {
params.addOpt("fulfillment_status", fulfillmentStatus);
return this;
}


public CreateRequest note(String note) {
params.addOpt("note", note);
return this;
}


public CreateRequest trackingId(String trackingId) {
params.addOpt("tracking_id", trackingId);
return this;
}


public CreateRequest batchId(String batchId) {
params.addOpt("batch_id", batchId);
return this;
}


@Override
public Params params() {
return params;
}
}

public static class UpdateRequest extends Request<UpdateRequest> {

private UpdateRequest(Method httpMeth, String uri) {
super(httpMeth, uri);
}

public UpdateRequest status(Status status) {
params.addOpt("status", status);
return this;
}


public UpdateRequest referenceId(String referenceId) {
params.addOpt("reference_id", referenceId);
return this;
}


public UpdateRequest fulfillmentStatus(String fulfillmentStatus) {
params.addOpt("fulfillment_status", fulfillmentStatus);
return this;
}


public UpdateRequest note(String note) {
params.addOpt("note", note);
return this;
}


public UpdateRequest trackingId(String trackingId) {
params.addOpt("tracking_id", trackingId);
return this;
}


public UpdateRequest batchId(String batchId) {
params.addOpt("batch_id", batchId);
return this;
}


@Override
public Params params() {
return params;
}
}

}

0 comments on commit bcf195e

Please sign in to comment.