diff --git a/backend/database.mv.db b/backend/database.mv.db index 26d5f7f..e106e21 100644 Binary files a/backend/database.mv.db and b/backend/database.mv.db differ diff --git a/backend/database.trace.db b/backend/database.trace.db index 389acd6..6a33ef5 100644 --- a/backend/database.trace.db +++ b/backend/database.trace.db @@ -1554,3 +1554,12 @@ java.sql.SQLClientInfoException: Client info name 'ApplicationName' not supporte at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.lang.Thread.run(Thread.java:833) +2023-05-14 22:00:18 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientException: Keine Daten verfügbar +No data is available [2000-214] +2023-05-14 22:00:50 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientException: Keine Daten verfügbar +No data is available [2000-214] +2023-05-14 22:08:48 jdbc[3]: exception +org.h2.jdbc.JdbcSQLNonTransientException: Keine Daten verfügbar +No data is available [2000-214] diff --git a/backend/src/main/java/com/example/backend/anwprj/DataBaseHandler.java b/backend/src/main/java/com/example/backend/anwprj/DataBaseHandler.java index 0fe45df..33d1108 100644 --- a/backend/src/main/java/com/example/backend/anwprj/DataBaseHandler.java +++ b/backend/src/main/java/com/example/backend/anwprj/DataBaseHandler.java @@ -5,6 +5,7 @@ import com.example.backend.anwprj.Days.Day; import com.example.backend.anwprj.Entries.Entry; import com.example.backend.anwprj.Semesters.Semester; import com.example.backend.anwprj.Users.User; +import com.example.backend.anwprj.Week.Week; import java.sql.*; import java.util.ArrayList; @@ -44,73 +45,80 @@ public class DataBaseHandler System.out.println("No Connection!"); } } - - /* - TEMPPPPPP + /** + * WEEKS */ - public static class Week - { - public int semesterid, id, weeknumber; - public Week(int id, int semesterid, int weeknumber) - { - this.semesterid = semesterid; - this.weeknumber = weeknumber; - this.id = id; - } - } public Week addWeek(Week week) { try { - st.executeUpdate("insert into weeks (semesterid, weeknumber) values (" + week.semesterid + ", " + week.weeknumber + ")"); - return getWeek(week.semesterid, week.weeknumber); + st.executeUpdate("insert into weeks (semesterid, weeknumber) values (" + week.getSemesterid() + ", " + week.getWeeknumber() + ")"); + + return getWeek(week.getSemesterid(), week.getWeeknumber()); + } catch (SQLException e) { - throw new RuntimeException(e); + return null; } } + public Week getWeek(int id) + { + ResultSet rs = null; + try + { + rs = st.executeQuery("select * from weeks where id=" + id); + + return resultSetToWeek(rs); + + } catch (SQLException e) + + { + return null; + } + + } + public Week getWeek(int semesterid, int weeknumber) { try { - ResultSet rs = st.executeQuery("select w.* from weeks w, semester s where s.id=" + semesterid + " and " + "w.weeknumber=" + weeknumber); - rs.next(); - return new Week(rs.getInt("id"), rs.getInt("semesterid"), rs.getInt("weeknumber")); - } catch (SQLException e) - { - throw new RuntimeException(e); + ResultSet rs = st.executeQuery("select * from weeks where semesterid =" + semesterid + " and weeknumber=" + weeknumber); + + return resultSetToWeek(rs); } + catch (SQLException e) + { + return null; + } + } - public Week getWeekById(int id) - { - try - { - ResultSet rs = st.executeQuery("select * from weeks where id=" + id); + private Week resultSetToWeek(ResultSet rs) { + try { rs.next(); - return new Week(rs.getInt("id"), rs.getInt("semesterid"), rs.getInt("weeknumber")); - } - catch(Exception e) - { + + return new Week( + rs.getInt("id"), + rs.getInt("semesterid"), + rs.getInt("weeknumber") + ); + } catch (SQLException e) { return null; } } - /* - TEMP END!!!!!!!!!!!! - */ - /** - DAYS - */ + /** + DAYS + */ public Day addDay(Day day) { try { st.executeUpdate("insert into days (dayinweek, weekid) values (" + day.getDayinweek() + ", " + day.getWeekid() + ")"); - Week w = getWeekById(day.getWeekid()); - return getDay(day.getDayinweek(), w.weeknumber, w.semesterid); + Week w = getWeek(day.getWeekid()); + return getDay(day.getDayinweek(), w.getWeeknumber(), w.getSemesterid()); } catch (SQLException e) { return null; diff --git a/backend/src/main/java/com/example/backend/anwprj/Week/Week.java b/backend/src/main/java/com/example/backend/anwprj/Week/Week.java new file mode 100644 index 0000000..1d178f2 --- /dev/null +++ b/backend/src/main/java/com/example/backend/anwprj/Week/Week.java @@ -0,0 +1,26 @@ +package com.example.backend.anwprj.Week; + +public class Week { + + private int id; + private int semesterid; + private int weeknumber; + + public Week(int id, int semesterid, int weeknumber) { + this.id = id; + this.semesterid = semesterid; + this.weeknumber = weeknumber; + } + + public int getId() { + return id; + } + + public int getSemesterid() { + return semesterid; + } + + public int getWeeknumber() { + return weeknumber; + } +} diff --git a/backend/src/main/java/com/example/backend/anwprj/controller/UserController.java b/backend/src/main/java/com/example/backend/anwprj/controller/UserController.java index 8b4cf18..77b8cfc 100644 --- a/backend/src/main/java/com/example/backend/anwprj/controller/UserController.java +++ b/backend/src/main/java/com/example/backend/anwprj/controller/UserController.java @@ -45,7 +45,7 @@ public class UserController { @GetMapping("/users") public ResponseEntity login(@RequestParam(name = "mail") String mail, @RequestParam(name = "password") String password) { //generate a session id for the user trying to login - boolean isEncrypted = true; + boolean isEncrypted = false; if(isEncrypted) { RSA rsa = RSA.getInstance(); diff --git a/backend/src/main/java/com/example/backend/anwprj/controller/WeekController.java b/backend/src/main/java/com/example/backend/anwprj/controller/WeekController.java new file mode 100644 index 0000000..c0ab6af --- /dev/null +++ b/backend/src/main/java/com/example/backend/anwprj/controller/WeekController.java @@ -0,0 +1,60 @@ +package com.example.backend.anwprj.controller; + +import com.example.backend.anwprj.DataBaseHandler; +import com.example.backend.anwprj.Days.Day; +import com.example.backend.anwprj.Users.User; +import com.example.backend.anwprj.Users.UserPermissions; +import com.example.backend.anwprj.Users.UserSessionIDHandler; +import org.springframework.http.HttpStatus; +import com.example.backend.anwprj.Week.Week; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.sql.SQLException; + +@RestController +public class WeekController +{ + + private DataBaseHandler db; + + { + db = DataBaseHandler.getInstance(); + } + + @CrossOrigin + @GetMapping("/weeks") + public ResponseEntity getWeek( + @RequestParam(name="sessionid") String sessionID, + @RequestParam(name="semesterid") int semesterID, + @RequestParam(name="weeknumber") int weekNumber) throws SQLException { + User u = UserSessionIDHandler.getUserBySessionID(sessionID); + + if(u != null) + { + Week w = db.getWeek(semesterID,weekNumber); + + if(w != null) + { + return new ResponseEntity<>(w, HttpStatus.OK); + } + return new ResponseEntity<>(HttpStatus.NOT_FOUND); + } + return new ResponseEntity<>(HttpStatus.FORBIDDEN); + } + + @CrossOrigin + @PostMapping("/weeks") + public ResponseEntity addWeek(@RequestBody Week week, @RequestParam(name="sessionid") String sessionID) + { + User u = UserSessionIDHandler.getUserBySessionID(sessionID); + + if(u !=null && u.getPermissions() == UserPermissions.admin.getValue()) + { + return new ResponseEntity<>(db.addWeek(week), HttpStatus.OK); + } + + return new ResponseEntity<>(null, HttpStatus.FORBIDDEN); + } +} +