mirror of
https://github.com/plan-player-analytics/Plan.git
synced 2024-10-08 11:27:44 +02:00
Made filters more error-resilient for the future
This commit is contained in:
parent
ac9ca5949e
commit
8e0d833f3f
@ -34,6 +34,8 @@ import com.djrapitops.plan.storage.database.queries.filter.QueryFilters;
|
|||||||
import com.djrapitops.plan.storage.database.queries.objects.SessionQueries;
|
import com.djrapitops.plan.storage.database.queries.objects.SessionQueries;
|
||||||
import com.djrapitops.plan.storage.database.queries.objects.TPSQueries;
|
import com.djrapitops.plan.storage.database.queries.objects.TPSQueries;
|
||||||
import com.djrapitops.plan.utilities.java.Lists;
|
import com.djrapitops.plan.utilities.java.Lists;
|
||||||
|
import com.djrapitops.plan.utilities.logging.ErrorContext;
|
||||||
|
import com.djrapitops.plan.utilities.logging.ErrorLogger;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
@ -50,6 +52,7 @@ public class FiltersJSONResolver implements Resolver {
|
|||||||
private final QueryFilters filters;
|
private final QueryFilters filters;
|
||||||
private final Graphs graphs;
|
private final Graphs graphs;
|
||||||
private final Formatters formatters;
|
private final Formatters formatters;
|
||||||
|
private final ErrorLogger errorLogger;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
public FiltersJSONResolver(
|
public FiltersJSONResolver(
|
||||||
@ -57,13 +60,15 @@ public class FiltersJSONResolver implements Resolver {
|
|||||||
DBSystem dbSystem,
|
DBSystem dbSystem,
|
||||||
QueryFilters filters,
|
QueryFilters filters,
|
||||||
Graphs graphs,
|
Graphs graphs,
|
||||||
Formatters formatters
|
Formatters formatters,
|
||||||
|
ErrorLogger errorLogger
|
||||||
) {
|
) {
|
||||||
this.serverInfo = serverInfo;
|
this.serverInfo = serverInfo;
|
||||||
this.dbSystem = dbSystem;
|
this.dbSystem = dbSystem;
|
||||||
this.filters = filters;
|
this.filters = filters;
|
||||||
this.graphs = graphs;
|
this.graphs = graphs;
|
||||||
this.formatters = formatters;
|
this.formatters = formatters;
|
||||||
|
this.errorLogger = errorLogger;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -106,7 +111,7 @@ public class FiltersJSONResolver implements Resolver {
|
|||||||
/**
|
/**
|
||||||
* JSON serialization class.
|
* JSON serialization class.
|
||||||
*/
|
*/
|
||||||
static class FilterResponseJSON {
|
class FilterResponseJSON {
|
||||||
final List<FilterJSON> filters;
|
final List<FilterJSON> filters;
|
||||||
final ViewJSON view;
|
final ViewJSON view;
|
||||||
final List<Double[]> viewPoints;
|
final List<Double[]> viewPoints;
|
||||||
@ -115,7 +120,14 @@ public class FiltersJSONResolver implements Resolver {
|
|||||||
this.viewPoints = viewPoints;
|
this.viewPoints = viewPoints;
|
||||||
this.filters = new ArrayList<>();
|
this.filters = new ArrayList<>();
|
||||||
for (Map.Entry<String, Filter> entry : filtersByKind.entrySet()) {
|
for (Map.Entry<String, Filter> entry : filtersByKind.entrySet()) {
|
||||||
filters.add(new FilterJSON(entry.getKey(), entry.getValue()));
|
try {
|
||||||
|
filters.add(new FilterJSON(entry.getKey(), entry.getValue()));
|
||||||
|
} catch (Exception e) {
|
||||||
|
errorLogger.error(e, ErrorContext.builder()
|
||||||
|
.whatToDo("Report this, filter '" + entry.getKey() + "' has implementation error.")
|
||||||
|
.related(entry.getValue())
|
||||||
|
.build());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Collections.sort(filters);
|
Collections.sort(filters);
|
||||||
this.view = view;
|
this.view = view;
|
||||||
|
Loading…
Reference in New Issue
Block a user