summaryrefslogtreecommitdiffstats
path: root/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java
diff options
context:
space:
mode:
authorSimon Rettberg2015-08-25 16:28:42 +0200
committerSimon Rettberg2015-08-25 16:28:42 +0200
commit5b306a9b502c9c6a8818d0d1cbb47e4b25bb41d7 (patch)
tree40709a6e962ec2a4ca15927befab8f0c4bd1a717 /dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java
parent[client] back button to the right of the button composite (diff)
downloadtutor-module-5b306a9b502c9c6a8818d0d1cbb47e4b25bb41d7.tar.gz
tutor-module-5b306a9b502c9c6a8818d0d1cbb47e4b25bb41d7.tar.xz
tutor-module-5b306a9b502c9c6a8818d0d1cbb47e4b25bb41d7.zip
[server] Implement scanning for soon-expiring lectures and images
Diffstat (limited to 'dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java')
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java29
1 files changed, 27 insertions, 2 deletions
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java
index f6431b46..c9f1c6df 100644
--- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java
+++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java
@@ -16,6 +16,7 @@ import org.openslx.bwlp.sat.database.models.LocalImageVersion;
import org.openslx.bwlp.sat.maintenance.Mailer;
import org.openslx.bwlp.sat.permissions.User;
import org.openslx.bwlp.sat.util.Json;
+import org.openslx.bwlp.sat.util.Util;
import org.openslx.bwlp.thrift.iface.LectureRead;
import org.openslx.bwlp.thrift.iface.LectureSummary;
import org.openslx.bwlp.thrift.iface.LectureWrite;
@@ -198,8 +199,8 @@ public class DbLecture {
}
}
- protected static List<LectureSummary> getAllUsingImageBase(MysqlConnection connection, String imageBaseId, boolean autoUpdateOnly)
- throws SQLException {
+ protected static List<LectureSummary> getAllUsingImageBase(MysqlConnection connection,
+ String imageBaseId, boolean autoUpdateOnly) throws SQLException {
MysqlStatement stmt = connection.prepareStatement(summaryBaseSql
+ " WHERE imagebaseid = :imagebaseid" + (autoUpdateOnly ? " AND autoupdate = 1" : ""));
stmt.setString("imagebaseid", imageBaseId);
@@ -376,4 +377,28 @@ public class DbLecture {
stmt.executeUpdate();
}
+ protected static void deletePermanently(MysqlConnection connection, LocalImageVersion image)
+ throws SQLException {
+ MysqlStatement stmt = connection.prepareStatement("DELETE FROM lecture WHERE imageversionid = :imageversionid");
+ stmt.setString("imageversionid", image.imageVersionId);
+ stmt.executeUpdate();
+ }
+
+ public static List<LectureSummary> getExpiringLectures(int maxRemainingDays) throws SQLException {
+ try (MysqlConnection connection = Database.getConnection()) {
+ MysqlStatement stmt = connection.prepareStatement(summaryBaseSql + " WHERE endtime < :deadline");
+ stmt.setString("userid", "-");
+ stmt.setLong("deadline", Util.unixTime() + (maxRemainingDays * 86400));
+ ResultSet rs = stmt.executeQuery();
+ List<LectureSummary> list = new ArrayList<>();
+ while (rs.next()) {
+ list.add(fillSummary(null, rs));
+ }
+ return list;
+ } catch (SQLException e) {
+ LOGGER.error("Query failed in DbLecture.getExpiringLectures()", e);
+ throw e;
+ }
+ }
+
}