summaryrefslogtreecommitdiffstats
path: root/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers
diff options
context:
space:
mode:
authorJonathan Bauer2018-12-03 14:25:29 +0100
committerJonathan Bauer2018-12-03 14:25:29 +0100
commit84ee13dbae07b5f29b18a6f6ff2627864da967cd (patch)
treefb2cefd171afde57f395a59567b34b29647ba8b8 /dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers
parent[server] Updater: Fix netshare table layout (diff)
downloadtutor-module-84ee13dbae07b5f29b18a6f6ff2627864da967cd.tar.gz
tutor-module-84ee13dbae07b5f29b18a6f6ff2627864da967cd.tar.xz
tutor-module-84ee13dbae07b5f29b18a6f6ff2627864da967cd.zip
[server] support predefined network shares
Diffstat (limited to 'dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers')
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLectureNetshare.java33
1 files changed, 26 insertions, 7 deletions
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLectureNetshare.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLectureNetshare.java
index 1629178b..1d505de6 100644
--- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLectureNetshare.java
+++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLectureNetshare.java
@@ -21,15 +21,16 @@ public class DbLectureNetshare {
if (lectureId == null || lectureId.isEmpty()) {
return;
}
- MysqlStatement delStmt = connection.prepareStatement("DELETE FROM networkshare WHERE lectureid = :lectureid");
+ MysqlStatement delStmt = connection
+ .prepareStatement("DELETE FROM networkshare WHERE lectureid = :lectureid");
delStmt.setString("lectureid", lectureId);
delStmt.executeUpdate();
if (shares == null || shares.isEmpty()) {
return;
}
MysqlStatement addStmt = connection
- .prepareStatement("INSERT IGNORE INTO networkshare (shareid, lectureid, shareuid, sharedata)"
- + " VALUES (DEFAULT, :lectureid, NULL, :sharedata)");
+ .prepareStatement("INSERT IGNORE INTO networkshare (lectureid, sharepresetid, sharedata)"
+ + " VALUES (:lectureid, NULL, :sharedata)");
addStmt.setString("lectureid", lectureId);
for (NetShare share : shares) {
String netshareJson = Json.serialize(share);
@@ -47,17 +48,35 @@ public class DbLectureNetshare {
}
}
- public static List<NetShare> getLectureNetshares(MysqlConnection connection, String lectureId) throws SQLException {
+ public static List<NetShare> getLectureNetshares(MysqlConnection connection, String lectureId)
+ throws SQLException {
List<NetShare> list = new ArrayList<>();
- MysqlStatement netsharestmt = connection
- .prepareStatement("SELECT sharedata FROM networkshare WHERE lectureid = :lectureid");
+ MysqlStatement netsharestmt = connection.prepareStatement(
+ "SELECT IFNULL(pns.sharedata, ns.sharedata) AS sharedata FROM networkshare ns"
+ + " LEFT JOIN presetnetworkshare pns ON (ns.sharepresetid = pns.shareid)"
+ + " WHERE ns.lectureid = :lectureid");
netsharestmt.setString("lectureid", lectureId);
ResultSet rs = netsharestmt.executeQuery();
while (rs.next()) {
- // TODO get the shares saved on slx-admin, if any shareuid aren't null
list.add(Json.deserializeThrift(rs.getString("sharedata"), NetShare.class));
}
return list;
}
+ public static List<NetShare> getPredefinedNetshares() throws SQLException {
+ try (MysqlConnection connection = Database.getConnection()) {
+ List<NetShare> list = new ArrayList<>();
+ MysqlStatement stmt = connection
+ .prepareStatement("SELECT sharedata" + " FROM presetnetworkshare");
+ ResultSet rs = stmt.executeQuery();
+ while (rs.next()) {
+ list.add(Json.deserializeThrift(rs.getString("sharedata"), NetShare.class));
+ }
+ return list;
+ } catch (SQLException e) {
+ LOGGER.error("Query failed in getPredefinedNetshares()", e);
+ throw e;
+ }
+ }
+
}