import java.util.Date; import java.util.Map; import java.util.HashMap; import java.util.ArrayList; import java.util.List; import java.util.Iterator; import java.util.Set; import java.util.Collection; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.sakaiproject.tool.api.Session; import org.sakaiproject.tool.cover.SessionManager; import org.sakaiproject.user.cover.UserDirectoryService; import org.sakaiproject.user.api.User; import org.sakaiproject.user.api.UserNotDefinedException; import org.sakaiproject.authz.api.AuthzGroup; import org.sakaiproject.authz.cover.AuthzGroupService; import org.sakaiproject.authz.api.Role; import org.sakaiproject.authz.api.Member; import org.sakaiproject.site.api.Group; import org.sakaiproject.site.api.Site; import org.sakaiproject.site.cover.SiteService; import org.sakaiproject.calendar.api.Calendar; import org.sakaiproject.calendar.api.CalendarEvent; import org.sakaiproject.calendar.api.CalendarEventEdit; import org.sakaiproject.calendar.cover.CalendarService; import org.sakaiproject.time.api.TimeRange; import org.sakaiproject.time.cover.TimeService; import org.apache.axis.AxisFault; /** * class to support Sakai data retrieval; */ public class SakaiCalendar { private static final Log LOG = LogFactory.getLog(SakaiCalendar.class); private Session establishSession(String id) throws AxisFault { Session s = SessionManager.getSession(id); if (s == null) { throw new AxisFault("Session "+id+" is not active"); } s.setActive(); SessionManager.setCurrentSession(s); return s; } public boolean addEvent(String sessionid, String site, Date start, int duration, String title, String body) throws AxisFault { Session session = establishSession(sessionid); try{ Calendar c = CalendarService.getCalendar(site); CalendarEventEdit event = c.addEvent(); event.setDisplayName(title); event.setDescription(body); event.setRange(TimeService.newTimeRange(start.getTime(),duration)); c.commitEvent(event); return true; } catch (Exception e){ LOG.warn("Error addEvent:"+title+" session:"+sessionid,e); e.printStackTrace(); throw new AxisFault("Error addEvent:"+title+" session:"+sessionid+" error:"+e.getMessage()); } } }