diff --git a/src/main/java/br/com/moip/API.java b/src/main/java/br/com/moip/API.java index 81c3de7..68a201f 100644 --- a/src/main/java/br/com/moip/API.java +++ b/src/main/java/br/com/moip/API.java @@ -83,7 +83,7 @@ public SubscriberAPI subscriber() { return new SubscriberAPI(client); } - public SubscriptionsAPI subscriptions() { - return new SubscriptionsAPI(client); + public SubscriptionAPI subscriptions() { + return new SubscriptionAPI(client); } } diff --git a/src/main/java/br/com/moip/Client.java b/src/main/java/br/com/moip/Client.java index f808d09..7881074 100644 --- a/src/main/java/br/com/moip/Client.java +++ b/src/main/java/br/com/moip/Client.java @@ -86,6 +86,11 @@ public T put(final String path, final Object object, final Class type) { return doRequest(props); } + public T put(final String path, final Class type) { + RequestProps props = RequestPropsBuilder.requestPropsBuilder().method("PUT").path(path).type(type).contentType(ContentType.APPLICATION_JSON); + return doRequest(props); + } + public T get(String path, Class type) { RequestProps props = RequestPropsBuilder.requestPropsBuilder().method("GET").path(path).type(type).contentType(ContentType.APPLICATION_JSON); return doRequest(props); diff --git a/src/main/java/br/com/moip/api/SubscriberAPI.java b/src/main/java/br/com/moip/api/SubscriberAPI.java index af6f3d9..b8cad68 100644 --- a/src/main/java/br/com/moip/api/SubscriberAPI.java +++ b/src/main/java/br/com/moip/api/SubscriberAPI.java @@ -75,18 +75,18 @@ public Subscriber get(String code) { * @return * Return 200 OK if everything was right */ - public Message updateSubscriber (Subscriber sub) { + public Message update(Subscriber sub) { return client.put(String.format("/assinaturas/v1/customers/%s", sub.getCode()), sub, Message.class); } /** - * This method will update a Subscriber's Billing Info, if it exist - * @param sub - * The sub that will be updated + * This method will update a Subscriber's Billing Info, if it exists + * @param code the subscriber code + * @param billingInfo the new subscriber billing info * @return * Return 200 OK if everything was right */ - public Message updateSubscriberBillingInfo (Subscriber sub) { - return client.put(String.format("/assinaturas/v1/customers/%s/billing_infos", sub.getCode()), sub.getBillingInfo(), Message.class); + public Message updateBillingInfo(String code, BillingInfo billingInfo) { + return client.put(String.format("/assinaturas/v1/customers/%s/billing_infos", code), billingInfo, Message.class); } } diff --git a/src/main/java/br/com/moip/api/SubscriptionsAPI.java b/src/main/java/br/com/moip/api/SubscriptionAPI.java similarity index 75% rename from src/main/java/br/com/moip/api/SubscriptionsAPI.java rename to src/main/java/br/com/moip/api/SubscriptionAPI.java index d752f76..3b33f07 100644 --- a/src/main/java/br/com/moip/api/SubscriptionsAPI.java +++ b/src/main/java/br/com/moip/api/SubscriptionAPI.java @@ -12,26 +12,25 @@ * @version 0.1 */ -public class SubscriptionsAPI { +public class SubscriptionAPI { private final Client client; /** * Client that will make the request * @param client */ - public SubscriptionsAPI(Client client) { + public SubscriptionAPI(Client client) { this.client = client; } /** * This methods create a new Subscriptions - * @param subs - * The parameter is the Plan that will be created - * @return - * Return the Subscriptions with the ID auto generated from the WireCard API + * @param newCustomer indicates whether the customer is new or not + * @param subs the subscription to be created + * @return generated subscription */ - public SubscriptionResponse create(SubscriptionRequest subs) { - return client.post("/assinaturas/v1/subscriptions", subs, SubscriptionResponse.class); + public SubscriptionResponse create(boolean newCustomer, SubscriptionRequest subs) { + return client.post(String.format("/assinaturas/v1/subscriptions?new_customer=%s", newCustomer), subs, SubscriptionResponse.class); } /** @@ -61,7 +60,7 @@ public SubscriptionResponse get(String code) { * @return * Return nothing, but it will verify the response code if 200 it suspend successfully */ - public Message suspendSubscriptions (SubscriptionRequest subs) { + public Message suspend(SubscriptionRequest subs) { return client.put(String.format("/assinaturas/v1/subscriptions/%s/suspend", subs.getCode()), subs, Message.class); } @@ -72,18 +71,17 @@ public Message suspendSubscriptions (SubscriptionRequest subs) { * @return * Return void, the way to know if everything goes will is by the answer from the API 200 = OK */ - public Message reactiveSubscriptions (SubscriptionRequest subs) { + public Message reactivate(SubscriptionRequest subs) { return client.put(String.format("/assinaturas/v1/subscriptions/%s/activate", subs.getCode()), subs, Message.class); } /** * This method inactive the received Plan using the WireCard API - * @param subs - * The plan to be desactivated + * @param code the code of the subscription to be cancelled * @return */ - public Message cancelSubscriptions (SubscriptionRequest subs) { - return client.put(String.format("/assinaturas/v1/subscriptions/%s/cancel", subs.getCode()), subs, Message.class); + public Message cancel(String code) { + return client.put(String.format("/assinaturas/v1/subscriptions/%s/cancel", code), Message.class); } /** @@ -93,7 +91,7 @@ public Message cancelSubscriptions (SubscriptionRequest subs) { * @return * Return 200 OK if everithing was right */ - public Message updateSubscriptionPlan (SubscriptionRequest subs) { + public Message update(SubscriptionRequest subs) { return client.put(String.format("/assinaturas/v1/subscriptions/%s", subs.getCode()), subs, Message.class); } } diff --git a/src/main/java/br/com/moip/api/SubscriptionPlanAPI.java b/src/main/java/br/com/moip/api/SubscriptionPlanAPI.java index 188c2d9..dd7f63a 100644 --- a/src/main/java/br/com/moip/api/SubscriptionPlanAPI.java +++ b/src/main/java/br/com/moip/api/SubscriptionPlanAPI.java @@ -62,7 +62,7 @@ public SubscriptionPlan get(String code) { * @return * Return nothing, but it will verify the response code if 200 it activated successfully */ - public SubscriptionPlan activateSubscriptionPlan (SubscriptionPlan plan) { + public SubscriptionPlan activate(SubscriptionPlan plan) { return client.put(String.format("/assinaturas/v1/plans/%s/activate", plan.getCode()), plan, SubscriptionPlan.class); } @@ -72,7 +72,7 @@ public SubscriptionPlan activateSubscriptionPlan (SubscriptionPlan plan) { * The plan to be desactivated * @return */ - public SubscriptionPlan desactivateSubscriptionPlan (SubscriptionPlan plan) { + public SubscriptionPlan deactivate(SubscriptionPlan plan) { return client.put(String.format("/assinaturas/v1/plans/%s/inactivate", plan.getCode()), plan, SubscriptionPlan.class); } @@ -83,7 +83,7 @@ public SubscriptionPlan desactivateSubscriptionPlan (SubscriptionPlan plan) { * @return * Return 200 OK if everithing was right */ - public SubscriptionPlan updateSubscriptionPlan (SubscriptionPlan plan) { + public SubscriptionPlan update(SubscriptionPlan plan) { return client.put(String.format("/assinaturas/v1/plans/%s", plan.getCode()), plan, SubscriptionPlan.class); } } diff --git a/src/main/java/br/com/moip/resource/links/SubscriptionLinks.java b/src/main/java/br/com/moip/resource/links/SubscriptionLinks.java new file mode 100644 index 0000000..31ca9ad --- /dev/null +++ b/src/main/java/br/com/moip/resource/links/SubscriptionLinks.java @@ -0,0 +1,20 @@ +package br.com.moip.resource.links; + +import com.google.gson.annotations.SerializedName; + +public class SubscriptionLinks { + private Boleto boleto; + + public Boleto getBoleto() { + return boleto; + } + + public static class Boleto { + @SerializedName("redirect_href") + private String redirectHref; + + public String getRedirectHref() { + return redirectHref; + } + } +} diff --git a/src/main/java/br/com/moip/response/Response.java b/src/main/java/br/com/moip/response/Response.java index 8ff737c..c7e337a 100644 --- a/src/main/java/br/com/moip/response/Response.java +++ b/src/main/java/br/com/moip/response/Response.java @@ -1,7 +1,6 @@ package br.com.moip.response; import br.com.moip.resource.Alert; -import br.com.moip.resource.Message; /** * This class implements the basis that all responses could have from WireCard API @@ -12,7 +11,7 @@ public class Response { private Error[] errors; - private Message message; + private String message; private Alert[] alerts; boolean hasErrors() { @@ -47,11 +46,11 @@ public void setErrors(Error[] errors) { this.errors = errors; } - public Message getMessage() { + public String getMessage() { return message; } - public void setMessage(Message message) { + public void setMessage(String message) { this.message = message; } diff --git a/src/main/java/br/com/moip/response/SubscriptionResponse.java b/src/main/java/br/com/moip/response/SubscriptionResponse.java index c6e2479..9c9772d 100644 --- a/src/main/java/br/com/moip/response/SubscriptionResponse.java +++ b/src/main/java/br/com/moip/response/SubscriptionResponse.java @@ -2,6 +2,7 @@ import br.com.moip.resource.*; import br.com.moip.resource.Error; +import br.com.moip.resource.links.SubscriptionLinks; import com.google.gson.annotations.SerializedName; public class SubscriptionResponse extends Response{ @@ -47,6 +48,11 @@ public class SubscriptionResponse extends Response{ */ private InvoiceSubscription invoice; + /** + * Description: If the subscription was made with Boleto, this property is returned + */ + private SubscriptionLinks _links; + public SubscriptionResponse() { } @@ -115,4 +121,8 @@ public InvoiceSubscription getInvoice() { public void setInvoice(InvoiceSubscription invoice) { this.invoice = invoice; } + + public SubscriptionLinks getLinks() { + return _links; + } }