Author: erinnp
Date: Tue Aug  6 14:30:16 2013
New Revision: 1510970

URL: http://svn.apache.org/r1510970
Log:
RAVE-934: Categories resource. Applying patch from Mike Jett.

Modified:
    
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/CategoriesResource.java
    
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultCategoriesResource.java

Modified: 
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/CategoriesResource.java
URL: 
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/CategoriesResource.java?rev=1510970&r1=1510969&r2=1510970&view=diff
==============================================================================
--- 
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/CategoriesResource.java
 (original)
+++ 
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/CategoriesResource.java
 Tue Aug  6 14:30:16 2013
@@ -20,6 +20,7 @@
 package org.apache.rave.rest;
 
 import org.apache.rave.rest.model.Category;
+import org.apache.rave.rest.model.SearchResult;
 
 import javax.ws.rs.*;
 import javax.ws.rs.core.Context;
@@ -31,21 +32,21 @@ import javax.ws.rs.core.UriInfo;
 public interface CategoriesResource {
     @GET
     @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
-    public Response getCategories();
+    public SearchResult<Category> getCategories();
 
     @GET
     @Path("/{id}")
     @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
-    public Response getCategory(@PathParam("id") String id);
+    public Category getCategory(@PathParam("id") String id);
 
     @PUT
     @Path("/{id}")
     @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
     @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
-    public Response updateCategory(@PathParam("id") String id, Category 
category, @Context UriInfo uri);
+    public Category updateCategory(@PathParam("id") String id, Category 
category, @Context UriInfo uri);
 
     @POST
     @Consumes({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
     @Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
-    public Response createCategory(Category category);
+    public Category createCategory(Category category);
 }

Modified: 
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultCategoriesResource.java
URL: 
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultCategoriesResource.java?rev=1510970&r1=1510969&r2=1510970&view=diff
==============================================================================
--- 
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultCategoriesResource.java
 (original)
+++ 
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultCategoriesResource.java
 Tue Aug  6 14:30:16 2013
@@ -18,58 +18,64 @@
  */
 package org.apache.rave.rest.impl;
 
+import org.apache.rave.exception.ResourceNotFoundException;
 import org.apache.rave.model.User;
 import org.apache.rave.portal.service.CategoryService;
 import org.apache.rave.portal.service.UserService;
 import org.apache.rave.rest.CategoriesResource;
 import org.apache.rave.rest.model.Category;
-import org.apache.rave.rest.model.CategoryList;
+import org.apache.rave.rest.model.SearchResult;
 
-import javax.ws.rs.core.Response;
-import javax.ws.rs.core.UriBuilder;
 import javax.ws.rs.core.UriInfo;
+import java.util.ArrayList;
+import java.util.List;
 
 public class DefaultCategoriesResource implements CategoriesResource {
     private CategoryService categoryService;
     private UserService userService;
 
     @Override
-    public Response getCategories() {
-        CategoryList categoryList = new CategoryList();
-        for (org.apache.rave.model.Category category : 
categoryService.getAllList()) {
-            categoryList.getCategories().add(new Category((category)));
+    public SearchResult<Category> getCategories() {
+
+        SearchResult<org.apache.rave.model.Category> fromDb = 
categoryService.getAll();
+        List<Category> categories = new ArrayList<Category>();
+
+        for (org.apache.rave.model.Category category : fromDb.getResultSet()) {
+            categories.add(new Category((category)));
         }
 
-        return Response.ok(categoryList).build();
+        return new SearchResult<Category>(categories, 
fromDb.getTotalResults());
+
     }
 
     @Override
-    public Response getCategory(String id) {
-        org.apache.rave.model.Category category = categoryService.get(id);
-        if (category == null) {
-            return Response.status(Response.Status.NOT_FOUND).build();
-        } else {
-            return Response.ok(new Category(category)).build();
+    public Category getCategory(String id) {
+
+        org.apache.rave.model.Category fromDb = categoryService.get(id);
+        //TODO: with a bad ID a 403 gets thrown before I hit this block. Why?
+        if(fromDb == null) {
+            throw new ResourceNotFoundException(id);
         }
+
+        return new Category(fromDb);
     }
 
     @Override
-    public Response updateCategory(String id, Category category,UriInfo uri) {
-        User user = userService.getAuthenticatedUser();
+    public Category updateCategory(String id, Category category, UriInfo uri) {
 
+        User user = userService.getAuthenticatedUser();
         org.apache.rave.model.Category updatedCategory = 
categoryService.update(id, category.getText(), user);
 
-        return Response.ok(new 
Category(updatedCategory)).location(uri.getRequestUri()).build();
+        return new Category(updatedCategory);
     }
 
     @Override
-    public Response createCategory(Category category) {
-        User user = userService.getAuthenticatedUser();
+    public Category createCategory(Category category) {
 
+        User user = userService.getAuthenticatedUser();
         org.apache.rave.model.Category newCategory = 
categoryService.create(category.getText(), user);
 
-        UriBuilder builder = 
UriBuilder.fromResource(CategoriesResource.class).path("/{id}");
-        return Response.created(builder.build(newCategory.getId())).entity(new 
Category(newCategory)).build();
+        return new Category(newCategory);
     }
 
     public void setCategoryService(CategoryService categoryService) {


Reply via email to