summaryrefslogtreecommitdiff
path: root/src/report-service.js
diff options
context:
space:
mode:
authorschneefux <schneefux+commit@schneefux.xyz>2018-05-11 20:21:18 +0200
committerschneefux <schneefux+commit@schneefux.xyz>2018-12-13 16:59:20 +0100
commit2f225a54054ae44df2d8fa691efcf247a82f94a1 (patch)
tree004f262d1681fd1ffc5bb9be1adff02bed80bbad /src/report-service.js
parent33a386d58d8d4e78d9e370b159c286da2a47d6cd (diff)
downloadbrokentalents-2f225a54054ae44df2d8fa691efcf247a82f94a1.tar.gz
brokentalents-2f225a54054ae44df2d8fa691efcf247a82f94a1.zip
refactor: create ReportService, move tabs to component
Diffstat (limited to 'src/report-service.js')
-rw-r--r--src/report-service.js37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/report-service.js b/src/report-service.js
new file mode 100644
index 0000000..feddec5
--- /dev/null
+++ b/src/report-service.js
@@ -0,0 +1,37 @@
+const MODES = [ 'casual_aral', 'blitz_pvp_ranked' ];
+
+export default class ReportService {
+ constructor() {
+ this.report = require('../data/98aae7f0/report.json');
+
+ this.reports = {};
+ this.totalPicks = {};
+ this.topPicks = {};
+ this.topWins = {};
+
+ for(let mode of MODES) {
+ this.reports[mode] = this.report.filter((entry) => entry.Mode == mode);
+ this.totalPicks[mode] = this.report.map((entry) => entry.Count).reduce((agg, cur) => agg + cur, 0);
+ this.topPicks[mode] = this.reports[mode].sort((entry1, entry2) => entry2.Count - entry1.Count)[0];
+ this.topWins[mode] = this.reports[mode]
+ .filter((entry) => 100 * 6 * entry.Count / this.totalPicks[mode] > 0.05)
+ .sort((entry1, entry2) => entry2.Winner - entry1.Winner)[0];
+ }
+ }
+
+ getReport(mode) {
+ return this.reports[mode];
+ }
+
+ getTotalPicks(mode) {
+ return this.totalPicks[mode];
+ }
+
+ getTopPick(mode) {
+ return this.topPicks[mode];
+ }
+
+ getTopWin(mode) {
+ return this.topWins[mode];
+ }
+}