diff --git a/src/main/java/RestAPISchnittstelle/RestApiClient.java b/src/main/java/RestAPISchnittstelle/RestApiClient.java index ae14afd..d41d12a 100644 --- a/src/main/java/RestAPISchnittstelle/RestApiClient.java +++ b/src/main/java/RestAPISchnittstelle/RestApiClient.java @@ -1,10 +1,12 @@ package RestAPISchnittstelle; +import java.net.ConnectException; 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 java.time.Duration; import java.util.ArrayList; import Logik.ElternAccount; @@ -12,6 +14,7 @@ import Logik.Kind; import Logik.Mahlzeit; import Logik.Tagesplan; import com.google.gson.*; +import javafx.scene.control.Alert; /** * noch nicht getestet @@ -22,6 +25,8 @@ public class RestApiClient implements IRestAPI{ private final String urlBase = "https://pbg2h22awo.web.pb.bib.de/VPR_Schnittstelle/VPR_Schnittstelle/restAPI.php"; + private final int timeout = 10; + private final HttpClient client; private final Gson gson; @@ -54,6 +59,7 @@ public class RestApiClient implements IRestAPI{ URI apiUri = URI.create(String.format("%s/%s", urlBase, controllerName)); HttpRequest httpRequest = HttpRequest.newBuilder() + .timeout(Duration.ofSeconds(timeout)) .uri(apiUri) .GET() .build(); @@ -66,7 +72,14 @@ public class RestApiClient implements IRestAPI{ System.out.println("Status Code: " + httpResponse.statusCode()); System.out.println("Response Body: " + httpResponse.body()); return httpResponse.body(); - } catch (Exception e) { + } + catch(ConnectException conex){ + Alert alert = new Alert(Alert.AlertType.INFORMATION); + alert.setContentText("Verbindung zum Server konnte nicht aufgebaut werden!"); + alert.showAndWait(); + return null; + } + catch (Exception e) { e.printStackTrace(); return null; } @@ -83,6 +96,7 @@ public class RestApiClient implements IRestAPI{ URI apiUri = URI.create(String.format("%s/%s/%s", urlBase, controllerName, id)); HttpRequest httpRequest = HttpRequest.newBuilder() + .timeout(Duration.ofSeconds(timeout)) .uri(apiUri) .GET() .build(); @@ -97,7 +111,14 @@ public class RestApiClient implements IRestAPI{ return httpResponse.body(); //System.out.println("Response Body: " + test); - } catch (Exception e) { + } + catch(ConnectException conex){ + Alert alert = new Alert(Alert.AlertType.INFORMATION); + alert.setContentText("Verbindung zum Server konnte nicht aufgebaut werden!"); + alert.showAndWait(); + return null; + } + catch (Exception e) { e.printStackTrace(); return null; } @@ -115,6 +136,7 @@ public class RestApiClient implements IRestAPI{ URI apiUri = URI.create(String.format("%s/%s?%s&%s", urlBase, controllerName, id, bezahlt)); HttpRequest httpRequest = HttpRequest.newBuilder() + .timeout(Duration.ofSeconds(timeout)) .uri(apiUri) .GET() .build(); @@ -127,7 +149,14 @@ public class RestApiClient implements IRestAPI{ System.out.println("Status Code: " + httpResponse.statusCode()); System.out.println("Response Body: " + httpResponse.body()); return httpResponse.body(); - } catch (Exception e) { + } + catch(ConnectException conex){ + Alert alert = new Alert(Alert.AlertType.INFORMATION); + alert.setContentText("Verbindung zum Server konnte nicht aufgebaut werden!"); + alert.showAndWait(); + return null; + } + catch (Exception e) { e.printStackTrace(); return null; } @@ -143,6 +172,7 @@ public class RestApiClient implements IRestAPI{ URI apiUri = URI.create(String.format("%s/%s?%s", urlBase, controllerName, ende)); HttpRequest httpRequest = HttpRequest.newBuilder() + .timeout(Duration.ofSeconds(timeout)) .uri(apiUri) .GET() .build(); @@ -157,7 +187,14 @@ public class RestApiClient implements IRestAPI{ return httpResponse.body(); //System.out.println("Response Body: " + test); - } catch (Exception e) { + } + catch(ConnectException conex){ + Alert alert = new Alert(Alert.AlertType.INFORMATION); + alert.setContentText("Verbindung zum Server konnte nicht aufgebaut werden!"); + alert.showAndWait(); + return null; + } + catch (Exception e) { e.printStackTrace(); return null; } @@ -176,6 +213,7 @@ public class RestApiClient implements IRestAPI{ URI apiUri = URI.create(String.format("%s/%s/%s", urlBase,controllerName, id)); HttpRequest httpRequest = HttpRequest.newBuilder() + .timeout(Duration.ofSeconds(timeout)) .uri(apiUri) .header("Content-Type", "application/json") .PUT(HttpRequest.BodyPublishers.ofString(jsonData, StandardCharsets.UTF_8)) @@ -188,7 +226,13 @@ public class RestApiClient implements IRestAPI{ // Print the response status code and body System.out.println("Status Code: " + httpResponse.statusCode()); System.out.println("Response Body: " + httpResponse.body()); - } catch (Exception e) { + } + catch(ConnectException conex){ + Alert alert = new Alert(Alert.AlertType.INFORMATION); + alert.setContentText("Verbindung zum Server konnte nicht aufgebaut werden!"); + alert.showAndWait(); + } + catch (Exception e) { e.printStackTrace(); } } @@ -206,6 +250,7 @@ public class RestApiClient implements IRestAPI{ System.out.println(apiUri); HttpRequest httpRequest = HttpRequest.newBuilder() + .timeout(Duration.ofSeconds(timeout)) .uri(apiUri) .header("Content-Type", "application/json") .POST(HttpRequest.BodyPublishers.ofString(jsonData, StandardCharsets.UTF_8)) @@ -218,7 +263,13 @@ public class RestApiClient implements IRestAPI{ // Print the response status code and body System.out.println("Status Code: " + httpResponse.statusCode()); System.out.println("Response Body: " + httpResponse.body()); - } catch (Exception e) { + } + catch(ConnectException conex){ + Alert alert = new Alert(Alert.AlertType.INFORMATION); + alert.setContentText("Verbindung zum Server konnte nicht aufgebaut werden!"); + alert.showAndWait(); + } + catch (Exception e) { e.printStackTrace(); } } @@ -236,6 +287,7 @@ public class RestApiClient implements IRestAPI{ System.out.println(apiUri); HttpRequest httpRequest = HttpRequest.newBuilder() + .timeout(Duration.ofSeconds(timeout)) .uri(apiUri) .header("Content-Type", "application/json") .DELETE() @@ -248,7 +300,13 @@ public class RestApiClient implements IRestAPI{ // Print the response status code and body System.out.println("Status Code: " + httpResponse.statusCode()); System.out.println("Response Body: " + httpResponse.body()); - } catch (Exception e) { + } + catch(ConnectException conex){ + Alert alert = new Alert(Alert.AlertType.INFORMATION); + alert.setContentText("Verbindung zum Server konnte nicht aufgebaut werden!"); + alert.showAndWait(); + } + catch (Exception e) { e.printStackTrace(); } } @@ -257,6 +315,7 @@ public class RestApiClient implements IRestAPI{ URI apiUri = URI.create(String.format("%s/%s/nextId", urlBase, controllerName)); HttpRequest httpRequest = HttpRequest.newBuilder() + .timeout(Duration.ofSeconds(timeout)) .uri(apiUri) .GET() .build(); @@ -276,7 +335,14 @@ public class RestApiClient implements IRestAPI{ return json.get("auto_increment").getAsInt(); - } catch (Exception e) { + } + catch(ConnectException conex){ + Alert alert = new Alert(Alert.AlertType.INFORMATION); + alert.setContentText("Verbindung zum Server konnte nicht aufgebaut werden!"); + alert.showAndWait(); + return -1; + } + catch (Exception e) { e.printStackTrace(); return -1; } @@ -300,6 +366,7 @@ public class RestApiClient implements IRestAPI{ URI apiUri = URI.create(String.format("%s/Benutzer/anmeldeVersuch?Benutzername=%s&passwort=%s", urlBase, benutzer, passwort)); System.out.println(apiUri); HttpRequest httpRequest = HttpRequest.newBuilder() + .timeout(Duration.ofSeconds(timeout)) .uri(apiUri) .header("Content-Type", "application/json") .GET() @@ -314,10 +381,25 @@ public class RestApiClient implements IRestAPI{ System.out.println("Response Body: " + httpResponse.body()); if(httpResponse.body().equals("true")) return true; - else + else{ + Alert alert = new Alert(Alert.AlertType.INFORMATION); + alert.setContentText("Falsche Anmeldedaten"); + alert.setHeaderText("Fehler!"); + alert.showAndWait(); return false; - } catch (Exception e) { + } + } + catch(ConnectException conex){ + Alert alert = new Alert(Alert.AlertType.INFORMATION); + alert.setContentText("Verbindung zum Server konnte nicht aufgebaut werden!"); + alert.showAndWait(); + return false; + } + catch (Exception e) { e.printStackTrace(); + Alert alert = new Alert(Alert.AlertType.INFORMATION); + alert.setContentText("Ein Uwuwarteter Fehler ist aufgetreten!"); + alert.showAndWait(); return false; } } @@ -333,6 +415,7 @@ public class RestApiClient implements IRestAPI{ URI apiUri = URI.create(String.format("%s/Tagesplan/getGerichteOnTag?datum=%s", urlBase, datum)); System.out.println(apiUri); HttpRequest httpRequest = HttpRequest.newBuilder() + .timeout(Duration.ofSeconds(timeout)) .uri(apiUri) .header("Content-Type", "application/json") .GET() @@ -365,7 +448,14 @@ public class RestApiClient implements IRestAPI{ return t; - } catch (Exception e) { + } + catch(ConnectException conex){ + Alert alert = new Alert(Alert.AlertType.INFORMATION); + alert.setContentText("Verbindung zum Server konnte nicht aufgebaut werden!"); + alert.showAndWait(); + return null; + } + catch (Exception e) { e.printStackTrace(); return null; } diff --git a/src/main/java/de/subway_surfers/vpr_app/VerwaltungController.java b/src/main/java/de/subway_surfers/vpr_app/VerwaltungController.java index fa5b74a..5071782 100644 --- a/src/main/java/de/subway_surfers/vpr_app/VerwaltungController.java +++ b/src/main/java/de/subway_surfers/vpr_app/VerwaltungController.java @@ -33,11 +33,5 @@ public class VerwaltungController { String credentials = String.format("{\"Benutzername\" : \"%s\", \"passwort\" : \"%s\"}", benutzernameTextfield.getText(), passwortTextfield.getText()); if(client.anmeldeVersuch(credentials)) VerwaltungApplication.sceneWechseln("hauptmenue_mitarbeiter-view.fxml"); - else { - Alert alert = new Alert(Alert.AlertType.INFORMATION); - alert.setContentText("Falsche Anmeldedaten"); - alert.setHeaderText("Fehler!"); - alert.showAndWait(); - } } } \ No newline at end of file