From 3683776e247ec2d80fb9e4c10ecd740f0ae0c895 Mon Sep 17 00:00:00 2001 From: Valentin Kaelin Date: Sat, 24 Aug 2019 16:56:55 +0200 Subject: [PATCH] Start Jax: Riot Api Wrapper --- server/Jax/Endpoints/SummonerEndpoint.js | 18 ++++++++++++++++ server/Jax/Jax.js | 21 +++++++++++++++++++ server/Jax/JaxRequest.js | 26 ++++++++++++++++++++++++ server/Jax/index.js | 1 + server/server.js | 15 ++++++++++++++ 5 files changed, 81 insertions(+) create mode 100644 server/Jax/Endpoints/SummonerEndpoint.js create mode 100644 server/Jax/Jax.js create mode 100644 server/Jax/JaxRequest.js create mode 100644 server/Jax/index.js diff --git a/server/Jax/Endpoints/SummonerEndpoint.js b/server/Jax/Endpoints/SummonerEndpoint.js new file mode 100644 index 0000000..80f8456 --- /dev/null +++ b/server/Jax/Endpoints/SummonerEndpoint.js @@ -0,0 +1,18 @@ +import JaxRequest from '../JaxRequest' + +class SummonerEnpoint { + constructor(limiter, region) { + this.limiter = limiter + this.region = region + } + + summonerName(summonerName) { + return new JaxRequest( + `summoner/v4/summoners/by-name/${encodeURI(summonerName)}`, + this.limiter, + this.region + ).execute() + } +} + +export default SummonerEnpoint diff --git a/server/Jax/Jax.js b/server/Jax/Jax.js new file mode 100644 index 0000000..c7f32dd --- /dev/null +++ b/server/Jax/Jax.js @@ -0,0 +1,21 @@ +const RiotRateLimiter = require('riot-ratelimiter') + +import SummonerEndpoint from './Endpoints/SummonerEndpoint' + +class Jax { + constructor(key = process.env.API_KEY, region = 'euw1') { + this.key = key + this.limiter = new RiotRateLimiter() + this.region = region + + this.Summoner = new SummonerEndpoint(this.limiter, this.region) + } + + set regionName(regionName) { + this.region = regionName + } +} + +module.exports = { + Jax +} diff --git a/server/Jax/JaxRequest.js b/server/Jax/JaxRequest.js new file mode 100644 index 0000000..5bf9411 --- /dev/null +++ b/server/Jax/JaxRequest.js @@ -0,0 +1,26 @@ +class JaxRequest { + constructor(endpoint, limiter, region) { + this.endpoint = endpoint + this.region = region + this.limiter = limiter + this.region = region + } + + async execute() { + try { + const resp = await this.limiter.executing({ + url: `https://${this.region}.api.riotgames.com/lol/${this.endpoint}`, + token: process.env.API_KEY, + resolveWithFullResponse: false + }) + + return JSON.parse(resp) + + } catch ({ statusCode, ...rest }) { + console.log('error: ' + statusCode, rest) + } + } + +} + +export default JaxRequest diff --git a/server/Jax/index.js b/server/Jax/index.js new file mode 100644 index 0000000..ba8861f --- /dev/null +++ b/server/Jax/index.js @@ -0,0 +1 @@ +module.exports = require('./Jax') diff --git a/server/server.js b/server/server.js index 353cd1f..cf925f0 100644 --- a/server/server.js +++ b/server/server.js @@ -7,6 +7,7 @@ const Promise = require("bluebird"); const responseTime = require('response-time') const cors = require('cors'); const app = express() +import { Jax } from "./Jax"; /* Global Variables */ const data = { @@ -19,6 +20,9 @@ const data = { finalJSON: [] } +/* Setup Riot API Wrapper */ +const jax = new Jax() + /* Set Port */ app.set('port', (process.env.PORT || 5000)) @@ -69,10 +73,21 @@ app.post('/api', function (req, res) { console.time('all') data.region = req.body.region; data.username = req.body.summoner; + + jax.regionName = req.body.region + newVersion() + data.finalJSON = []; getAccountInfos(res); }); +/* Refactor with the Jax Wrapper */ +async function newVersion() { + const { id, accountId } = await jax.Summoner.summonerName(data.username) + + console.log(id, accountId) +} + // Get account infos of an username const getAccountInfos = function (res) { request(`https://${data.region}.api.riotgames.com/lol/summoner/v4/summoners/by-name/${encodeURIComponent(data.username)}?api_key=${data.key}`, function (error, response, body) {