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 5600b99d5cb2bef5374c224aca868fe88454ec83..5bb9bb62f3f7d76f1be52e541a3307444e996740 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 c160bb38233563208207f5aacd5738751e250ea2..0b00a1d82376b7ade4426d0564f9bced37869cbc 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 d21c150858ebbcfc1294da80abe75bd024aa13b2..ed1bb60f3319bee36f81bcf56dc3ae93143ebf31 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 c88d1ad9a022e8886251a010694c6669dae1dff9..314ada7b021bb41b0f8b4f5f8e41fd6645e42e08 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 86191f4c14ed4a065a880a7bc5f38934abd8f4df..e04ab2d77f742a3a2fd0439b0ae051dc94104d89 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 72558d5dab04ffb6195f48f450b3c5af3602fe3d..3272b8046a9a0ff83872e210074e65d980de064f 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 0000000000000000000000000000000000000000..366973c54cdcafb79a0cff444bd926da7ba45f28 --- /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