diff --git a/.idea/misc.xml b/.idea/misc.xml
index a855768..de4b033 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -7,8 +7,9 @@
+
-
+
\ No newline at end of file
diff --git a/src/main/java/Logik/Account.java b/src/main/java/Logik/Account.java
index aab04cb..e6aee52 100644
--- a/src/main/java/Logik/Account.java
+++ b/src/main/java/Logik/Account.java
@@ -8,9 +8,11 @@ public class Account {
// region Felder
private String passwort;
- private int id;
+ private transient int id;
- private String benutzername;
+ private String name;
+
+ private int rid;
// endregion
// region Getter & Setter
@@ -32,18 +34,23 @@ public class Account {
public String getBenutzername() {
- return benutzername;
+ return name;
}
public void setBenutzername(String benutzername) {
- this.benutzername = benutzername;
+ this.name = benutzername;
}
// endregion
// region Konstruktoren
- public Account(String passwort, String benutzername) {
+ public Account(String passwort, String name) {
this.passwort = passwort;
- this.benutzername = benutzername;
+ this.name = name;
+
+ if(this instanceof MitarbeiterAccount)
+ rid = 0;
+ else if (this instanceof ElternAccount)
+ rid = 1;
}
// endregion
diff --git a/src/main/java/Logik/Benutzer.java b/src/main/java/Logik/ElternAccount.java
similarity index 84%
rename from src/main/java/Logik/Benutzer.java
rename to src/main/java/Logik/ElternAccount.java
index d2a41b8..59f5335 100644
--- a/src/main/java/Logik/Benutzer.java
+++ b/src/main/java/Logik/ElternAccount.java
@@ -7,15 +7,14 @@
package Logik;
-import java.nio.file.WatchEvent;
import java.util.ArrayList;
-public class Benutzer extends Account {
+public class ElternAccount extends Account {
// region Felder
private String email;
- private ArrayList kinder;
+ private transient ArrayList kinder;
// endregion
// region Getter & Setter
@@ -37,7 +36,7 @@ public class Benutzer extends Account {
// endregion
// region Konstruktoren
- public Benutzer(String passwort, String benutzername, String email) {
+ public ElternAccount(String passwort, String benutzername, String email) {
super(passwort, benutzername);
this.email = email;
kinder = new ArrayList<>();
diff --git a/src/main/java/Logik/Kind.java b/src/main/java/Logik/Kind.java
index 17d9bcd..1174262 100644
--- a/src/main/java/Logik/Kind.java
+++ b/src/main/java/Logik/Kind.java
@@ -5,10 +5,12 @@ import java.util.ArrayList;
public class Kind {
// region Felder
+
+ private transient int id;
private String name;
private String vorname;
- private int id;
- // TODO Zutat implementieren!
+ private int bid;
+
private ArrayList filter;
// endregion
@@ -37,7 +39,13 @@ public class Kind {
this.id = id;
}
- // TODO Zutat implementieren!
+ public int getBid() {
+ return bid;
+ }
+
+ public void setBid(int bid) {
+ this.bid = bid;
+ }
public ArrayList getFilter() {
return filter;
@@ -49,10 +57,12 @@ public class Kind {
// endregion
// region Konstruktoren
- public Kind(String name, String vorname) {
+ public Kind(String name, String vorname, int bid) {
this.name = name;
this.vorname = vorname;
+ this.bid = bid;
}
+
// endregion
diff --git a/src/main/java/Logik/MitarbeiterAccount.java b/src/main/java/Logik/MitarbeiterAccount.java
index b1a3c33..05fbe8f 100644
--- a/src/main/java/Logik/MitarbeiterAccount.java
+++ b/src/main/java/Logik/MitarbeiterAccount.java
@@ -51,7 +51,7 @@ public class MitarbeiterAccount extends Account {
* @param kinder Eine Liste mit allen zugehörigen Kindern des Accounts
*/
public void accountErstellen(String passwort, String benutzername, String email, ArrayList kinder) {
- Benutzer newAccount = new Benutzer(passwort, benutzername, email);
+ ElternAccount newAccount = new ElternAccount(passwort, benutzername, email);
newAccount.setKinder(kinder);
// Id muss aus der Datenbank geholt werden und dann gesetzt werden
}
diff --git a/src/main/java/RestAPISchnittstelle/RestApiClient.java b/src/main/java/RestAPISchnittstelle/RestApiClient.java
index 8c08da4..8939301 100644
--- a/src/main/java/RestAPISchnittstelle/RestApiClient.java
+++ b/src/main/java/RestAPISchnittstelle/RestApiClient.java
@@ -1,38 +1,45 @@
-/**
- * @author Samuel Wolff
- * noch nicht getestet
- * TODO FERTIG MACHEN
- */
-
package RestAPISchnittstelle;
-import com.google.gson.Gson;
-
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
+import Logik.ElternAccount;
+import Logik.Kind;
+import com.google.gson.Gson;
+
+/**
+ * noch nicht getestet
+ * TODO FERTIG MACHEN
+ * @author Samuel Wolff
+ */
public class RestApiClient implements IRestAPI{
private final String urlBase = "https://pbg2h22awo.web.pb.bib.de/VPR_Schnittstelle/VPR_Schnittstelle/restAPI.php";
private final HttpClient client;
+ private final Gson gson;
+
public RestApiClient(){
client = HttpClient.newHttpClient();
+ gson = new Gson();
}
-
-
public static void main(String[] args){
- new RestApiClient().post("Benutzerkonto", "{\"name\":\"Sven\", \"email\":\"svenmail\", \"passwort\":\"5678765\", \"rid\":\"0\"}");
+
+ RestApiClient client1 = new RestApiClient();
+
+ client1.post("Gericht", "{\"name\" : \"Svens Beine\", \"69.69\", \"beschreibung\" : \"Muss net schmegge, muss wirge\"}");
}
/**
- * @param controllerName
+ * Methode für einen Get-Aufruf. Ruft alle Elemente einer Tabelle auf.
+ *
+ * @param controllerName Name des aufzurufenden Controllers
*/
@Override
public void get(String controllerName) {
@@ -47,17 +54,21 @@ public class RestApiClient implements IRestAPI{
// Send the request and get the response
HttpResponse httpResponse = client.send(httpRequest, HttpResponse.BodyHandlers.ofString());
+ Kind test = gson.fromJson(httpResponse.body(), Kind.class);
+
// Print the response status code and body
System.out.println("Status Code: " + httpResponse.statusCode());
- System.out.println("Response Body: " + httpResponse.body());
+ System.out.println("Response Body: " + test.getName());
} catch (Exception e) {
e.printStackTrace();
}
}
/**
- * @param controllerName
- * @param id
+ * Methode für einen Get-Aufruf. Ruft ein spezifisches Element auf.
+ *
+ * @param controllerName Name des aufzurufenden Controllers
+ * @param id Id der Aufzurufenden Zeile
*/
@Override
public void get(String controllerName, int id) {
@@ -73,17 +84,20 @@ public class RestApiClient implements IRestAPI{
HttpResponse httpResponse = client.send(httpRequest, HttpResponse.BodyHandlers.ofString());
// Print the response status code and body
- System.out.println("Status Code: " + httpResponse.statusCode());
- System.out.println("Response Body: " + httpResponse.body());
+ System.out.println("Status Code: " + httpResponse.statusCode() + httpResponse.body());
+
+ //System.out.println("Response Body: " + test);
} catch (Exception e) {
e.printStackTrace();
}
}
/**
- * @param controllerName
- * @param id
- * @param bezahlt
+ * Methode für einen Get-Aufruf. Ruft ein spezielles Element auf.
+ *
+ * @param controllerName Name des aufzurufenden Controllers
+ * @param id Id der Aufzurufenden Zeile
+ * @param bezahlt TODO Warum ist das hier?
*/
@Override
public void get(String controllerName, int id, boolean bezahlt) {
@@ -107,8 +121,11 @@ public class RestApiClient implements IRestAPI{
}
/**
- * @param controllerName
- * @param id
+ * Methode für einen Put-Aufruf. Aktualisiert einen Eintrag.
+ *
+ * @param controllerName Name des aufzurufenden Controllers.
+ * @param id Id des zu änderenden Eintrags.
+ * @param jsonData JsonString mit den neuen Daten.
*/
@Override
public void put(String controllerName, int id, String jsonData) {
@@ -134,20 +151,63 @@ public class RestApiClient implements IRestAPI{
}
/**
- * @param controllerName
+ * Methode für einen Post-Aufruf. Fügt einen Eintrag in eine Datenbank hinzu.
+ *
+ * @param controllerName Name des aufzurufenden Controllers.
+ * @param jsonData JsonString mit den Daten des Eintrags.
*/
@Override
public void post(String controllerName, String jsonData) {
+ URI apiUri = URI.create(String.format("%s/%s", urlBase,controllerName));
+ System.out.println(apiUri);
+
+ HttpRequest httpRequest = HttpRequest.newBuilder()
+ .uri(apiUri)
+ .header("Content-Type", "application/json")
+ .POST(HttpRequest.BodyPublishers.ofString(jsonData, StandardCharsets.UTF_8))
+ .build();
+
+ try {
+ // Send the request and get the response
+ HttpResponse httpResponse = client.send(httpRequest, HttpResponse.BodyHandlers.ofString());
+
+ // Print the response status code and body
+ System.out.println("Status Code: " + httpResponse.statusCode());
+ System.out.println("Response Body: " + httpResponse.body());
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
/**
- * @param controllerName
- * @param id
+ * Methode für einen Delete-Aufruf. Löscht einen Eintrag mit einer Id.
+ *
+ * @param controllerName Name des aufzurufenden Controllers
+ * @param id Id des zu löschenden Eintrags.
*/
@Override
public void delete(String controllerName, int id) {
+ URI apiUri = URI.create(String.format("%s/%s/%d", urlBase,controllerName, id));
+ System.out.println(apiUri);
+
+ HttpRequest httpRequest = HttpRequest.newBuilder()
+ .uri(apiUri)
+ .header("Content-Type", "application/json")
+ .DELETE()
+ .build();
+
+ try {
+ // Send the request and get the response
+ HttpResponse httpResponse = client.send(httpRequest, HttpResponse.BodyHandlers.ofString());
+
+ // Print the response status code and body
+ System.out.println("Status Code: " + httpResponse.statusCode());
+ System.out.println("Response Body: " + httpResponse.body());
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
}
}
diff --git a/src/main/java/module-info.java b/src/main/java/module-info.java
index a308e0e..dfa6c61 100644
--- a/src/main/java/module-info.java
+++ b/src/main/java/module-info.java
@@ -5,6 +5,7 @@ module de.subway_surfers.vpr_app {
requires com.google.gson;
- opens de.subway_surfers.vpr_app to javafx.fxml;
+ opens de.subway_surfers.vpr_app to javafx.fxml, com.google.gson;
+ opens Logik to com.google.gson;
exports de.subway_surfers.vpr_app;
}
\ No newline at end of file