Details
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/CreditJson.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/CreditJson.java
index 4ec1ad7..c4c24ad 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/json/CreditJson.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/json/CreditJson.java
@@ -25,7 +25,6 @@ import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.ning.billing.invoice.api.InvoiceItem;
-// TODO: add invoice number, reason and requested date to the json
public class CreditJson {
private final BigDecimal creditAmount;
private final UUID invoiceId;
@@ -33,6 +32,7 @@ public class CreditJson {
private final DateTime requestedDate;
private final DateTime effectiveDate;
private final String reason;
+ private final UUID accountId;
@JsonCreator
public CreditJson(@JsonProperty("creditAmount") final BigDecimal creditAmount,
@@ -40,13 +40,15 @@ public class CreditJson {
@JsonProperty("invoiceNumber") final String invoiceNumber,
@JsonProperty("requestedDate") final DateTime requestedDate,
@JsonProperty("effectiveDate") final DateTime effectiveDate,
- @JsonProperty("reason") final String reason) {
+ @JsonProperty("reason") final String reason,
+ @JsonProperty("accountId") final UUID accountId) {
this.creditAmount = creditAmount;
this.invoiceId = invoiceId;
this.invoiceNumber = invoiceNumber;
this.requestedDate = requestedDate;
this.effectiveDate = effectiveDate;
this.reason = reason;
+ this.accountId = accountId;
}
public CreditJson(final InvoiceItem credit) {
@@ -56,6 +58,7 @@ public class CreditJson {
this.requestedDate = null;
this.effectiveDate = credit.getStartDate();
this.reason = null;
+ this.accountId = credit.getAccountId();
}
public BigDecimal getCreditAmount() {
@@ -82,6 +85,10 @@ public class CreditJson {
return reason;
}
+ public UUID getAccountId() {
+ return accountId;
+ }
+
@Override
public boolean equals(final Object o) {
if (this == o) {
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/CreditResource.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/CreditResource.java
index 226457e..85cae69 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/CreditResource.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/CreditResource.java
@@ -79,7 +79,6 @@ public class CreditResource implements JaxrsResource {
}
@POST
- @Path("/accounts/{accountId:" + UUID_PATTERN + "}")
@Consumes(APPLICATION_JSON)
@Produces(APPLICATION_JSON)
public Response createCredit(final CreditJson json,
@@ -106,33 +105,4 @@ public class CreditResource implements JaxrsResource {
return Response.status(Response.Status.BAD_REQUEST).entity(error).build();
}
}
-
-
}
-
-
-//POST /1.0/accounts/<account_id>/credits Creates a credit for that account 201 (CREATED), 400 (BAD_REQUEST), 404 (NOT_FOUND)
-//Semantics:
-//
-//All operations are synchronous
-//JSON Credit GET:
-// {
-// "accountId" : "theAccountId",
-// "credits" : [{
-// "requestedDate" : "2012-05-12T15:34:22.000Z",
-// "effectiveDate" : "2012-05-12T15:34:22.000Z",
-// "creditAmount" : 54.32,
-// "invoiceId" : "theInvoiceId",
-// "invoiceNumber" : "TheInvoiceNumber",
-// "reason" : "whatever"
-// }]
-// }
-//
-//JSON Credit POST:
-// {
-// "creditAmount" : 54.32,
-// "reason" : "whatever",
-// "requestedDate" : "2012-05-12T15:34:22.000Z",
-// "invoiceId" : "theInvoiceId",
-// "invoiceNumber" : "TheInvoiceNumber"
-// }
\ No newline at end of file
diff --git a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestCreditCollectionJson.java b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestCreditCollectionJson.java
index a1382cd..5a93778 100644
--- a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestCreditCollectionJson.java
+++ b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestCreditCollectionJson.java
@@ -47,7 +47,7 @@ public class TestCreditCollectionJson {
final DateTime requestedDate = new DateTime(DateTimeZone.UTC);
final DateTime effectiveDate = new DateTime(DateTimeZone.UTC);
final String reason = UUID.randomUUID().toString();
- final CreditJson creditJson = new CreditJson(creditAmount, invoiceId, invoiceNumber, requestedDate, effectiveDate, reason);
+ final CreditJson creditJson = new CreditJson(creditAmount, invoiceId, invoiceNumber, requestedDate, effectiveDate, reason, accountId);
final CreditCollectionJson creditCollectionJson = new CreditCollectionJson(accountId, ImmutableList.<CreditJson>of(creditJson));
Assert.assertEquals(creditCollectionJson.getAccountId(), accountId);
@@ -61,7 +61,8 @@ public class TestCreditCollectionJson {
"\"invoiceNumber\":\"" + creditJson.getInvoiceNumber() + "\"," +
"\"requestedDate\":\"" + creditJson.getRequestedDate() + "\"," +
"\"effectiveDate\":\"" + creditJson.getEffectiveDate() + "\"," +
- "\"reason\":\"" + creditJson.getReason() + "\"}]}");
+ "\"reason\":\"" + creditJson.getReason() + "\"," +
+ "\"accountId\":\"" + creditJson.getAccountId().toString() + "\"}]}");
final CreditCollectionJson fromJson = mapper.readValue(asJson, CreditCollectionJson.class);
Assert.assertEquals(fromJson, creditCollectionJson);
diff --git a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestCreditJson.java b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestCreditJson.java
index a182d2d..eee0cef 100644
--- a/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestCreditJson.java
+++ b/jaxrs/src/test/java/com/ning/billing/jaxrs/json/TestCreditJson.java
@@ -44,13 +44,16 @@ public class TestCreditJson {
final DateTime requestedDate = new DateTime(DateTimeZone.UTC);
final DateTime effectiveDate = new DateTime(DateTimeZone.UTC);
final String reason = UUID.randomUUID().toString();
- final CreditJson creditJson = new CreditJson(creditAmount, invoiceId, invoiceNumber, requestedDate, effectiveDate, reason);
+ final UUID accountId = UUID.randomUUID();
+
+ final CreditJson creditJson = new CreditJson(creditAmount, invoiceId, invoiceNumber, requestedDate, effectiveDate, reason, accountId);
Assert.assertEquals(creditJson.getRequestedDate(), requestedDate);
Assert.assertEquals(creditJson.getEffectiveDate(), effectiveDate);
Assert.assertEquals(creditJson.getCreditAmount(), creditAmount);
Assert.assertEquals(creditJson.getInvoiceId(), invoiceId);
Assert.assertEquals(creditJson.getInvoiceNumber(), invoiceNumber);
Assert.assertEquals(creditJson.getReason(), reason);
+ Assert.assertEquals(creditJson.getAccountId(), accountId);
final String asJson = mapper.writeValueAsString(creditJson);
Assert.assertEquals(asJson, "{\"creditAmount\":" + creditJson.getCreditAmount() + "," +
@@ -58,7 +61,8 @@ public class TestCreditJson {
"\"invoiceNumber\":\"" + creditJson.getInvoiceNumber() + "\"," +
"\"requestedDate\":\"" + creditJson.getRequestedDate() + "\"," +
"\"effectiveDate\":\"" + creditJson.getEffectiveDate() + "\"," +
- "\"reason\":\"" + creditJson.getReason() + "\"}");
+ "\"reason\":\"" + creditJson.getReason() + "\"," +
+ "\"accountId\":\"" + creditJson.getAccountId().toString() + "\"}");
final CreditJson fromJson = mapper.readValue(asJson, CreditJson.class);
Assert.assertEquals(fromJson, creditJson);