Weitere backend kommentare
This commit is contained in:
@@ -10,6 +10,16 @@ import java.sql.*;
|
||||
import java.util.ArrayList;
|
||||
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 {
|
||||
//singleton instance of database handler
|
||||
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) {
|
||||
try {
|
||||
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) {
|
||||
try {
|
||||
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) {
|
||||
try {
|
||||
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) {
|
||||
try {
|
||||
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) {
|
||||
try {
|
||||
st.executeUpdate("insert into modules (userid, semesterid, name, activated) " +
|
||||
@@ -347,6 +361,7 @@ public class DataBaseHandler {
|
||||
}
|
||||
}
|
||||
|
||||
//gibt alle zuweisungen zurück.
|
||||
public Module[] getAllModules() {
|
||||
try {
|
||||
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) {
|
||||
|
||||
try {
|
||||
@@ -377,6 +393,7 @@ public class DataBaseHandler {
|
||||
}
|
||||
}
|
||||
|
||||
//setzt die aktivierung einer modulzuweisung zurück.
|
||||
public void submitModule(int id)
|
||||
{
|
||||
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) {
|
||||
try {
|
||||
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) {
|
||||
try {
|
||||
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) {
|
||||
try {
|
||||
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) {
|
||||
|
||||
try {
|
||||
@@ -460,6 +482,8 @@ public class DataBaseHandler {
|
||||
return null;
|
||||
}
|
||||
|
||||
//einen nutzer andhand seiner id zurückgeben.
|
||||
//diese funktion sollte nur für admins verfügbar sein.
|
||||
public User getUser(int id) {
|
||||
try {
|
||||
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) {
|
||||
try {
|
||||
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) {
|
||||
try {
|
||||
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) {
|
||||
try {
|
||||
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) {
|
||||
try {
|
||||
ResultSet rs = st.executeQuery("SELECT id FROM user WHERE mail='" + mail + "'");
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.example.backend.anwprj.Entries;
|
||||
|
||||
//entry data class
|
||||
//interne klasse für die darstellung von terminen
|
||||
public class Entry
|
||||
{
|
||||
private int id;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
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 {
|
||||
private int id;
|
||||
private int userid;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.example.backend.anwprj.Semesters;
|
||||
|
||||
//semester data class
|
||||
//klasse für die interne darstellung von semestern.
|
||||
public class Semester
|
||||
{
|
||||
private int id;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
package com.example.backend.anwprj.Users;
|
||||
|
||||
//user data class
|
||||
//klasse für die darstellung von benutzerobjekten.
|
||||
public class User
|
||||
{
|
||||
private int id;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
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
|
||||
{
|
||||
self(0),
|
||||
|
||||
@@ -5,6 +5,9 @@ import com.example.backend.anwprj.Database.DataBaseHandler;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
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
|
||||
{
|
||||
//stores mapping of session ids to users
|
||||
|
||||
@@ -43,6 +43,7 @@ public class SemesterController
|
||||
return new ResponseEntity<>(HttpStatus.FORBIDDEN);
|
||||
}
|
||||
|
||||
//get a semester object by its id
|
||||
@CrossOrigin
|
||||
@GetMapping("/semester/id")
|
||||
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);
|
||||
}
|
||||
|
||||
//takes in a list of semester ids seperatet by an a as list seperator
|
||||
@CrossOrigin
|
||||
@GetMapping("/semester/id/all")
|
||||
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);
|
||||
}
|
||||
|
||||
//gibt alle semester zurück
|
||||
@CrossOrigin
|
||||
@GetMapping("/semester/all")
|
||||
public ResponseEntity<Semester[]> getSemester(@RequestParam(name="sessionid") String sessionid)
|
||||
@@ -122,6 +125,7 @@ public class SemesterController
|
||||
}
|
||||
|
||||
|
||||
//updatet ein semester
|
||||
@CrossOrigin
|
||||
@PutMapping("/semester")
|
||||
public ResponseEntity<Semester> updateSemester(@RequestBody Semester semester, @RequestParam(name="sessionid") String sessionID)
|
||||
@@ -142,6 +146,7 @@ public class SemesterController
|
||||
return new ResponseEntity<>(HttpStatus.FORBIDDEN);
|
||||
}
|
||||
|
||||
//löscht ein semester anhand seiner id
|
||||
@CrossOrigin
|
||||
@DeleteMapping("/semester")
|
||||
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.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
|
||||
public class UserController {
|
||||
//reference to the database handler
|
||||
@@ -18,6 +23,7 @@ public class UserController {
|
||||
db = DataBaseHandler.getInstance();
|
||||
}
|
||||
|
||||
//hole alle user, nur erlaubt für admins
|
||||
@CrossOrigin
|
||||
@GetMapping("/users/all")
|
||||
public ResponseEntity<User[]> getAllUsers(@RequestParam(name = "sessionid") String sessionid)
|
||||
@@ -57,6 +63,7 @@ public class UserController {
|
||||
return new ResponseEntity<>(sessionID, HttpStatus.OK);
|
||||
}
|
||||
|
||||
//ein nutzer möchte sich ausloggen, damit sollte seinen sessionid entfernt werden.
|
||||
@CrossOrigin
|
||||
@GetMapping("/users/logout")
|
||||
public ResponseEntity<Boolean> logout(@RequestParam(name = "sessionid") String sessionID) {
|
||||
@@ -64,6 +71,7 @@ public class UserController {
|
||||
return new ResponseEntity<>(success, HttpStatus.OK);
|
||||
}
|
||||
|
||||
//admins können hier die daten eiens nutzer anfordern.
|
||||
@CrossOrigin
|
||||
@GetMapping("/users/data")
|
||||
public ResponseEntity<User> getUserData(
|
||||
@@ -141,6 +149,7 @@ public class UserController {
|
||||
return new ResponseEntity<>(false, HttpStatus.FORBIDDEN);
|
||||
}
|
||||
|
||||
//rechte eines nutzers erhöhen, kann nur von admins ausgeführt werden.
|
||||
@CrossOrigin
|
||||
@PutMapping("/users/elevate")
|
||||
public ResponseEntity<Boolean> elevateUser(
|
||||
|
||||
@@ -9,6 +9,7 @@ import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
//alte verworfenen klasse für die funktionalität nicht wichtig
|
||||
@RestController
|
||||
public class DayController
|
||||
{
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.example.backend.discard.Days;
|
||||
|
||||
//alte verworfene klasse nicht wichtig für die funktionalität
|
||||
public class Day
|
||||
{
|
||||
private int id;
|
||||
|
||||
@@ -5,6 +5,8 @@ import java.io.*;
|
||||
import java.nio.charset.StandardCharsets;
|
||||
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 {
|
||||
|
||||
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
|
||||
*/
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.example.backend.discard.Week;
|
||||
|
||||
//alte verworfene klasse, nicht wichtig für die funktionalität
|
||||
public class Week {
|
||||
|
||||
private int id;
|
||||
|
||||
@@ -11,6 +11,7 @@ import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.sql.SQLException;
|
||||
|
||||
//alte verworfene klassen, für die funktionalität des tools nicht wichtig
|
||||
@RestController
|
||||
public class WeekController
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user