mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-14 17:58:59 +00:00
ALF-9385. Separation of taggingService from Blog CannedQueries.
Initial implementation provides separate 'findTaggedBlogPosts' method and removes taggingService from the CQs. git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@28816 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -18,6 +18,7 @@
|
||||
*/
|
||||
package org.alfresco.repo.web.scripts.blogs;
|
||||
|
||||
import java.text.MessageFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
@@ -321,9 +322,9 @@ public class BlogServiceTest extends BaseWebScriptTest
|
||||
assertEquals(title, item.get("title"));
|
||||
assertEquals(content, item.get("content"));
|
||||
assertEquals(true, item.get("isDraft"));
|
||||
JSONArray recoveredTags = (JSONArray)item.get("tags");
|
||||
assertEquals("Tags size was wrong.", 2, recoveredTags.length());
|
||||
List<String> recoveredTagsList = Arrays.asList(new String[]{recoveredTags.getString(0), recoveredTags.getString(1)});
|
||||
JSONArray reportedTags = (JSONArray)item.get("tags");
|
||||
assertEquals("Tags size was wrong.", 2, reportedTags.length());
|
||||
List<String> recoveredTagsList = Arrays.asList(new String[]{reportedTags.getString(0), reportedTags.getString(1)});
|
||||
assertEquals("Tags were wrong.", Arrays.asList(tags), recoveredTagsList);
|
||||
|
||||
// comment on the blog post.
|
||||
@@ -364,7 +365,20 @@ public class BlogServiceTest extends BaseWebScriptTest
|
||||
response = sendRequest(new GetRequest(commentsUrl), 200);
|
||||
|
||||
|
||||
// TODO Replies still not right in the Share UI.
|
||||
// Now get blog-post by tag.
|
||||
// 1. No such tag
|
||||
response = sendRequest(new GetRequest(URL_BLOG_POSTS + "?tag=NOSUCHTAG"), 200);
|
||||
result = new JSONObject(response.getContentAsString());
|
||||
|
||||
assertEquals(0, result.getInt("total"));
|
||||
|
||||
// tag created above
|
||||
response = sendRequest(new GetRequest(URL_BLOG_POSTS + "?tag=foo"), 200);
|
||||
result = new JSONObject(response.getContentAsString());
|
||||
|
||||
assertEquals(1, result.getInt("total"));
|
||||
|
||||
//TODO More assertions on recovered node.
|
||||
}
|
||||
|
||||
public void testCreatePublishedPost() throws Exception
|
||||
|
@@ -32,6 +32,8 @@ import org.alfresco.repo.web.scripts.blogs.BlogPostLibJs;
|
||||
import org.alfresco.repo.web.scripts.blogs.RequestUtilsLibJs;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.util.Pair;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.springframework.extensions.webscripts.Cache;
|
||||
import org.springframework.extensions.webscripts.Status;
|
||||
import org.springframework.extensions.webscripts.WebScriptRequest;
|
||||
@@ -42,6 +44,8 @@ import org.springframework.extensions.webscripts.WebScriptRequest;
|
||||
*/
|
||||
public abstract class AbstractGetBlogWebScript extends AbstractBlogWebScript
|
||||
{
|
||||
private static final Log log = LogFactory.getLog(AbstractGetBlogWebScript.class);
|
||||
|
||||
@Override
|
||||
protected Map<String, Object> executeImpl(WebScriptRequest req, Status status, Cache cache)
|
||||
{
|
||||
@@ -82,7 +86,14 @@ public abstract class AbstractGetBlogWebScript extends AbstractBlogWebScript
|
||||
// fetch and assign the data
|
||||
PagingResults<BlogPostInfo> blogPostList = getBlogPostList(node, fromDate, toDate,
|
||||
tag, pagingReq);
|
||||
|
||||
|
||||
if (log.isDebugEnabled())
|
||||
{
|
||||
StringBuilder msg = new StringBuilder();
|
||||
msg.append("Retrieved ").append(blogPostList.getPage().size()).append(" blog posts in page.");
|
||||
log.debug(msg.toString());
|
||||
}
|
||||
|
||||
createFtlModel(req, model, node, pagingReq, blogPostList);
|
||||
|
||||
return model;
|
||||
@@ -158,9 +169,22 @@ public abstract class AbstractGetBlogWebScript extends AbstractBlogWebScript
|
||||
*/
|
||||
private PagingResults<BlogPostInfo> getBlogPostList(NodeRef node, Date fromDate, Date toDate, String tag, PagingRequest pagingReq)
|
||||
{
|
||||
PagingResults<BlogPostInfo> results = getBlogResultsImpl(node, fromDate, toDate, tag, pagingReq);
|
||||
return results;
|
||||
// Currently we only support CannedQuery-based gets without tags:
|
||||
if (tag == null || tag.trim().isEmpty())
|
||||
{
|
||||
return getBlogResultsImpl(node, fromDate, toDate, pagingReq);
|
||||
}
|
||||
// and tag-based Lucene searches with no other query params
|
||||
else if (fromDate == null && toDate == null)
|
||||
{
|
||||
return blogService.findTaggedBlogPosts(node, tag, pagingReq);
|
||||
}
|
||||
// But we might change the below to use a Lucene query.
|
||||
else
|
||||
{
|
||||
throw new UnsupportedOperationException("Cannot get BlogPosts with both tags and date limits.");
|
||||
}
|
||||
}
|
||||
|
||||
protected abstract PagingResults<BlogPostInfo> getBlogResultsImpl(NodeRef node, Date fromDate, Date toDate, String tag, PagingRequest pagingReq);
|
||||
protected abstract PagingResults<BlogPostInfo> getBlogResultsImpl(NodeRef node, Date fromDate, Date toDate, PagingRequest pagingReq);
|
||||
}
|
||||
|
@@ -33,13 +33,13 @@ import org.alfresco.service.cmr.repository.NodeRef;
|
||||
*/
|
||||
public class BlogPostsGet extends AbstractGetBlogWebScript
|
||||
{
|
||||
|
||||
@SuppressWarnings("deprecation")
|
||||
@Override
|
||||
protected PagingResults<BlogPostInfo> getBlogResultsImpl(NodeRef node, Date fromDate, Date toDate, String tag, PagingRequest pagingReq)
|
||||
protected PagingResults<BlogPostInfo> getBlogResultsImpl(NodeRef node, Date fromDate, Date toDate, PagingRequest pagingReq)
|
||||
{
|
||||
// This intentionally uses the deprecated method in the foundation service.
|
||||
// In fact the method is there specifically for this class.
|
||||
return blogService.getMyDraftsAndAllPublished(node, fromDate, toDate, tag, pagingReq);
|
||||
|
||||
return blogService.getMyDraftsAndAllPublished(node, fromDate, toDate, pagingReq);
|
||||
}
|
||||
}
|
||||
|
@@ -36,7 +36,7 @@ import org.alfresco.service.cmr.repository.NodeRef;
|
||||
public class BlogPostsMyDraftsGet extends AbstractGetBlogWebScript
|
||||
{
|
||||
@Override
|
||||
protected PagingResults<BlogPostInfo> getBlogResultsImpl(NodeRef node, Date fromDate, Date toDate, String tag, PagingRequest pagingReq)
|
||||
protected PagingResults<BlogPostInfo> getBlogResultsImpl(NodeRef node, Date fromDate, Date toDate, PagingRequest pagingReq)
|
||||
{
|
||||
return blogService.getDrafts(node, AuthenticationUtil.getFullyAuthenticatedUser(), pagingReq);
|
||||
}
|
||||
|
@@ -35,7 +35,7 @@ import org.alfresco.service.cmr.repository.NodeRef;
|
||||
public class BlogPostsMyPublishedGet extends AbstractGetBlogWebScript
|
||||
{
|
||||
@Override
|
||||
protected PagingResults<BlogPostInfo> getBlogResultsImpl(NodeRef node, Date fromDate, Date toDate, String tag, PagingRequest pagingReq)
|
||||
protected PagingResults<BlogPostInfo> getBlogResultsImpl(NodeRef node, Date fromDate, Date toDate, PagingRequest pagingReq)
|
||||
{
|
||||
String fullyAuthenticatedUser = AuthenticationUtil.getFullyAuthenticatedUser();
|
||||
return blogService.getPublished(node, fromDate, toDate, fullyAuthenticatedUser, pagingReq);
|
||||
|
@@ -34,7 +34,7 @@ import org.alfresco.service.cmr.repository.NodeRef;
|
||||
public class BlogPostsNewGet extends AbstractGetBlogWebScript
|
||||
{
|
||||
@Override
|
||||
protected PagingResults<BlogPostInfo> getBlogResultsImpl(NodeRef node, Date fromDate, Date toDate, String tag, PagingRequest pagingReq)
|
||||
protected PagingResults<BlogPostInfo> getBlogResultsImpl(NodeRef node, Date fromDate, Date toDate, PagingRequest pagingReq)
|
||||
{
|
||||
return blogService.getPublished(node, fromDate, toDate, null, pagingReq);
|
||||
}
|
||||
|
@@ -41,7 +41,7 @@ import org.springframework.extensions.webscripts.WebScriptRequest;
|
||||
public class BlogPostsPerMonthGet extends AbstractGetBlogWebScript
|
||||
{
|
||||
@Override
|
||||
protected PagingResults<BlogPostInfo> getBlogResultsImpl(NodeRef node, Date fromDate, Date toDate, String tag, PagingRequest pagingReq)
|
||||
protected PagingResults<BlogPostInfo> getBlogResultsImpl(NodeRef node, Date fromDate, Date toDate, PagingRequest pagingReq)
|
||||
{
|
||||
return blogService.getPublished(node, fromDate, toDate, null, pagingReq);
|
||||
}
|
||||
|
@@ -32,6 +32,8 @@ import org.alfresco.service.cmr.activities.ActivityService;
|
||||
import org.alfresco.service.cmr.repository.ChildAssociationRef;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.tagging.TaggingService;
|
||||
import org.apache.commons.logging.Log;
|
||||
import org.apache.commons.logging.LogFactory;
|
||||
import org.json.JSONArray;
|
||||
import org.json.JSONException;
|
||||
import org.json.JSONObject;
|
||||
@@ -50,6 +52,8 @@ import org.springframework.extensions.webscripts.WebScriptRequest;
|
||||
*/
|
||||
public class BlogPostsPost extends AbstractBlogWebScript
|
||||
{
|
||||
private static final Log log = LogFactory.getLog(BlogPostsPost.class);
|
||||
|
||||
// Injected services
|
||||
private ActivityService activityService;
|
||||
private TaggingService taggingService;
|
||||
@@ -203,6 +207,18 @@ public class BlogPostsPost extends AbstractBlogWebScript
|
||||
String titleParam = jsonParams.getTitle() == null ? "" : jsonParams.getTitle();
|
||||
String contentParam = jsonParams.getContent() == null ? "" : jsonParams.getContent();
|
||||
boolean isDraftParam = jsonParams.getIsDraft() == null ? false : Boolean.parseBoolean(jsonParams.getIsDraft());
|
||||
|
||||
if (log.isDebugEnabled())
|
||||
{
|
||||
StringBuilder msg = new StringBuilder();
|
||||
msg.append("Creating blog-post '").append(titleParam).append("'");
|
||||
if (isDraftParam)
|
||||
{
|
||||
msg.append(" DRAFT");
|
||||
}
|
||||
log.debug(msg.toString());
|
||||
}
|
||||
|
||||
List<String> tagsParam = new ArrayList<String>();
|
||||
if (jsonParams.getTags() != null)
|
||||
{
|
||||
|
@@ -34,7 +34,7 @@ import org.alfresco.service.cmr.repository.NodeRef;
|
||||
public class BlogPostsPublishedExtGet extends AbstractGetBlogWebScript
|
||||
{
|
||||
@Override
|
||||
protected PagingResults<BlogPostInfo> getBlogResultsImpl(NodeRef node, Date fromDate, Date toDate, String tag, PagingRequest pagingReq)
|
||||
protected PagingResults<BlogPostInfo> getBlogResultsImpl(NodeRef node, Date fromDate, Date toDate, PagingRequest pagingReq)
|
||||
{
|
||||
return blogService.getPublishedExternally(node, pagingReq);
|
||||
}
|
||||
|
Reference in New Issue
Block a user