Details
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/BundleResource.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/BundleResource.java
index d607162..aee7e9f 100644
--- a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/BundleResource.java
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/BundleResource.java
@@ -100,7 +100,7 @@ public class BundleResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final HttpServletRequest request) throws SubscriptionApiException {
final UUID id = UUID.fromString(bundleId);
- final SubscriptionBundle bundle = subscriptionApi.getAllSubscriptionsForBundle(id, context.createContext(request));
+ final SubscriptionBundle bundle = subscriptionApi.getSubscriptionBundle(id, context.createContext(request));
final BundleJsonNoSubscriptions json = new BundleJsonNoSubscriptions(bundle);
return Response.status(Status.OK).entity(json).build();
}
@@ -112,7 +112,7 @@ public class BundleResource extends JaxRsResourceBase {
@javax.ws.rs.core.Context final HttpServletRequest request) throws SubscriptionApiException {
final UUID id = UUID.fromString(bundleId);
- final SubscriptionBundle bundle = subscriptionApi.getAllSubscriptionsForBundle(id, context.createContext(request));
+ final SubscriptionBundle bundle = subscriptionApi.getSubscriptionBundle(id, context.createContext(request));
final Collection<SubscriptionJsonNoEvents> result = Collections2.transform(bundle.getSubscriptions(), new Function<Subscription, SubscriptionJsonNoEvents>() {
@Nullable
@Override
@@ -186,7 +186,7 @@ public class BundleResource extends JaxRsResourceBase {
final CallContext callContext = context.createContext(createdBy, reason, comment, request);
final UUID bundleId = UUID.fromString(id);
- final SubscriptionBundle bundle = subscriptionApi.getAllSubscriptionsForBundle(bundleId, callContext);
+ final SubscriptionBundle bundle = subscriptionApi.getSubscriptionBundle(bundleId, callContext);
final DateTime inputDate = (requestedDate != null) ? DATE_TIME_FORMATTER.parseDateTime(requestedDate) : null;
final LocalDate inputLocalDate = toLocalDate(bundle.getAccountId(), inputDate, callContext);
diff --git a/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/SubscriptionResource.java b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/SubscriptionResource.java
new file mode 100644
index 0000000..aa2626d
--- /dev/null
+++ b/jaxrs/src/main/java/com/ning/billing/jaxrs/resources/SubscriptionResource.java
@@ -0,0 +1,56 @@
+package com.ning.billing.jaxrs.resources;
+
+import java.util.UUID;
+
+import javax.inject.Inject;
+import javax.servlet.http.HttpServletRequest;
+import javax.ws.rs.GET;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
+
+import com.ning.billing.account.api.AccountUserApi;
+import com.ning.billing.entitlement.api.Subscription;
+import com.ning.billing.entitlement.api.SubscriptionApi;
+import com.ning.billing.entitlement.api.SubscriptionApiException;
+import com.ning.billing.jaxrs.json.SubscriptionJsonNoEvents;
+import com.ning.billing.jaxrs.util.Context;
+import com.ning.billing.jaxrs.util.JaxrsUriBuilder;
+import com.ning.billing.util.api.AuditUserApi;
+import com.ning.billing.util.api.CustomFieldUserApi;
+import com.ning.billing.util.api.TagUserApi;
+
+import static javax.ws.rs.core.MediaType.APPLICATION_JSON;
+
+@Path(JaxrsResource.SUBSCRIPTIONS_PATH)
+public class SubscriptionResource extends JaxRsResourceBase {
+
+ private final SubscriptionApi subscriptionApi;
+
+ @Inject
+ public SubscriptionResource(final JaxrsUriBuilder uriBuilder,
+ final TagUserApi tagUserApi,
+ final CustomFieldUserApi customFieldUserApi,
+ final AuditUserApi auditUserApi,
+ final AccountUserApi accountUserApi,
+ final SubscriptionApi subscriptionApi,
+ final Context context) {
+ super(uriBuilder, tagUserApi, customFieldUserApi, auditUserApi, accountUserApi, context);
+ this.subscriptionApi = subscriptionApi;
+ }
+
+ @GET
+ @Path("/{subscriptionId:" + UUID_PATTERN + "}")
+ @Produces(APPLICATION_JSON)
+ public Response getSubscription(@PathParam("subscriptionId") final String subscriptionId,
+ @javax.ws.rs.core.Context final HttpServletRequest request) throws SubscriptionApiException {
+ final UUID uuid = UUID.fromString(subscriptionId);
+ final Subscription subscription = subscriptionApi.getSubscriptionForEntitlementId(uuid, context.createContext(request));
+ // STEPH_ENT missing info in SubscriptionJsonNoEvents (billing dates,...)
+ final SubscriptionJsonNoEvents json = new SubscriptionJsonNoEvents(subscription, null);
+ return Response.status(Status.OK).entity(json).build();
+ }
+
+}
diff --git a/server/src/main/java/com/ning/billing/server/modules/KillbillServerModule.java b/server/src/main/java/com/ning/billing/server/modules/KillbillServerModule.java
index c0d1898..a0c63e0 100644
--- a/server/src/main/java/com/ning/billing/server/modules/KillbillServerModule.java
+++ b/server/src/main/java/com/ning/billing/server/modules/KillbillServerModule.java
@@ -26,6 +26,7 @@ import com.ning.billing.account.glue.DefaultAccountModule;
import com.ning.billing.beatrix.glue.BeatrixModule;
import com.ning.billing.catalog.glue.CatalogModule;
import com.ning.billing.jaxrs.resources.EntitlementResource;
+import com.ning.billing.jaxrs.resources.SubscriptionResource;
import com.ning.billing.subscription.glue.DefaultSubscriptionModule;
import com.ning.billing.invoice.glue.DefaultInvoiceModule;
import com.ning.billing.jaxrs.resources.AccountResource;
@@ -96,6 +97,7 @@ public class KillbillServerModule extends AbstractModule {
bind(AccountResource.class).asEagerSingleton();
bind(BundleResource.class).asEagerSingleton();
bind(EntitlementResource.class).asEagerSingleton();
+ bind(SubscriptionResource.class).asEagerSingleton();
bind(InvoiceResource.class).asEagerSingleton();
bind(TagResource.class).asEagerSingleton();
bind(CatalogResource.class).asEagerSingleton();