use of com.djrapitops.plan.extension.implementation.storage.queries.ExtensionServerDataQuery in project Plan by plan-player-analytics.
the class ExtensionsDatabaseTest method extensionServerAggregateQueriesWork.
@Test
default void extensionServerAggregateQueriesWork() {
ExtensionSvc extensionService = extensionService();
extensionService.register(new PlayerExtension());
extensionService.updatePlayerValues(playerUUID, TestConstants.PLAYER_ONE_NAME, CallEvents.MANUAL);
List<ExtensionData> ofServer = db().query(new ExtensionServerDataQuery(serverUUID()));
assertFalse(ofServer.isEmpty());
ExtensionData extensionData = ofServer.get(0);
List<ExtensionTabData> tabs = extensionData.getTabs();
// No tab defined, should contain 1 tab
assertEquals(1, tabs.size());
ExtensionTabData tabData = tabs.get(0);
System.out.println(tabData.getValueOrder());
OptionalAssert.equals("0.0", tabData.getPercentage("boolVal_aggregate").map(data -> data.getFormattedValue(Objects::toString)));
OptionalAssert.equals("0.5", tabData.getPercentage("percentageVal_avg").map(data -> data.getFormattedValue(Objects::toString)));
OptionalAssert.equals("0.5", tabData.getDouble("doubleVal_avg").map(data -> data.getFormattedValue(Objects::toString)));
OptionalAssert.equals("0.5", tabData.getDouble("doubleVal_total").map(data -> data.getFormattedValue(Objects::toString)));
OptionalAssert.equals("5", tabData.getNumber("value_avg").map(data -> data.getFormattedValue(Objects::toString)));
OptionalAssert.equals("5", tabData.getNumber("value_total").map(data -> data.getFormattedValue(Objects::toString)));
List<ExtensionTableData> tableData = tabData.getTableData();
assertEquals(1, tableData.size());
HtmlTable table = tableData.get(0).getHtmlTable();
String result = table.toHtml();
assertTrue(result.contains("<tbody><tr><td>Group</td><td>1</td></tr></tbody>"), result);
}
use of com.djrapitops.plan.extension.implementation.storage.queries.ExtensionServerDataQuery in project Plan by plan-player-analytics.
the class ExtensionsDatabaseTest method extensionServerValuesAreStored.
@Test
default void extensionServerValuesAreStored() {
ExtensionSvc extensionService = extensionService();
extensionService.register(new ServerExtension());
extensionService.updateServerValues(CallEvents.SERVER_EXTENSION_REGISTER);
List<ExtensionData> ofServer = db().query(new ExtensionServerDataQuery(serverUUID()));
assertFalse(ofServer.isEmpty());
ExtensionData extensionData = ofServer.get(0);
List<ExtensionTabData> tabs = extensionData.getTabs();
// No tab defined, should contain 1 tab
assertEquals(1, tabs.size());
ExtensionTabData tabData = tabs.get(0);
OptionalAssert.equals("5", tabData.getNumber("value").map(data -> data.getFormattedValue(Object::toString)));
OptionalAssert.equals("No", tabData.getBoolean("boolVal").map(ExtensionBooleanData::getFormattedValue));
OptionalAssert.equals("0.5", tabData.getDouble("doubleVal").map(data -> data.getFormattedValue(Object::toString)));
OptionalAssert.equals("0.5", tabData.getPercentage("percentageVal").map(data -> data.getFormattedValue(Object::toString)));
OptionalAssert.equals("Something", tabData.getString("stringVal").map(ExtensionStringData::getFormattedValue));
}
use of com.djrapitops.plan.extension.implementation.storage.queries.ExtensionServerDataQuery in project Plan by plan-player-analytics.
the class ServerPage method toHtml.
@Override
public String toHtml() {
PlaceholderReplacer placeholders = new PlaceholderReplacer();
ServerUUID serverUUID = server.getUuid();
placeholders.put("serverUUID", serverUUID.toString());
placeholders.put("serverName", server.getIdentifiableName());
placeholders.put("serverDisplayName", server.getName());
placeholders.put("refreshBarrier", config.get(WebserverSettings.REDUCED_REFRESH_BARRIER));
placeholders.put("timeZone", config.getTimeZoneOffsetHours());
placeholders.put("gmPieColors", theme.getValue(ThemeVal.GRAPH_GM_PIE));
placeholders.put("contributors", Contributors.generateContributorHtml());
placeholders.put("versionButton", versionChecker.getUpdateButton().orElse(versionChecker.getCurrentVersionButton()));
placeholders.put("version", versionChecker.getCurrentVersion());
placeholders.put("updateModal", versionChecker.getUpdateModal());
CachingSupplier<ServerPluginTabs> pluginTabs = new CachingSupplier<>(() -> {
List<ExtensionData> extensionData = dbSystem.getDatabase().query(new ExtensionServerDataQuery(serverUUID));
return new ServerPluginTabs(extensionData, formatters);
});
long after = System.currentTimeMillis() - config.get(WebserverSettings.REDUCED_REFRESH_BARRIER);
String navIdentifier = DataID.EXTENSION_NAV.of(serverUUID);
String tabIdentifier = DataID.EXTENSION_TABS.of(serverUUID);
String nav = jsonStorage.fetchJsonMadeAfter(navIdentifier, after).orElseGet(() -> {
jsonStorage.invalidateOlder(navIdentifier, after);
return jsonStorage.storeJson(navIdentifier, pluginTabs.get().getNav());
}).json;
String tabs = jsonStorage.fetchJsonMadeAfter(tabIdentifier, after).orElseGet(() -> {
jsonStorage.invalidateOlder(tabIdentifier, after);
return jsonStorage.storeJson(tabIdentifier, pluginTabs.get().getTabs());
}).json;
PlaceholderReplacer pluginPlaceholders = new PlaceholderReplacer();
pluginPlaceholders.put("serverUUID", serverUUID.toString());
pluginPlaceholders.put("serverName", server.getIdentifiableName());
pluginPlaceholders.put("serverDisplayName", server.getName());
pluginPlaceholders.put("backButton", serverInfo.getServer().isProxy() ? Html.BACK_BUTTON_NETWORK.create() : "");
pluginPlaceholders.put("navPluginsTabs", nav);
pluginPlaceholders.put("tabsPlugins", tabs);
return UnaryChain.of(templateHtml).chain(theme::replaceThemeColors).chain(placeholders::apply).chain(pluginPlaceholders::apply).chain(locale::replaceLanguageInHtml).apply();
}
use of com.djrapitops.plan.extension.implementation.storage.queries.ExtensionServerDataQuery in project Plan by plan-player-analytics.
the class NetworkPage method toHtml.
@Override
public String toHtml() {
PlaceholderReplacer placeholders = new PlaceholderReplacer();
ServerUUID serverUUID = serverInfo.getServerUUID();
placeholders.put("networkDisplayName", config.get(ProxySettings.NETWORK_NAME));
placeholders.put("serverName", config.get(ProxySettings.NETWORK_NAME));
placeholders.put("serverUUID", serverUUID.toString());
placeholders.put("refreshBarrier", config.get(WebserverSettings.REDUCED_REFRESH_BARRIER));
placeholders.put("gmPieColors", theme.getValue(ThemeVal.GRAPH_GM_PIE));
placeholders.put("playersGraphColor", theme.getValue(ThemeVal.GRAPH_PLAYERS_ONLINE));
placeholders.put("worldMapColLow", theme.getValue(ThemeVal.WORLD_MAP_LOW));
placeholders.put("worldMapColHigh", theme.getValue(ThemeVal.WORLD_MAP_HIGH));
placeholders.put("maxPingColor", theme.getValue(ThemeVal.GRAPH_MAX_PING));
placeholders.put("minPingColor", theme.getValue(ThemeVal.GRAPH_MIN_PING));
placeholders.put("avgPingColor", theme.getValue(ThemeVal.GRAPH_AVG_PING));
placeholders.put("timeZone", config.getTimeZoneOffsetHours());
placeholders.put("versionButton", versionChecker.getUpdateButton().orElse(versionChecker.getCurrentVersionButton()));
placeholders.put("version", versionChecker.getCurrentVersion());
placeholders.put("updateModal", versionChecker.getUpdateModal());
placeholders.put("contributors", Contributors.generateContributorHtml());
CachingSupplier<ServerPluginTabs> pluginTabs = new CachingSupplier<>(() -> {
List<ExtensionData> extensionData = dbSystem.getDatabase().query(new ExtensionServerDataQuery(serverUUID));
return new ServerPluginTabs(extensionData, formatters);
});
long after = System.currentTimeMillis() - config.get(WebserverSettings.REDUCED_REFRESH_BARRIER);
String navIdentifier = DataID.EXTENSION_NAV.of(serverUUID);
String tabIdentifier = DataID.EXTENSION_TABS.of(serverUUID);
String nav = jsonStorage.fetchJsonMadeAfter(navIdentifier, after).orElseGet(() -> {
jsonStorage.invalidateOlder(navIdentifier, after);
return jsonStorage.storeJson(navIdentifier, pluginTabs.get().getNav());
}).json;
String tabs = jsonStorage.fetchJsonMadeAfter(tabIdentifier, after).orElseGet(() -> {
jsonStorage.invalidateOlder(tabIdentifier, after);
return jsonStorage.storeJson(tabIdentifier, pluginTabs.get().getTabs());
}).json;
PlaceholderReplacer pluginPlaceholders = new PlaceholderReplacer();
pluginPlaceholders.put("networkDisplayName", config.get(ProxySettings.NETWORK_NAME));
pluginPlaceholders.put("serverName", config.get(ProxySettings.NETWORK_NAME));
pluginPlaceholders.put("serverUUID", serverUUID.toString());
pluginPlaceholders.put("navPluginsTabs", nav);
pluginPlaceholders.put("tabsPlugins", StringUtils.remove(tabs, "${backButton}"));
return UnaryChain.of(templateHtml).chain(theme::replaceThemeColors).chain(placeholders::apply).chain(pluginPlaceholders::apply).chain(locale::replaceLanguageInHtml).apply();
}
use of com.djrapitops.plan.extension.implementation.storage.queries.ExtensionServerDataQuery in project Plan by plan-player-analytics.
the class ExtensionsDatabaseTest method removeEverythingRemovesServerExtensionData.
@Test
default void removeEverythingRemovesServerExtensionData() {
extensionServerValuesAreStored();
db().executeTransaction(new RemoveEverythingTransaction());
assertTrue(db().query(new ExtensionServerDataQuery(serverUUID())).isEmpty());
}
Aggregations