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/11/25 14:30:08 UTC
svn commit: r1716392 - in /openmeetings:
branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/
branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/
trunk/singlewebapp/openmeetings-db/src/m...
Author: solomax
Date: Wed Nov 25 13:30:08 2015
New Revision: 1716392
URL: http://svn.apache.org/viewvc?rev=1716392&view=rev
Log:
[OPENMEETINGS-1118] file service is improved
Removed:
openmeetings/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FoldersObject.java
openmeetings/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/LiberaryObject.java
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FoldersObject.java
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/LiberaryObject.java
Modified:
openmeetings/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileExplorerObject.java
openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileExplorerObject.java
openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
Modified: openmeetings/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileExplorerObject.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileExplorerObject.java?rev=1716392&r1=1716391&r2=1716392&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileExplorerObject.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileExplorerObject.java Wed Nov 25 13:30:08 2015
@@ -18,46 +18,70 @@
*/
package org.apache.openmeetings.db.dto.file;
+import java.io.Serializable;
import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+
import org.apache.openmeetings.db.entity.file.FileExplorerItem;
/**
* @author sebastianwagner
*
*/
-public class FileExplorerObject {
-
- private List<FileExplorerItem> userHome;
- private List<FileExplorerItem> roomHome;
+@XmlRootElement
+@XmlAccessorType(XmlAccessType.FIELD)
+public class FileExplorerObject implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ private List<FileExplorerItemDTO> userHome;
+ private List<FileExplorerItemDTO> roomHome;
private Long userHomeSize;
private Long roomHomeSize;
-
+
public FileExplorerObject() {}
-
- public List<FileExplorerItem> getUserHome() {
+
+ public List<FileExplorerItemDTO> getUserHome() {
return userHome;
}
- public void setUserHome(List<FileExplorerItem> userHome) {
+
+ public void setUserHome(List<FileExplorerItemDTO> userHome) {
this.userHome = userHome;
}
- public List<FileExplorerItem> getRoomHome() {
+
+ public void setUser(List<FileExplorerItem> list, long size) {
+ this.userHome = FileExplorerItemDTO.list(list);
+ this.userHomeSize = size;
+ }
+
+ public List<FileExplorerItemDTO> getRoomHome() {
return roomHome;
}
- public void setRoomHome(List<FileExplorerItem> roomHome) {
+
+ public void setRoomHome(List<FileExplorerItemDTO> roomHome) {
this.roomHome = roomHome;
}
+
+ public void setRoom(List<FileExplorerItem> list, long size) {
+ this.roomHome = FileExplorerItemDTO.list(list);
+ this.roomHomeSize = size;
+ }
+
public Long getUserHomeSize() {
return userHomeSize;
}
+
public void setUserHomeSize(Long userHomeSize) {
this.userHomeSize = userHomeSize;
}
+
public Long getRoomHomeSize() {
return roomHomeSize;
}
+
public void setRoomHomeSize(Long roomHomeSize) {
this.roomHomeSize = roomHomeSize;
}
-
}
Modified: openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java?rev=1716392&r1=1716391&r2=1716392&view=diff
==============================================================================
--- openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java (original)
+++ openmeetings/branches/3.1.x/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java Wed Nov 25 13:30:08 2015
@@ -22,6 +22,7 @@ import static org.apache.openmeetings.ut
import java.io.File;
import java.io.InputStream;
+import java.util.ArrayList;
import java.util.List;
import java.util.Set;
@@ -29,6 +30,7 @@ import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
@@ -224,11 +226,8 @@ public class FileWebService {
}
return LoadLibraryPresentation.parseLibraryFileToObject(file);
-
} else {
-
throw new ServiceException("not Authenticated");
-
}
} catch (ServiceException e) {
throw e;
@@ -238,254 +237,114 @@ public class FileWebService {
}
}
- /**
- * Get a File Explorer Object by a given Room and owner id
- *
- * @param SID
- * The SID of the User. This SID must be marked as logged in
- * @param roomId
- * Room id
- * @param ownerId
- * Owner id
- * @return - File Explorer Object by a given Room and owner id
- * @throws ServiceException
- */
- public FileExplorerObject getFileExplorerByRoom(String SID, Long roomId, Long ownerId) throws ServiceException {
-
- try {
-
- Long userId = sessionDao.checkSession(SID);
-
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
-
- log.debug("roomId " + roomId);
-
- FileExplorerObject fileExplorerObject = new FileExplorerObject();
-
- // Home File List
- List<FileExplorerItem> fList = fileDao.getByOwner(ownerId);
-
- long homeFileSize = 0;
-
- for (FileExplorerItem homeChildExplorerItem : fList) {
- log.debug("FileExplorerItem fList " + homeChildExplorerItem.getName());
- homeFileSize += fileUtils.getSizeOfDirectoryAndSubs(homeChildExplorerItem);
- }
-
- fileExplorerObject.setUserHome(fList);
- fileExplorerObject.setUserHomeSize(homeFileSize);
-
- // Public File List
- List<FileExplorerItem> rList = fileDao.getByRoom(roomId);
-
- long roomFileSize = 0;
-
- for (FileExplorerItem homeChildExplorerItem : rList) {
- log.debug("FileExplorerItem rList " + homeChildExplorerItem.getName());
- roomFileSize += fileUtils.getSizeOfDirectoryAndSubs(homeChildExplorerItem);
- }
-
- fileExplorerObject.setRoomHome(rList);
- fileExplorerObject.setRoomHomeSize(roomFileSize);
-
- return fileExplorerObject;
-
- } else {
-
- throw new Exception("not Authenticated");
-
- }
-
- } catch (Exception e) {
- log.error("[getFileExplorerByRoom]", e);
- return null;
+ private long getSize(List<FileExplorerItem> list) {
+ long size = 0;
+ for (FileExplorerItem f : list) {
+ log.debug("FileExplorerItem fList " + f.getName());
+ size += fileUtils.getSizeOfDirectoryAndSubs(f);
}
+ return size;
}
-
+
/**
* Get a File Explorer Object by a given Room
*
- * @param SID
+ * @param sid
* The SID of the User. This SID must be marked as logged in
- * @param roomId
+ * @param id
* Room Id
* @return - File Explorer Object by a given Room
* @throws ServiceException
*/
- public FileExplorerObject getFileExplorerByRoomSelf(String SID, Long roomId) throws ServiceException {
-
+ @WebMethod
+ @GET
+ @Path("/room/{id}")
+ public FileExplorerObject getRoom(@WebParam(name="sid") @QueryParam("sid") String sid
+ , @WebParam(name="id") @PathParam("id") long roomId
+ ) throws ServiceException
+ {
try {
-
- Long userId = sessionDao.checkSession(SID);
+ Long userId = sessionDao.checkSession(sid);
if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {
-
log.debug("roomId " + roomId);
FileExplorerObject fileExplorerObject = new FileExplorerObject();
// Home File List
List<FileExplorerItem> fList = fileDao.getByOwner(userId);
-
- long homeFileSize = 0;
-
- for (FileExplorerItem homeChildExplorerItem : fList) {
- log.debug("FileExplorerItem fList " + homeChildExplorerItem.getName());
- homeFileSize += fileUtils.getSizeOfDirectoryAndSubs(homeChildExplorerItem);
- }
-
- fileExplorerObject.setUserHome(fList);
- fileExplorerObject.setUserHomeSize(homeFileSize);
+ fileExplorerObject.setUser(fList, getSize(fList));
// Public File List
List<FileExplorerItem> rList = fileDao.getByRoom(roomId);
-
- long roomFileSize = 0;
-
- for (FileExplorerItem homeChildExplorerItem : rList) {
- log.debug("FileExplorerItem rList " + homeChildExplorerItem.getName());
- roomFileSize += fileUtils.getSizeOfDirectoryAndSubs(homeChildExplorerItem);
- }
-
- fileExplorerObject.setRoomHome(rList);
- fileExplorerObject.setRoomHomeSize(roomFileSize);
+ fileExplorerObject.setRoom(rList, getSize(rList));
return fileExplorerObject;
-
} else {
-
- throw new Exception("not Authenticated");
-
+ throw new ServiceException("Insufficient permissins"); //TODO code -26
}
-
+ } catch (ServiceException e) {
+ throw e;
} catch (Exception e) {
- log.error("[getFileExplorerByRoomSelf]", e);
- return null;
- }
- }
-
- /**
- * Get FileExplorerItem list by parent folder
- *
- * @param SID
- * The SID of the User. This SID must be marked as logged in
- * @param parentId
- * the parent folder id
- * @param roomId
- * the room id
- * @param isOwner
- * true if its a private drive
- * @param ownerId
- * the owner id
- * @return - FileExplorerItem list by parent folder
- * @throws ServiceException
- */
- public FileExplorerItem[] getFileExplorerByParent(String SID, Long parentId, Long roomId, Boolean isOwner,
- Long ownerId) throws ServiceException {
-
- try {
-
- Long userId = sessionDao.checkSession(SID);
-
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
-
- log.debug("parentFileExplorerItemId " + parentId);
-
- if (parentId == 0) {
- if (isOwner) {
- return fileDao.getByOwner(ownerId).toArray(new FileExplorerItem[0]);
- } else {
- return fileDao.getByRoom(roomId).toArray(new FileExplorerItem[0]);
- }
- } else {
- return fileDao.getByParent(parentId).toArray(new FileExplorerItem[0]);
- }
-
- }
- } catch (Exception err) {
- log.error("[getFileExplorerByParent] ", err);
+ log.error("[getRoom]", e);
+ throw new ServiceException(e.getMessage());
}
- return null;
}
/**
*
- * Get FileExplorerItem[] by parent and owner id
+ * Get list of {@link FileExplorerItemDTO} by parent
*
- * @param SID
+ * @param sid
* SID The SID of the User. This SID must be marked as logged in
* @param parentId
* the parent folder id
* @param roomId
* the room id
- * @param isOwner
- * true to request private drive
* @return - list of file explorer items
* @throws ServiceException
*/
- public FileExplorerItem[] getFileExplorerByParentSelf(String SID, Long parentId, Long roomId, Boolean isOwner)
- throws ServiceException {
-
+ @WebMethod
+ @GET
+ @Path("/room/{id}/{parent}")
+ public List<FileExplorerItemDTO> getRoomByParent(@WebParam(name="sid") @QueryParam("sid") String sid
+ , @WebParam(name="id") @PathParam("id") long roomId
+ , @WebParam(name="parent") @PathParam("parent") long parentId
+ ) throws ServiceException
+ {
try {
-
- Long userId = sessionDao.checkSession(SID);
+ Long userId = sessionDao.checkSession(sid);
if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {
+ log.debug("getRoomByParent " + parentId);
- log.debug("parentFileExplorerItemId " + parentId);
-
- if (parentId == 0) {
- if (isOwner) {
- return fileDao.getByOwner(userId).toArray(new FileExplorerItem[0]);
+ List<FileExplorerItem> list = new ArrayList<>();
+ if (parentId < 0) {
+ if (parentId == -1) {
+ list = fileDao.getByOwner(userId);
} else {
- return fileDao.getByRoom(roomId).toArray(new FileExplorerItem[0]);
+ list = fileDao.getByRoom(roomId);
}
} else {
- return fileDao.getByParent(parentId).toArray(new FileExplorerItem[0]);
+ list = fileDao.getByParent(parentId);
}
+ return FileExplorerItemDTO.list(list);
+ } else {
+ throw new ServiceException("Insufficient permissins"); //TODO code -26
}
- } catch (Exception err) {
- log.error("[getFileExplorerByParentSelf] ", err);
- }
- return null;
- }
-
- /**
- * update a file or folder name
- *
- * @param SID
- * SID The SID of the User. This SID must be marked as logged in
- * @param fileId
- * file or folder id
- * @param fileName
- * new file or folder name
- * @return - null
- * @throws ServiceException
- */
- public Long updateFileOrFolderName(String SID, Long fileId, String fileName) throws ServiceException {
-
- try {
-
- Long userId = sessionDao.checkSession(SID);
-
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
-
- log.debug("updateFileOrFolderName " + fileId);
-
- fileDao.updateFileOrFolderName(fileId, fileName);
-
- }
- } catch (Exception err) {
- log.error("[updateFileOrFolderName] ", err);
+ } catch (ServiceException e) {
+ throw e;
+ } catch (Exception e) {
+ log.error("[getRoom]", e);
+ throw new ServiceException(e.getMessage());
}
- return null;
}
/**
*
* update a file or folder name
*
- * @param SID
+ * @param sid
* SID The SID of the User. This SID must be marked as logged in
* @param fileId
* file or folder id
@@ -494,11 +353,11 @@ public class FileWebService {
* @return - null
* @throws ServiceException
*/
- public Long updateFileOrFolderNameSelf(String SID, Long fileId, String fileName) throws ServiceException {
+ public Long rename(String sid, Long fileId, String fileName) throws ServiceException {
try {
- Long userId = sessionDao.checkSession(SID);
+ Long userId = sessionDao.checkSession(sid);
if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {
@@ -524,59 +383,7 @@ public class FileWebService {
/**
* move a file or folder
*
- * @param SID
- * SID The SID of the User. This SID must be marked as logged in
- * @param fileId
- * current file or folder id to be moved
- * @param newParentId
- * new parent folder id
- * @param roomId
- * room id
- * @param isOwner
- * if true owner id will be set
- * @param moveToHome
- * if true move to private drive
- * @param ownerId
- * owner id
- * @return - null
- * @throws ServiceException
- */
- public Long moveFile(String SID, Long fileId, Long newParentId, Long roomId, Boolean isOwner, Boolean moveToHome,
- Long ownerId) throws ServiceException {
-
- try {
-
- Long userId = sessionDao.checkSession(SID);
-
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
-
- log.debug("moveFile " + fileId);
-
- fileDao.moveFile(fileId, newParentId, roomId, isOwner, ownerId);
-
- FileExplorerItem fileExplorerItem = fileDao.get(fileId);
-
- if (moveToHome) {
- // set this file and all subfiles and folders the ownerId
- fileUtils.setFileToOwnerOrRoomByParent(fileExplorerItem, ownerId, null);
-
- } else {
- // set this file and all subfiles and folders the roomId
- fileUtils.setFileToOwnerOrRoomByParent(fileExplorerItem, null, roomId);
-
- }
-
- }
- } catch (Exception err) {
- log.error("[moveFile] ", err);
- }
- return null;
- }
-
- /**
- * move a file or folder
- *
- * @param SID
+ * @param sid
* SID The SID of the User. This SID must be marked as logged in
* @param fileId
* current file or folder id to be moved
@@ -591,12 +398,12 @@ public class FileWebService {
* @return - null
* @throws ServiceException
*/
- public Long moveFileSelf(String SID, Long fileId, Long newParentId, Long roomId, Boolean isOwner,
+ public Long move(String sid, Long fileId, Long newParentId, Long roomId, Boolean isOwner,
Boolean moveToHome) throws ServiceException {
try {
- Long userId = sessionDao.checkSession(SID);
+ Long userId = sessionDao.checkSession(sid);
if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {
Modified: openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileExplorerObject.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileExplorerObject.java?rev=1716392&r1=1716391&r2=1716392&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileExplorerObject.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-db/src/main/java/org/apache/openmeetings/db/dto/file/FileExplorerObject.java Wed Nov 25 13:30:08 2015
@@ -18,46 +18,70 @@
*/
package org.apache.openmeetings.db.dto.file;
+import java.io.Serializable;
import java.util.List;
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+
import org.apache.openmeetings.db.entity.file.FileExplorerItem;
/**
* @author sebastianwagner
*
*/
-public class FileExplorerObject {
-
- private List<FileExplorerItem> userHome;
- private List<FileExplorerItem> roomHome;
+@XmlRootElement
+@XmlAccessorType(XmlAccessType.FIELD)
+public class FileExplorerObject implements Serializable {
+ private static final long serialVersionUID = 1L;
+
+ private List<FileExplorerItemDTO> userHome;
+ private List<FileExplorerItemDTO> roomHome;
private Long userHomeSize;
private Long roomHomeSize;
-
+
public FileExplorerObject() {}
-
- public List<FileExplorerItem> getUserHome() {
+
+ public List<FileExplorerItemDTO> getUserHome() {
return userHome;
}
- public void setUserHome(List<FileExplorerItem> userHome) {
+
+ public void setUserHome(List<FileExplorerItemDTO> userHome) {
this.userHome = userHome;
}
- public List<FileExplorerItem> getRoomHome() {
+
+ public void setUser(List<FileExplorerItem> list, long size) {
+ this.userHome = FileExplorerItemDTO.list(list);
+ this.userHomeSize = size;
+ }
+
+ public List<FileExplorerItemDTO> getRoomHome() {
return roomHome;
}
- public void setRoomHome(List<FileExplorerItem> roomHome) {
+
+ public void setRoomHome(List<FileExplorerItemDTO> roomHome) {
this.roomHome = roomHome;
}
+
+ public void setRoom(List<FileExplorerItem> list, long size) {
+ this.roomHome = FileExplorerItemDTO.list(list);
+ this.roomHomeSize = size;
+ }
+
public Long getUserHomeSize() {
return userHomeSize;
}
+
public void setUserHomeSize(Long userHomeSize) {
this.userHomeSize = userHomeSize;
}
+
public Long getRoomHomeSize() {
return roomHomeSize;
}
+
public void setRoomHomeSize(Long roomHomeSize) {
this.roomHomeSize = roomHomeSize;
}
-
}
Modified: openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java
URL: http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java?rev=1716392&r1=1716391&r2=1716392&view=diff
==============================================================================
--- openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java (original)
+++ openmeetings/trunk/singlewebapp/openmeetings-webservice/src/main/java/org/apache/openmeetings/webservice/FileWebService.java Wed Nov 25 13:30:08 2015
@@ -22,6 +22,7 @@ import static org.apache.openmeetings.ut
import java.io.File;
import java.io.InputStream;
+import java.util.ArrayList;
import java.util.List;
import java.util.Set;
@@ -29,6 +30,7 @@ import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebService;
import javax.ws.rs.DELETE;
+import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
@@ -224,11 +226,8 @@ public class FileWebService {
}
return LoadLibraryPresentation.parseLibraryFileToObject(file);
-
} else {
-
throw new ServiceException("not Authenticated");
-
}
} catch (ServiceException e) {
throw e;
@@ -238,254 +237,114 @@ public class FileWebService {
}
}
- /**
- * Get a File Explorer Object by a given Room and owner id
- *
- * @param SID
- * The SID of the User. This SID must be marked as logged in
- * @param roomId
- * Room id
- * @param ownerId
- * Owner id
- * @return - File Explorer Object by a given Room and owner id
- * @throws ServiceException
- */
- public FileExplorerObject getFileExplorerByRoom(String SID, Long roomId, Long ownerId) throws ServiceException {
-
- try {
-
- Long userId = sessionDao.checkSession(SID);
-
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
-
- log.debug("roomId " + roomId);
-
- FileExplorerObject fileExplorerObject = new FileExplorerObject();
-
- // Home File List
- List<FileExplorerItem> fList = fileDao.getByOwner(ownerId);
-
- long homeFileSize = 0;
-
- for (FileExplorerItem homeChildExplorerItem : fList) {
- log.debug("FileExplorerItem fList " + homeChildExplorerItem.getName());
- homeFileSize += fileUtils.getSizeOfDirectoryAndSubs(homeChildExplorerItem);
- }
-
- fileExplorerObject.setUserHome(fList);
- fileExplorerObject.setUserHomeSize(homeFileSize);
-
- // Public File List
- List<FileExplorerItem> rList = fileDao.getByRoom(roomId);
-
- long roomFileSize = 0;
-
- for (FileExplorerItem homeChildExplorerItem : rList) {
- log.debug("FileExplorerItem rList " + homeChildExplorerItem.getName());
- roomFileSize += fileUtils.getSizeOfDirectoryAndSubs(homeChildExplorerItem);
- }
-
- fileExplorerObject.setRoomHome(rList);
- fileExplorerObject.setRoomHomeSize(roomFileSize);
-
- return fileExplorerObject;
-
- } else {
-
- throw new Exception("not Authenticated");
-
- }
-
- } catch (Exception e) {
- log.error("[getFileExplorerByRoom]", e);
- return null;
+ private long getSize(List<FileExplorerItem> list) {
+ long size = 0;
+ for (FileExplorerItem f : list) {
+ log.debug("FileExplorerItem fList " + f.getName());
+ size += fileUtils.getSizeOfDirectoryAndSubs(f);
}
+ return size;
}
-
+
/**
* Get a File Explorer Object by a given Room
*
- * @param SID
+ * @param sid
* The SID of the User. This SID must be marked as logged in
- * @param roomId
+ * @param id
* Room Id
* @return - File Explorer Object by a given Room
* @throws ServiceException
*/
- public FileExplorerObject getFileExplorerByRoomSelf(String SID, Long roomId) throws ServiceException {
-
+ @WebMethod
+ @GET
+ @Path("/room/{id}")
+ public FileExplorerObject getRoom(@WebParam(name="sid") @QueryParam("sid") String sid
+ , @WebParam(name="id") @PathParam("id") long roomId
+ ) throws ServiceException
+ {
try {
-
- Long userId = sessionDao.checkSession(SID);
+ Long userId = sessionDao.checkSession(sid);
if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {
-
log.debug("roomId " + roomId);
FileExplorerObject fileExplorerObject = new FileExplorerObject();
// Home File List
List<FileExplorerItem> fList = fileDao.getByOwner(userId);
-
- long homeFileSize = 0;
-
- for (FileExplorerItem homeChildExplorerItem : fList) {
- log.debug("FileExplorerItem fList " + homeChildExplorerItem.getName());
- homeFileSize += fileUtils.getSizeOfDirectoryAndSubs(homeChildExplorerItem);
- }
-
- fileExplorerObject.setUserHome(fList);
- fileExplorerObject.setUserHomeSize(homeFileSize);
+ fileExplorerObject.setUser(fList, getSize(fList));
// Public File List
List<FileExplorerItem> rList = fileDao.getByRoom(roomId);
-
- long roomFileSize = 0;
-
- for (FileExplorerItem homeChildExplorerItem : rList) {
- log.debug("FileExplorerItem rList " + homeChildExplorerItem.getName());
- roomFileSize += fileUtils.getSizeOfDirectoryAndSubs(homeChildExplorerItem);
- }
-
- fileExplorerObject.setRoomHome(rList);
- fileExplorerObject.setRoomHomeSize(roomFileSize);
+ fileExplorerObject.setRoom(rList, getSize(rList));
return fileExplorerObject;
-
} else {
-
- throw new Exception("not Authenticated");
-
+ throw new ServiceException("Insufficient permissins"); //TODO code -26
}
-
+ } catch (ServiceException e) {
+ throw e;
} catch (Exception e) {
- log.error("[getFileExplorerByRoomSelf]", e);
- return null;
- }
- }
-
- /**
- * Get FileExplorerItem list by parent folder
- *
- * @param SID
- * The SID of the User. This SID must be marked as logged in
- * @param parentId
- * the parent folder id
- * @param roomId
- * the room id
- * @param isOwner
- * true if its a private drive
- * @param ownerId
- * the owner id
- * @return - FileExplorerItem list by parent folder
- * @throws ServiceException
- */
- public FileExplorerItem[] getFileExplorerByParent(String SID, Long parentId, Long roomId, Boolean isOwner,
- Long ownerId) throws ServiceException {
-
- try {
-
- Long userId = sessionDao.checkSession(SID);
-
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
-
- log.debug("parentFileExplorerItemId " + parentId);
-
- if (parentId == 0) {
- if (isOwner) {
- return fileDao.getByOwner(ownerId).toArray(new FileExplorerItem[0]);
- } else {
- return fileDao.getByRoom(roomId).toArray(new FileExplorerItem[0]);
- }
- } else {
- return fileDao.getByParent(parentId).toArray(new FileExplorerItem[0]);
- }
-
- }
- } catch (Exception err) {
- log.error("[getFileExplorerByParent] ", err);
+ log.error("[getRoom]", e);
+ throw new ServiceException(e.getMessage());
}
- return null;
}
/**
*
- * Get FileExplorerItem[] by parent and owner id
+ * Get list of {@link FileExplorerItemDTO} by parent
*
- * @param SID
+ * @param sid
* SID The SID of the User. This SID must be marked as logged in
* @param parentId
* the parent folder id
* @param roomId
* the room id
- * @param isOwner
- * true to request private drive
* @return - list of file explorer items
* @throws ServiceException
*/
- public FileExplorerItem[] getFileExplorerByParentSelf(String SID, Long parentId, Long roomId, Boolean isOwner)
- throws ServiceException {
-
+ @WebMethod
+ @GET
+ @Path("/room/{id}/{parent}")
+ public List<FileExplorerItemDTO> getRoomByParent(@WebParam(name="sid") @QueryParam("sid") String sid
+ , @WebParam(name="id") @PathParam("id") long roomId
+ , @WebParam(name="parent") @PathParam("parent") long parentId
+ ) throws ServiceException
+ {
try {
-
- Long userId = sessionDao.checkSession(SID);
+ Long userId = sessionDao.checkSession(sid);
if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {
+ log.debug("getRoomByParent " + parentId);
- log.debug("parentFileExplorerItemId " + parentId);
-
- if (parentId == 0) {
- if (isOwner) {
- return fileDao.getByOwner(userId).toArray(new FileExplorerItem[0]);
+ List<FileExplorerItem> list = new ArrayList<>();
+ if (parentId < 0) {
+ if (parentId == -1) {
+ list = fileDao.getByOwner(userId);
} else {
- return fileDao.getByRoom(roomId).toArray(new FileExplorerItem[0]);
+ list = fileDao.getByRoom(roomId);
}
} else {
- return fileDao.getByParent(parentId).toArray(new FileExplorerItem[0]);
+ list = fileDao.getByParent(parentId);
}
+ return FileExplorerItemDTO.list(list);
+ } else {
+ throw new ServiceException("Insufficient permissins"); //TODO code -26
}
- } catch (Exception err) {
- log.error("[getFileExplorerByParentSelf] ", err);
- }
- return null;
- }
-
- /**
- * update a file or folder name
- *
- * @param SID
- * SID The SID of the User. This SID must be marked as logged in
- * @param fileId
- * file or folder id
- * @param fileName
- * new file or folder name
- * @return - null
- * @throws ServiceException
- */
- public Long updateFileOrFolderName(String SID, Long fileId, String fileName) throws ServiceException {
-
- try {
-
- Long userId = sessionDao.checkSession(SID);
-
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
-
- log.debug("updateFileOrFolderName " + fileId);
-
- fileDao.updateFileOrFolderName(fileId, fileName);
-
- }
- } catch (Exception err) {
- log.error("[updateFileOrFolderName] ", err);
+ } catch (ServiceException e) {
+ throw e;
+ } catch (Exception e) {
+ log.error("[getRoom]", e);
+ throw new ServiceException(e.getMessage());
}
- return null;
}
/**
*
* update a file or folder name
*
- * @param SID
+ * @param sid
* SID The SID of the User. This SID must be marked as logged in
* @param fileId
* file or folder id
@@ -494,11 +353,11 @@ public class FileWebService {
* @return - null
* @throws ServiceException
*/
- public Long updateFileOrFolderNameSelf(String SID, Long fileId, String fileName) throws ServiceException {
+ public Long rename(String sid, Long fileId, String fileName) throws ServiceException {
try {
- Long userId = sessionDao.checkSession(SID);
+ Long userId = sessionDao.checkSession(sid);
if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {
@@ -524,59 +383,7 @@ public class FileWebService {
/**
* move a file or folder
*
- * @param SID
- * SID The SID of the User. This SID must be marked as logged in
- * @param fileId
- * current file or folder id to be moved
- * @param newParentId
- * new parent folder id
- * @param roomId
- * room id
- * @param isOwner
- * if true owner id will be set
- * @param moveToHome
- * if true move to private drive
- * @param ownerId
- * owner id
- * @return - null
- * @throws ServiceException
- */
- public Long moveFile(String SID, Long fileId, Long newParentId, Long roomId, Boolean isOwner, Boolean moveToHome,
- Long ownerId) throws ServiceException {
-
- try {
-
- Long userId = sessionDao.checkSession(SID);
-
- if (AuthLevelUtil.hasWebServiceLevel(userDao.getRights(userId))) {
-
- log.debug("moveFile " + fileId);
-
- fileDao.moveFile(fileId, newParentId, roomId, isOwner, ownerId);
-
- FileExplorerItem fileExplorerItem = fileDao.get(fileId);
-
- if (moveToHome) {
- // set this file and all subfiles and folders the ownerId
- fileUtils.setFileToOwnerOrRoomByParent(fileExplorerItem, ownerId, null);
-
- } else {
- // set this file and all subfiles and folders the roomId
- fileUtils.setFileToOwnerOrRoomByParent(fileExplorerItem, null, roomId);
-
- }
-
- }
- } catch (Exception err) {
- log.error("[moveFile] ", err);
- }
- return null;
- }
-
- /**
- * move a file or folder
- *
- * @param SID
+ * @param sid
* SID The SID of the User. This SID must be marked as logged in
* @param fileId
* current file or folder id to be moved
@@ -591,12 +398,12 @@ public class FileWebService {
* @return - null
* @throws ServiceException
*/
- public Long moveFileSelf(String SID, Long fileId, Long newParentId, Long roomId, Boolean isOwner,
+ public Long move(String sid, Long fileId, Long newParentId, Long roomId, Boolean isOwner,
Boolean moveToHome) throws ServiceException {
try {
- Long userId = sessionDao.checkSession(SID);
+ Long userId = sessionDao.checkSession(sid);
if (AuthLevelUtil.hasUserLevel(userDao.getRights(userId))) {