diff --git a/CHANGELOG.md b/CHANGELOG.md index 0bb49fb..a217234 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1 +1 @@ -- Fix setting client in UploadLogResponse (Fix [#9](https://github.com/aternosorg/mclogs-java/issues/9)) +- Add Path based variants to listCrashReportsInDirectory and listLogsInDirectory diff --git a/src/main/java/gs/mclo/api/MclogsClient.java b/src/main/java/gs/mclo/api/MclogsClient.java index b51e54f..6e844ab 100644 --- a/src/main/java/gs/mclo/api/MclogsClient.java +++ b/src/main/java/gs/mclo/api/MclogsClient.java @@ -4,7 +4,6 @@ import gs.mclo.api.response.InsightsResponse; import gs.mclo.api.response.UploadLogResponse; -import java.io.File; import java.io.IOException; import java.net.URI; import java.net.URLEncoder; @@ -176,7 +175,7 @@ public CompletableFuture uploadLog(Log log) { /** * Upload a log to mclo.gs * - * @param log the log to upload + * @param log content of the log to upload * @return the response */ public CompletableFuture uploadLog(String log) { @@ -186,7 +185,7 @@ public CompletableFuture uploadLog(String log) { /** * Upload a log to mclo.gs * - * @param log the log to upload + * @param log path to the log to upload * @return the response */ public CompletableFuture uploadLog(Path log) throws IOException { @@ -226,13 +225,31 @@ public CompletableFuture getInsights(String logId) { return httpClient.sendAsync(request, Util.parseResponse(InsightsResponse.class, gson)).thenApply(HttpResponse::body); } + /** + * list logs in a directory + * @param directory server/client directory + * @return log file names + */ + public String[] listLogsInDirectory(Path directory){ + return Util.listFilesInDirectory(directory.resolve("logs")); + } + /** * list logs in a directory * @param directory server/client directory * @return log file names */ public String[] listLogsInDirectory(String directory){ - return Util.listFilesInDirectory(new File(directory, "logs")); + return listLogsInDirectory(Path.of(directory)); + } + + /** + * list crash reports in a directory + * @param directory server/client directory + * @return log file names + */ + public String[] listCrashReportsInDirectory(Path directory){ + return Util.listFilesInDirectory(directory.resolve("crash-reports")); } /** @@ -241,6 +258,6 @@ public String[] listLogsInDirectory(String directory){ * @return log file names */ public String[] listCrashReportsInDirectory(String directory){ - return Util.listFilesInDirectory(new File(directory, "crash-reports")); + return listCrashReportsInDirectory(Path.of(directory)); } } diff --git a/src/main/java/gs/mclo/api/Util.java b/src/main/java/gs/mclo/api/Util.java index cdedab9..e508ef2 100644 --- a/src/main/java/gs/mclo/api/Util.java +++ b/src/main/java/gs/mclo/api/Util.java @@ -6,6 +6,7 @@ import java.net.http.HttpResponse; import java.nio.charset.StandardCharsets; import java.nio.file.Files; +import java.nio.file.Path; import java.nio.file.Paths; import java.util.Arrays; import java.util.stream.Collectors; @@ -13,10 +14,10 @@ public class Util { - public static String[] listFilesInDirectory(File file) { - if(!file.exists()) + public static String[] listFilesInDirectory(File directory) { + if(!directory.exists()) return new String[0]; - String[] files = file.list(); + String[] files = directory.list(); if (files == null) files = new String[0]; @@ -26,6 +27,10 @@ public static String[] listFilesInDirectory(File file) { .toArray(String[]::new); } + public static String[] listFilesInDirectory(Path directory) { + return listFilesInDirectory(directory.toFile()); + } + public static HttpResponse.BodyHandler parseResponse(Class clazz, Gson gson) { return responseInfo -> HttpResponse.BodySubscribers.mapping(HttpResponse.BodySubscribers.ofString(StandardCharsets.UTF_8), body -> gson.fromJson(body, clazz));