-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathroutes.js
100 lines (85 loc) · 3.2 KB
/
routes.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
require('dotenv').config();
const express = require('express');
const axios = require('axios');
const pug = require('pug');
const app = express();
const port = process.env.PORT || 3000;
app.use('/public', express.static(__dirname + '/public'));
app.use(express.urlencoded({extended: true}));
app.use(express.json());
app.set("view engine", "pug");
app.set("views", "views");
app.get("/", (req, res) => {
res.render("index");
})
app.post("/playerResume", async (req, res) => {
const api = {
endPoint: "api.riotgames.com/lol/summoner/v4/summoners/by-name",
region: "",
summoner: "",
key: process.env.API_KEY
}
const summoner = {
id: "",
name: "",
summonerLevel: "",
profileIconId: "",
solo: {
tier: "",
rank: "",
leaguePoints: "",
wins: "",
losses: ""
},
flex: {
tier: "",
rank: "",
leaguePoints: "",
wins: "",
losses: ""
}
}
try {
api.summoner = await req.body.name;
api.region = await req.body.region;
const response_profile = await axios.get(`https://${api.region}.${api.endPoint}/` + encodeURI(api.summoner) + `?api_key=${api.key}`);
const data_profile = await response_profile.data;
summoner.id = await data_profile.id;
summoner.name = await data_profile.name;
summoner.summonerLevel = await data_profile.summonerLevel;
summoner.profileIconId = await data_profile.profileIconId;
api.endPoint = "api.riotgames.com/lol/league/v4/entries/by-summoner";
api.summoner = summoner.id;
const response_rank = await axios.get(`https://${api.region}.${api.endPoint}/` + encodeURI(api.summoner) + `?api_key=${api.key}`);
const data_rank = await response_rank.data;
if(data_rank.length != 0) {
for (let c = 0; c < data_rank.length; c++) {
if (data_rank[c].queueType === "RANKED_SOLO_5x5") {
summoner.solo.tier = await data_rank[c].tier;
summoner.solo.rank = await data_rank[c].rank;
summoner.solo.leaguePoints = await data_rank[c].leaguePoints;
summoner.solo.wins = await data_rank[c].wins;
summoner.solo.losses = await data_rank[c].losses;
} else if (data_rank[c].queueType === "RANKED_FLEX_SR") {
summoner.flex.tier = await data_rank[c].tier;
summoner.flex.rank = await data_rank[c].rank;
summoner.flex.leaguePoints = await data_rank[c].leaguePoints;
summoner.flex.wins = await data_rank[c].wins;
summoner.flex.losses = await data_rank[c].losses;
}
}
}
res.render("summonerData", {
summoner: summoner,
hasRankSolo: summoner.solo.tier != "",
hasRankFlex: summoner.flex.tier != "",
summonerRegion: api.region,
});
} catch(e) {
res.render("index", {
notFound: true,
notFound_message: "Summoner not found."
})
}
})
app.listen(port);