ALF-9156 Refactor the calendar webscript activity generation to the abstract base class

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@29079 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Nick Burch
2011-07-15 13:45:47 +00:00
parent 43b6c85bbe
commit 4694cec30a
4 changed files with 58 additions and 72 deletions

View File

@@ -39,6 +39,8 @@ import org.alfresco.service.cmr.site.SiteService;
import org.alfresco.service.namespace.QName;
import org.alfresco.util.GUID;
import org.alfresco.util.ISO8601DateFormat;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.json.JSONException;
import org.json.JSONObject;
import org.json.JSONTokener;
@@ -56,6 +58,8 @@ public abstract class AbstractCalendarWebScript extends DeclarativeWebScript
{
public static final String CALENDAR_SERVICE_ACTIVITY_APP_NAME = "calendar";
private static Log logger = LogFactory.getLog(AbstractCalendarWebScript.class);
/**
* When no maximum or paging info is given, what should we use?
*/
@@ -219,6 +223,57 @@ public abstract class AbstractCalendarWebScript extends DeclarativeWebScript
return model;
}
/**
* Generates an activity entry for the entry
*/
protected String addActivityEntry(String event, CalendarEntry entry, SiteInfo site,
WebScriptRequest req, JSONObject json)
{
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
String dateOpt = "?date=" + fmt.format(entry.getStart());
// What page is this for?
String page = req.getParameter("page");
if(page == null && json != null)
{
if(json.has("page"))
{
try
{
page = json.getString("page");
}
catch(JSONException e) {}
}
}
if(page == null)
{
// Default
page = "calendar";
}
try
{
JSONObject activity = new JSONObject();
activity.put("title", entry.getTitle());
activity.put("page", page + dateOpt);
activityService.postActivity(
"org.alfresco.calendar.event-" + event,
site.getShortName(),
CALENDAR_SERVICE_ACTIVITY_APP_NAME,
activity.toString()
);
}
catch(Exception e)
{
// Warn, but carry on
logger.warn("Error adding event " + event + " to activities feed", e);
}
// Return the date we used
return dateOpt;
}
/**
* For an event that is a recurring event, have an ignored child event

View File

@@ -22,8 +22,6 @@ import java.util.Map;
import org.alfresco.service.cmr.calendar.CalendarEntry;
import org.alfresco.service.cmr.site.SiteInfo;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.json.JSONObject;
import org.springframework.extensions.webscripts.Cache;
import org.springframework.extensions.webscripts.Status;
@@ -37,8 +35,6 @@ import org.springframework.extensions.webscripts.WebScriptRequest;
*/
public class CalendarEntryDelete extends AbstractCalendarWebScript
{
private static Log logger = LogFactory.getLog(CalendarEntryDelete.class);
/**
* This WebScript uses HTTP status codes for errors
*/
@@ -75,24 +71,7 @@ public class CalendarEntryDelete extends AbstractCalendarWebScript
calendarService.deleteCalendarEntry(entry);
// Record this in the activity feed
try
{
JSONObject activity = new JSONObject();
activity.put("title", entry.getTitle());
activity.put("page", req.getParameter("page"));
activityService.postActivity(
"org.alfresco.calendar.event-deleted",
site.getShortName(),
CALENDAR_SERVICE_ACTIVITY_APP_NAME,
activity.toString()
);
}
catch(Exception e)
{
// Warn, but carry on
logger.warn("Error adding event deletion to activities feed", e);
}
addActivityEntry("deleted", entry, site, req, json);
// All done
status.setCode(Status.STATUS_NO_CONTENT, "Entry deleted");

View File

@@ -18,7 +18,6 @@
*/
package org.alfresco.repo.web.scripts.calendar;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;
@@ -26,8 +25,6 @@ import java.util.StringTokenizer;
import org.alfresco.service.cmr.calendar.CalendarEntry;
import org.alfresco.service.cmr.calendar.CalendarEntryDTO;
import org.alfresco.service.cmr.site.SiteInfo;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.json.JSONException;
import org.json.JSONObject;
import org.springframework.extensions.webscripts.Cache;
@@ -42,8 +39,6 @@ import org.springframework.extensions.webscripts.WebScriptRequest;
*/
public class CalendarEntryPost extends AbstractCalendarWebScript
{
private static Log logger = LogFactory.getLog(CalendarEntryPost.class);
@Override
protected Map<String, Object> executeImpl(SiteInfo site, String eventName,
WebScriptRequest req, JSONObject json, Status status, Cache cache) {
@@ -89,26 +84,7 @@ public class CalendarEntryPost extends AbstractCalendarWebScript
// Generate the activity feed for this
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
String dateOpt = "?date=" + fmt.format(entry.getStart());
try
{
JSONObject activity = new JSONObject();
activity.put("title", entry.getTitle());
activity.put("page", req.getParameter("page") + dateOpt);
activityService.postActivity(
"org.alfresco.calendar.event-created",
site.getShortName(),
CALENDAR_SERVICE_ACTIVITY_APP_NAME,
activity.toString()
);
}
catch(Exception e)
{
// Warn, but carry on
logger.warn("Error adding event deletion to activities feed", e);
}
String dateOpt = addActivityEntry("created", entry, site, req, json);
// Build the return object

View File

@@ -18,7 +18,6 @@
*/
package org.alfresco.repo.web.scripts.calendar;
import java.text.SimpleDateFormat;
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;
@@ -26,8 +25,6 @@ import java.util.StringTokenizer;
import org.alfresco.service.cmr.calendar.CalendarEntry;
import org.alfresco.service.cmr.calendar.CalendarEntryDTO;
import org.alfresco.service.cmr.site.SiteInfo;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.json.JSONException;
import org.json.JSONObject;
import org.springframework.extensions.webscripts.Cache;
@@ -42,8 +39,6 @@ import org.springframework.extensions.webscripts.WebScriptRequest;
*/
public class CalendarEntryPut extends AbstractCalendarWebScript
{
private static Log logger = LogFactory.getLog(CalendarEntryPut.class);
@Override
protected Map<String, Object> executeImpl(SiteInfo site, String eventName,
WebScriptRequest req, JSONObject json, Status status, Cache cache) {
@@ -157,26 +152,7 @@ public class CalendarEntryPut extends AbstractCalendarWebScript
// Generate the activity feed for this
SimpleDateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");
String dateOpt = "?date=" + fmt.format(entry.getStart());
try
{
JSONObject activity = new JSONObject();
activity.put("title", entry.getTitle());
activity.put("page", req.getParameter("page") + dateOpt);
activityService.postActivity(
"org.alfresco.calendar.event-updated",
site.getShortName(),
CALENDAR_SERVICE_ACTIVITY_APP_NAME,
activity.toString()
);
}
catch(Exception e)
{
// Warn, but carry on
logger.warn("Error adding event deletion to activities feed", e);
}
String dateOpt = addActivityEntry("updated", entry, site, req, json);
// Build the return object