From d9d470efdd3baed0b67319148799bef7e0b0bd97 Mon Sep 17 00:00:00 2001 From: Kalane Date: Tue, 14 Sep 2021 17:06:00 +0200 Subject: [PATCH] feat: very beggining of overview-stats --- .../Controllers/Http/SummonersController.ts | 9 ++++--- server-v2/app/Repositories/MatchRepository.ts | 25 +++++++++++++++++++ 2 files changed, 31 insertions(+), 3 deletions(-) create mode 100644 server-v2/app/Repositories/MatchRepository.ts diff --git a/server-v2/app/Controllers/Http/SummonersController.ts b/server-v2/app/Controllers/Http/SummonersController.ts index 4df1327..af29495 100644 --- a/server-v2/app/Controllers/Http/SummonersController.ts +++ b/server-v2/app/Controllers/Http/SummonersController.ts @@ -1,6 +1,7 @@ import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext' import { getCurrentSeason } from 'App/helpers' import Summoner from 'App/Models/Summoner' +import MatchRepository from 'App/Repositories/MatchRepository' import Jax from 'App/Services/Jax' import MatchService from 'App/Services/MatchService' import SummonerService from 'App/Services/SummonerService' @@ -72,9 +73,11 @@ export default class SummonersController { finalJSON.matchesDetails = await MatchService.getMatches(region, matchIds, puuid) // TODO: STATS - // console.time('STATS') - // finalJSON.stats = 'todo' - // console.timeEnd('STATS') + console.time('STATS') + finalJSON.stats = { + global: await MatchRepository.globalStats(puuid), + } + console.timeEnd('STATS') console.timeEnd('OVERVIEW_REQUEST') return response.json(finalJSON) diff --git a/server-v2/app/Repositories/MatchRepository.ts b/server-v2/app/Repositories/MatchRepository.ts new file mode 100644 index 0000000..6276cbd --- /dev/null +++ b/server-v2/app/Repositories/MatchRepository.ts @@ -0,0 +1,25 @@ +import Database from '@ioc:Adonis/Lucid/Database' + +class MatchRepository { + public async globalStats(puuid: string, season?: number) { + // TODO: add wins/losses + return Database.from('match_players') + .where('summoner_puuid', puuid) + .join('matches', 'match_players.match_id', 'matches.id') + .sum({ + assists: 'assists', + deaths: 'deaths', + kills: 'kills', + minions: 'minions', + time: 'matches.game_duration', + vision: 'vision_score', + }) + .count({ + count: 'assists', + }) + .avg('kp') + .first() + } +} + +export default new MatchRepository()