Author: solomax
Date: Wed Dec 23 10:09:21 2015
New Revision: 1721518

URL: http://svn.apache.org/viewvc?rev=1721518&view=rev
Log:
[OPENMEETINGS-1305] room creation is partially tested

Modified:
    
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java
    
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
    
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
    
openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
    
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java
    
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
    
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
    
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java?rev=1721518&r1=1721517&r2=1721518&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java
 Wed Dec 23 10:09:21 2015
@@ -18,6 +18,9 @@
  */
 package org.apache.openmeetings.db.dto.room;
 
+import static org.apache.openmeetings.db.dto.room.RoomOptionsDTO.optInt;
+import static org.apache.openmeetings.db.dto.room.RoomOptionsDTO.optLong;
+
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
@@ -27,7 +30,7 @@ import javax.xml.bind.annotation.XmlAcce
 import javax.xml.bind.annotation.XmlRootElement;
 
 import org.apache.openmeetings.db.entity.room.Room;
-
+import org.apache.wicket.ajax.json.JSONObject;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.FIELD)
 public class RoomDTO implements Serializable {
@@ -43,7 +46,7 @@ public class RoomDTO implements Serializ
        private boolean demo;
        private boolean closed;
        private Integer demoTime;
-       private Long externalId;
+       private String externalId;
        private String externalType;
        private String redirectUrl;
        private boolean moderated;
@@ -296,11 +299,11 @@ public class RoomDTO implements Serializ
                this.isPublic = isPublic;
        }
 
-       public Long getExternalId() {
+       public String getExternalId() {
                return externalId;
        }
 
-       public void setExternalId(Long externalId) {
+       public void setExternalId(String externalId) {
                this.externalId = externalId;
        }
 
@@ -337,4 +340,41 @@ public class RoomDTO implements Serializ
                }
                return rList;
        }
+       
+       public static RoomDTO fromString(String s) {
+               JSONObject o = new JSONObject(s);
+               RoomDTO r = new RoomDTO();
+               r.id = optLong(o, "id");
+               r.name = o.optString("name");
+               r.comment = o.optString("comment");
+               r.type = Room.Type.valueOf(o.getString("type"));
+               r.numberOfPartizipants = o.optLong("numberOfPartizipants", 4);
+               r.appointment = o.optBoolean("appointment", false);
+               r.confno = o.optString("confno");
+               r.isPublic = o.optBoolean("isPublic", false);
+               r.demo = o.optBoolean("demo", false);
+               r.closed = o.optBoolean("closed", false);
+               r.demoTime = optInt(o, "demoTime");
+               r.externalId = o.optString("externalId");
+               r.externalType = o.optString("externalType");
+               r.redirectUrl = o.optString("redirectUrl");
+               r.moderated = o.optBoolean("moderated", false);
+               r.allowUserQuestions = o.optBoolean("allowUserQuestions", 
false);
+               r.allowRecording = o.optBoolean("allowRecording", false);
+               r.waitForRecording = o.optBoolean("waitForRecording", false);
+               r.audioOnly = o.optBoolean("audioOnly", false);
+               r.topBarHidden = o.optBoolean("topBarHidden", false);
+               r.chatHidden = o.optBoolean("chatHidden", false);
+               r.activitiesHidden = o.optBoolean("activitiesHidden", false);
+               r.filesExplorerHidden = o.optBoolean("filesExplorerHidden", 
false);
+               r.actionsMenuHidden = o.optBoolean("actionsMenuHidden", false);
+               r.screenSharingHidden = o.optBoolean("screenSharingHidden", 
false);
+               r.whiteboardHidden = o.optBoolean("whiteboardHidden", false);
+               return r;
+       }
+       
+       @Override
+       public String toString() {
+               return new JSONObject(this).toString();
+       }
 }

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java?rev=1721518&r1=1721517&r2=1721518&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
 Wed Dec 23 10:09:21 2015
@@ -96,8 +96,12 @@ public class RoomOptionsDTO implements S
                this.allowRecording = allowRecording;
        }
 
