summaryrefslogtreecommitdiffstats
path: root/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLectureNetshare.java
diff options
context:
space:
mode:
authorJonathan Bauer2018-12-03 12:27:18 +0100
committerJonathan Bauer2018-12-03 12:27:18 +0100
commit720ad06767ce6df316e5768b1e1fb63d994320fb (patch)
tree28696ca99d9e8c4daa9330aa1373e3a038dc974f /dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLectureNetshare.java
parent[server] getPredefinedData: Check user token before returning data (diff)
downloadtutor-module-720ad06767ce6df316e5768b1e1fb63d994320fb.tar.gz
tutor-module-720ad06767ce6df316e5768b1e1fb63d994320fb.tar.xz
tutor-module-720ad06767ce6df316e5768b1e1fb63d994320fb.zip
[server] renamed DbNetshare -> DbLectureNetshare
Diffstat (limited to 'dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLectureNetshare.java')
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLectureNetshare.java63
1 files changed, 63 insertions, 0 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
new file mode 100644
index 00000000..1629178b
--- /dev/null
+++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLectureNetshare.java
@@ -0,0 +1,63 @@
+package org.openslx.bwlp.sat.database.mappers;
+
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.apache.log4j.Logger;
+import org.openslx.bwlp.sat.database.Database;
+import org.openslx.bwlp.sat.database.MysqlConnection;
+import org.openslx.bwlp.sat.database.MysqlStatement;
+import org.openslx.bwlp.thrift.iface.NetShare;
+import org.openslx.util.Json;
+
+public class DbLectureNetshare {
+
+ private static final Logger LOGGER = Logger.getLogger(DbLectureNetshare.class);
+
+ public static void writeNetworkShares(MysqlConnection connection, String lectureId, List<NetShare> shares)
+ throws SQLException {
+ if (lectureId == null || lectureId.isEmpty()) {
+ return;
+ }
+ 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)");
+ addStmt.setString("lectureid", lectureId);
+ for (NetShare share : shares) {
+ String netshareJson = Json.serialize(share);
+ addStmt.setString("sharedata", netshareJson);
+ addStmt.executeUpdate();
+ }
+ }
+
+ public static List<NetShare> getLectureNetshares(String lectureId) throws SQLException {
+ try (MysqlConnection connection = Database.getConnection()) {
+ return getLectureNetshares(connection, lectureId);
+ } catch (SQLException e) {
+ LOGGER.error("Query failed in DbNetshare.getLectureNetshares()", e);
+ throw e;
+ }
+ }
+
+ 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");
+ 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;
+ }
+
+}