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;
|
package org.alfresco.repo.web.scripts.blogs;
|
||||||
|
|
||||||
|
import java.text.MessageFormat;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
@@ -321,9 +322,9 @@ public class BlogServiceTest extends BaseWebScriptTest
|
|||||||
assertEquals(title, item.get("title"));
|
assertEquals(title, item.get("title"));
|
||||||
assertEquals(content, item.get("content"));
|
assertEquals(content, item.get("content"));
|
||||||
assertEquals(true, item.get("isDraft"));
|
assertEquals(true, item.get("isDraft"));
|
||||||
JSONArray recoveredTags = (JSONArray)item.get("tags");
|
JSONArray reportedTags = (JSONArray)item.get("tags");
|
||||||
assertEquals("Tags size was wrong.", 2, recoveredTags.length());
|
assertEquals("Tags size was wrong.", 2, reportedTags.length());
|
||||||
List<String> recoveredTagsList = Arrays.asList(new String[]{recoveredTags.getString(0), recoveredTags.getString(1)});
|
List<String> recoveredTagsList = Arrays.asList(new String[]{reportedTags.getString(0), reportedTags.getString(1)});
|
||||||
assertEquals("Tags were wrong.", Arrays.asList(tags), recoveredTagsList);
|
assertEquals("Tags were wrong.", Arrays.asList(tags), recoveredTagsList);
|
||||||
|
|
||||||
// comment on the blog post.
|
// comment on the blog post.
|
||||||
@@ -364,7 +365,20 @@ public class BlogServiceTest extends BaseWebScriptTest
|
|||||||
response = sendRequest(new GetRequest(commentsUrl), 200);
|
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
|
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.repo.web.scripts.blogs.RequestUtilsLibJs;
|
||||||
import org.alfresco.service.cmr.repository.NodeRef;
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
import org.alfresco.util.Pair;
|
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.Cache;
|
||||||
import org.springframework.extensions.webscripts.Status;
|
import org.springframework.extensions.webscripts.Status;
|
||||||
import org.springframework.extensions.webscripts.WebScriptRequest;
|
import org.springframework.extensions.webscripts.WebScriptRequest;
|
||||||
@@ -42,6 +44,8 @@ import org.springframework.extensions.webscripts.WebScriptRequest;
|
|||||||
*/
|
*/
|
||||||
public abstract class AbstractGetBlogWebScript extends AbstractBlogWebScript
|
public abstract class AbstractGetBlogWebScript extends AbstractBlogWebScript
|
||||||
{
|
{
|
||||||
|
private static final Log log = LogFactory.getLog(AbstractGetBlogWebScript.class);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected Map<String, Object> executeImpl(WebScriptRequest req, Status status, Cache cache)
|
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
|
// fetch and assign the data
|
||||||
PagingResults<BlogPostInfo> blogPostList = getBlogPostList(node, fromDate, toDate,
|
PagingResults<BlogPostInfo> blogPostList = getBlogPostList(node, fromDate, toDate,
|
||||||
tag, pagingReq);
|
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);
|
createFtlModel(req, model, node, pagingReq, blogPostList);
|
||||||
|
|
||||||
return model;
|
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)
|
private PagingResults<BlogPostInfo> getBlogPostList(NodeRef node, Date fromDate, Date toDate, String tag, PagingRequest pagingReq)
|
||||||
{
|
{
|
||||||
PagingResults<BlogPostInfo> results = getBlogResultsImpl(node, fromDate, toDate, tag, pagingReq);
|
// Currently we only support CannedQuery-based gets without tags:
|
||||||
return results;
|
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
|
public class BlogPostsGet extends AbstractGetBlogWebScript
|
||||||
{
|
{
|
||||||
|
|
||||||
@SuppressWarnings("deprecation")
|
@SuppressWarnings("deprecation")
|
||||||
@Override
|
@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.
|
// This intentionally uses the deprecated method in the foundation service.
|
||||||
// In fact the method is there specifically for this class.
|
// 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
|
public class BlogPostsMyDraftsGet extends AbstractGetBlogWebScript
|
||||||
{
|
{
|
||||||
@Override
|
@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);
|
return blogService.getDrafts(node, AuthenticationUtil.getFullyAuthenticatedUser(), pagingReq);
|
||||||
}
|
}
|
||||||
|
@@ -35,7 +35,7 @@ import org.alfresco.service.cmr.repository.NodeRef;
|
|||||||
public class BlogPostsMyPublishedGet extends AbstractGetBlogWebScript
|
public class BlogPostsMyPublishedGet extends AbstractGetBlogWebScript
|
||||||
{
|
{
|
||||||
@Override
|
@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();
|
String fullyAuthenticatedUser = AuthenticationUtil.getFullyAuthenticatedUser();
|
||||||
return blogService.getPublished(node, fromDate, toDate, fullyAuthenticatedUser, pagingReq);
|
return blogService.getPublished(node, fromDate, toDate, fullyAuthenticatedUser, pagingReq);
|
||||||
|
@@ -34,7 +34,7 @@ import org.alfresco.service.cmr.repository.NodeRef;
|
|||||||
public class BlogPostsNewGet extends AbstractGetBlogWebScript
|
public class BlogPostsNewGet extends AbstractGetBlogWebScript
|
||||||
{
|
{
|
||||||
@Override
|
@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);
|
return blogService.getPublished(node, fromDate, toDate, null, pagingReq);
|
||||||
}
|
}
|
||||||
|
@@ -41,7 +41,7 @@ import org.springframework.extensions.webscripts.WebScriptRequest;
|
|||||||
public class BlogPostsPerMonthGet extends AbstractGetBlogWebScript
|
public class BlogPostsPerMonthGet extends AbstractGetBlogWebScript
|
||||||
{
|
{
|
||||||
@Override
|
@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);
|
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.ChildAssociationRef;
|
||||||
import org.alfresco.service.cmr.repository.NodeRef;
|
import org.alfresco.service.cmr.repository.NodeRef;
|
||||||
import org.alfresco.service.cmr.tagging.TaggingService;
|
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.JSONArray;
|
||||||
import org.json.JSONException;
|
import org.json.JSONException;
|
||||||
import org.json.JSONObject;
|
import org.json.JSONObject;
|
||||||
@@ -50,6 +52,8 @@ import org.springframework.extensions.webscripts.WebScriptRequest;
|
|||||||
*/
|
*/
|
||||||
public class BlogPostsPost extends AbstractBlogWebScript
|
public class BlogPostsPost extends AbstractBlogWebScript
|
||||||
{
|
{
|
||||||
|
private static final Log log = LogFactory.getLog(BlogPostsPost.class);
|
||||||
|
|
||||||
// Injected services
|
// Injected services
|
||||||
private ActivityService activityService;
|
private ActivityService activityService;
|
||||||
private TaggingService taggingService;
|
private TaggingService taggingService;
|
||||||
@@ -203,6 +207,18 @@ public class BlogPostsPost extends AbstractBlogWebScript
|
|||||||
String titleParam = jsonParams.getTitle() == null ? "" : jsonParams.getTitle();
|
String titleParam = jsonParams.getTitle() == null ? "" : jsonParams.getTitle();
|
||||||
String contentParam = jsonParams.getContent() == null ? "" : jsonParams.getContent();
|
String contentParam = jsonParams.getContent() == null ? "" : jsonParams.getContent();
|
||||||
boolean isDraftParam = jsonParams.getIsDraft() == null ? false : Boolean.parseBoolean(jsonParams.getIsDraft());
|
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>();
|
List<String> tagsParam = new ArrayList<String>();
|
||||||
if (jsonParams.getTags() != null)
|
if (jsonParams.getTags() != null)
|
||||||
{
|
{
|
||||||
|
@@ -34,7 +34,7 @@ import org.alfresco.service.cmr.repository.NodeRef;
|
|||||||
public class BlogPostsPublishedExtGet extends AbstractGetBlogWebScript
|
public class BlogPostsPublishedExtGet extends AbstractGetBlogWebScript
|
||||||
{
|
{
|
||||||
@Override
|
@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);
|
return blogService.getPublishedExternally(node, pagingReq);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user