From 70e3f394ba346c0a2b00c294ef1caeff6002767d Mon Sep 17 00:00:00 2001 From: Aurora Lahtela <24460436+AuroraLS3@users.noreply.github.com> Date: Tue, 5 Mar 2024 20:10:20 +0200 Subject: [PATCH] Change player ping graph data format HighCharts error 12 was occurring due to too many data points This commit changes player ping graph data to be served in format expected by turbo-mode so that it renders. Affects issues: - Fixed #3498 --- .../domain/datatransfer/graphs/ServerSpecificLineGraph.java | 6 +++--- .../plan/delivery/rendering/json/PlayerJSONCreator.java | 6 +++--- .../delivery/rendering/json/graphs/GraphJSONCreator.java | 2 +- .../plan/delivery/rendering/json/graphs/line/LineGraph.java | 5 +++++ .../plan/delivery/rendering/json/graphs/line/Point.java | 4 ++-- .../webserver/resolver/json/query/FiltersJSONResolver.java | 6 +++--- 6 files changed, 17 insertions(+), 12 deletions(-) diff --git a/Plan/common/src/main/java/com/djrapitops/plan/delivery/domain/datatransfer/graphs/ServerSpecificLineGraph.java b/Plan/common/src/main/java/com/djrapitops/plan/delivery/domain/datatransfer/graphs/ServerSpecificLineGraph.java index c6882ca64..1f09fb204 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/delivery/domain/datatransfer/graphs/ServerSpecificLineGraph.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/delivery/domain/datatransfer/graphs/ServerSpecificLineGraph.java @@ -28,15 +28,15 @@ import java.util.Objects; */ public class ServerSpecificLineGraph { - private final List points; + private final List points; private final ServerDto server; - public ServerSpecificLineGraph(List points, ServerDto server) { + public ServerSpecificLineGraph(List points, ServerDto server) { this.points = points; this.server = server; } - public List getPoints() { + public List getPoints() { return points; } diff --git a/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/json/PlayerJSONCreator.java b/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/json/PlayerJSONCreator.java index 2dd867baa..3a036491c 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/json/PlayerJSONCreator.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/json/PlayerJSONCreator.java @@ -154,9 +154,9 @@ public class PlayerJSONCreator { private Map createPingGraphJson(PlayerContainer player) { PingGraph pingGraph = graphs.line().pingGraph(player.getUnsafe(PlayerKeys.PING)); return Maps.builder(String.class, Object.class) - .put("min_ping_series", pingGraph.getMinGraph().getPoints()) - .put("avg_ping_series", pingGraph.getAvgGraph().getPoints()) - .put("max_ping_series", pingGraph.getMaxGraph().getPoints()) + .put("min_ping_series", pingGraph.getMinGraph().getPointArrays()) + .put("avg_ping_series", pingGraph.getAvgGraph().getPointArrays()) + .put("max_ping_series", pingGraph.getMaxGraph().getPointArrays()) .put("colors", Maps.builder(String.class, String.class) .put("min", theme.getValue(ThemeVal.GRAPH_MIN_PING)) .put("avg", theme.getValue(ThemeVal.GRAPH_AVG_PING)) diff --git a/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/json/graphs/GraphJSONCreator.java b/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/json/graphs/GraphJSONCreator.java index ba2cf20d7..57c8ee8b6 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/json/graphs/GraphJSONCreator.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/json/graphs/GraphJSONCreator.java @@ -537,7 +537,7 @@ public class GraphJSONCreator { List proxyGraphs = new ArrayList<>(); for (Server proxy : db.query(ServerQueries.fetchProxyServers())) { ServerUUID proxyUUID = proxy.getUuid(); - List points = Lists.map( + List points = Lists.map( db.query(TPSQueries.fetchPlayersOnlineOfServer(halfYearAgo, now, proxyUUID)), point -> Point.fromDateObj(point).toArray() ); diff --git a/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/json/graphs/line/LineGraph.java b/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/json/graphs/line/LineGraph.java index 50fb63993..fc71e0c05 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/json/graphs/line/LineGraph.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/json/graphs/line/LineGraph.java @@ -21,6 +21,7 @@ import com.djrapitops.plan.delivery.rendering.json.graphs.HighChart; import java.util.List; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; /** * This is a LineGraph for any set of Points, thus it is Abstract. @@ -80,6 +81,10 @@ public class LineGraph implements HighChart { return points; } + public List getPointArrays() { + return getPoints().stream().map(Point::toArray).collect(Collectors.toList()); + } + private void addMissingPoints(StringBuilder arrayBuilder, Long lastX, long date) { long iterate = lastX + gapStrategy.diffToFirstGapPointMs; while (iterate < date) { diff --git a/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/json/graphs/line/Point.java b/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/json/graphs/line/Point.java index 94f96c813..3ff9bd4ae 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/json/graphs/line/Point.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/delivery/rendering/json/graphs/line/Point.java @@ -75,7 +75,7 @@ public class Point { "y=" + y + '}'; } - public Double[] toArray() { - return new Double[]{x, y}; + public Number[] toArray() { + return new Number[]{x, y}; } } diff --git a/Plan/common/src/main/java/com/djrapitops/plan/delivery/webserver/resolver/json/query/FiltersJSONResolver.java b/Plan/common/src/main/java/com/djrapitops/plan/delivery/webserver/resolver/json/query/FiltersJSONResolver.java index 9de6d87a6..98f4e3001 100644 --- a/Plan/common/src/main/java/com/djrapitops/plan/delivery/webserver/resolver/json/query/FiltersJSONResolver.java +++ b/Plan/common/src/main/java/com/djrapitops/plan/delivery/webserver/resolver/json/query/FiltersJSONResolver.java @@ -114,7 +114,7 @@ public class FiltersJSONResolver implements Resolver { )).build(); } - private List fetchViewGraphPoints() { + private List fetchViewGraphPoints() { List> data = dbSystem.getDatabase().query(TPSQueries.fetchViewPreviewGraphData(serverInfo.getServerUUID())); Long earliestStart = dbSystem.getDatabase().query(SessionQueries.earliestSessionStart()); data.add(0, new DateObj<>(earliestStart, 1)); @@ -136,9 +136,9 @@ public class FiltersJSONResolver implements Resolver { class FilterResponseDto { final List filters; final ViewDto view; - final List viewPoints; + final List viewPoints; - public FilterResponseDto(Map filtersByKind, ViewDto view, List viewPoints) { + public FilterResponseDto(Map filtersByKind, ViewDto view, List viewPoints) { this.viewPoints = viewPoints; this.filters = new ArrayList<>(); for (Map.Entry entry : filtersByKind.entrySet()) {