Merge Of Branches Multiselect

This commit is contained in:
brausjonas
2023-06-16 10:33:04 +02:00
parent e436e61041
commit 53ac8ff0bf
10 changed files with 480 additions and 711 deletions
@@ -10,15 +10,12 @@ import java.sql.*;
import java.util.ArrayList;
import java.util.List;
public class DataBaseHandler
{
public class DataBaseHandler {
//singleton instance of database handler
private static DataBaseHandler instance = null;
public static DataBaseHandler getInstance()
{
if (instance == null)
{
public static DataBaseHandler getInstance() {
if (instance == null) {
instance = new DataBaseHandler();
}
@@ -31,22 +28,19 @@ public class DataBaseHandler
private Statement st;
private boolean encrypted = false;
public DataBaseHandler()
{
try
{
public DataBaseHandler() {
try {
//connect to the local database
connection = DriverManager.getConnection("jdbc:h2:./database", "adm", "73bgjfdsfJ!934");
st = connection.createStatement();
} catch (SQLException e)
{
} catch (SQLException e) {
e.printStackTrace();
}
}
/**
ENTRIES
* ENTRIES
*/
public void addEntry(Entry entry)
{
@@ -55,7 +49,7 @@ public class DataBaseHandler
st.executeUpdate("insert into entries (daynumber, yearnumber, semesterid, usercreatedbyid, timestart, timeend, moduleid, info) values (" +
entry.getDaynumber() + ", " + entry.getYearnumber() + ", " + entry.getSemesterid() + ", " +
entry.getUsercreatedbyid() + ", " + entry.getTimestart() + ", " + entry.getTimeend() + ", " + entry.getModuleid() + " ,'" + entry.getInfo() + "')"
);
);
}
catch(Exception e)
{
@@ -63,10 +57,8 @@ public class DataBaseHandler
}
}
public Entry[][] getEntries(int semesterid, int daynumber, int yearnumber)
{
try
{
public Entry[][] getEntries(int semesterid, int daynumber, int yearnumber) {
try {
ResultSet rs = st.executeQuery("select * from entries where " +
"semesterid=" + semesterid +
" and yearnumber=" + yearnumber +
@@ -74,20 +66,16 @@ public class DataBaseHandler
List<Entry> entryList = new ArrayList<>();
Entry current = null;
while((current = resultSetToEntry(rs)) != null)
{
while ((current = resultSetToEntry(rs)) != null) {
entryList.add(current);
}
Entry[][] entries = new Entry[6][20];
for(int i = 0; i < 6; i++)
{
for (int i = 0; i < 6; i++) {
int f = 0;
for(int j = 0; j < entryList.size(); j++)
{
if(entryList.get(j).getDaynumber() == i + daynumber)
{
for (int j = 0; j < entryList.size(); j++) {
if (entryList.get(j).getDaynumber() == i + daynumber) {
entries[i][f] = entryList.get(j);
f++;
}
@@ -95,16 +83,13 @@ public class DataBaseHandler
}
return entries;
}
catch(Exception e)
{
} catch (Exception e) {
return null;
}
}
public Entry[][] getAllEntrys(int semesterid, int daynumber, int yearnumber, int userid)
{
public Entry[][] getAllEntrys(int semesterid, int daynumber, int yearnumber, int userid) {
try {
ResultSet rs = st.executeQuery("select * from entries where " +
"semesterid<>" + semesterid +
@@ -113,45 +98,38 @@ public class DataBaseHandler
" and daynumber between " + daynumber + " and " + daynumber + 6);
List<Entry> entryList = new ArrayList<>();
Entry current = null;
while((current = resultSetToEntry(rs)) != null)
{
while ((current = resultSetToEntry(rs)) != null) {
entryList.add(current);
}
Entry[][] entries = new Entry[6][20];
for(int i = 0; i < 6; i++)
{
for (int i = 0; i < 6; i++) {
int f = 0;
for(int j = 0; j < entryList.size(); j++)
{
if(entryList.get(j).getDaynumber() == i + daynumber)
{
for (int j = 0; j < entryList.size(); j++) {
if (entryList.get(j).getDaynumber() == i + daynumber) {
entries[i][f] = entryList.get(j);
f++;
}
}
}
return entries;
}catch(Exception e)
{
} catch (Exception e) {
return null;
}
}
public Entry[] getAllEntries(int semesterid, int userid)
{
public Entry[] getAllEntries(int semesterid, int userid) {
try {
ResultSet rs = st.executeQuery("select * from entries where " +
"semesterid=" + semesterid +
" and usercreatedbyid=" + userid);
List<Entry> entriestate = new ArrayList<>();
Entry current = null;
while((current = resultSetToEntry(rs)) != null)
{
Entry current = null;
while ((current = resultSetToEntry(rs)) != null) {
entriestate.add(current);
}
return entriestate.toArray(new Entry[0]);
}catch (Exception e){
} catch (Exception e) {
return null;
}
}
@@ -175,26 +153,18 @@ public class DataBaseHandler
}
}
public void deleteEntry(int id)
{
try
{
public void deleteEntry(int id) {
try {
st.executeUpdate("delete from entries where id=" + id);
}
catch (Exception e)
{
} catch (Exception e) {
}
}
public void updateEntry(Entry entry)
{
try
{
public void updateEntry(Entry entry) {
try {
st.executeUpdate("update entries set timeend=" + entry.getTimeend() + ", timestart=" + entry.getTimestart() + " where id=" + entry.getId());
}
catch(Exception e)
{
} catch (Exception e) {
}
}
@@ -224,105 +194,81 @@ public class DataBaseHandler
/**
SEMESTER
* SEMESTER
*/
//get a semester object by its name
public Semester getSemester(String name)
{
try
{
public Semester getSemester(String name) {
try {
ResultSet rs = st.executeQuery("select * from SEMESTER where name = '" + name + "'");
return resultSetToSemester(rs);
}
catch(Exception e)
{
} catch (Exception e) {
return null;
}
}
public Semester getSemester(int id)
{
try
{
public Semester getSemester(int id) {
try {
ResultSet rs = st.executeQuery("select * from semester where id=" + id);
return resultSetToSemester(rs);
}
catch(Exception e)
{
} catch (Exception e) {
return null;
}
}
//write a new semester to the database returns if process was successful
public Semester addSemester(Semester s)
{
try
{
st.executeUpdate("insert into SEMESTER (startday, endday, name, startyear, endyear) values (" + s.getStartday() + ", " + s.getEndday() + ", '" + s.getName() + "', " + s.getStartyear() + ", " + s.getEndyear() + ")");
public Semester addSemester(Semester s) {
try {
st.executeUpdate("insert into SEMESTER (startday, endday, name, startyear, endyear, number) values (" + s.getStartday() + ", " + s.getEndday() + ", '" + s.getName() + "', " + s.getStartyear() + ", " + s.getEndyear() + ", " + s.getNumber() + ")");
return getSemester(s.getName());
} catch (Exception e)
{
} catch (Exception e) {
return null;
}
}
public Semester[] getAllSemesters()
{
try
{
public Semester[] getAllSemesters() {
try {
ResultSet rs = st.executeQuery("select * from semester");
List<Semester> semestersList = new ArrayList<>();
Semester s = null;
while((s = resultSetToSemester(rs)) != null)
{
while ((s = resultSetToSemester(rs)) != null) {
semestersList.add(s);
}
return semestersList.toArray(new Semester[0]);
}
catch(Exception e)
{
} catch (Exception e) {
return null;
}
}
public Semester updateSemester(Semester semester)
{
try
{
public Semester updateSemester(Semester semester) {
try {
st.executeUpdate("update semester set startday=" + semester.getStartday() + ", " +
"endday=" + semester.getEndday() + ", " +
"name='" + semester.getName() + "', " +
"startyear=" + semester.getStartyear() + ", " +
"number=" + semester.getNumber() + ", " +
"endyear=" + semester.getEndyear() + " where id=" + semester.getId());
return getSemester(semester.getId());
} catch (SQLException e)
{
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}
public void deleteSemester(int id)
{
try
{
public void deleteSemester(int id) {
try {
st.executeUpdate("DELETE FROM modules WHERE semesterid=" + id);
st.executeUpdate("delete from semester where id=" + id);
}
catch(Exception e)
{
} catch (Exception e) {
}
}
public Semester resultSetToSemester(ResultSet rs)
{
try
{
public Semester resultSetToSemester(ResultSet rs) {
try {
rs.next();
return new Semester(
rs.getInt("id"),
@@ -330,40 +276,34 @@ public class DataBaseHandler
rs.getInt("endday"),
rs.getString("name"),
rs.getInt("startyear"),
rs.getInt("endyear")
rs.getInt("endyear"),
rs.getInt("number")
);
}
catch(Exception e)
{
} catch (Exception e) {
return null;
}
}
/**
MODULE
* MODULE
*/
//get a module object by its id
public Module getModule(int id) {
try {
ResultSet rs = st.executeQuery("SELECT * FROM modules WHERE id=" + id);
return resultSetToModule(rs);
}
catch (Exception ex) {
return resultSetToModule(rs);
} catch (Exception ex) {
return null;
}
}
public Module getModule(int userid, int semesterid)
{
try
{
public Module getModule(int userid, int semesterid) {
try {
ResultSet rs = st.executeQuery("select * from modules where userid=" + userid + " and semesterid=" + semesterid);
return resultSetToModule(rs);
}
catch (Exception e)
{
} catch (Exception e) {
return null;
}
}
@@ -374,96 +314,64 @@ public class DataBaseHandler
ResultSet rs = st.executeQuery("SELECT * FROM modules WHERE userid = " + userid);
List<Module> moduleList = new ArrayList<>();
Module m = null;
while((m = resultSetToModule(rs)) != null)
{
while ((m = resultSetToModule(rs)) != null) {
moduleList.add(m);
}
return moduleList.toArray(new Module[0]);
}
catch (Exception ex){
} catch (Exception ex) {
return null;
}
}
public Module addModule(Module m)
{
public Module addModule(Module m) {
try {
st.executeUpdate("insert into modules (userid, semesterid, name, activated) " +
"Values (" + m.getUserid() + ", " + m.getsemesterid() + ", '" + m.getName() + "', " + m.getActivated() + ")");
return getModule(m.getUserid(), m.getsemesterid());
}
catch (Exception e) {
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public Module[] getAllModules() {
try
{
try {
ResultSet rs = st.executeQuery("SELECT * FROM modules");
List<Module> moduleList = new ArrayList<>();
Module m = null;
while((m = resultSetToModule(rs)) != null)
{
while ((m = resultSetToModule(rs)) != null) {
moduleList.add(m);
}
return moduleList.toArray(new Module[0]);
}
catch(Exception e)
{
} catch (Exception e) {
return null;
}
}
public Module getModuleBySemesterUserID(int userid, int semesterid)
{
try
{
ResultSet rs = st.executeQuery("select * from modules where userid=" + userid + " and semesterid=" + semesterid);
return resultSetToModule(rs);
}
catch(Exception e)
{
return new Module(-1, 0, 0, "", 0);
}
}
public Module updateModule(Module m)
{
public Module updateModule(Module m) {
try {
Module module = getModule(m.getUserid(), m.getsemesterid());
if(module == null)
{
addModule(m);
}
else
{
st.executeUpdate("update modules set activated=" + m.getActivated() + ", semesterid=" + m.getsemesterid() + ", name='" + m.getName() + "' where id=" + module.getid());
}
Module test = getModule(m.getUserid(), m.getsemesterid());
System.out.println(test.getActivated());
return test;
}
catch (SQLException ex) {
st.executeUpdate("update modules set activated=" + m.getActivated() + ", semesterid=" + m.getsemesterid() + ", name='" + m.getName() + "' where id=" + m.getid());
return null;
} catch (SQLException ex) {
ex.printStackTrace();
return null;
}
}
public boolean deleteModule(int semesterid, int userid)
{
public boolean deleteModule(int id) {
try {
st.executeUpdate("delete from modules where semesterid=" + semesterid + " and userid=" + userid);
st.executeUpdate("delete from modules where id=" + id);
return true;
}
catch(Exception ex) {
} catch (Exception ex) {
return false;
}
}
@@ -477,89 +385,72 @@ public class DataBaseHandler
rs.getInt("semesterid"),
rs.getString("name"),
rs.getInt("activated"));
}
catch (Exception ex) {
} catch (Exception ex) {
return null;
}
}
/**
USER
* USER
*/
//Alle User, die nicht admin sind
public User[] getAllUsers()
{
try
{
public User[] getAllUsers() {
try {
ResultSet rs = st.executeQuery("select * from users where permission=0");
User u = null;
List<User> output = new ArrayList<>();
while((u = resultSetToUser(rs)) != null)
{
while ((u = resultSetToUser(rs)) != null) {
u.clearOutPassword();
output.add(u);
}
return output.toArray(new User[0]);
}
catch(Exception e)
{
} catch (Exception e) {
return null;
}
}
//einen User
public User getUser(String mail, String password)
{
public User getUser(String mail, String password) {
try
{
try {
ResultSet rs = st.executeQuery("select * from users where mail = '" + mail + "' and password = '" + password + "'");
return resultSetToUser(rs);
} catch (Exception e)
{
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public User getUser(int id)
{
try
{
public User getUser(int id) {
try {
ResultSet rs = st.executeQuery("select * from users where id=" + id);
return resultSetToUser(rs);
} catch (Exception e)
{
} catch (Exception e) {
return null;
}
}
public User getUser(String mail)
{
try
{
public User getUser(String mail) {
try {
ResultSet rs = st.executeQuery("select * from users where mail='" + mail + "'");
User u = resultSetToUser(rs);
if(u != null) u.clearOutPassword();
if (u != null) u.clearOutPassword();
return u;
} catch (SQLException e)
{
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}
public User resultSetToUser(ResultSet rs)
{
try
{
public User resultSetToUser(ResultSet rs) {
try {
rs.next();
return new User(
rs.getInt("id"),
@@ -569,27 +460,21 @@ public class DataBaseHandler
rs.getString("password"),
rs.getInt("permission")
);
}
catch(Exception e)
{
} catch (Exception e) {
return null;
}
}
//add a new user object to the database returns if process was successful
public User addUser(User user)
{
public User addUser(User user) {
//check if mail and passwort (key user information) is given
if (user.getMail() == null || user.getPassword() == null)
{
if (user.getMail() == null || user.getPassword() == null) {
return null;
}
try
{
try {
String password = user.getPassword();
if(encrypted)
{
if (encrypted) {
RSA rsa = RSA.getInstance();
byte[] psw = rsa.loadByteArray(password);
try {
@@ -600,20 +485,16 @@ public class DataBaseHandler
}
st.executeUpdate("insert into users (firstname, lastname, mail, password, permission) values (" + "'" + user.getFirstName() + "', '" + user.getLastName() + "', '" + user.getMail() + "', '" + password + "', " + 0 + ")");
return getUser(user.getMail(), user.getPassword());
} catch (Exception e)
{
} catch (Exception e) {
return null;
}
}
public User updateUser(User user, int id, boolean elevationRequestByAdmin)
{
try
{
public User updateUser(User user, int id, boolean elevationRequestByAdmin) {
try {
String password = user.getPassword();
if(encrypted)
{
if (encrypted) {
RSA rsa = RSA.getInstance();
byte[] psw = rsa.loadByteArray(password);
try {
@@ -623,17 +504,14 @@ public class DataBaseHandler
}
}
if(!elevationRequestByAdmin)
{
if (!elevationRequestByAdmin) {
st.executeUpdate("update users set " +
"firstname='" + user.getFirstName() + "', " +
"lastname='" + user.getLastName() + "', " +
"mail='" + user.getMail() + "', " +
"password='" + password + "' " +
"where id=" + id);
}
else
{
} else {
st.executeUpdate("update users set " +
"firstname='" + user.getFirstName() + "', " +
"lastname='" + user.getLastName() + "', " +
@@ -644,17 +522,14 @@ public class DataBaseHandler
}
return getUser(id);
} catch (SQLException e)
{
} catch (SQLException e) {
e.printStackTrace();
return null;
}
}
public boolean deleteUser(String mail)
{
try
{
public boolean deleteUser(String mail) {
try {
ResultSet rs = st.executeQuery("SELECT id FROM user WHERE mail='" + mail + "'");
rs.next();
int id = rs.getInt("id");
@@ -662,9 +537,7 @@ public class DataBaseHandler
st.executeUpdate("delete from users where mail='" + mail + "'");
return true;
}
catch(Exception e)
{
} catch (Exception e) {
e.printStackTrace();
return false;
}
@@ -9,14 +9,16 @@ public class Semester
private String name;
private int startyear;
private int endyear;
private int number;
public Semester(int id, int startday, int endday, String name, int startyear, int endyear) {
public Semester(int id, int startday, int endday, String name, int startyear, int endyear, int number) {
this.id = id;
this.startday = startday;
this.endday = endday;
this.name = name;
this.startyear = startyear;
this.endyear = endyear;
this.number = number;
}
public int getId() {
@@ -42,4 +44,6 @@ public class Semester
public int getEndyear() {
return endyear;
}
public int getNumber(){return number; }
}
@@ -40,11 +40,11 @@ public class EntriesController
for (int i = 0; i < 6; i++) {
var idx = 0;
for (int j = 0; j < 20; j++) {
if (lonelyEntry[i][j] != null){
if (lonelyEntry != null && lonelyEntry[i][j] != null){
combinedEntry[i][idx] = lonelyEntry[i][j];
idx++;
}
if (happyEntry[i][j] != null){
if (happyEntry != null && happyEntry[i][j] != null){
combinedEntry[i][idx] = happyEntry[i][j];
idx++;
}
@@ -53,29 +53,23 @@ public class ModuleController
return new ResponseEntity<>(HttpStatus.FORBIDDEN);
}
/**
GET
Get A Module by the matching semester and user id (important for edit function in frontend)
*/
@CrossOrigin
@GetMapping("/module/suid")
public ResponseEntity<Module[]> getModulesBySemesterUserID(@RequestParam(name = "sessionid") String sessionid, @RequestParam(name = "userid") String userid, @RequestParam(name = "semesterid") int semesterid)
@GetMapping("/module/bysemesterid")
public ResponseEntity<Module[]> getModulesBySemesterID(@RequestParam(name="sessionid") String sessionID, @RequestParam(name="semesterid") int semesterid)
{
User user = UserSessionIDHandler.getUserBySessionID(sessionid);
String[] userIDSSplit = userid.split("a");
int[] userIDS = new int[userIDSSplit.length];
for(int i = 0; i < userIDS.length; i++)
{
userIDS[i] = Integer.parseInt(userIDSSplit[i]);
}
User user = UserSessionIDHandler.getUserBySessionID(sessionID);
if(user != null && user.getPermissions() == UserPermissions.admin.getValue())
{
Module[] tempModuleArray = db.getAllModules();
List<Module> result = new ArrayList<>();
for(int i = 0; i < userIDS.length; i++)
for(int i = 0; i < tempModuleArray.length; i++)
{
result.add(db.getModuleBySemesterUserID(userIDS[i], semesterid));
if(tempModuleArray[i].getsemesterid() == semesterid)
{
result.add(tempModuleArray[i]);
}
}
return new ResponseEntity<>(result.toArray(new Module[0]), HttpStatus.OK);
@@ -114,7 +108,6 @@ public class ModuleController
public ResponseEntity<Module> addModule(@RequestBody Module module, @RequestParam(name = "sessionid") String sessionID)
{
System.out.println("test1");
User user = UserSessionIDHandler.getUserBySessionID(sessionID);
if (user.getPermissions() == UserPermissions.admin.getValue())
@@ -163,12 +156,12 @@ public class ModuleController
*/
@CrossOrigin
@DeleteMapping("/module")
public void deleteModule(@RequestParam(name = "sessionid") String sessionid, @RequestParam(name = "semesterid") int semesterid, @RequestParam(name = "userid") int userid)
public void deleteModule(@RequestParam(name = "sessionid") String sessionid, @RequestParam(name="id") int id)
{
User u = UserSessionIDHandler.getUserBySessionID(sessionid);
if (u != null && u.getPermissions() == UserPermissions.admin.getValue())
{
db.deleteModule(semesterid, userid);
db.deleteModule(id);
}
}
@@ -57,7 +57,7 @@ public class SemesterController
return new ResponseEntity<>(s, HttpStatus.OK);
}
return new ResponseEntity<>(HttpStatus.NOT_FOUND);
return new ResponseEntity<>(null, HttpStatus.OK);
}
return new ResponseEntity<>(HttpStatus.FORBIDDEN);