use of org.killbill.billing.entitlement.api.SubscriptionEvent in project killbill by killbill.
the class CatalogResource method getPlanForSubscriptionAndDate.
@TimedResource
@GET
@Path("/plan")
@Produces(APPLICATION_JSON)
@ApiOperation(value = "Retrieve plan for a given subscription and date", response = PlanJson.class)
@ApiResponses(value = {})
public Response getPlanForSubscriptionAndDate(@QueryParam("subscriptionId") final UUID subscriptionId, @QueryParam("requestedDate") final String requestedDateString, @javax.ws.rs.core.Context final HttpServletRequest request) throws SubscriptionApiException, CurrencyValueNull {
verifyNonNullOrEmpty(subscriptionId, "Subscription id needs to be specified");
final SubscriptionEvent lastEventBeforeRequestedDate = getLastEventBeforeDate(subscriptionId, requestedDateString, request);
if (lastEventBeforeRequestedDate == null) {
return Response.status(Status.BAD_REQUEST).entity(String.format("%s is before the subscription start date", requestedDateString)).type("text/plain").build();
}
final Plan plan = lastEventBeforeRequestedDate.getNextPlan();
if (plan == null) {
// Subscription was cancelled at that point
return Response.status(Status.BAD_REQUEST).entity(String.format("%s is after the subscription cancel date", requestedDateString)).type("text/plain").build();
}
final PlanJson planJson = new PlanJson(plan);
return Response.status(Status.OK).entity(planJson).build();
}
use of org.killbill.billing.entitlement.api.SubscriptionEvent in project killbill by killbill.
the class CatalogResource method getPriceListForSubscriptionAndDate.
@TimedResource
@GET
@Path("/priceList")
@Produces(APPLICATION_JSON)
@ApiOperation(value = "Retrieve priceList for a given subscription and date", response = PriceListJson.class)
@ApiResponses(value = {})
public Response getPriceListForSubscriptionAndDate(@QueryParam("subscriptionId") final UUID subscriptionId, @QueryParam("requestedDate") final String requestedDateString, @javax.ws.rs.core.Context final HttpServletRequest request) throws SubscriptionApiException {
verifyNonNullOrEmpty(subscriptionId, "Subscription id needs to be specified");
final SubscriptionEvent lastEventBeforeRequestedDate = getLastEventBeforeDate(subscriptionId, requestedDateString, request);
if (lastEventBeforeRequestedDate == null) {
return Response.status(Status.BAD_REQUEST).entity(String.format("%s is before the subscription start date", requestedDateString)).type("text/plain").build();
}
final PriceList priceList = lastEventBeforeRequestedDate.getNextPriceList();
if (priceList == null) {
// Subscription was cancelled at that point
return Response.status(Status.BAD_REQUEST).entity(String.format("%s is after the subscription cancel date", requestedDateString)).type("text/plain").build();
}
final PriceListJson priceListJson = new PriceListJson(priceList);
return Response.status(Status.OK).entity(priceListJson).build();
}
Aggregations