diff options
author | Jonathan Bauer | 2018-12-03 14:25:29 +0100 |
---|---|---|
committer | Jonathan Bauer | 2018-12-03 14:25:29 +0100 |
commit | 84ee13dbae07b5f29b18a6f6ff2627864da967cd (patch) | |
tree | fb2cefd171afde57f395a59567b34b29647ba8b8 /dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers | |
parent | [server] Updater: Fix netshare table layout (diff) | |
download | tutor-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.java | 33 |
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; + } + } + } |