You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openmeetings.apache.org by so...@apache.org on 2015/08/12 12:16:27 UTC
svn commit: r1695467 [2/4] - in /openmeetings/trunk/singlewebapp:
openmeetings-core/src/main/java/org/apache/openmeetings/core/data/conference/
openmeetings-core/src/main/java/org/apache/openmeetings/core/remote/
openmeetings-db/src/main/java/org/apach...
Modified: openmeetings/trunk/singlewebapp/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java?rev=1695467&r1=1695466&r2=1695467&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-service/src/main/java/org/apache/openmeetings/service/user/UserManager.java Wed Aug 12 10:16:26 2015
@@ -439,20 +439,15 @@ public class UserManager implements IUse
if (rcl.getRoomId() != null) {
scopeName = rcl.getRoomId().toString();
}
- IScope currentScope = scopeApplicationAdapter
- .getRoomScope(scopeName);
+ IScope currentScope = scopeApplicationAdapter.getRoomScope(scopeName);
scopeApplicationAdapter.roomLeaveByScope(rcl, currentScope, true);
HashMap<Integer, String> messageObj = new HashMap<Integer, String>();
messageObj.put(0, "kick");
- scopeApplicationAdapter.sendMessageById(messageObj,
- rcl.getStreamid(), currentScope);
-
+ scopeApplicationAdapter.sendMessageById(messageObj, rcl.getStreamid(), currentScope);
}
-
return true;
}
-
} catch (Exception err) {
log.error("[kickUserByStreamId]", err);
}
Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UserPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UserPanel.java?rev=1695467&r1=1695466&r2=1695467&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UserPanel.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/common/UserPanel.java Wed Aug 12 10:16:26 2015
@@ -24,7 +24,6 @@ import static org.apache.openmeetings.we
import java.util.ArrayList;
import java.util.List;
-import org.apache.openmeetings.db.dao.room.IRoomManager;
import org.apache.openmeetings.db.dao.room.RoomDao;
import org.apache.openmeetings.db.entity.room.Room;
import org.apache.openmeetings.web.app.Application;
@@ -45,8 +44,8 @@ public abstract class UserPanel extends
public static List<Room> getMyRooms() {
List<Room> result = new ArrayList<Room>();
- result.add(getBean(IRoomManager.class).getRoomByOwnerAndTypeId(getUserId(), 1L, Application.getString(1306L)));
- result.add(getBean(IRoomManager.class).getRoomByOwnerAndTypeId(getUserId(), 3L, Application.getString(1307L)));
+ result.add(getBean(RoomDao.class).getUserRoom(getUserId(), 1L, Application.getString(1306L)));
+ result.add(getBean(RoomDao.class).getUserRoom(getUserId(), 3L, Application.getString(1307L)));
result.addAll(getBean(RoomDao.class).getAppointedRoomsByUser(getUserId()));
return result;
}
Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java?rev=1695467&r1=1695466&r2=1695467&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/AppointmentDialog.java Wed Aug 12 10:16:26 2015
@@ -32,7 +32,7 @@ import java.util.List;
import java.util.Set;
import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
-import org.apache.openmeetings.db.dao.calendar.AppointmentReminderTypDao;
+import org.apache.openmeetings.db.dao.calendar.AppointmentReminderTypeDao;
import org.apache.openmeetings.db.dao.room.RoomDao;
import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.openmeetings.db.entity.calendar.Appointment;
@@ -360,7 +360,7 @@ public class AppointmentDialog extends A
}
private List<AppointmentReminderType> getRemindTypes() {
- return getBean(AppointmentReminderTypDao.class).get();
+ return getBean(AppointmentReminderTypeDao.class).get();
}
private List<Room> getRoomList() {
Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java?rev=1695467&r1=1695466&r2=1695467&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/java/org/apache/openmeetings/web/user/calendar/CalendarPanel.java Wed Aug 12 10:16:26 2015
@@ -27,7 +27,7 @@ import java.util.Date;
import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
-import org.apache.openmeetings.db.dao.calendar.AppointmentReminderTypDao;
+import org.apache.openmeetings.db.dao.calendar.AppointmentReminderTypeDao;
import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.openmeetings.db.entity.calendar.Appointment;
import org.apache.openmeetings.web.app.Application;
@@ -84,8 +84,8 @@ public class CalendarPanel extends UserP
return getBean(AppointmentDao.class);
}
- private AppointmentReminderTypDao getAppointmentReminderTypDao() {
- return getBean(AppointmentReminderTypDao.class);
+ private AppointmentReminderTypeDao getReminderTypeDao() {
+ return getBean(AppointmentReminderTypeDao.class);
}
public void refresh(IPartialPageRequestHandler handler) {
@@ -265,7 +265,7 @@ public class CalendarPanel extends UserP
private Appointment getDefault() {
Appointment a = new Appointment();
- a.setRemind(getAppointmentReminderTypDao().get(3L)); //TODO: Make configurable
+ a.setRemind(getReminderTypeDao().get(3L)); //TODO: Make configurable
a.setOwner(getBean(UserDao.class).get(getUserId()));
a.setTitle(Application.getString(1444));
log.debug(" -- getDefault -- Current model " + a);
Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml?rev=1695467&r1=1695466&r2=1695467&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/main/webapp/WEB-INF/classes/openmeetings-applicationContext.xml Wed Aug 12 10:16:26 2015
@@ -193,7 +193,7 @@
<!-- End of Services -->
<!-- Interface Transactional -->
- <bean id="appointmentReminderTypDaoImpl" class="org.apache.openmeetings.db.dao.calendar.AppointmentReminderTypDao" />
+ <bean id="appointmentReminderTypeDaoImpl" class="org.apache.openmeetings.db.dao.calendar.AppointmentReminderTypeDao" />
<bean id="appointmentCategoryDaoImpl" class="org.apache.openmeetings.db.dao.calendar.AppointmentCategoryDao" />
<bean id="roommanagement" class="org.apache.openmeetings.core.data.conference.RoomManager" />
<bean id="roomDao" class="org.apache.openmeetings.db.dao.room.RoomDao"/>
@@ -267,32 +267,35 @@
</bean>
<!-- Axis2 Service Proxy's -->
- <bean id="userWebService" class="org.apache.openmeetings.webservice.UserWebService" />
+ <bean id="calendarWebService" class="org.apache.openmeetings.webservice.CalendarWebService" />
<bean id="errorWebService" class="org.apache.openmeetings.webservice.ErrorWebService" />
+ <bean id="fileWebService" class="org.apache.openmeetings.webservice.FileWebService" />
<bean id="groupWebService" class="org.apache.openmeetings.webservice.GroupWebService" />
+ <bean id="recordWebService" class="org.apache.openmeetings.webservice.RecordingWebService" />
+ <bean id="roomWebService" class="org.apache.openmeetings.webservice.RoomWebService" />
+ <bean id="roomTypeWebService" class="org.apache.openmeetings.webservice.RoomTypeWebService" />
<bean id="roomWebService" class="org.apache.openmeetings.webservice.RoomWebService" />
- <bean id="fileWebService" class="org.apache.openmeetings.webservice.FileWebService" />
- <bean id="calendarWebService" class="org.apache.openmeetings.webservice.CalendarWebService" />
- <bean id="jabberWebService" class="org.apache.openmeetings.webservice.JabberWebService" />
<bean id="serverWebService" class="org.apache.openmeetings.webservice.ServerWebService" />
+ <bean id="userWebService" class="org.apache.openmeetings.webservice.UserWebService" />
<!-- (writeXsiType=false) -->
<jaxrs:server id="server" address="/">
<jaxrs:serviceBeans>
- <ref bean="userWebService"/>
+ <ref bean="calendarWebService"/>
<ref bean="errorWebService"/>
+ <ref bean="fileWebService"/>
<ref bean="groupWebService"/>
+ <ref bean="recordWebService"/>
+ <ref bean="roomTypeWebService"/>
<ref bean="roomWebService"/>
- <ref bean="fileWebService"/>
- <ref bean="calendarWebService"/>
- <ref bean="jabberWebService"/>
<ref bean="serverWebService"/>
+ <ref bean="userWebService"/>
</jaxrs:serviceBeans>
</jaxrs:server>
- <jaxws:endpoint id="userServiceWS" address="/UserService"
- implementor="#userWebService"
- endpointName="UserServiceEndpoint"
- serviceName="UserService"
+ <jaxws:endpoint id="calendarServiceWS" address="/CalendarService"
+ implementor="#calendarWebService"
+ endpointName="CalendarServiceEndpoint"
+ serviceName="CalendarService"
/>
<jaxws:endpoint id="errorServiceWS" address="/ErrorService"
implementor="#errorWebService"
@@ -304,29 +307,34 @@
endpointName="GroupServiceEndpoint"
serviceName="GroupService"
/>
- <jaxws:endpoint id="roomServiceWS" address="/RoomService"
- implementor="#roomWebService"
- endpointName="RoomServiceEndpoint"
- serviceName="RoomService"
- />
<jaxws:endpoint id="fileServiceWS" address="/FileService"
implementor="#fileWebService"
endpointName="FileServiceEndpoint"
serviceName="FileService"
/>
- <jaxws:endpoint id="calendarServiceWS" address="/CalendarService"
- implementor="#calendarWebService"
- endpointName="CalendarServiceEndpoint"
- serviceName="CalendarService"
+ <jaxws:endpoint id="recordServiceWS" address="/RecordService"
+ implementor="#recordWebService"
+ endpointName="RecordServiceEndpoint"
+ serviceName="RecordService"
+ />
+ <jaxws:endpoint id="roomTypeServiceWS" address="/RoomTypeService"
+ implementor="#roomTypeWebService"
+ endpointName="RoomTypeServiceEndpoint"
+ serviceName="RoomTypeService"
/>
- <jaxws:endpoint id="jabberServiceWS" address="/JabberService"
- implementor="#jabberWebService"
- endpointName="JabberServiceEndpoint"
- serviceName="JabberService"
+ <jaxws:endpoint id="roomServiceWS" address="/RoomService"
+ implementor="#roomWebService"
+ endpointName="RoomServiceEndpoint"
+ serviceName="RoomService"
/>
<jaxws:endpoint id="serverServiceWS" address="/ServerService"
implementor="#serverWebService"
endpointName="ServerServiceEndpoint"
serviceName="ServerService"
/>
+ <jaxws:endpoint id="userServiceWS" address="/UserService"
+ implementor="#userWebService"
+ endpointName="UserServiceEndpoint"
+ serviceName="UserService"
+ />
</beans>
Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java?rev=1695467&r1=1695466&r2=1695467&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/AbstractJUnitDefaults.java Wed Aug 12 10:16:26 2015
@@ -26,7 +26,7 @@ import java.util.List;
import org.apache.openmeetings.db.dao.basic.ConfigurationDao;
import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
-import org.apache.openmeetings.db.dao.calendar.AppointmentReminderTypDao;
+import org.apache.openmeetings.db.dao.calendar.AppointmentReminderTypeDao;
import org.apache.openmeetings.db.dao.room.RoomTypeDao;
import org.apache.openmeetings.db.dao.user.UserDao;
import org.apache.openmeetings.db.entity.calendar.Appointment;
@@ -53,7 +53,7 @@ public abstract class AbstractJUnitDefau
@Autowired
private AppointmentDao appointmentDao;
@Autowired
- private AppointmentReminderTypDao reminderTypeDao;
+ private AppointmentReminderTypeDao reminderTypeDao;
@Autowired
private RoomTypeDao roomTypeDao;
@Autowired
Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureAppointment.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureAppointment.java?rev=1695467&r1=1695466&r2=1695467&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureAppointment.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureAppointment.java Wed Aug 12 10:16:26 2015
@@ -71,10 +71,6 @@ public class TestDatabaseStructureAppoin
for (Iterator<Appointment> iter = listAppoints.iterator();iter.hasNext();) {
log.debug(""+iter.next());
}
-
- //AppointmentDaoImpl.getInstance().updateAppointment(1L,"neu", "erster Test",Calendar.getInstance().getTime() ,
- //Calendar.getInstance().getTime(), true, false, false, false, new Long(1));
- //log.debug("AppointmentReminderTypDaoImpl: "+appointmentReminderTypDaoImpl.getAppointmentReminderTypById(1L));
} catch (Exception err) {
log.error("[testAddingGroup]",err);
Modified: openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureAppointmentReminderTyp.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureAppointmentReminderTyp.java?rev=1695467&r1=1695466&r2=1695467&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureAppointmentReminderTyp.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-web/src/test/java/org/apache/openmeetings/test/calendar/TestDatabaseStructureAppointmentReminderTyp.java Wed Aug 12 10:16:26 2015
@@ -23,7 +23,7 @@ import static org.apache.openmeetings.ut
import java.util.Calendar;
import java.util.List;
-import org.apache.openmeetings.db.dao.calendar.AppointmentReminderTypDao;
+import org.apache.openmeetings.db.dao.calendar.AppointmentReminderTypeDao;
import org.apache.openmeetings.db.entity.calendar.AppointmentReminderType;
import org.apache.openmeetings.test.AbstractJUnitDefaults;
import org.junit.Test;
@@ -35,7 +35,7 @@ public class TestDatabaseStructureAppoin
private static final Logger log = Red5LoggerFactory.getLogger(TestDatabaseStructureAppointmentReminderTyp.class, webAppRootKey);
@Autowired
- private AppointmentReminderTypDao reminderTypeDao;
+ private AppointmentReminderTypeDao reminderTypeDao;
@Test
public void testAddingGroup() {
Modified: openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java?rev=1695467&r1=1695466&r2=1695467&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/CalendarWebService.java Wed Aug 12 10:16:26 2015
@@ -26,16 +26,21 @@ import java.util.Date;
import java.util.List;
import java.util.Set;
+import javax.jws.WebParam;
import javax.jws.WebService;
+import javax.ws.rs.GET;
+import javax.ws.rs.POST;
import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import org.apache.cxf.feature.Features;
import org.apache.openmeetings.core.data.conference.RoomManager;
import org.apache.openmeetings.db.dao.calendar.AppointmentCategoryDao;
import org.apache.openmeetings.db.dao.calendar.AppointmentDao;
-import org.apache.openmeetings.db.dao.calendar.AppointmentReminderTypDao;
+import org.apache.openmeetings.db.dao.calendar.AppointmentReminderTypeDao;
import org.apache.openmeetings.db.dao.room.RoomDao;
import org.apache.openmeetings.db.dao.room.RoomTypeDao;
import org.apache.openmeetings.db.dao.server.SessiondataDao;
@@ -50,6 +55,7 @@ import org.apache.openmeetings.db.entity
import org.apache.openmeetings.db.util.AuthLevelUtil;
import org.apache.openmeetings.db.util.TimezoneUtil;
import org.apache.openmeetings.service.calendar.AppointmentLogic;
+import org.apache.openmeetings.util.CalendarPatterns;
import org.apache.openmeetings.webservice.error.ServiceException;
import org.red5.logging.Red5LoggerFactory;
import org.slf4j.Logger;
@@ -74,7 +80,7 @@ public class CalendarWebService {
@Autowired
private AppointmentLogic appointmentLogic;
@Autowired
- private SessiondataDao sessiondataDao;
+ private SessiondataDao sessionDao;
@Autowired
private UserDao userDao;
@Autowired
@@ -84,90 +90,104 @@ public class CalendarWebService {
@Autowired
private AppointmentCategoryDao appointmentCategoryDao;
@Autowired
- private AppointmentReminderTypDao appointmentReminderTypDao;
+ private AppointmentReminderTypeDao reminderTypeDao;
@Autowired
private TimezoneUtil timezoneUtil;
@Autowired
private RoomTypeDao roomTypeDao;
- private List<AppointmentDTO> getAppointments(List<Appointment> list) {
- List<AppointmentDTO> result = new ArrayList<>(list.size());
- for (Appointment a : list) {
- result.add(new AppointmentDTO(a));
- }
- return result;
- }
-
/**
* Load appointments by a start / end range for the current SID
*
- * @param SID
+ * @param sid
* The SID of the User. This SID must be marked as Loggedin
- * @param starttime
- * start time, yyyy-mm-dd
- * @param endtime
- * end time, yyyy-mm-dd
+ * @param start
+ * start time
+ * @param end
+ * end time
*
* @return - list of appointments in range
*/
- public List<AppointmentDTO> getAppointmentByRange(String SID, Calendar starttime, Calendar endtime) {
- log.debug("getAppointmentByRange : startdate - " + starttime.getTime() + ", enddate - " + endtime.getTime());
+ @GET
+ @Path("/{start}/{end}")
+ public List<AppointmentDTO> range(@QueryParam("sid") @WebParam String sid, @PathParam("start") @WebParam Calendar start, @PathParam("end") @WebParam Calendar end) throws ServiceException {
+ log.debug("range : startdate - " + start.getTime() + ", enddate - " + end.getTime());
try {
- Long userId = sessiondataDao.checkSession(SID);
+ Long userId = sessionDao.checkSession(sid);
if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {
- return getAppointments(appointmentDao.getAppointmentsByRange(userId, starttime.getTime(), endtime.getTime()));
+ return AppointmentDTO.list(appointmentDao.getAppointmentsByRange(userId, start.getTime(), end.getTime()));
+ } else {
+ throw new ServiceException("Insufficient permissins"); //TODO code -26
}
+ } catch (ServiceException err) {
+ throw err;
} catch (Exception err) {
- log.error("[getAppointmentByRange]", err);
+ log.error("[range]", err);
+ throw new ServiceException(err.getMessage());
}
- return null;
}
/**
* Load appointments by a start / end range for the userId
*
- * @param SID
+ * @param sid
* The SID of the User. This SID must be marked as Loggedin
- * @param userId
+ * @param userid
* the userId the calendar events should be loaded
- * @param starttime
- * start time, yyyy-mm-dd
- * @param endtime
- * end time, yyyy-mm-dd
+ * @param start
+ * start time
+ * @param end
+ * end time
*
* @return - list of appointments in range
*/
- public List<AppointmentDTO> getAppointmentByRangeForUserId(String SID, long userId, Calendar starttime, Calendar endtime) {
- log.debug("getAppointmentByRangeForUserId : startdate - " + starttime.getTime() + ", enddate - " + endtime.getTime());
+ @GET
+ @Path("/{userid}/{start}/{end}")
+ public List<AppointmentDTO> rangeForUser(
+ @QueryParam("sid") @WebParam String sid
+ , @PathParam("userid") @WebParam long userid
+ , @PathParam("start") @WebParam Calendar start
+ , @PathParam("end") @WebParam Calendar end) throws ServiceException
+ {
+ log.debug("rangeForUser : startdate - " + start.getTime() + ", enddate - " + end.getTime());
try {
- Long authUserId = sessiondataDao.checkSession(SID);
+ Long authUserId = sessionDao.checkSession(sid);
if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(authUserId))) {
- return getAppointments(appointmentDao.getAppointmentsByRange(userId, starttime.getTime(), endtime.getTime()));
+ return AppointmentDTO.list(appointmentDao.getAppointmentsByRange(userid, start.getTime(), end.getTime()));
+ } else {
+ throw new ServiceException("Insufficient permissins"); //TODO code -26
}
+ } catch (ServiceException err) {
+ throw err;
} catch (Exception err) {
- log.error("[getAppointmentByRangeForUserId]", err);
+ log.error("[rangeForUser]", err);
+ throw new ServiceException(err.getMessage());
}
- return null;
}
/**
* Get the next Calendar event for the current user of the SID
*
- * @param SID
+ * @param sid
* The SID of the User. This SID must be marked as Loggedin
* @return - next Calendar event
*/
- public AppointmentDTO getNextAppointment(String SID) {
+ @GET
+ @Path("/next")
+ public AppointmentDTO next(@QueryParam("sid") @WebParam String sid) throws ServiceException {
try {
- Long userId = sessiondataDao.checkSession(SID);
+ Long userId = sessionDao.checkSession(sid);
if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {
return new AppointmentDTO(appointmentDao.getNextAppointment(userId, new Date()));
+ } else {
+ throw new ServiceException("Insufficient permissins"); //TODO code -26
}
+ } catch (ServiceException err) {
+ throw err;
} catch (Exception err) {
- log.error("[getNextAppointmentById]", err);
+ log.error("[next]", err);
+ throw new ServiceException(err.getMessage());
}
- return null;
-
}
/**
@@ -178,158 +198,115 @@ public class CalendarWebService {
*
* @return - next Calendar event
*/
- public AppointmentDTO getNextAppointmentForUserId(String SID, long userId) {
+ @GET
+ @Path("/next/{userid}")
+ public AppointmentDTO nextForUser(@QueryParam("sid") @WebParam String sid, @PathParam("userid") @WebParam long userid) throws ServiceException {
try {
- Long authUserId = sessiondataDao.checkSession(SID);
+ Long authUserId = sessionDao.checkSession(sid);
if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(authUserId))) {
- return new AppointmentDTO(appointmentDao.getNextAppointment(userId, new Date()));
+ return new AppointmentDTO(appointmentDao.getNextAppointment(userid, new Date()));
+ } else {
+ throw new ServiceException("Insufficient permissins"); //TODO code -26
}
+ } catch (ServiceException err) {
+ throw err;
} catch (Exception err) {
- log.error("[getNextAppointmentById]", err);
+ log.error("[nextForUser]", err);
+ throw new ServiceException(err.getMessage());
}
- return null;
-
}
/**
- * Search a calendar event for the current SID
+ *
+ * Load a calendar event by its room id
*
* @param SID
- * The SID of the User. This SID must be marked as Loggedin
- * @param appointmentName
- * the search string
- *
- * @return - calendar event list
+ * @param roomId
+ * @return - calendar event by its room id
*/
- public List<AppointmentDTO> searchAppointmentByTitle(String SID, String appointmentName) {
+ @GET
+ @Path("/room/{roomid}")
+ public AppointmentDTO getByRoom(@QueryParam("sid") @WebParam String sid, @PathParam("roomid") @WebParam long roomid) throws ServiceException {
try {
- Long userId = sessiondataDao.checkSession(SID);
+ Long userId = sessionDao.checkSession(sid);
if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {
- return getAppointments(appointmentDao.searchAppointmentsByTitle(userId, appointmentName));
+ Appointment app = appointmentDao.getAppointmentByOwnerRoom(userId, roomid);
+ if (app != null) {
+ return new AppointmentDTO(app);
+ }
+ } else {
+ throw new ServiceException("Insufficient permissins"); //TODO code -26
}
+ } catch (ServiceException err) {
+ throw err;
} catch (Exception err) {
- log.error("[searchAppointmentByName]", err);
+ log.error("[getByRoom]", err);
+ throw new ServiceException(err.getMessage());
}
return null;
-
}
/**
- * Save an appointment
+ * Search a calendar event for the current SID
*
* @param SID
* The SID of the User. This SID must be marked as Loggedin
* @param appointmentName
- * name of the calendar event
- * @param appointmentLocation
- * location info text of the calendar event
- * @param appointmentDescription
- * description test of the calendar event
- * @param appointmentstart
- * start as Date yyyy-mm-ddThh:mm:ss
- * @param appointmentend
- * end as Date yyyy-mm-ddThh:mm:ss
- * @param isDaily
- * if the calendar event should be repeated daily (not
- * implemented)
- * @param isWeekly
- * if the calendar event should be repeated weekly (not
- * implemented)
- * @param isMonthly
- * if the calendar event should be repeated monthly (not
- * implemented)
- * @param isYearly
- * if the calendar event should be repeated yearly (not
- * implemented)
- * @param categoryId
- * the category id of the calendar event
- * @param remind
- * the reminder type of the calendar event
- * @param mmClient
- * List of clients, comma separated string, <br/>
- * sample: '1,firstname,lastname,hans.tier@gmail.com,1,Etc/GMT+1'
- * to add multiple clients you can use the same GET parameter in
- * the URL multiple times, for example:
- * &mmClient='1,firstname,lastname,hans.tier@gmail.com,1,Etc/GMT+1'&mmClient='2,firstname,lastname,hans.tier@gmail.com,1,Etc/GMT+1'
- * (Please NOTE mmClient value is enclosed in single quotes)
- * @param roomType
- * the room type for the calendar event
- * @param languageId
- * the language id of the calendar event, notification emails
- * will be send in this language
- * @param isPasswordProtected
- * if the room is password protected
- * @param password
- * the password for the room
+ * the search string
*
- * @return - id of appointment saved
+ * @return - calendar event list
*/
- public Long saveAppointment(String SID, String appointmentName,
- String appointmentLocation, String appointmentDescription,
- Calendar appointmentstart, Calendar appointmentend,
- Boolean isDaily, Boolean isWeekly, Boolean isMonthly,
- Boolean isYearly, Long categoryId, Long remind, String[] mmClient,
- Long roomType, Long languageId,
- Boolean isPasswordProtected, String password, long roomId) {
- //Seems to be create
- log.debug("saveAppointMent SID:" + SID);
-
+ @GET
+ @Path("/title/{title}")
+ public List<AppointmentDTO> getByTitle(@QueryParam("sid") @WebParam String sid, @PathParam("title") @WebParam String title) throws ServiceException {
try {
- Long userId = sessiondataDao.checkSession(SID);
- log.debug("saveAppointMent userId:" + userId);
-
+ Long userId = sessionDao.checkSession(sid);
if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {
- Appointment a = appointmentLogic.getAppointment(appointmentName, appointmentLocation, appointmentDescription,
- appointmentstart, appointmentend, isDaily, isWeekly, isMonthly, isYearly, categoryId, remind,
- mmClient, roomType, languageId, isPasswordProtected, password, roomId, userId);
- return appointmentDao.update(a, userId).getId();
+ return AppointmentDTO.list(appointmentDao.searchAppointmentsByTitle(userId, title));
} else {
- log.error("saveAppointment : wrong user level");
+ throw new ServiceException("Insufficient permissins"); //TODO code -26
}
+ } catch (ServiceException err) {
+ throw err;
} catch (Exception err) {
- log.error("[saveAppointment]", err);
+ log.error("[getByTitle]", err);
+ throw new ServiceException(err.getMessage());
}
- return null;
-
}
/**
- * Update an calendar event time only
+ * Save an appointment
*
* @param SID
* The SID of the User. This SID must be marked as Loggedin
- * @param appointmentId
- * the calendar event that should be updated
- * @param appointmentstart
- * start yyyy-mm-dd
- * @param appointmentend
- * end yyyy-mm-dd
- * @param languageId
- * the language id
+ * @param appointment
+ * calendar event
*
- * @return - id of appointment updated
+ * @return - appointment saved
*/
- public Long updateAppointmentTimeOnly(String SID, Long appointmentId, Date appointmentstart, Date appointmentend, Long languageId) {
+ @POST
+ @Path("/") //TODO FIXME update is also here for now
+ public AppointmentDTO save(@QueryParam("sid") @WebParam String sid, @QueryParam("appointment") @WebParam AppointmentDTO appointment) throws ServiceException {
+ //Seems to be create
+ log.debug("save SID:" + sid);
+
try {
- Long userId = sessiondataDao.checkSession(SID);
- Set<Right> rights = userDao.getRights(userId);
- if (AuthLevelUtil.hasUserLevel(rights)) {
- Appointment a = appointmentDao.get(appointmentId);
- if (!AuthLevelUtil.hasAdminLevel(rights) && !a.getOwner().getId().equals(userId)) {
- throw new ServiceException("The Appointment cannot be updated by the given user");
- }
- if (!a.getStart().equals(appointmentstart) || !a.getEnd().equals(appointmentend)) {
- a.setStart(appointmentstart);
- a.setEnd(appointmentend);
- //FIXME this might change the owner!!!!!
- return appointmentDao.update(a, userId).getId();
- }
+ Long userId = sessionDao.checkSession(sid);
+ log.debug("save userId:" + userId);
+
+ if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {
+ Appointment a = appointment.get(userDao, appointmentDao, reminderTypeDao, roomTypeDao);
+ return new AppointmentDTO(appointmentDao.update(a, userId));
+ } else {
+ log.error("save : wrong user level");
+ throw new ServiceException("Insufficient permissins"); //TODO code -26
}
+ } catch (ServiceException err) {
+ throw err;
} catch (Exception err) {
- log.error("[updateAppointment]", err);
+ log.error("[save]", err);
+ throw new ServiceException(err.getMessage());
}
- return null;
-
}
/**
@@ -393,7 +370,7 @@ public class CalendarWebService {
Boolean isPasswordProtected, String password) throws ServiceException {
try {
- Long userId = sessiondataDao.checkSession(SID);
+ Long userId = sessionDao.checkSession(SID);
Set<Right> rights = userDao.getRights(userId);
if (AuthLevelUtil.hasWebServiceLevel(rights) || AuthLevelUtil.hasAdminLevel(rights)) {
@@ -419,7 +396,7 @@ public class CalendarWebService {
a.setIsMonthly(isMonthly);
a.setIsYearly(isYearly);
a.setCategory(appointmentCategoryDao.get(categoryId));
- a.setRemind(appointmentReminderTypDao.get(remind));
+ a.setRemind(reminderTypeDao.get(remind));
a.getRoom().setComment(appointmentDescription);
a.getRoom().setName(appointmentName);
a.getRoom().setRoomtype(roomTypeDao.get(roomType));
@@ -459,7 +436,7 @@ public class CalendarWebService {
*/
public Long deleteAppointment(String SID, Long appointmentId, Long languageId) throws ServiceException {
try {
- Long userId = sessiondataDao.checkSession(SID);
+ Long userId = sessionDao.checkSession(SID);
Set<Right> rights = userDao.getRights(userId);
Appointment a = appointmentDao.get(appointmentId);
@@ -482,29 +459,6 @@ public class CalendarWebService {
}
/**
- *
- * Load a calendar event by its room id
- *
- * @param SID
- * @param roomId
- * @return - calendar event by its room id
- */
- public AppointmentDTO getAppointmentByRoomId(String SID, Long roomId) {
- try {
- Long userId = sessiondataDao.checkSession(SID);
- if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {
- Appointment appStored = appointmentDao.getAppointmentByOwnerRoom(userId, roomId);
- if (appStored != null) {
- return new AppointmentDTO(appStored);
- }
- }
- } catch (Exception err) {
- log.error("[getAppointmentByRoomId]", err);
- }
- return null;
- }
-
- /**
* Get all categories of calendar events
*
* @param SID
@@ -514,7 +468,7 @@ public class CalendarWebService {
log.debug("AppointmenetCategoryService.getAppointmentCategoryList SID : " + SID);
try {
- Long userId = sessiondataDao.checkSession(SID);
+ Long userId = sessionDao.checkSession(SID);
if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {
List<AppointmentCategory> res = appointmentCategoryDao.getAppointmentCategoryList();
@@ -556,9 +510,9 @@ public class CalendarWebService {
log.debug("getAppointmentReminderTypList");
try {
- Long userId = sessiondataDao.checkSession(SID);
+ Long userId = sessionDao.checkSession(SID);
if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {
- return getReminders(appointmentReminderTypDao.get());
+ return getReminders(reminderTypeDao.get());
} else
log.debug("getAppointmentReminderTypList :error - wrong authlevel!");
} catch (Exception err) {
@@ -566,4 +520,228 @@ public class CalendarWebService {
}
return null;
}
+
+ /**
+ * Adds a conference room that is only available for a period of time
+ *
+ * @param SID
+ * The SID of the User. This SID must be marked as Loggedin
+ * @param name
+ * new name of the room
+ * @param roomtypesId
+ * new type of room (1 = Conference, 2 = Audience, 3 =
+ * Restricted, 4 = Interview)
+ * @param comment
+ * new comment
+ * @param numberOfPartizipants
+ * new numberOfParticipants
+ * @param ispublic
+ * is public
+ * @param appointment
+ * if the room is an appointment
+ * @param isDemoRoom
+ * is it a Demo Room with limited time? (use false if not sure
+ * what that means)
+ * @param demoTime
+ * time in seconds after the user will be logged out (only
+ * enabled if isDemoRoom is true)
+ * @param isModeratedRoom
+ * Users have to wait until a Moderator arrives. Use the
+ * becomeModerator parameter in setUserObjectAndGenerateRoomHash
+ * to set a user as default Moderator
+ * @param externalRoomType
+ * the external room type (can be used to identify different
+ * external systems using same OpenMeetings instance)
+ * @param validFromDate
+ * valid from as Date format: dd.MM.yyyy
+ * @param validFromTime
+ * valid to as time format: mm:hh
+ * @param validToDate
+ * valid to Date format: dd.MM.yyyy
+ * @param validToTime
+ * valid to time format: mm:hh
+ * @param isPasswordProtected
+ * If the links send via EMail to invited people is password
+ * protected
+ * @param password
+ * Password for Invitations send via Mail
+ * @param reminderTypeId
+ * 1=none, 2=simple mail, 3=ICAL
+ * @param redirectURL
+ * URL Users will be lead to if the Conference Time is elapsed
+ *
+ * @return - id of the room in case of success, error code otherwise
+ * @throws ServiceException
+ *//*
+ public Long addRoomWithModerationAndExternalTypeAndStartEnd(String SID,
+ String name, Long roomtypesId, String comment,
+ Long numberOfPartizipants, Boolean ispublic, Boolean appointment,
+ Boolean isDemoRoom, Integer demoTime, Boolean isModeratedRoom,
+ String externalRoomType, String validFromDate,
+ String validFromTime, String validToDate, String validToTime,
+ Boolean isPasswordProtected, String password, Long reminderTypeId,
+ String redirectURL) throws ServiceException {
+ try {
+ Long userId = sessionDao.checkSession(SID);
+
+ if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
+ int validFromHour = Integer.valueOf(validFromTime.substring(0, 2)).intValue();
+ int validFromMinute = Integer.valueOf(validFromTime.substring(3, 5)).intValue();
+
+ int validToHour = Integer.valueOf(validToTime.substring(0, 2)).intValue();
+ int validToMinute = Integer.valueOf(validToTime.substring(3, 5)).intValue();
+
+ log.info("validFromHour: " + validFromHour);
+ log.info("validFromMinute: " + validFromMinute);
+
+ Date fromDate = CalendarPatterns.parseDateBySeparator(validFromDate); // dd.MM.yyyy
+ Date toDate = CalendarPatterns.parseDateBySeparator(validToDate); // dd.MM.yyyy
+
+ if (fromDate == null || toDate == null) {
+ throw new ServiceException("Invalid dates are passed");
+ }
+ Calendar calFrom = Calendar.getInstance();
+ calFrom.setTime(fromDate);
+ calFrom.set(calFrom.get(Calendar.YEAR),
+ calFrom.get(Calendar.MONTH),
+ calFrom.get(Calendar.DATE), validFromHour,
+ validFromMinute, 0);
+
+ Calendar calTo = Calendar.getInstance();
+ calTo.setTime(toDate);
+ calTo.set(calTo.get(Calendar.YEAR), calTo.get(Calendar.MONTH),
+ calTo.get(Calendar.DATE), validToHour, validToMinute, 0);
+
+ Date dFrom = calFrom.getTime();
+ Date dTo = calTo.getTime();
+
+ log.info("validFromDate: " + CalendarPatterns.getDateWithTimeByMiliSeconds(dFrom));
+ log.info("validToDate: " + CalendarPatterns.getDateWithTimeByMiliSeconds(dTo));
+
+ Long roomId = roomManager.addExternalRoom(name,
+ roomtypesId, comment, numberOfPartizipants, ispublic,
+ null, appointment, isDemoRoom, demoTime,
+ isModeratedRoom, null, null, externalRoomType, false, // allowUserQuestions
+ false, // isAudioOnly
+ true, // allowFontStyles
+ false, // isClosed
+ redirectURL, false, true, false);
+
+ if (roomId <= 0) {
+ return roomId;
+ }
+
+ Appointment a = new Appointment();
+ a.setTitle("appointmentName");
+ a.setOwner(userDao.get(userId));
+ a.setLocation("appointmentLocation");
+ a.setDescription("appointmentDescription");
+ a.setStart(dFrom);
+ a.setEnd(dTo);
+ a.setCategory(appointmentCategoryDao.get(1L));
+ a.setRemind(reminderTypeDao.get(reminderTypeId));
+ a.setRoom(roomDao.get(roomId));
+ a.setPasswordProtected(isPasswordProtected);
+ a.setPassword(password);
+ a.setLanguageId(1L); //TODO check
+ appointmentDao.update(a, userId); //FIXME verify !!!
+
+ return roomId;
+
+ } else {
+ return -2L;
+ }
+ } catch (Exception err) {
+ log.error("[addRoomWithModeration] ", err);
+
+ throw new ServiceException(err.getMessage());
+ }
+ // return new Long(-1);
+ // return numberOfPartizipants;
+ }*/
+
+ /**
+ * Add a meeting member to a certain room. This is the same as adding an
+ * external user to a event in the calendar.
+ *
+ * @param SID
+ * The SID of the User. This SID must be marked as Loggedin
+ * @param roomId
+ * The Room Id the meeting member is going to be added
+ * @param firstname
+ * The first name of the meeting member
+ * @param lastname
+ * The last name of the meeting member
+ * @param email
+ * The email of the Meeting member
+ * @param languageId
+ * The ID of the language, for the email that is send to the
+ * meeting member
+ *
+ * @return - id of the member in case of success, error code otherwise
+ * @throws ServiceException
+ */
+ public Long addMeetingMemberRemindToRoom(String SID, Long roomId,
+ String firstname, String lastname, String email, Long languageId) throws ServiceException {
+ return addExternalMeetingMemberRemindToRoom(SID, roomId, firstname, lastname, email, languageId, null, null);
+ }
+
+ /**
+ * Add a meeting member to a certain room. This is the same as adding an
+ * external user to a event in the calendar. with a certain time zone
+ *
+ * @param SID
+ * The SID of the User. This SID must be marked as Loggedin
+ * @param roomId
+ * The Room Id the meeting member is going to be added
+ * @param firstname
+ * The first name of the meeting member
+ * @param lastname
+ * The last name of the meeting member
+ * @param email
+ * The email of the Meeting member
+ * @param languageId
+ * The ID of the language, for the email that is send to the
+ * meeting member
+ * @param jNameTimeZone
+ * name of the timezone
+ * @param invitorName
+ * name of invitation creators
+ *
+ * @return - id of the member in case of success, error code otherwise
+ * @throws ServiceException
+ */
+ public Long addExternalMeetingMemberRemindToRoom(String SID, Long roomId,
+ String firstname, String lastname, String email, Long languageId, String jNameTimeZone, String invitorName)
+ throws ServiceException {
+ try {
+ Long userId = sessionDao.checkSession(SID);
+
+ if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
+ Appointment a = appointmentDao.getAppointmentByRoom(roomId);
+
+ if (email == null || a == null) {
+ return -1L;
+ }
+ for (MeetingMember mm : a.getMeetingMembers()) {
+ if (email.equals(mm.getUser().getAddress().getEmail())) {
+ return mm.getId();
+ }
+ }
+ MeetingMember mm = new MeetingMember();
+ mm.setAppointment(a);
+ mm.setUser(userDao.getContact(email, firstname, lastname, languageId, jNameTimeZone, userId));
+ a.getMeetingMembers().add(mm);
+ appointmentDao.update(a, userId);
+
+ return mm.getId(); //FIXME check to return ID
+ } else {
+ return -2L;
+ }
+ } catch (Exception err) {
+ log.error("[addExternalMeetingMemberRemindToRoom] ", err);
+
+ throw new ServiceException(err.getMessage());
+ }
+ }
}
Modified: openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java?rev=1695467&r1=1695466&r2=1695467&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/ErrorWebService.java Wed Aug 12 10:16:26 2015
@@ -40,10 +40,9 @@ import org.springframework.beans.factory
/**
*
- * The Service contains methods to login and create hash to directly enter
- * conference rooms, recordings or the application in general
+ * The Service contains methods to get localized errors
*
- * @author sebawagner
+ * @author solomax
* @webservice ErrorService
*
*/
Modified: openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java?rev=1695467&r1=1695466&r2=1695467&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/GroupWebService.java Wed Aug 12 10:16:26 2015
@@ -33,6 +33,8 @@ import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import org.apache.cxf.feature.Features;
+import org.apache.openmeetings.db.dao.room.RoomDao;
+import org.apache.openmeetings.db.dao.room.RoomOrganisationDao;
import org.apache.openmeetings.db.dao.server.SessiondataDao;
import org.apache.openmeetings.db.dao.user.OrganisationDao;
import org.apache.openmeetings.db.dao.user.OrganisationUserDao;
@@ -41,6 +43,8 @@ import org.apache.openmeetings.db.dto.ba
import org.apache.openmeetings.db.dto.basic.ServiceResult;
import org.apache.openmeetings.db.dto.basic.ServiceResult.Type;
import org.apache.openmeetings.db.dto.user.UserSearchResult;
+import org.apache.openmeetings.db.entity.room.Room;
+import org.apache.openmeetings.db.entity.room.RoomOrganisation;
import org.apache.openmeetings.db.entity.user.Organisation;
import org.apache.openmeetings.db.entity.user.OrganisationUser;
import org.apache.openmeetings.db.entity.user.User;
@@ -73,7 +77,11 @@ public class GroupWebService {
@Autowired
private UserDao userDao;
@Autowired
+ private RoomDao roomDao;
+ @Autowired
private SessiondataDao sessionDao;
+ @Autowired
+ private RoomOrganisationDao roomOrgDao;
/**
* add a new organisation
@@ -112,12 +120,12 @@ public class GroupWebService {
* @return - id of the user added, or error id in case of the error
*/
@POST
- @Path("/{id}/{userId}")
+ @Path("/{id}/users/add/{userId}")
public ServiceResult addUser(
@QueryParam("sid") @WebParam String sid
, @PathParam("id") @WebParam Long id
, @PathParam("userId") @WebParam Long userId
- )
+ ) throws ServiceException
{
try {
Long authUserId = sessionDao.checkSession(sid);
@@ -133,7 +141,54 @@ public class GroupWebService {
}
} catch (Exception err) {
log.error("addUserToOrganisation", err);
- return new ServiceResult(-1L, err.getMessage(), Type.ERROR);
+ throw new ServiceException(err.getMessage());
+ }
+ }
+
+ /**
+ * Adds a room to an organization
+ *
+ * @param SID - The SID of the User. This SID must be marked as Loggedin
+ * @param roomId - Id of room to be added
+ * @param organisationId - Id of organisation that the room is being paired with
+ *
+ * @return Id of the relation created, null or -1 in case of the error
+ */
+ @POST
+ @Path("/{id}/rooms/add/{roomId}")
+ public ServiceResult addRoom(
+ @QueryParam("sid") @WebParam String sid
+ , @PathParam("id") @WebParam Long id
+ , @PathParam("roomId") @WebParam Long roomId
+ ) throws ServiceException
+ {
+ try {
+ Long userId = sessionDao.checkSession(sid);
+ if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
+ Room r = roomDao.get(roomId);
+ if (r != null) {
+ if (r.getRoomOrganisations() == null) {
+ r.setRoomOrganisations(new ArrayList<RoomOrganisation>());
+ }
+ boolean found = false;
+ for (RoomOrganisation ro : r.getRoomOrganisations()) {
+ if (ro.getOrganisation().getId().equals(id)) {
+ found = true;
+ }
+ }
+ if (!found) {
+ r.getRoomOrganisations().add(new RoomOrganisation(orgDao.get(id), r));
+ roomDao.update(r, userId);
+ return new ServiceResult(1L, "Success", Type.SUCCESS);
+ }
+ }
+ return new ServiceResult(0L, "Not added", Type.SUCCESS);
+ } else {
+ return new ServiceResult(-26L, "Insufficient permissins", Type.ERROR);
+ }
+ } catch (Exception err) {
+ log.error("[addRoomToOrg]", err);
+ throw new ServiceException(err.getMessage());
}
}
@@ -155,15 +210,15 @@ public class GroupWebService {
* @return - users found
*/
@GET
- @Path("/{id}")
- public UserSearchResult getUsersByOrganisation(
+ @Path("/users/{id}")
+ public UserSearchResult getUsers(
@QueryParam("sid") @WebParam String sid
, @PathParam("id") @WebParam long id
, @QueryParam("start") @WebParam int start
, @QueryParam("max") @WebParam int max
, @QueryParam("orderby") @WebParam String orderby
, @QueryParam("asc") @WebParam boolean asc
- )
+ ) throws ServiceException
{
try {
Long userId = sessionDao.checkSession(sid);
@@ -182,7 +237,7 @@ public class GroupWebService {
return new UserSearchResult(result);
} catch (Exception err) {
log.error("getUsersByOrganisation", err);
+ throw new ServiceException(err.getMessage());
}
- return null;
}
}
Added: openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RecordingWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RecordingWebService.java?rev=1695467&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RecordingWebService.java (added)
+++ openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RecordingWebService.java Wed Aug 12 10:16:26 2015
@@ -0,0 +1,254 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.webservice;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.List;
+
+import javax.jws.WebService;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+
+import org.apache.cxf.feature.Features;
+import org.apache.openmeetings.db.dao.record.FlvRecordingDao;
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.dto.record.RecordingDTO;
+import org.apache.openmeetings.db.util.AuthLevelUtil;
+import org.apache.openmeetings.webservice.error.ServiceException;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ *
+ * The Service contains methods to work with recordings
+ *
+ * @author solomax
+ * @webservice RecordingService
+ *
+ */
+@WebService(name = "RecordingService")
+@Features(features = "org.apache.cxf.feature.LoggingFeature")
+@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+@Path("/record")
+public class RecordingWebService {
+ private static final Logger log = Red5LoggerFactory.getLogger(RecordingWebService.class, webAppRootKey);
+ @Autowired
+ private SessiondataDao sessionDao;
+ @Autowired
+ private UserDao userDao;
+ @Autowired
+ private FlvRecordingDao recordingDao;
+
+ /**
+ * Deletes a flv recording
+ *
+ * @param SID
+ * The SID of the User. This SID must be marked as Loggedin
+ * @param flvRecordingId
+ * the id of the recording
+ *
+ * @return - true if recording was deleted
+ * @throws ServiceException
+ */
+ public boolean deleteFlvRecording(String SID, Long flvRecordingId)
+ throws ServiceException {
+ try {
+
+ Long userId = sessionDao.checkSession(SID);
+
+ if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
+ return recordingDao.delete(flvRecordingId);
+ }
+
+ } catch (Exception err) {
+ log.error("[deleteFlvRecording] ", err);
+ throw new ServiceException(err.getMessage());
+ }
+
+ return false;
+ }
+
+ /**
+ * Gets a list of flv recordings
+ *
+ * @param SID The SID of the User. This SID must be marked as Loggedin
+ * @param externalUserId the externalUserId
+ * @param externalUsertype the externalUserType
+ *
+ * @return - list of flv recordings
+ * @throws ServiceException
+ */
+ public List<RecordingDTO> getFlvRecordingByExternalUserId(String SID,
+ String externalUserId, String externalUserType) throws ServiceException {
+ try {
+ Long userId = sessionDao.checkSession(SID);
+
+ if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
+ return RecordingDTO.list(recordingDao.getFlvRecordingByExternalUserId(externalUserId, externalUserType));
+ }
+
+ return null;
+ } catch (Exception err) {
+ log.error("[getFlvRecordingByExternalUserId] ", err);
+ throw new ServiceException(err.getMessage());
+ }
+ }
+
+ /**
+ * Gets a list of flv recordings
+ *
+ * @param SID
+ * The SID of the User. This SID must be marked as Loggedin
+ * @param externalRoomType
+ * externalRoomType specified when creating the room
+ * @param insertedBy
+ * the userId that created the recording
+ * @return - list of flv recordings
+ * @throws ServiceException
+ */
+ public List<RecordingDTO> getFlvRecordingByExternalRoomTypeAndCreator(
+ String SID, String externalRoomType, Long insertedBy)
+ throws ServiceException {
+ try {
+
+ Long userId = sessionDao.checkSession(SID);
+
+ if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
+ return RecordingDTO.list(recordingDao.getFlvRecordingByExternalRoomTypeAndCreator(externalRoomType, insertedBy));
+ }
+
+ return null;
+ } catch (Exception err) {
+ log.error("[getFlvRecordingByExternalRoomTypeAndCreator] ", err);
+ throw new ServiceException(err.getMessage());
+ }
+ }
+
+ /**
+ * Gets a list of flv recordings
+ *
+ * @param SID
+ * The SID of the User. This SID must be marked as Loggedin
+ * @param externalRoomType
+ * externalRoomType specified when creating the room
+ * @return - list of flv recordings
+ * @throws ServiceException
+ */
+ public List<RecordingDTO> getFlvRecordingByExternalRoomTypeByList(
+ String SID, String externalRoomType) throws ServiceException {
+ try {
+
+ Long userId = sessionDao.checkSession(SID);
+
+ if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
+ return RecordingDTO.list(recordingDao.getFlvRecordingByExternalRoomType(externalRoomType));
+
+ }
+
+ return null;
+ } catch (Exception err) {
+ log.error("[getFlvRecordingByExternalRoomTypeByList] ", err);
+ throw new ServiceException(err.getMessage());
+ }
+ }
+
+ /**
+ * Gets a list of recordings
+ *
+ * @param SID
+ * The SID of the User. This SID must be marked as logged-in
+ * @param externalType
+ * externalType specified when creating room or user
+ * @return - list of flv recordings
+ * @throws AxisFault
+ */
+ public List<RecordingDTO> getRecordingsByExternalType(String SID, String externalType) throws ServiceException {
+ try {
+ Long userId = sessionDao.checkSession(SID);
+
+ if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
+ return RecordingDTO.list(recordingDao.getRecordingsByExternalType(externalType));
+ }
+
+ return null;
+ } catch (Exception err) {
+ log.error("[getRecordingsByExternalType] ", err);
+ throw new ServiceException(err.getMessage());
+ }
+ }
+
+ /**
+ * Gets a list of flv recordings
+ *
+ * @param SID
+ * The SID of the User. This SID must be marked as Loggedin
+ * @param externalRoomType
+ * externalRoomType specified when creating the room
+ * @return - list of flv recordings
+ * @throws ServiceException
+ */
+ public List<RecordingDTO> getFlvRecordingByExternalRoomType(String SID,
+ String externalRoomType) throws ServiceException {
+ try {
+
+ Long userId = sessionDao.checkSession(SID);
+
+ if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
+ return RecordingDTO.list(recordingDao.getFlvRecordingByExternalRoomType(externalRoomType));
+ }
+
+ return null;
+ } catch (Exception err) {
+ log.error("[getFlvRecordingByExternalRoomType] ", err);
+ throw new ServiceException(err.getMessage());
+ }
+ }
+
+ /**
+ * Get list of recordings
+ *
+ * @param SID
+ * The SID of the User. This SID must be marked as Loggedin
+ * @param roomId
+ * the room id
+ * @return - list of recordings
+ * @throws ServiceException
+ */
+ public List<RecordingDTO> getFlvRecordingByRoomId(String SID, Long roomId)
+ throws ServiceException {
+ try {
+
+ Long userId = sessionDao.checkSession(SID);
+
+ if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
+ return RecordingDTO.list(recordingDao.getFlvRecordingByRoomId(roomId));
+ }
+
+ return null;
+ } catch (Exception err) {
+ log.error("[getFlvRecordingByExternalRoomType] ", err);
+ throw new ServiceException(err.getMessage());
+ }
+ }
+
+}
Added: openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomTypeWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomTypeWebService.java?rev=1695467&view=auto
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomTypeWebService.java (added)
+++ openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomTypeWebService.java Wed Aug 12 10:16:26 2015
@@ -0,0 +1,79 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License") + you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.openmeetings.webservice;
+
+import static org.apache.openmeetings.util.OpenmeetingsVariables.webAppRootKey;
+
+import java.util.List;
+
+import javax.jws.WebService;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+
+import org.apache.cxf.feature.Features;
+import org.apache.openmeetings.db.dao.room.RoomTypeDao;
+import org.apache.openmeetings.db.dao.server.SessiondataDao;
+import org.apache.openmeetings.db.dao.user.UserDao;
+import org.apache.openmeetings.db.entity.room.RoomType;
+import org.apache.openmeetings.db.util.AuthLevelUtil;
+import org.apache.openmeetings.webservice.error.ServiceException;
+import org.red5.logging.Red5LoggerFactory;
+import org.slf4j.Logger;
+import org.springframework.beans.factory.annotation.Autowired;
+
+/**
+ *
+ * The Service contains methods to work with room types
+ *
+ * @author solomax
+ * @webservice RoomTypeService
+ *
+ */
+@WebService(name = "RoomTypeService")
+@Features(features = "org.apache.cxf.feature.LoggingFeature")
+@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+@Path("/roomtype")
+public class RoomTypeWebService {
+ private static final Logger log = Red5LoggerFactory.getLogger(RoomTypeWebService.class, webAppRootKey);
+
+ @Autowired
+ private UserDao userDao;
+ @Autowired
+ private SessiondataDao sessionDao;
+ @Autowired
+ private RoomTypeDao roomTypeDao;
+
+ /**
+ * List of available room types
+ *
+ * @param SID - The SID of the User. This SID must be marked as Loggedin
+ * @return - List of available room types
+ * @throws ServiceException
+ */
+ public List<RoomType> getRoomTypes(String SID) throws ServiceException {
+ log.debug("getRoomTypes");
+ Long userId = sessionDao.checkSession(SID);
+ if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {
+ return roomTypeDao.get();
+ }
+ return null;
+ }
+
+}