From d4b45fbfc873979f162f0ba1e3444a181eb3a693 Mon Sep 17 00:00:00 2001 From: Mike McCune Date: Fri, 31 Jul 2009 10:17:19 -0700 Subject: fixing entitlementAPI --- .../candlepin/api/EntitlementApi.java | 27 ++++++++++++++++++---- .../candlepin/api/test/EntitlementApiTest.java | 7 +++--- 2 files changed, 25 insertions(+), 9 deletions(-) (limited to 'proxy/code/src') diff --git a/proxy/code/src/org/fedoraproject/candlepin/api/EntitlementApi.java b/proxy/code/src/org/fedoraproject/candlepin/api/EntitlementApi.java index d00712e..513bc9b 100644 --- a/proxy/code/src/org/fedoraproject/candlepin/api/EntitlementApi.java +++ b/proxy/code/src/org/fedoraproject/candlepin/api/EntitlementApi.java @@ -33,6 +33,7 @@ import javax.ws.rs.Consumes; import javax.ws.rs.GET; import javax.ws.rs.POST; import javax.ws.rs.Path; +import javax.ws.rs.PathParam; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; @@ -66,6 +67,17 @@ public class EntitlementApi extends BaseApi { } return o; } + + private Object validateObjectInput(String uuid, Class clazz) { + log.debug("UUID: " + uuid); + Object o = ObjectFactory.get().lookupByUUID(clazz, uuid); + if (o == null) { + throw new RuntimeException(clazz.getName() + " with UUID: [" + + uuid + "] not found"); + } + return o; + } + @POST @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_FORM_URLENCODED}) @@ -117,9 +129,11 @@ public class EntitlementApi extends BaseApi { */ @GET @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) - public boolean hasEntitlement(Form form) { - Consumer c = (Consumer) validateObjectInput(form, "consumer_uuid", Consumer.class); - Product p = (Product) validateObjectInput(form, "product_uuid", Product.class); + @Path("/has") + public boolean hasEntitlement(@PathParam("consumer_uuid") String consumer_uuid, + @PathParam("product_uuid") String product_uuid) { + Consumer c = (Consumer) validateObjectInput(consumer_uuid, Consumer.class); + Product p = (Product) validateObjectInput(product_uuid, Product.class); for (Entitlement e : c.getEntitlements()) { if (e.getProduct().equals(p)) { return true; @@ -134,8 +148,11 @@ public class EntitlementApi extends BaseApi { * @param form containing consumer_uuid * @return List of applicable */ - public List listAvailableEntitlements(Form form) { - Consumer c = (Consumer) validateObjectInput(form, "consumer_uuid", Consumer.class); + @GET + @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) + @Path("/listavailable") + public List listAvailableEntitlements(@PathParam("uuid") String uuid) { + Consumer c = (Consumer) validateObjectInput(uuid, Consumer.class); List entitlementPools = new EntitlementPoolApi().list(); List retval = new ArrayList(); EntitlementMatcher matcher = new EntitlementMatcher(); diff --git a/proxy/code/src/org/fedoraproject/candlepin/api/test/EntitlementApiTest.java b/proxy/code/src/org/fedoraproject/candlepin/api/test/EntitlementApiTest.java index f04dae4..47e805f 100644 --- a/proxy/code/src/org/fedoraproject/candlepin/api/test/EntitlementApiTest.java +++ b/proxy/code/src/org/fedoraproject/candlepin/api/test/EntitlementApiTest.java @@ -113,16 +113,15 @@ public class EntitlementApiTest extends TestCase { f.add("product_uuid", p.getUuid()); eapi.entitle(f); - assertTrue(eapi.hasEntitlement(f)); + assertTrue(eapi.hasEntitlement(c.getUuid(), p.getUuid())); } public void testListAvailableEntitlements() { EntitlementApi eapi = new EntitlementApi(); Form f = new Form(); f.add("consumer_uuid", c.getUuid()); - f.add("product_uuid", p.getUuid()); - - List avail = eapi.listAvailableEntitlements(f); + + List avail = eapi.listAvailableEntitlements(c.getUuid()); assertNotNull(avail); assertTrue(avail.size() > 0); -- cgit