mirror of
https://github.com/vkaelin/LeagueStats.git
synced 2026-03-25 12:57:28 +00:00
47 lines
1.5 KiB
TypeScript
47 lines
1.5 KiB
TypeScript
import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
|
|
import Match from 'App/Models/Match'
|
|
import DetailedMatchSerializer from 'App/Serializers/DetailedMatchSerializer'
|
|
import MatchService from 'App/Services/MatchService'
|
|
import StatsService from 'App/Services/StatsService'
|
|
import DetailedMatchValidator from 'App/Validators/DetailedMatchValidator'
|
|
import MatchesIndexValidator from 'App/Validators/MatchesIndexValidator'
|
|
|
|
export default class MatchesController {
|
|
/**
|
|
* POST - Return data from matches searched by gameIds
|
|
* @param ctx
|
|
*/
|
|
public async index({ request, response }: HttpContextContract) {
|
|
const { puuid, region, matchIds, season } = await request.validate(MatchesIndexValidator)
|
|
const matches = await MatchService.getMatches(region, matchIds, puuid)
|
|
|
|
const stats = await StatsService.getSummonerStats(puuid, season)
|
|
return response.json({
|
|
matches,
|
|
stats,
|
|
})
|
|
}
|
|
|
|
/**
|
|
* POST - Return details data for one specific match
|
|
* @param ctx
|
|
*/
|
|
public async show({ request, response }: HttpContextContract) {
|
|
console.time('MatchDetails')
|
|
const { matchId } = await request.validate(DetailedMatchValidator)
|
|
|
|
const match = await Match.query()
|
|
.where('id', matchId)
|
|
.preload('teams')
|
|
.preload('players')
|
|
.firstOrFail()
|
|
|
|
const matchDetails = DetailedMatchSerializer.serializeOneMatch(match)
|
|
|
|
console.timeEnd('MatchDetails')
|
|
|
|
return response.json({
|
|
matchDetails,
|
|
})
|
|
}
|
|
}
|