mirror of
https://github.com/vkaelin/LeagueStats.git
synced 2026-03-25 12:57:28 +00:00
feat(api): add cdragon/runes endpoint
This commit is contained in:
parent
3dcee325a4
commit
01f7437461
3 changed files with 51 additions and 0 deletions
27
server/app/Controllers/Http/CDragonController.ts
Normal file
27
server/app/Controllers/Http/CDragonController.ts
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
import Redis from '@ioc:Adonis/Addons/Redis'
|
||||
import { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
|
||||
import Jax from 'App/Services/Jax'
|
||||
import RuneTransformer from 'App/Transformers/RuneTransformer'
|
||||
|
||||
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: RuneTransformer.transformPerks(perks),
|
||||
perkstyles: RuneTransformer.transformStyles(perkstyles.styles),
|
||||
}
|
||||
|
||||
await Redis.set(cacheUrl, JSON.stringify(runesData), 'EX', 36000)
|
||||
|
||||
return response.json(runesData)
|
||||
}
|
||||
}
|
||||
22
server/app/Transformers/RuneTransformer.ts
Normal file
22
server/app/Transformers/RuneTransformer.ts
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
import { PerkDTO, PerkStyleDTO } from 'App/Services/Jax/src/Endpoints/CDragonEndpoint'
|
||||
|
||||
class RuneTransformer {
|
||||
public transformPerks (perks: PerkDTO[]) {
|
||||
return perks.map((perk) => ({
|
||||
id: perk.id,
|
||||
name: perk.name,
|
||||
desc: perk.longDesc,
|
||||
icon: perk.iconPath,
|
||||
}))
|
||||
}
|
||||
|
||||
public transformStyles (styles: PerkStyleDTO[]) {
|
||||
return styles.map(style => ({
|
||||
id: style.id,
|
||||
name: style.name,
|
||||
icon: style.iconPath,
|
||||
}))
|
||||
}
|
||||
}
|
||||
|
||||
export default new RuneTransformer()
|
||||
|
|
@ -22,6 +22,8 @@ import Route from '@ioc:Adonis/Core/Route'
|
|||
|
||||
Route.get('/', async () => ({ hi: 'Hello World from LeagueStats API', uptime: process.uptime() }))
|
||||
|
||||
Route.get('/cdragon/runes', 'CDragonController.runes')
|
||||
|
||||
Route.post('/summoner/basic', 'SummonersController.basic')
|
||||
Route.post('/summoner/overview', 'SummonersController.overview')
|
||||
Route.post('/summoner/champions', 'SummonersController.champions')
|
||||
|
|
|
|||
Loading…
Reference in a new issue