feat: add CDragonController back

This commit is contained in:
Kalane 2021-09-14 00:55:19 +02:00
parent 96352669d0
commit 5b9a29ab4b
3 changed files with 55 additions and 1 deletions

View file

@ -0,0 +1,27 @@
import Redis from '@ioc:Adonis/Addons/Redis'
import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
import RuneSerializer from 'App/Serializers/RuneSerializer'
import Jax from 'App/Services/Jax'
export default class CDragonController {
public async runes({ response }: HttpContextContract) {
const cacheUrl = 'cdragon-runes'
const requestCached = await Redis.get(cacheUrl)
if (requestCached) {
return response.json(requestCached)
}
const perks = await Jax.CDragon.perks()
const perkstyles = await Jax.CDragon.perkstyles()
const runesData = {
perks: RuneSerializer.serializePerks(perks),
perkstyles: RuneSerializer.serializeStyles(perkstyles.styles),
}
await Redis.set(cacheUrl, JSON.stringify(runesData), 'EX', 36000)
return response.json(runesData)
}
}

View file

@ -0,0 +1,27 @@
import { PerkDTO, PerkStyleDTO } from 'App/Services/Jax/src/Endpoints/CDragonEndpoint'
class RuneSerializer {
public serializePerks(perks: PerkDTO[]) {
return perks.reduce((acc, perk) => {
acc[perk.id] = {
name: perk.name,
desc: perk.longDesc,
icon: perk.iconPath,
}
return acc
}, {})
}
public serializeStyles(styles: PerkStyleDTO[]) {
return styles.reduce((acc, style) => {
acc[style.id] = {
name: style.name,
icon: style.iconPath,
slots: style.slots.filter((s) => s.type !== 'kStatMod').map((s) => s.perks),
}
return acc
}, {})
}
}
export default new RuneSerializer()

View file

@ -41,7 +41,7 @@ Route.post('/summoner/overview', 'SummonersController.overview')
// Route.post('/match/details', 'MatchesController.show')
// Route.post('/match/details/ranks', 'MatchesController.showRanks')
// Route.get('/cdragon/runes', 'CDragonController.runes')
Route.get('/cdragon/runes', 'CDragonController.runes')
Route.get('/test', async () => {
const ids = [