summaryrefslogtreecommitdiffstats
path: root/src/main/java/org
diff options
context:
space:
mode:
authorNils Schwabe2014-05-09 18:28:59 +0200
committerNils Schwabe2014-05-09 18:28:59 +0200
commitd3a11c39d46f420d832393e10c40d58601a668c9 (patch)
treeeab7bba67200fe91e984946d1d963a94cdb3c7c4 /src/main/java/org
parentForgot to commit some files. (diff)
downloadmasterserver-d3a11c39d46f420d832393e10c40d58601a668c9.tar.gz
masterserver-d3a11c39d46f420d832393e10c40d58601a668c9.tar.xz
masterserver-d3a11c39d46f420d832393e10c40d58601a668c9.zip
Improve ImageProcessor functionallity (and added some regex)
Diffstat (limited to 'src/main/java/org')
-rw-r--r--src/main/java/org/openslx/imagemaster/ftp/ImageProcessor.java32
-rw-r--r--src/main/java/org/openslx/imagemaster/server/ApiServer.java6
2 files changed, 25 insertions, 13 deletions
diff --git a/src/main/java/org/openslx/imagemaster/ftp/ImageProcessor.java b/src/main/java/org/openslx/imagemaster/ftp/ImageProcessor.java
index 782d1ff..ffb7e2b 100644
--- a/src/main/java/org/openslx/imagemaster/ftp/ImageProcessor.java
+++ b/src/main/java/org/openslx/imagemaster/ftp/ImageProcessor.java
@@ -11,6 +11,8 @@ import org.openslx.imagemaster.Globals;
import org.openslx.imagemaster.Globals.PropInt;
import org.openslx.imagemaster.db.DbImage;
import org.openslx.imagemaster.thrift.iface.ImageData;
+import org.openslx.imagemaster.thrift.iface.ImageDataError;
+import org.openslx.imagemaster.thrift.iface.ImageDataException;
public class ImageProcessor
{
@@ -102,32 +104,41 @@ public class ImageProcessor
*
* @param imageData
* the data for the image to add
- * @return false if submit fails
+ * @exception ImageDataException If the imagedata contains errors
*/
- public static boolean addImageDataToProcess( ImageData imageData, String username )
+ public static void addImageDataToProcess( ImageData imageData, String username ) throws ImageDataException
{
log.info( "Adding image to process list: " + imageData.imageName + ", submitted by " + username );
if ( imageData.uuid.isEmpty() || imageData.imageName.isEmpty()
|| imageData.imageOwner.isEmpty() || imageData.conentOperatingSystem.isEmpty()
|| imageData.imageShortDescription.isEmpty()
- || imageData.imageLongDescription.isEmpty()
- || imageData.fileSize == 0) {
- return false;
+ || imageData.imageLongDescription.isEmpty() ) {
+ throw new ImageDataException(ImageDataError.INVALID_DATA, "Missing arguments.");
}
if (!imageData.uuid.matches( "^[0-9a-f]{8}\\-[0-9a-f]{4}\\-[0-9a-f]{4}\\-[0-9a-f]{4}\\-[0-9a-f]{12}$" )) {
- log.debug("UUID not valid");
- return false;
+ throw new ImageDataException(ImageDataError.INVALID_DATA, "UUID not valid.");
} else if (!imageData.imageName.matches( "^[a-zA-Z0-9_\\-]{5,50}$" )) {
- log.debug("ImageName not valid");
- return false;
+ throw new ImageDataException(ImageDataError.INVALID_DATA, "ImageName not valid. (Length must be 5 to 50)");
+ } else if (false) { // TODO: check imageowner
+ throw new ImageDataException(ImageDataError.INVALID_DATA, "ImageOwner not valid.");
+ } else if (!imageData.conentOperatingSystem.matches( "^[\\w][-0-9a-zA-Z]{3,20}$" )) {
+ throw new ImageDataException(ImageDataError.INVALID_DATA, "ContentOperatingSystem not valid. (Length must be 3 to 20)");
+ } else if (!imageData.imageShortDescription.matches( "^[-\\w!\"§$%&/()=?+*#'^]$" )) {
+ throw new ImageDataException(ImageDataError.INVALID_DATA, "ImageShortDescription is not valid.");
+ } else if (!imageData.imageLongDescription.matches( "^[-\\w!\"§$%&/()=?+*#'^]$" )) {
+ throw new ImageDataException(ImageDataError.INVALID_DATA, "ImageLongDescription is not valid.");
+ } else if ( imageData.fileSize <= 0 ) {
+ throw new ImageDataException(ImageDataError.INVALID_DATA, "Filesize needs to be greater than 0.");
}
+
+
// TODO: check some more regex
if ( DbImage.exists( imageData ) ) {
- return false;
+ throw new ImageDataException( ImageDataError.INVALID_DATA, "Image with this UUID is already existing." );
}
// if everything went fine, add image to db
@@ -135,7 +146,6 @@ public class ImageProcessor
// and to processinglist
images.put( username, imageData );
- return true;
}
/**
diff --git a/src/main/java/org/openslx/imagemaster/server/ApiServer.java b/src/main/java/org/openslx/imagemaster/server/ApiServer.java
index 8dd72f8..53ddc71 100644
--- a/src/main/java/org/openslx/imagemaster/server/ApiServer.java
+++ b/src/main/java/org/openslx/imagemaster/server/ApiServer.java
@@ -110,9 +110,11 @@ public class ApiServer
return null;
}
- if ( !ImageProcessor.addImageDataToProcess( imageDescription, ftpCredentials.username ) ) {
+ try {
+ ImageProcessor.addImageDataToProcess( imageDescription, ftpCredentials.username );
+ } catch (ImageDataException e) {
App.ftpServer.removeUser( serverSessionId );
- throw new ImageDataException( ImageDataError.INVALID_DATA, "ImageData is not valid." );
+ throw new ImageDataException( ImageDataError.INVALID_DATA, e.getMessage() );
}
return ftpCredentials;