-       private static Long optLong(JSONObject o, String key) {
-               return o.has(key) ? o.getLong(key) : null;
+       public static Integer optInt(JSONObject o, String key) {
+               return o.has(key) && !o.isNull(key) ? o.getInt(key) : null;
+       }
+       
+       public static Long optLong(JSONObject o, String key) {
+               return o.has(key) && !o.isNull(key) ? o.getLong(key) : null;
        }
        
        public static RoomOptionsDTO fromString(String s) {

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java?rev=1721518&r1=1721517&r2=1721518&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
 Wed Dec 23 10:09:21 2015
@@ -173,7 +173,7 @@ public class Room implements IDataProvid
        // Vars to simulate external Room
        @Column(name = "external_id")
        @Element(data = true, required = false)
-       private Long externalId;
+       private String externalId;
 
        @Column(name = "external_type")
        @Element(data = true, required = false)
@@ -415,11 +415,11 @@ public class Room implements IDataProvid
                this.moderated = moderated;
        }
 
-       public Long getExternalId() {
+       public String getExternalId() {
                return externalId;
        }
 
-       public void setExternalId(Long externalId) {
+       public void setExternalId(String externalId) {
                this.externalId = externalId;
        }
 

Modified: 
openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java?rev=1721518&r1=1721517&r2=1721518&view=diff
==============================================================================
--- 
openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
 (original)
+++ 
openmeetings/application/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
 Wed Dec 23 10:09:21 2015
@@ -29,6 +29,7 @@ import javax.jws.WebMethod;
 import javax.jws.WebParam;
 import javax.jws.WebService;
 import javax.ws.rs.DELETE;
+import javax.ws.rs.FormParam;
 import javax.ws.rs.GET;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
@@ -207,7 +208,7 @@ public class RoomWebService {
        @WebMethod
        @POST
        @Path("/")
-       public RoomDTO add(@WebParam(name="sid") @QueryParam("sid") String sid, 
@WebParam(name="room") @QueryParam("room") RoomDTO room) throws 
ServiceException {
+       public RoomDTO add(@WebParam(name="sid") @QueryParam("sid") String sid, 
@WebParam(name="room") @FormParam("room") RoomDTO room) throws ServiceException 
{
                try {
                        Long userId = sessionDao.checkSession(sid);
                        if 
(AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
@@ -275,9 +276,13 @@ public class RoomWebService {
        public ServiceResult delete(@WebParam(name="sid") @QueryParam("sid") 
String sid, @WebParam(name="id") @PathParam("id") long id) throws 
ServiceException {
                Long userId = sessionDao.checkSession(sid);
                if 
(AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
-                       roomDao.delete(roomDao.get(id), userId);
-
-                       return new ServiceResult(id, "Deleted", Type.SUCCESS);
+                       Room r = roomDao.get(id);
+                       if (r != null) {
+                               roomDao.delete(r, userId);
+                               return new ServiceResult(id, "Deleted", 
Type.SUCCESS);
+                       } else {
+                               return new ServiceResult(0, "Not found", 
Type.SUCCESS);
+                       }
                } else {
                        throw new ServiceException("Insufficient permissins"); 
//TODO code -26
                }

Modified: 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java?rev=1721518&r1=1721517&r2=1721518&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomDTO.java
 Wed Dec 23 10:09:21 2015
@@ -18,6 +18,9 @@
  */
 package org.apache.openmeetings.db.dto.room;
 
+import static org.apache.openmeetings.db.dto.room.RoomOptionsDTO.optInt;
+import static org.apache.openmeetings.db.dto.room.RoomOptionsDTO.optLong;
+
 import java.io.Serializable;
 import java.util.ArrayList;
 import java.util.List;
@@ -27,7 +30,7 @@ import javax.xml.bind.annotation.XmlAcce
 import javax.xml.bind.annotation.XmlRootElement;
 
 import org.apache.openmeetings.db.entity.room.Room;
-
+import org.apache.wicket.ajax.json.JSONObject;
 @XmlRootElement
 @XmlAccessorType(XmlAccessType.FIELD)
 public class RoomDTO implements Serializable {
@@ -43,7 +46,7 @@ public class RoomDTO implements Serializ
        private boolean demo;
        private boolean closed;
        private Integer demoTime;
-       private Long externalId;
+       private String externalId;
        private String externalType;
        private String redirectUrl;
        private boolean moderated;
@@ -296,11 +299,11 @@ public class RoomDTO implements Serializ
                this.isPublic = isPublic;
        }
 
-       public Long getExternalId() {
+       public String getExternalId() {
                return externalId;
        }
 
-       public void setExternalId(Long externalId) {
+       public void setExternalId(String externalId) {
                this.externalId = externalId;
        }
 
@@ -337,4 +340,41 @@ public class RoomDTO implements Serializ
                }
                return rList;
        }
+       
+       public static RoomDTO fromString(String s) {
+               JSONObject o = new JSONObject(s);
+               RoomDTO r = new RoomDTO();
+               r.id = optLong(o, "id");
+               r.name = o.optString("name");
+               r.comment = o.optString("comment");
+               r.type = Room.Type.valueOf(o.getString("type"));
+               r.numberOfPartizipants = o.optLong("numberOfPartizipants", 4);
+               r.appointment = o.optBoolean("appointment", false);
+               r.confno = o.optString("confno");
+               r.isPublic = o.optBoolean("isPublic", false);
+               r.demo = o.optBoolean("demo", false);
+               r.closed = o.optBoolean("closed", false);
+               r.demoTime = optInt(o, "demoTime");
+               r.externalId = o.optString("externalId");
+               r.externalType = o.optString("externalType");
+               r.redirectUrl = o.optString("redirectUrl");
+               r.moderated = o.optBoolean("moderated", false);
+               r.allowUserQuestions = o.optBoolean("allowUserQuestions", 
false);
+               r.allowRecording = o.optBoolean("allowRecording", false);
+               r.waitForRecording = o.optBoolean("waitForRecording", false);
+               r.audioOnly = o.optBoolean("audioOnly", false);
+               r.topBarHidden = o.optBoolean("topBarHidden", false);
+               r.chatHidden = o.optBoolean("chatHidden", false);
+               r.activitiesHidden = o.optBoolean("activitiesHidden", false);
+               r.filesExplorerHidden = o.optBoolean("filesExplorerHidden", 
false);
+               r.actionsMenuHidden = o.optBoolean("actionsMenuHidden", false);
+               r.screenSharingHidden = o.optBoolean("screenSharingHidden", 
false);
+               r.whiteboardHidden = o.optBoolean("whiteboardHidden", false);
+               return r;
+       }
+       
+       @Override
+       public String toString() {
+               return new JSONObject(this).toString();
+       }
 }

Modified: 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java?rev=1721518&r1=1721517&r2=1721518&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/room/RoomOptionsDTO.java
 Wed Dec 23 10:09:21 2015
@@ -96,8 +96,12 @@ public class RoomOptionsDTO implements S
                this.allowRecording = allowRecording;
        }
 
-       private static Long optLong(JSONObject o, String key) {
-               return o.has(key) ? o.getLong(key) : null;
+       public static Integer optInt(JSONObject o, String key) {
+               return o.has(key) && !o.isNull(key) ? o.getInt(key) : null;
+       }
+       
+       public static Long optLong(JSONObject o, String key) {
+               return o.has(key) && !o.isNull(key) ? o.getLong(key) : null;
        }
        
        public static RoomOptionsDTO fromString(String s) {

Modified: 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java?rev=1721518&r1=1721517&r2=1721518&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-db/src/main/java/org/apache/openmeetings/db/entity/room/Room.java
 Wed Dec 23 10:09:21 2015
@@ -173,7 +173,7 @@ public class Room implements IDataProvid
        // Vars to simulate external Room
        @Column(name = "external_id")
        @Element(data = true, required = false)
-       private Long externalId;
+       private String externalId;
 
        @Column(name = "external_type")
        @Element(data = true, required = false)
@@ -415,11 +415,11 @@ public class Room implements IDataProvid
                this.moderated = moderated;
        }
 
-       public Long getExternalId() {
+       public String getExternalId() {
                return externalId;
        }
 
-       public void setExternalId(Long externalId) {
+       public void setExternalId(String externalId) {
                this.externalId = externalId;
        }
 

Modified: 
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
URL: 
http://svn.apache.org/viewvc/openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java?rev=1721518&r1=1721517&r2=1721518&view=diff
==============================================================================
--- 
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
 (original)
+++ 
openmeetings/application/trunk/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/RoomWebService.java
 Wed Dec 23 10:09:21 2015
@@ -29,6 +29,7 @@ import javax.jws.WebMethod;
 import javax.jws.WebParam;
 import javax.jws.WebService;
 import javax.ws.rs.DELETE;
+import javax.ws.rs.FormParam;
 import javax.ws.rs.GET;
 import javax.ws.rs.POST;
 import javax.ws.rs.Path;
@@ -207,7 +208,7 @@ public class RoomWebService {
        @WebMethod
        @POST
        @Path("/")
-       public RoomDTO add(@WebParam(name="sid") @QueryParam("sid") String sid, 
@WebParam(name="room") @QueryParam("room") RoomDTO room) throws 
ServiceException {
+       public RoomDTO add(@WebParam(name="sid") @QueryParam("sid") String sid, 
@WebParam(name="room") @FormParam("room") RoomDTO room) throws ServiceException 
{
                try {
                        Long userId = sessionDao.checkSession(sid);
                        if 
(AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
@@ -275,9 +276,13 @@ public class RoomWebService {
        public ServiceResult delete(@WebParam(name="sid") @QueryParam("sid") 
String sid, @WebParam(name="id") @PathParam("id") long id) throws 
ServiceException {
                Long userId = sessionDao.checkSession(sid);
                if 
(AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
-                       roomDao.delete(roomDao.get(id), userId);
-
-                       return new ServiceResult(id, "Deleted", Type.SUCCESS);
+                       Room r = roomDao.get(id);
+                       if (r != null) {
+                               roomDao.delete(r, userId);
+                               return new ServiceResult(id, "Deleted", 
Type.SUCCESS);
+                       } else {
+                               return new ServiceResult(0, "Not found", 
Type.SUCCESS);
+                       }
                } else {
                        throw new ServiceException("Insufficient permissins"); 
//TODO code -26
                }


Reply via email to