summaryrefslogtreecommitdiffstats
path: root/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java
diff options
context:
space:
mode:
authorSimon Rettberg2015-06-23 19:10:48 +0200
committerSimon Rettberg2015-06-23 19:10:48 +0200
commit8ad025dd99468f71d2fa5c49e0bcf359b055ec97 (patch)
tree6208ff7d598116e36b21882e5a018a99d2506103 /dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java
parentfix bwLehrpool logo not beeing read from the resources (diff)
downloadtutor-module-8ad025dd99468f71d2fa5c49e0bcf359b055ec97.tar.gz
tutor-module-8ad025dd99468f71d2fa5c49e0bcf359b055ec97.tar.xz
tutor-module-8ad025dd99468f71d2fa5c49e0bcf359b055ec97.zip
[server] More methods implemented
Diffstat (limited to 'dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java')
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java78
1 files changed, 56 insertions, 22 deletions
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java
index 7e743e14..d4440793 100644
--- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java
+++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java
@@ -6,6 +6,7 @@ import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
+import org.apache.thrift.TException;
import org.openslx.bwlp.sat.database.mappers.DbImage;
import org.openslx.bwlp.sat.database.mappers.DbImagePermissions;
import org.openslx.bwlp.sat.database.mappers.DbUser;
@@ -16,7 +17,9 @@ import org.openslx.bwlp.sat.permissions.User.Permission;
import org.openslx.bwlp.sat.thrift.cache.OperatingSystemList;
import org.openslx.bwlp.sat.thrift.cache.OrganizationList;
import org.openslx.bwlp.sat.thrift.cache.VirtualizerList;
+import org.openslx.bwlp.sat.util.Util;
import org.openslx.bwlp.thrift.iface.ImageBaseWrite;
+import org.openslx.bwlp.thrift.iface.ImageDataError;
import org.openslx.bwlp.thrift.iface.ImageDetailsRead;
import org.openslx.bwlp.thrift.iface.ImagePermissions;
import org.openslx.bwlp.thrift.iface.ImageSummaryRead;
@@ -29,6 +32,7 @@ import org.openslx.bwlp.thrift.iface.OperatingSystem;
import org.openslx.bwlp.thrift.iface.Organization;
import org.openslx.bwlp.thrift.iface.SatelliteServer;
import org.openslx.bwlp.thrift.iface.TAuthorizationException;
+import org.openslx.bwlp.thrift.iface.TImageDataException;
import org.openslx.bwlp.thrift.iface.TInternalServerError;
import org.openslx.bwlp.thrift.iface.TInvalidTokenException;
import org.openslx.bwlp.thrift.iface.TNotFoundException;
@@ -148,48 +152,62 @@ public class ServerHandler implements SatelliteServer.Iface {
}
@Override
- public boolean createImage(String userToken, String imageName) throws TAuthorizationException {
+ public String createImage(String userToken, String imageName) throws TAuthorizationException,
+ TImageDataException, TInternalServerError {
UserInfo user = SessionManager.getOrFail(userToken);
User.canCreateImageOrFail(user);
- // TODO: Create image
- return true;
+ if (!Util.isPrintable(imageName) || Util.isEmptyString(imageName))
+ throw new TImageDataException(ImageDataError.INVALID_DATA, "Invalid or empty name");
+ try {
+ return DbImage.createImage(user, imageName);
+ } catch (SQLException e) {
+ throw new TInternalServerError();
+ }
}
@Override
- public boolean updateImageBase(String userToken, String imageBaseId, ImageBaseWrite image)
- throws TAuthorizationException, TInternalServerError, TNotFoundException {
+ public void updateImageBase(String userToken, String imageBaseId, ImageBaseWrite image)
+ throws TAuthorizationException, TInternalServerError, TNotFoundException, TImageDataException {
UserInfo user = SessionManager.getOrFail(userToken);
User.hasImageBasePermissionOrFail(user, imageBaseId, Permission.EDIT);
- // TODO: Permissions cleared; Now update image base data
- return false;
+ if (!Util.isPrintable(image.imageName) || Util.isEmptyString(image.imageName))
+ throw new TImageDataException(ImageDataError.INVALID_DATA, "Invalid or empty name");
+ // TODO: Should other fields be validated? Most fields should be protected by fk constraints,
+ // but the user would only get a generic error, with no hint at the actual problem.
+ try {
+ DbImage.updateImageMetadata(user, imageBaseId, image);
+ } catch (SQLException e) {
+ throw new TInternalServerError();
+ }
}
@Override
- public boolean updateImageVersion(String userToken, String imageVersionId, ImageVersionWrite image)
+ public void updateImageVersion(String userToken, String imageVersionId, ImageVersionWrite image)
throws TAuthorizationException, TInternalServerError, TNotFoundException {
UserInfo user = SessionManager.getOrFail(userToken);
User.hasImageVersionPermissionOrFail(user, imageVersionId, Permission.EDIT);
- // TODO: Permissions cleared; Now update image version data
- return false;
+ try {
+ DbImage.updateImageVersion(user, imageVersionId, image);
+ } catch (SQLException e) {
+ throw new TInternalServerError();
+ }
}
@Override
- public boolean deleteImageVersion(String userToken, String imageVersionId)
- throws TAuthorizationException, TNotFoundException, TInternalServerError {
+ public void deleteImageVersion(String userToken, String imageVersionId) throws TAuthorizationException,
+ TNotFoundException, TInternalServerError {
UserInfo user = SessionManager.getOrFail(userToken);
User.hasImageVersionPermissionOrFail(user, imageVersionId, Permission.ADMIN);
// TODO: Permissions cleared; Now mark image for deletion (set expire time in the past...)
- return false;
}
@Override
- public boolean writeImagePermissions(String userToken, String imageBaseId,
+ public void writeImagePermissions(String userToken, String imageBaseId,
Map<String, ImagePermissions> permissions) throws TAuthorizationException, TNotFoundException,
TInternalServerError {
UserInfo user = SessionManager.getOrFail(userToken);
User.hasImageBasePermissionOrFail(user, imageBaseId, Permission.ADMIN);
- // TODO: Permissions cleared; Now update image base data
- return false;
+ // TODO: Permissions cleared; Now write image permissions
}
@Override
@@ -205,16 +223,27 @@ public class ServerHandler implements SatelliteServer.Iface {
}
@Override
+ public void setImageOwner(String userToken, String imageBaseId, String newOwnerId)
+ throws TAuthorizationException, TNotFoundException, TInternalServerError, TException {
+ UserInfo user = SessionManager.getOrFail(userToken);
+ User.hasImageBasePermissionOrFail(user, imageBaseId, Permission.ADMIN);
+ try {
+ DbImage.setImageOwner(imageBaseId, newOwnerId);
+ } catch (SQLException e) {
+ throw new TInternalServerError();
+ }
+ }
+
+ @Override
public String createLecture(String userToken, LectureWrite lecture) throws TAuthorizationException {
// TODO Auto-generated method stub
return null;
}
@Override
- public boolean updateLecture(String userToken, String lectureId, LectureWrite lecture)
+ public void updateLecture(String userToken, String lectureId, LectureWrite lecture)
throws TAuthorizationException, TNotFoundException {
// TODO Auto-generated method stub
- return false;
}
@Override
@@ -238,17 +267,15 @@ public class ServerHandler implements SatelliteServer.Iface {
}
@Override
- public boolean deleteLecture(String userToken, String lectureId) throws TAuthorizationException,
+ public void deleteLecture(String userToken, String lectureId) throws TAuthorizationException,
TNotFoundException {
// TODO Auto-generated method stub
- return false;
}
@Override
- public boolean writeLecturePermissions(String userToken, String lectureId,
+ public void writeLecturePermissions(String userToken, String lectureId,
Map<String, LecturePermissions> permissions) throws TAuthorizationException, TNotFoundException {
// TODO Auto-generated method stub
- return false;
}
@Override
@@ -259,6 +286,13 @@ public class ServerHandler implements SatelliteServer.Iface {
}
@Override
+ public void setLectureOwner(String userToken, String lectureId, String newOwnerId)
+ throws TAuthorizationException, TNotFoundException, TInternalServerError, TException {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
public List<UserInfo> getUserList(String userToken, int page) throws TAuthorizationException,
TInternalServerError {
try {