Weitere backend kommentare
This commit is contained in:
@@ -10,6 +10,16 @@ import java.sql.*;
|
|||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
|
//kleiner hinweis zur Datenbank:
|
||||||
|
//die datenkbank H2 benötigt die beiden dateien database.mv.db und database.trace.db
|
||||||
|
//um die datenbank verwenden zu können muss der jdbc driver in das projekt eingebunden sein.
|
||||||
|
//dieser driver liegt im ordner als h2jdbcdriver als .jar datei
|
||||||
|
//der nutzername für die datenbank ist: adm
|
||||||
|
//das passwort für die datenbank ist: 73bgjfdsfJ!934
|
||||||
|
//die datenbank als einzelnes kann entweder über die h2console (windows) oder jetbrains datagrip (alle systeme) editiert werden.
|
||||||
|
//oder über jedes weitere tool welches h2 datenbanken unterstützt.
|
||||||
|
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
||||||
public class DataBaseHandler {
|
public class DataBaseHandler {
|
||||||
//singleton instance of database handler
|
//singleton instance of database handler
|
||||||
private static DataBaseHandler instance = null;
|
private static DataBaseHandler instance = null;
|
||||||
@@ -267,6 +277,7 @@ public class DataBaseHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//ist dafür da, um ein semester anhand seiner id aus der datenbank zu löschen
|
||||||
public void deleteSemester(int id) {
|
public void deleteSemester(int id) {
|
||||||
try {
|
try {
|
||||||
st.executeUpdate("DELETE FROM modules WHERE semesterid=" + id);
|
st.executeUpdate("DELETE FROM modules WHERE semesterid=" + id);
|
||||||
@@ -277,6 +288,7 @@ public class DataBaseHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//kann ein resultset der datenbank in ein internes semester objekt umwandeln.
|
||||||
public Semester resultSetToSemester(ResultSet rs) {
|
public Semester resultSetToSemester(ResultSet rs) {
|
||||||
try {
|
try {
|
||||||
rs.next();
|
rs.next();
|
||||||
@@ -308,6 +320,7 @@ public class DataBaseHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//ein modul anhand der zuweisung von dozent und semester bekommen.
|
||||||
public Module getModule(int userid, int semesterid) {
|
public Module getModule(int userid, int semesterid) {
|
||||||
try {
|
try {
|
||||||
ResultSet rs = st.executeQuery("select * from modules where userid=" + userid + " and semesterid=" + semesterid);
|
ResultSet rs = st.executeQuery("select * from modules where userid=" + userid + " and semesterid=" + semesterid);
|
||||||
@@ -318,7 +331,7 @@ public class DataBaseHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//get module objects by its semester and its lecturer
|
//bekomme alle modulzuweisungen, die zu einem dozenten gehören.
|
||||||
public Module[] getModules(int userid) {
|
public Module[] getModules(int userid) {
|
||||||
try {
|
try {
|
||||||
ResultSet rs = st.executeQuery("SELECT * FROM modules WHERE userid = " + userid);
|
ResultSet rs = st.executeQuery("SELECT * FROM modules WHERE userid = " + userid);
|
||||||
@@ -335,6 +348,7 @@ public class DataBaseHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//füge eine neue modulzuweisung zwischen dozenten und fächern hinzu
|
||||||
public Module addModule(Module m) {
|
public Module addModule(Module m) {
|
||||||
try {
|
try {
|
||||||
st.executeUpdate("insert into modules (userid, semesterid, name, activated) " +
|
st.executeUpdate("insert into modules (userid, semesterid, name, activated) " +
|
||||||
@@ -347,6 +361,7 @@ public class DataBaseHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//gibt alle zuweisungen zurück.
|
||||||
public Module[] getAllModules() {
|
public Module[] getAllModules() {
|
||||||
try {
|
try {
|
||||||
ResultSet rs = st.executeQuery("SELECT * FROM modules");
|
ResultSet rs = st.executeQuery("SELECT * FROM modules");
|
||||||
@@ -362,6 +377,7 @@ public class DataBaseHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//updatet eine zuweisung anhand ihrer id
|
||||||
public Module updateModule(Module m) {
|
public Module updateModule(Module m) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -377,6 +393,7 @@ public class DataBaseHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//setzt die aktivierung einer modulzuweisung zurück.
|
||||||
public void submitModule(int id)
|
public void submitModule(int id)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -389,6 +406,8 @@ public class DataBaseHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//kann alle modulzuweisungen innerhalb eines semesters löschen.
|
||||||
|
//hierbei werden auch alle termine mit gelöscht.
|
||||||
public boolean deleteModuleBySemesterID(int id) {
|
public boolean deleteModuleBySemesterID(int id) {
|
||||||
try {
|
try {
|
||||||
st.executeUpdate("delete from modules where semesterid=" + id);
|
st.executeUpdate("delete from modules where semesterid=" + id);
|
||||||
@@ -399,6 +418,8 @@ public class DataBaseHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//kann eine einzelne modulzuweisung anhand ihrer id löschen.
|
||||||
|
//hierbei werden auch alle zu dieser zuweisung gehörigen termine gelöscht
|
||||||
public boolean deleteModule(int id) {
|
public boolean deleteModule(int id) {
|
||||||
try {
|
try {
|
||||||
st.executeUpdate("delete from modules where id=" + id);
|
st.executeUpdate("delete from modules where id=" + id);
|
||||||
@@ -409,6 +430,7 @@ public class DataBaseHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//kann ein result set der datenbank in ein internes modul objekt umwandeln.
|
||||||
public Module resultSetToModule(ResultSet rs) {
|
public Module resultSetToModule(ResultSet rs) {
|
||||||
try {
|
try {
|
||||||
rs.next();
|
rs.next();
|
||||||
@@ -447,7 +469,7 @@ public class DataBaseHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
//einen User
|
//einen User anhand seiner email und passwort zurückgeben.
|
||||||
public User getUser(String mail, String password) {
|
public User getUser(String mail, String password) {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
@@ -460,6 +482,8 @@ public class DataBaseHandler {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//einen nutzer andhand seiner id zurückgeben.
|
||||||
|
//diese funktion sollte nur für admins verfügbar sein.
|
||||||
public User getUser(int id) {
|
public User getUser(int id) {
|
||||||
try {
|
try {
|
||||||
ResultSet rs = st.executeQuery("select * from users where id=" + id);
|
ResultSet rs = st.executeQuery("select * from users where id=" + id);
|
||||||
@@ -469,6 +493,7 @@ public class DataBaseHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//ein nutzer anhand seiner mail zurückgeben. diese funktion sollte nur für admins erreichbar sein.
|
||||||
public User getUser(String mail) {
|
public User getUser(String mail) {
|
||||||
try {
|
try {
|
||||||
ResultSet rs = st.executeQuery("select * from users where mail='" + mail + "'");
|
ResultSet rs = st.executeQuery("select * from users where mail='" + mail + "'");
|
||||||
@@ -482,6 +507,8 @@ public class DataBaseHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//kann ein result set der datenbank in ein internes nutzer objekt umwandeln.
|
||||||
|
|
||||||
public User resultSetToUser(ResultSet rs) {
|
public User resultSetToUser(ResultSet rs) {
|
||||||
try {
|
try {
|
||||||
rs.next();
|
rs.next();
|
||||||
@@ -524,6 +551,8 @@ public class DataBaseHandler {
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//kann einen nutzer updaten, aber auch dessen rechte verändern, hierbei werden die rechte nur angepasst,
|
||||||
|
//wenn der boolean elevationRequestByAdmin true ist
|
||||||
public User updateUser(User user, int id, boolean elevationRequestByAdmin) {
|
public User updateUser(User user, int id, boolean elevationRequestByAdmin) {
|
||||||
try {
|
try {
|
||||||
String password = user.getPassword();
|
String password = user.getPassword();
|
||||||
@@ -561,6 +590,8 @@ public class DataBaseHandler {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//hier kann ein nutzer anhand seiner email addresse gelöscht werden.
|
||||||
|
//diese funktion sollte nur für den eigenen nutzer oder für admins verfügbar sein.
|
||||||
public boolean deleteUser(String mail) {
|
public boolean deleteUser(String mail) {
|
||||||
try {
|
try {
|
||||||
ResultSet rs = st.executeQuery("SELECT id FROM user WHERE mail='" + mail + "'");
|
ResultSet rs = st.executeQuery("SELECT id FROM user WHERE mail='" + mail + "'");
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.example.backend.anwprj.Entries;
|
package com.example.backend.anwprj.Entries;
|
||||||
|
|
||||||
//entry data class
|
//interne klasse für die darstellung von terminen
|
||||||
public class Entry
|
public class Entry
|
||||||
{
|
{
|
||||||
private int id;
|
private int id;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.example.backend.anwprj.Module;
|
package com.example.backend.anwprj.Module;
|
||||||
|
|
||||||
//module data class
|
//klasse für die interne darstellungen für die zuweisungen zwischen dozenten und fächern.
|
||||||
public class Module {
|
public class Module {
|
||||||
private int id;
|
private int id;
|
||||||
private int userid;
|
private int userid;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.example.backend.anwprj.Semesters;
|
package com.example.backend.anwprj.Semesters;
|
||||||
|
|
||||||
//semester data class
|
//klasse für die interne darstellung von semestern.
|
||||||
public class Semester
|
public class Semester
|
||||||
{
|
{
|
||||||
private int id;
|
private int id;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.example.backend.anwprj.Users;
|
package com.example.backend.anwprj.Users;
|
||||||
|
|
||||||
//user data class
|
//klasse für die darstellung von benutzerobjekten.
|
||||||
public class User
|
public class User
|
||||||
{
|
{
|
||||||
private int id;
|
private int id;
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
package com.example.backend.anwprj.Users;
|
package com.example.backend.anwprj.Users;
|
||||||
|
|
||||||
//mapping of the integer rights to enum
|
// zuweisung der zahlen 0 für normaler user / dozenten und 1 für admin.
|
||||||
public enum UserPermissions
|
public enum UserPermissions
|
||||||
{
|
{
|
||||||
self(0),
|
self(0),
|
||||||
|
|||||||
@@ -5,6 +5,9 @@ import com.example.backend.anwprj.Database.DataBaseHandler;
|
|||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
|
||||||
|
//diese klasse kümmert sich um die zuweisungen von nutzern und deren sessionids.
|
||||||
|
//wird für alle möglichen anfragen der nutzer an das backend verwendet um eine sessionid
|
||||||
|
//in ein benutzerobjekt aufzulösen.
|
||||||
public class UserSessionIDHandler
|
public class UserSessionIDHandler
|
||||||
{
|
{
|
||||||
//stores mapping of session ids to users
|
//stores mapping of session ids to users
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ public class SemesterController
|
|||||||
return new ResponseEntity<>(HttpStatus.FORBIDDEN);
|
return new ResponseEntity<>(HttpStatus.FORBIDDEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//get a semester object by its id
|
||||||
@CrossOrigin
|
@CrossOrigin
|
||||||
@GetMapping("/semester/id")
|
@GetMapping("/semester/id")
|
||||||
public ResponseEntity<Semester> getSemester(@RequestParam(name="id") int id, @RequestParam(name="sessionid") String sessionID)
|
public ResponseEntity<Semester> getSemester(@RequestParam(name="id") int id, @RequestParam(name="sessionid") String sessionID)
|
||||||
@@ -63,6 +64,7 @@ public class SemesterController
|
|||||||
return new ResponseEntity<>(HttpStatus.FORBIDDEN);
|
return new ResponseEntity<>(HttpStatus.FORBIDDEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//takes in a list of semester ids seperatet by an a as list seperator
|
||||||
@CrossOrigin
|
@CrossOrigin
|
||||||
@GetMapping("/semester/id/all")
|
@GetMapping("/semester/id/all")
|
||||||
public ResponseEntity<Semester[]> getSemestersAll(@RequestParam(name="ids") String ids, @RequestParam(name="sessionid") String sessionid)
|
public ResponseEntity<Semester[]> getSemestersAll(@RequestParam(name="ids") String ids, @RequestParam(name="sessionid") String sessionid)
|
||||||
@@ -80,6 +82,7 @@ public class SemesterController
|
|||||||
return new ResponseEntity<>(resultList.toArray(new Semester[0]), HttpStatus.OK);
|
return new ResponseEntity<>(resultList.toArray(new Semester[0]), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//gibt alle semester zurück
|
||||||
@CrossOrigin
|
@CrossOrigin
|
||||||
@GetMapping("/semester/all")
|
@GetMapping("/semester/all")
|
||||||
public ResponseEntity<Semester[]> getSemester(@RequestParam(name="sessionid") String sessionid)
|
public ResponseEntity<Semester[]> getSemester(@RequestParam(name="sessionid") String sessionid)
|
||||||
@@ -122,6 +125,7 @@ public class SemesterController
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//updatet ein semester
|
||||||
@CrossOrigin
|
@CrossOrigin
|
||||||
@PutMapping("/semester")
|
@PutMapping("/semester")
|
||||||
public ResponseEntity<Semester> updateSemester(@RequestBody Semester semester, @RequestParam(name="sessionid") String sessionID)
|
public ResponseEntity<Semester> updateSemester(@RequestBody Semester semester, @RequestParam(name="sessionid") String sessionID)
|
||||||
@@ -142,6 +146,7 @@ public class SemesterController
|
|||||||
return new ResponseEntity<>(HttpStatus.FORBIDDEN);
|
return new ResponseEntity<>(HttpStatus.FORBIDDEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//löscht ein semester anhand seiner id
|
||||||
@CrossOrigin
|
@CrossOrigin
|
||||||
@DeleteMapping("/semester")
|
@DeleteMapping("/semester")
|
||||||
public void deleteSemester(@RequestParam(name="sessionid") String sessionid, @RequestParam(name="id") int id)
|
public void deleteSemester(@RequestParam(name="sessionid") String sessionid, @RequestParam(name="id") int id)
|
||||||
|
|||||||
@@ -9,6 +9,11 @@ import org.springframework.http.HttpStatus;
|
|||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
Hier sind einige nutzer funktionen mehr, als für das tool benötigt werden. Diese dienen nur testzwecken
|
||||||
|
zum verwalten von nutzer z.b. über postman.
|
||||||
|
*/
|
||||||
@RestController
|
@RestController
|
||||||
public class UserController {
|
public class UserController {
|
||||||
//reference to the database handler
|
//reference to the database handler
|
||||||
@@ -18,6 +23,7 @@ public class UserController {
|
|||||||
db = DataBaseHandler.getInstance();
|
db = DataBaseHandler.getInstance();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//hole alle user, nur erlaubt für admins
|
||||||
@CrossOrigin
|
@CrossOrigin
|
||||||
@GetMapping("/users/all")
|
@GetMapping("/users/all")
|
||||||
public ResponseEntity<User[]> getAllUsers(@RequestParam(name = "sessionid") String sessionid)
|
public ResponseEntity<User[]> getAllUsers(@RequestParam(name = "sessionid") String sessionid)
|
||||||
@@ -57,6 +63,7 @@ public class UserController {
|
|||||||
return new ResponseEntity<>(sessionID, HttpStatus.OK);
|
return new ResponseEntity<>(sessionID, HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//ein nutzer möchte sich ausloggen, damit sollte seinen sessionid entfernt werden.
|
||||||
@CrossOrigin
|
@CrossOrigin
|
||||||
@GetMapping("/users/logout")
|
@GetMapping("/users/logout")
|
||||||
public ResponseEntity<Boolean> logout(@RequestParam(name = "sessionid") String sessionID) {
|
public ResponseEntity<Boolean> logout(@RequestParam(name = "sessionid") String sessionID) {
|
||||||
@@ -64,6 +71,7 @@ public class UserController {
|
|||||||
return new ResponseEntity<>(success, HttpStatus.OK);
|
return new ResponseEntity<>(success, HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//admins können hier die daten eiens nutzer anfordern.
|
||||||
@CrossOrigin
|
@CrossOrigin
|
||||||
@GetMapping("/users/data")
|
@GetMapping("/users/data")
|
||||||
public ResponseEntity<User> getUserData(
|
public ResponseEntity<User> getUserData(
|
||||||
@@ -141,6 +149,7 @@ public class UserController {
|
|||||||
return new ResponseEntity<>(false, HttpStatus.FORBIDDEN);
|
return new ResponseEntity<>(false, HttpStatus.FORBIDDEN);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//rechte eines nutzers erhöhen, kann nur von admins ausgeführt werden.
|
||||||
@CrossOrigin
|
@CrossOrigin
|
||||||
@PutMapping("/users/elevate")
|
@PutMapping("/users/elevate")
|
||||||
public ResponseEntity<Boolean> elevateUser(
|
public ResponseEntity<Boolean> elevateUser(
|
||||||
|
|||||||
@@ -9,6 +9,7 @@ import org.springframework.http.HttpStatus;
|
|||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
//alte verworfenen klasse für die funktionalität nicht wichtig
|
||||||
@RestController
|
@RestController
|
||||||
public class DayController
|
public class DayController
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.example.backend.discard.Days;
|
package com.example.backend.discard.Days;
|
||||||
|
|
||||||
|
//alte verworfene klasse nicht wichtig für die funktionalität
|
||||||
public class Day
|
public class Day
|
||||||
{
|
{
|
||||||
private int id;
|
private int id;
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ import java.io.*;
|
|||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.security.*;
|
import java.security.*;
|
||||||
|
|
||||||
|
//hier ein versuch für die übertragung von vertraulichen daten wie nutzername und passwörtern RSA verschlüsselung anzuwenden.
|
||||||
|
//finde aktuell keine anwendung im projekt.
|
||||||
public class RSA {
|
public class RSA {
|
||||||
|
|
||||||
private PublicKey publicKey;
|
private PublicKey publicKey;
|
||||||
|
|||||||
@@ -1,3 +1,19 @@
|
|||||||
|
|
||||||
|
|
||||||
|
!!!!!!!!!
|
||||||
|
!!!!!!!!!
|
||||||
|
hier sieht man eine sammlung alter databasehandler funktionen,
|
||||||
|
welche nicht benötigt wurden. Von deren Verwendung ist abzuraten,
|
||||||
|
die Funkionalität dieser bei erneutem einfügen in den Databasehandler
|
||||||
|
kann nicht gewährleistet werden
|
||||||
|
!!!!!!!!
|
||||||
|
!!!!!!!!
|
||||||
|
!!!!!!!!
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* WEEKS
|
* WEEKS
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.example.backend.discard.Week;
|
package com.example.backend.discard.Week;
|
||||||
|
|
||||||
|
//alte verworfene klasse, nicht wichtig für die funktionalität
|
||||||
public class Week {
|
public class Week {
|
||||||
|
|
||||||
private int id;
|
private int id;
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.*;
|
|||||||
|
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
|
||||||
|
//alte verworfene klassen, für die funktionalität des tools nicht wichtig
|
||||||
@RestController
|
@RestController
|
||||||
public class WeekController
|
public class WeekController
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user