diff options
author | Simon Rettberg | 2015-06-11 18:40:49 +0200 |
---|---|---|
committer | Simon Rettberg | 2015-06-11 18:40:49 +0200 |
commit | e0005ceecfd9281230c4add7575b18ee88307774 (patch) | |
tree | a73bbcfc213df478c701aac120ae2b7c6e52bb1b /dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbImage.java | |
parent | [server] db stuff, new interface, ... (diff) | |
download | tutor-module-e0005ceecfd9281230c4add7575b18ee88307774.tar.gz tutor-module-e0005ceecfd9281230c4add7575b18ee88307774.tar.xz tutor-module-e0005ceecfd9281230c4add7575b18ee88307774.zip |
[server] On mah way (lots of restructuring, some early db classes, sql dump of current schema)
Diffstat (limited to 'dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbImage.java')
-rw-r--r-- | dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbImage.java | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbImage.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbImage.java new file mode 100644 index 00000000..b772edb4 --- /dev/null +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbImage.java @@ -0,0 +1,62 @@ +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.ImagePermissions; +import org.openslx.bwlp.thrift.iface.ImageSummaryRead; +import org.openslx.bwlp.thrift.iface.ShareMode; +import org.openslx.bwlp.thrift.iface.UserInfo; + +public class DbImage { + + private static final Logger LOGGER = Logger.getLogger(DbImage.class); + + public static List<ImageSummaryRead> getAllVisible(UserInfo user, List<String> tagSearch) { + try (MysqlConnection connection = Database.getConnection()) { + MysqlStatement stmt = connection.prepareStatement("SELECT" + + " i.imagebaseid, i.currentversionid, i.latestversionid, i.displayname," + + " i.osid, i.virtid, i.createtime, i.updatetime, i.ownerid," + + " i.sharemode, i.istemplate, i.canlinkdefault, i.candownloaddefault," + + " i.caneditdefault, i.canadmindefault," + + " cur.expiretime, cur.filesize, cur.isenabled, cur.isrestricted, cur.isvalid," + + " lat.uploaderid, lat.isprocessed," + + " perm.canlink, perm.candownload, perm.canedit, perm.canadmin" + + " FROM imagebase i" + + " LEFT JOIN imageversion cur ON (cur.imageversionid = i.currentversionid)" + + " LEFT JOIN imageversion lat ON (lat.imageversionid = i.latestversionid)" + + " LEFT JOIN imagepermission perm ON (i.imagebaseid = perm.imagebaseid AND perm.userid = :userid)"); + stmt.setString("userid", user.userId); + ResultSet rs = stmt.executeQuery(); + List<ImageSummaryRead> list = new ArrayList<>(); + while (rs.next()) { + ImagePermissions defaultPermissions = DbImagePermissions.fromResultSetDefault(rs); + ImageSummaryRead entry = new ImageSummaryRead(rs.getString("imagebaseid"), + rs.getString("currentversionid"), rs.getString("latestversionid"), + rs.getString("displayname"), rs.getInt("osid"), rs.getString("virtid"), + rs.getLong("createtime"), rs.getLong("updatetime"), rs.getLong("expiretime"), + rs.getString("ownerid"), rs.getString("uploaderid"), + toShareMode(rs.getString("sharemode")), rs.getLong("filesize"), + rs.getByte("isrestricted") != 0, rs.getByte("isvalid") != 0, + rs.getByte("isprocessed") != 0, rs.getByte("istemplate") != 0, defaultPermissions); + entry.userPermissions = DbImagePermissions.fromResultSetUser(rs); + list.add(entry); + } + return list; + } catch (SQLException e) { + LOGGER.error("Query failed in DbImage.getAllVisible()", e); + return null; + } + } + + private static ShareMode toShareMode(String string) { + return ShareMode.valueOf(string); + } + +} |