WeekController finished

This commit is contained in:
MikeBaier5
2023-05-14 22:10:54 +02:00
parent ad025c07fb
commit 824e612140
6 changed files with 143 additions and 40 deletions
Binary file not shown.
+9
View File
@@ -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.runWorker(ThreadPoolExecutor.java:1136)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635) at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833) 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]
@@ -5,6 +5,7 @@ import com.example.backend.anwprj.Days.Day;
import com.example.backend.anwprj.Entries.Entry; import com.example.backend.anwprj.Entries.Entry;
import com.example.backend.anwprj.Semesters.Semester; import com.example.backend.anwprj.Semesters.Semester;
import com.example.backend.anwprj.Users.User; import com.example.backend.anwprj.Users.User;
import com.example.backend.anwprj.Week.Week;
import java.sql.*; import java.sql.*;
import java.util.ArrayList; import java.util.ArrayList;
@@ -44,73 +45,80 @@ public class DataBaseHandler
System.out.println("No Connection!"); System.out.println("No Connection!");
} }
} }
/**
/* * WEEKS
TEMPPPPPP
*/ */
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) public Week addWeek(Week week)
{ {
try try
{ {
st.executeUpdate("insert into weeks (semesterid, weeknumber) values (" + week.semesterid + ", " + week.weeknumber + ")"); st.executeUpdate("insert into weeks (semesterid, weeknumber) values (" + week.getSemesterid() + ", " + week.getWeeknumber() + ")");
return getWeek(week.semesterid, week.weeknumber);
return getWeek(week.getSemesterid(), week.getWeeknumber());
} catch (SQLException e) } 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) public Week getWeek(int semesterid, int weeknumber)
{ {
try try
{ {
ResultSet rs = st.executeQuery("select w.* from weeks w, semester s where s.id=" + semesterid + " and " + "w.weeknumber=" + weeknumber); ResultSet rs = st.executeQuery("select * from weeks where semesterid =" + semesterid + " and weeknumber=" + weeknumber);
rs.next();
return new Week(rs.getInt("id"), rs.getInt("semesterid"), rs.getInt("weeknumber")); return resultSetToWeek(rs);
} catch (SQLException e)
{
throw new RuntimeException(e);
} }
catch (SQLException e)
{
return null;
}
} }
public Week getWeekById(int id) private Week resultSetToWeek(ResultSet rs) {
{ try {
try
{
ResultSet rs = st.executeQuery("select * from weeks where id=" + id);
rs.next(); rs.next();
return new Week(rs.getInt("id"), rs.getInt("semesterid"), rs.getInt("weeknumber"));
} return new Week(
catch(Exception e) rs.getInt("id"),
{ rs.getInt("semesterid"),
rs.getInt("weeknumber")
);
} catch (SQLException e) {
return null; return null;
} }
} }
/* /**
TEMP END!!!!!!!!!!!! DAYS
*/ */
/**
DAYS
*/
public Day addDay(Day day) public Day addDay(Day day)
{ {
try try
{ {
st.executeUpdate("insert into days (dayinweek, weekid) values (" + day.getDayinweek() + ", " + day.getWeekid() + ")"); st.executeUpdate("insert into days (dayinweek, weekid) values (" + day.getDayinweek() + ", " + day.getWeekid() + ")");
Week w = getWeekById(day.getWeekid()); Week w = getWeek(day.getWeekid());
return getDay(day.getDayinweek(), w.weeknumber, w.semesterid); return getDay(day.getDayinweek(), w.getWeeknumber(), w.getSemesterid());
} catch (SQLException e) } catch (SQLException e)
{ {
return null; return null;
@@ -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;
}
}
@@ -45,7 +45,7 @@ public class UserController {
@GetMapping("/users") @GetMapping("/users")
public ResponseEntity<String> login(@RequestParam(name = "mail") String mail, @RequestParam(name = "password") String password) { public ResponseEntity<String> login(@RequestParam(name = "mail") String mail, @RequestParam(name = "password") String password) {
//generate a session id for the user trying to login //generate a session id for the user trying to login
boolean isEncrypted = true; boolean isEncrypted = false;
if(isEncrypted) if(isEncrypted)
{ {
RSA rsa = RSA.getInstance(); RSA rsa = RSA.getInstance();
@@ -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<Week> 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<Week> 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);
}
}