From bd3bfb44ca9c340c2ffed00de86ba77cacac3319 Mon Sep 17 00:00:00 2001 From: Robert Goldmann <deadlocker@gmx.de> Date: Sun, 8 Oct 2017 12:42:20 +0200 Subject: [PATCH] #200 - added command "delete server log" --- .../ui/commandLine/CommandBundle.java | 16 +++++++--- .../commandLine/commands/CommandDelete.java | 19 ++++++++--- .../ui/controller/Controller.java | 2 +- .../ui/commandLine/_en.properties | 3 +- .../serverconnection/ServerConnection.java | 18 +++++++++++ .../server/SparkServer.java | 2 ++ .../server/log/LogDelete.java | 32 +++++++++++++++++++ 7 files changed, 81 insertions(+), 11 deletions(-) create mode 100644 BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/server/log/LogDelete.java diff --git a/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/commandLine/CommandBundle.java b/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/commandLine/CommandBundle.java index 5600b99d5..5bb9bb62f 100644 --- a/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/commandLine/CommandBundle.java +++ b/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/commandLine/CommandBundle.java @@ -3,14 +3,17 @@ package de.deadlocker8.budgetmasterclient.ui.commandLine; import java.text.MessageFormat; import java.util.ResourceBundle; +import de.deadlocker8.budgetmaster.logic.Settings; + public class CommandBundle { private CommandLineController controller; - private ResourceBundle languageBundle; + private ResourceBundle languageBundle; + private Settings settings; - public CommandBundle() + public CommandBundle(Settings settings) { - + this.settings = settings; } public CommandLineController getController() @@ -41,5 +44,10 @@ public class CommandBundle public void setLanguageBundle(ResourceBundle languageBundle) { this.languageBundle = languageBundle; - } + } + + public Settings getSettings() + { + return settings; + } } \ No newline at end of file diff --git a/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/commandLine/commands/CommandDelete.java b/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/commandLine/commands/CommandDelete.java index c160bb382..0b00a1d82 100644 --- a/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/commandLine/commands/CommandDelete.java +++ b/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/commandLine/commands/CommandDelete.java @@ -1,5 +1,6 @@ package de.deadlocker8.budgetmasterclient.ui.commandLine.commands; +import de.deadlocker8.budgetmaster.logic.serverconnection.ServerConnection; import de.deadlocker8.budgetmasterclient.ui.commandLine.CommandBundle; import logger.Logger; @@ -22,17 +23,25 @@ public class CommandDelete extends Command } if(command[1].equals("log-client")) - { + { Logger.clearLogFile(); - bundle.getController().print(bundle.getString("delete.success", "log-client", Logger.getFolder())); + bundle.getController().print(bundle.getString("delete.success", "client logfile")); return; } if(command[1].equals("log-server")) { - //TODO -// Logger.clearLogFile(); -// bundle.getController().print(bundle.getString("delete.success", "log-server", Logger.getFolder())); + try + { + ServerConnection connection = new ServerConnection(bundle.getSettings()); + connection.deleteLog(); + bundle.getController().print(bundle.getString("delete.success", "server logfile")); + } + catch(Exception e) + { + bundle.getController().print(bundle.getString("delete.error.connection")); + } + return; } diff --git a/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/Controller.java b/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/Controller.java index d21c15085..ed1bb60f3 100644 --- a/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/Controller.java +++ b/BudgetMasterClient/src/main/java/de/deadlocker8/budgetmasterclient/ui/controller/Controller.java @@ -131,7 +131,7 @@ public class Controller extends BaseController paymentHandler = new PaymentHandler(); updater = new Updater(); - CommandBundle commandBundle = new CommandBundle(); + CommandBundle commandBundle = new CommandBundle(settings); cmd = new CommandLine(getStage(), icon, ResourceBundle.getBundle("de/deadlocker8/budgetmaster/ui/commandLine/", Locale.ENGLISH), commandBundle); if(settings.isAutoUpdateCheckEnabled()) diff --git a/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/ui/commandLine/_en.properties b/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/ui/commandLine/_en.properties index c88d1ad9a..314ada7b0 100644 --- a/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/ui/commandLine/_en.properties +++ b/BudgetMasterClient/src/main/resources/de/deadlocker8/budgetmaster/ui/commandLine/_en.properties @@ -17,4 +17,5 @@ open.success=Successfully opened folder {0} # delete help.delete=delte - deletes files\nSYNTAX: delete [PARAMETER]\npossible parameters:\nlog-client\nlog-server -delete.success=Successfully deleted {0} (in folder: {1}) +delete.success=Successfully deleted {0} +delete.error.connection=An error occurred while establishing the server connection diff --git a/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/serverconnection/ServerConnection.java b/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/serverconnection/ServerConnection.java index 86191f4c1..e04ab2d77 100644 --- a/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/serverconnection/ServerConnection.java +++ b/BudgetMasterCore/src/main/java/de/deadlocker8/budgetmaster/logic/serverconnection/ServerConnection.java @@ -579,5 +579,23 @@ public class ServerConnection { throw new ServerConnectionException(String.valueOf(httpsCon.getResponseCode())); } + } + + public void deleteLog() throws Exception + { + URL url = new URL(settings.getUrl() + "/log?secret=" + Helpers.getURLEncodedString(settings.getSecret())); + HttpsURLConnection httpsCon = (HttpsURLConnection)url.openConnection(); + httpsCon.setRequestMethod("DELETE"); + httpsCon.setDoInput(true); + if(httpsCon.getResponseCode() == HttpsURLConnection.HTTP_OK) + { + InputStream stream = httpsCon.getInputStream(); + BufferedReader reader = new BufferedReader(new InputStreamReader(stream)); + reader.close(); + } + else + { + throw new ServerConnectionException(String.valueOf(httpsCon.getResponseCode())); + } } } \ No newline at end of file diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/server/SparkServer.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/server/SparkServer.java index 72558d5da..3272b8046 100644 --- a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/server/SparkServer.java +++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/server/SparkServer.java @@ -33,6 +33,7 @@ import de.deadlocker8.budgetmasterserver.server.charts.MonthInOutSum; import de.deadlocker8.budgetmasterserver.server.database.DatabaseDelete; import de.deadlocker8.budgetmasterserver.server.database.DatabaseExport; import de.deadlocker8.budgetmasterserver.server.database.DatabaseImport; +import de.deadlocker8.budgetmasterserver.server.log.LogDelete; import de.deadlocker8.budgetmasterserver.server.payment.normal.PaymentAdd; import de.deadlocker8.budgetmasterserver.server.payment.normal.PaymentDelete; import de.deadlocker8.budgetmasterserver.server.payment.normal.PaymentGet; @@ -167,6 +168,7 @@ public class SparkServer delete("/database", new DatabaseDelete(handler, settings)); get("/version", new VersionGet(gson, versionInfo)); + delete("/log", new LogDelete()); after((request, response) -> { new RepeatingPaymentUpdater(handler).updateRepeatingPayments(DateTime.now()); diff --git a/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/server/log/LogDelete.java b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/server/log/LogDelete.java new file mode 100644 index 000000000..366973c54 --- /dev/null +++ b/BudgetMasterServer/src/main/java/de/deadlocker8/budgetmasterserver/server/log/LogDelete.java @@ -0,0 +1,32 @@ +package de.deadlocker8.budgetmasterserver.server.log; + +import static spark.Spark.halt; + +import logger.Logger; +import spark.Request; +import spark.Response; +import spark.Route; + +public class LogDelete implements Route +{ + public LogDelete() + { + + } + + @Override + public Object handle(Request req, Response res) throws Exception + { + try + { + Logger.clearLogFile(); + return ""; + } + catch(IllegalStateException ex) + { + halt(500, "Internal Server Error"); + } + + return ""; + } +} \ No newline at end of file -- GitLab