Author: erinnp
Date: Thu Aug  1 17:53:57 2013
New Revision: 1509350

URL: http://svn.apache.org/r1509350
Log:
Update page, region, regionwidget resources to delegate to subresources for get 
methods

Modified:
    
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/PagesResource.java
    
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/RegionWidgetsResource.java
    
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/RegionsResource.java
    
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/JsonResponseWrapper.java
    
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/Region.java
    
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultPageResource.java
    
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultRegionWidgetsResource.java
    
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultRegionsResource.java

Modified: 
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/PagesResource.java
URL: 
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/PagesResource.java?rev=1509350&r1=1509349&r2=1509350&view=diff
==============================================================================
--- 
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/PagesResource.java
 (original)
+++ 
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/PagesResource.java
 Thu Aug  1 17:53:57 2013
@@ -22,10 +22,12 @@ package org.apache.rave.rest;
 import org.apache.rave.rest.model.Page;
 import org.apache.rave.rest.model.Region;
 import org.apache.rave.rest.model.RegionWidget;
+import org.apache.rave.rest.model.SearchResult;
 
 import javax.ws.rs.*;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
+import java.util.List;
 
 @Path("/pages")
 public interface PagesResource {
@@ -42,7 +44,7 @@ public interface PagesResource {
     @GET
     @Path("/")
     @Produces(MediaType.APPLICATION_JSON)
-    Response getPages();
+    SearchResult<Page> getPages();
 
     /**
      * Creates a new page
@@ -54,7 +56,7 @@ public interface PagesResource {
     @Path("/")
     @Produces(MediaType.APPLICATION_JSON)
     @Consumes(MediaType.APPLICATION_JSON)
-    Response createPage(Page page);
+    Page createPage(Page page);
 
     /**
      * Deletes the given page
@@ -64,7 +66,7 @@ public interface PagesResource {
      */
     @DELETE
     @Path("/{pageId}")
-    Response deletePage(@PathParam("pageId") String pageId);
+    Page deletePage(@PathParam("pageId") String pageId);
 
     /**
      * Returns the given page
@@ -76,7 +78,7 @@ public interface PagesResource {
     @GET
     @Path("/{pageId}")
     @Produces(MediaType.APPLICATION_JSON)
-    Response getPage(@PathParam("pageId") String id);
+    Page getPage(@PathParam("pageId") String id);
 
     /**
      * Updates the given page
@@ -89,7 +91,7 @@ public interface PagesResource {
     @Path("/{pageId}")
     @Produces(MediaType.APPLICATION_JSON)
     @Consumes(MediaType.APPLICATION_JSON)
-    Response updatePage(@PathParam("pageId") String pageId, Page page);
+    Page updatePage(@PathParam("pageId") String pageId, Page page);
 
     /**
      * Returns the OMDL representation of the page

Modified: 
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/RegionWidgetsResource.java
URL: 
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/RegionWidgetsResource.java?rev=1509350&r1=1509349&r2=1509350&view=diff
==============================================================================
--- 
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/RegionWidgetsResource.java
 (original)
+++ 
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/RegionWidgetsResource.java
 Thu Aug  1 17:53:57 2013
@@ -22,12 +22,12 @@ package org.apache.rave.rest;
 import org.apache.rave.rest.model.Page;
 import org.apache.rave.rest.model.Region;
 import org.apache.rave.rest.model.RegionWidget;
+import org.apache.rave.rest.model.SearchResult;
 
 import javax.ws.rs.*;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 
-@Path("/pages")
 public interface RegionWidgetsResource {
 
     /*
@@ -42,13 +42,13 @@ public interface RegionWidgetsResource {
     @GET
     @Path("/")
     @Produces(MediaType.APPLICATION_JSON)
-    Response getPageRegionRegionWidgets();
+    SearchResult<RegionWidget> getPageRegionRegionWidgets();
 
     @POST
     @Path("/")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    Response createPageRegionRegionWidget(RegionWidget regionWidget);
+    RegionWidget createPageRegionRegionWidget(RegionWidget regionWidget);
 
     /**
      * Returns a regionWidget associated with a page and a region
@@ -59,7 +59,7 @@ public interface RegionWidgetsResource {
     @GET
     @Path("/{regionWidgetId}")
     @Produces(MediaType.APPLICATION_JSON)
-    Response getPageRegionRegionWidget(@PathParam("regionWidgetId") String 
regionWidgetId);
+    RegionWidget getPageRegionRegionWidget(@PathParam("regionWidgetId") String 
regionWidgetId);
 
     /**
      * Updates a regionWidget associated with a page and a region
@@ -72,7 +72,7 @@ public interface RegionWidgetsResource {
     @Path("/{regionWidgetId}")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    Response updatePageRegionRegionWidget(@PathParam("regionWidgetId") String 
regionWidgetId, RegionWidget regionWidget);
+    RegionWidget updatePageRegionRegionWidget(@PathParam("regionWidgetId") 
String regionWidgetId, RegionWidget regionWidget);
 
     /**
      * Deletes a regionWidget from a page region
@@ -83,5 +83,5 @@ public interface RegionWidgetsResource {
     @DELETE
     @Path("/{regionWidgetId}")
     @Produces(MediaType.APPLICATION_JSON)
-    Response deletePageRegionRegionWidget(@PathParam("regionWidgetId") String 
regionWidgetId);
+    RegionWidget deletePageRegionRegionWidget(@PathParam("regionWidgetId") 
String regionWidgetId);
 }

Modified: 
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/RegionsResource.java
URL: 
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/RegionsResource.java?rev=1509350&r1=1509349&r2=1509350&view=diff
==============================================================================
--- 
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/RegionsResource.java
 (original)
+++ 
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/RegionsResource.java
 Thu Aug  1 17:53:57 2013
@@ -22,6 +22,7 @@ package org.apache.rave.rest;
 import org.apache.rave.rest.model.Page;
 import org.apache.rave.rest.model.Region;
 import org.apache.rave.rest.model.RegionWidget;
+import org.apache.rave.rest.model.SearchResult;
 
 import javax.ws.rs.*;
 import javax.ws.rs.core.MediaType;
@@ -41,7 +42,7 @@ public interface RegionsResource {
     @GET
     @Path("/")
     @Produces(MediaType.APPLICATION_JSON)
-    Response getPageRegions();
+    SearchResult<Region> getPageRegions();
 
     /**
      * Creates a new page region
@@ -53,7 +54,7 @@ public interface RegionsResource {
     @Path("/")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    Response createPageRegion( Region region);
+    Region createPageRegion( Region region);
 
     /**
      * Returns a particular region associated with a page
@@ -64,7 +65,7 @@ public interface RegionsResource {
     @GET
     @Path("/{regionId}")
     @Produces(MediaType.APPLICATION_JSON)
-    Response getPageRegion( @PathParam("regionId") String regionId);
+    Region getPageRegion( @PathParam("regionId") String regionId);
 
     /**
      * Update a page region
@@ -77,7 +78,7 @@ public interface RegionsResource {
     @Path("/{regionId}")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    Response updatePageRegion( @PathParam("regionId") String regionId, Region 
region);
+    Region updatePageRegion( @PathParam("regionId") String regionId, Region 
region);
 
     /**
      * Deletes a page region
@@ -89,7 +90,7 @@ public interface RegionsResource {
     @Path("/{regionId}")
     @Consumes(MediaType.APPLICATION_JSON)
     @Produces(MediaType.APPLICATION_JSON)
-    Response deletePageRegion( @PathParam("regionId") String regionId);
+    Region deletePageRegion( @PathParam("regionId") String regionId);
 
     /*
     --- RegionWidget Operations

Modified: 
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/JsonResponseWrapper.java
URL: 
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/JsonResponseWrapper.java?rev=1509350&r1=1509349&r2=1509350&view=diff
==============================================================================
--- 
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/JsonResponseWrapper.java
 (original)
+++ 
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/JsonResponseWrapper.java
 Thu Aug  1 17:53:57 2013
@@ -66,7 +66,7 @@ public class JsonResponseWrapper {
         Integer prevOffset = null;
         Integer nextOffset = null;
 
-        //if limit = 0, then we return full data set and there is no pagination
+        //if limit == 0, then we return full data set and there is no 
pagination
         if (limit > 0) {
             //build prev offset
             if (offset > 0) {

Modified: 
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/Region.java
URL: 
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/Region.java?rev=1509350&r1=1509349&r2=1509350&view=diff
==============================================================================
--- 
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/Region.java
 (original)
+++ 
rave/trunk/rave-components/rave-core-api/src/main/java/org/apache/rave/rest/model/Region.java
 Thu Aug  1 17:53:57 2013
@@ -30,6 +30,8 @@ import java.util.List;
 public class Region {
     @XmlElement(name = "locked")
     private boolean  locked;
+
+    private String id;
     @XmlElementWrapper(name = "regionWidgets")
     @XmlElement(name="RegionWidget")
     private List<RegionWidget> regionWidgets;
@@ -39,6 +41,7 @@ public class Region {
     public Region(org.apache.rave.model.Region source) {
         this.locked = source.isLocked();
         this.regionWidgets = createRegionWidgets(source);
+        this.id = source.getId();
     }
 
     public boolean isLocked() {
@@ -49,6 +52,14 @@ public class Region {
         this.locked = locked;
     }
 
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
     public List<RegionWidget> getRegionWidgets() {
         return regionWidgets;
     }

Modified: 
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultPageResource.java
URL: 
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultPageResource.java?rev=1509350&r1=1509349&r2=1509350&view=diff
==============================================================================
--- 
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultPageResource.java
 (original)
+++ 
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultPageResource.java
 Thu Aug  1 17:53:57 2013
@@ -20,6 +20,7 @@
 package org.apache.rave.rest.impl;
 
 
+import org.apache.rave.model.PageType;
 import org.apache.rave.portal.service.PageService;
 import org.apache.rave.rest.PagesResource;
 import org.apache.rave.rest.RegionsResource;
@@ -29,6 +30,8 @@ import org.slf4j.LoggerFactory;
 
 import javax.inject.Inject;
 import javax.ws.rs.core.Response;
+import java.util.ArrayList;
+import java.util.List;
 
 public class DefaultPageResource implements PagesResource {
 
@@ -36,37 +39,55 @@ public class DefaultPageResource impleme
     private PageService pageService;
 
     @Override
-    public Response getPages() {
-        return Response.ok(pageService.getAll()).build();
+    public SearchResult<Page> getPages() {
+        SearchResult<org.apache.rave.model.Page> fromDb = pageService.getAll();
+        List<Page> pages = new ArrayList<Page>();
+
+        for(org.apache.rave.model.Page page : fromDb.getResultSet()) {
+            pages.add(new Page(page));
+        }
+
+        SearchResult<Page> returnPages = new SearchResult<Page>(pages, 
fromDb.getTotalResults());
+        return returnPages;
     }
 
     @Override
-    public Response createPage(Page page) {
-        //pageService.createPage(page)
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    public Page createPage(Page page) {
+        //TODO: RAVE-977 - when Page type enum is deprecated escape from this 
logic
+        if(page.getPageType() == "user") {
+            org.apache.rave.model.Page fromDb = 
pageService.addNewUserPage(page.getName(), page.getPageLayoutCode());
+            Page responsePage =  new Page(fromDb);
+
+            return responsePage;
+        } else {
+            //TODO: throw 400 exception
+            return null;
+        }
     }
 
     @Override
-    public Response deletePage(String id) {
+    public Page deletePage(String id) {
         logger.debug("Deleting page " + id);
         pageService.deletePage(id);
-        return Response.noContent().build();
+        return null;
     }
 
     @Override
-    public Response getPage(String id) {
+    public Page getPage(String id) {
         logger.debug("Retrieving page for export: " + id);
         org.apache.rave.model.Page fromDb = pageService.getPage(id);
+        //TODO: throw 404 exception if getPage returns null
+        Page responsePage =  new Page(fromDb);
 
-        return Response.ok(new Page(fromDb)).build();
+        return responsePage;
     }
 
     @Override
-    public Response updatePage(String id, Page page) {
+    public Page updatePage(String id, Page page) {
         org.apache.rave.model.Page fromDb = pageService.updatePage(id, 
page.getName(), page.getPageLayoutCode());
         Page responsePage =  new Page(fromDb);
 
-        return Response.ok(new JsonResponseWrapper(responsePage)).build();
+        return responsePage;
     }
 
     @Override
@@ -76,8 +97,7 @@ public class DefaultPageResource impleme
 
     @Override
     public RegionsResource getRegionsResource(String pageId) {
-        org.apache.rave.model.Page fromDb = pageService.getPage(pageId);
-        Page page = new Page(fromDb);
+        Page page = getPage(pageId);
 
         return new DefaultRegionsResource(page);
     }

Modified: 
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultRegionWidgetsResource.java
URL: 
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultRegionWidgetsResource.java?rev=1509350&r1=1509349&r2=1509350&view=diff
==============================================================================
--- 
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultRegionWidgetsResource.java
 (original)
+++ 
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultRegionWidgetsResource.java
 Thu Aug  1 17:53:57 2013
@@ -21,48 +21,76 @@ package org.apache.rave.rest.impl;
 
 
 import org.apache.rave.portal.service.PageService;
-import org.apache.rave.portal.service.RegionWidgetService;
+import org.apache.rave.rest.model.Page;
+import org.apache.rave.rest.model.Region;
 import org.apache.rave.rest.RegionWidgetsResource;
 import org.apache.rave.rest.model.RegionWidget;
+import org.apache.rave.rest.model.SearchResult;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import javax.inject.Inject;
 import javax.ws.rs.PathParam;
 import javax.ws.rs.core.Response;
+import java.util.List;
 
 public class DefaultRegionWidgetsResource implements RegionWidgetsResource {
 
     private Logger logger = LoggerFactory.getLogger(getClass());
-    private RegionWidgetService regionWidgetService;
+    private static PageService pageService;
 
-    @Inject
-    public void setRegionWidgetService(RegionWidgetService 
regionWidgetService) {
-        this.regionWidgetService = regionWidgetService;
+    private Page page;
+    private Region region;
+
+    public DefaultRegionWidgetsResource(Page page, Region region) {
+        this.page = page;
+        this.region = region;
     }
 
     @Override
-    public Response getPageRegionRegionWidgets() {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    public SearchResult<RegionWidget> getPageRegionRegionWidgets() {
+        List<RegionWidget> regionWidgets = region.getRegionWidgets();
+        SearchResult<RegionWidget> results = new 
SearchResult<RegionWidget>(regionWidgets, regionWidgets.size());
+
+        return results;
     }
 
     @Override
-    public Response createPageRegionRegionWidget(RegionWidget regionWidget) {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    public RegionWidget createPageRegionRegionWidget(RegionWidget 
regionWidget) {
+        //TODO: pageService is not being injected - how do I get that to work 
with an instantiated class?
+        org.apache.rave.model.RegionWidget fromDb =
+                pageService.addWidgetToPageRegion(page.getId(), 
regionWidget.getWidgetId(), regionWidget.getRegionId());
+
+        return new RegionWidget(fromDb);
     }
 
     @Override
-    public Response getPageRegionRegionWidget(@PathParam("regionWidgetId") 
String regionWidgetId) {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    public RegionWidget getPageRegionRegionWidget(String regionWidgetId) {
+        List<RegionWidget> regionWidgets = region.getRegionWidgets();
+        RegionWidget match = null;
+        for(RegionWidget widget: regionWidgets) {
+            if(widget.getId().equals(regionWidgetId)) {
+                match = widget;
+                break;
+            }
+        }
+        //TODO: if match == null throw 404 exception
+
+        return match;
     }
 
     @Override
-    public Response updatePageRegionRegionWidget(@PathParam("regionWidgetId") 
String regionWidgetId, RegionWidget regionWidget) {
+    public RegionWidget updatePageRegionRegionWidget(String regionWidgetId, 
RegionWidget regionWidget) {
         return null;  //To change body of implemented methods use File | 
Settings | File Templates.
     }
 
     @Override
-    public Response deletePageRegionRegionWidget(@PathParam("regionWidgetId") 
String regionWidgetId) {
+    public RegionWidget deletePageRegionRegionWidget(String regionWidgetId) {
         return null;  //To change body of implemented methods use File | 
Settings | File Templates.
     }
+
+    @Inject
+    public static void setPageService(PageService pS) {
+        pageService = pS;
+    }
 }

Modified: 
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultRegionsResource.java
URL: 
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultRegionsResource.java?rev=1509350&r1=1509349&r2=1509350&view=diff
==============================================================================
--- 
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultRegionsResource.java
 (original)
+++ 
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/rest/impl/DefaultRegionsResource.java
 Thu Aug  1 17:53:57 2013
@@ -20,25 +20,20 @@
 package org.apache.rave.rest.impl;
 
 
-import org.apache.rave.portal.service.PageService;
-import org.apache.rave.portal.service.RegionService;
 import org.apache.rave.rest.RegionWidgetsResource;
 import org.apache.rave.rest.RegionsResource;
 import org.apache.rave.rest.model.Page;
 import org.apache.rave.rest.model.Region;
+import org.apache.rave.rest.model.SearchResult;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import javax.inject.Inject;
-import javax.ws.rs.PathParam;
 import javax.ws.rs.core.Response;
 import java.util.List;
 
 public class DefaultRegionsResource implements RegionsResource {
 
     private Logger logger = LoggerFactory.getLogger(getClass());
-    private RegionService regionService;
-    private PageService pageService;
     private Page page;
 
     public DefaultRegionsResource(Page page) {
@@ -46,32 +41,50 @@ public class DefaultRegionsResource impl
     }
 
     @Override
-    public Response getPageRegions() {
-        return Response.ok(page.getRegions()).build();
+    public SearchResult<Region> getPageRegions() {
+        List<Region> regions = page.getRegions();
+        SearchResult<Region> results = new SearchResult<Region>(regions, 
regions.size());
+
+        return results;
     }
 
     @Override
-    public Response createPageRegion(Region region) {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    public Region createPageRegion(Region region) {
+        //TODO: this method does not make sense since regions are changed via 
a page's pageLayoutCode
+        return null;
     }
 
     @Override
-    public Response getPageRegion(String regionId) {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+    public Region getPageRegion(String regionId) {
+        List<Region> regions = page.getRegions();
+        Region match = null;
+        for(Region region: regions) {
+            if(region.getId().equals(regionId)) {
+                match = region;
+                break;
+            }
+        }
+
+        //TODO: throw a 404 exception if match == null
+        return match;
     }
 
     @Override
-    public Response updatePageRegion(String regionId, Region region) {
+    public Region updatePageRegion(String regionId, Region region) {
+        //TODO: this method does not make sense since regions are changed via 
a page's pageLayoutCode
         return null;  //To change body of implemented methods use File | 
Settings | File Templates.
     }
 
     @Override
-    public Response deletePageRegion(String regionId) {
+    public Region deletePageRegion(String regionId) {
+        //TODO: this method does not make sense since regions are changed via 
a page's pageLayoutCode
         return null;  //To change body of implemented methods use File | 
Settings | File Templates.
     }
 
     @Override
     public RegionWidgetsResource getRegionWidgetsResource(String regionId) {
-        return null;  //To change body of implemented methods use File | 
Settings | File Templates.
+        Region region = getPageRegion(regionId);
+
+        return new DefaultRegionWidgetsResource(page, region);
     }
 }


Reply via email to