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) {