Showing
2 changed files
with
37 additions
and
8 deletions
... | @@ -9,7 +9,7 @@ module.exports = function (app) { | ... | @@ -9,7 +9,7 @@ module.exports = function (app) { |
9 | }); | 9 | }); |
10 | 10 | ||
11 | app.get('/search/:username/', function (req, res) { | 11 | app.get('/search/:username/', function (req, res) { |
12 | - //롤 api url | 12 | + // tft api url |
13 | const summonerName = req.params.username; | 13 | const summonerName = req.params.username; |
14 | var nameUrl = `https://kr.api.riotgames.com/tft/summoner/v1/summoners/by-name/${summonerName}?api_key=${apikey}` | 14 | var nameUrl = `https://kr.api.riotgames.com/tft/summoner/v1/summoners/by-name/${summonerName}?api_key=${apikey}` |
15 | request(nameUrl, function (error, response, body) { | 15 | request(nameUrl, function (error, response, body) { |
... | @@ -27,13 +27,42 @@ module.exports = function (app) { | ... | @@ -27,13 +27,42 @@ module.exports = function (app) { |
27 | const leagueUrl = `https://kr.api.riotgames.com/tft/league/v1/entries/by-summoner/${summonerId}?api_key=${apikey}`; | 27 | const leagueUrl = `https://kr.api.riotgames.com/tft/league/v1/entries/by-summoner/${summonerId}?api_key=${apikey}`; |
28 | request(leagueUrl, function (error, response, body) { | 28 | request(leagueUrl, function (error, response, body) { |
29 | const info_league_json = JSON.parse(body); | 29 | const info_league_json = JSON.parse(body); |
30 | - console.log('league', body); | 30 | + const matchIdUrl = `https://asia.api.riotgames.com/tft/match/v1/matches/by-puuid/${info_summoner_json.puuid}/ids?api_key=${apikey}`; |
31 | - res.render('index', { | 31 | + request(matchIdUrl, function (error, response, body) { |
32 | - title: req.params.username, | 32 | + const matchIdList = JSON.parse(body); |
33 | - error_message: false, | 33 | + console.log('matchIds', matchIdList); |
34 | - c_summoner: summoner, | 34 | + const promiseList = []; |
35 | - c_leagueList: info_league_json | 35 | + if (matchIdList.length > 0) { |
36 | + matchIdList.forEach(matchId => { | ||
37 | + promiseList.push(new Promise((resolve, reject) => { | ||
38 | + const matchURL = `https://asia.api.riotgames.com/tft/match/v1/matches/${matchId}?api_key=${apikey}`; | ||
39 | + request(matchURL, function (error, response, body) { | ||
40 | + const match = JSON.parse(body); | ||
41 | + resolve(match); | ||
42 | + }); | ||
43 | + })); | ||
44 | + }); | ||
45 | + Promise.all(promiseList).then(matches => { | ||
46 | + console.log('matches', matches); | ||
47 | + res.render('index', { | ||
48 | + title: req.params.username, | ||
49 | + error_message: false, | ||
50 | + c_matchList: matches, // 게임 데이터, array | ||
51 | + c_summoner: info_summoner_json, // 소환사, object | ||
52 | + c_leagueList: info_league_json // leagues 데이터, array | ||
53 | + }); | ||
54 | + }) | ||
55 | + } else { | ||
56 | + res.render('index', { | ||
57 | + title: req.params.username, | ||
58 | + error_message: false, | ||
59 | + c_matchList: [], | ||
60 | + c_summoner: info_summoner_json, | ||
61 | + c_leagueList: info_league_json | ||
62 | + }); | ||
63 | + } | ||
36 | }); | 64 | }); |
65 | + console.log('league', body); | ||
37 | }); | 66 | }); |
38 | }); | 67 | }); |
39 | }); | 68 | }); | ... | ... |
... | @@ -41,7 +41,7 @@ | ... | @@ -41,7 +41,7 @@ |
41 | <% } else { %> | 41 | <% } else { %> |
42 | <font size=10em> | 42 | <font size=10em> |
43 | <strong> | 43 | <strong> |
44 | - <%= c_summoner + "\n"%> | 44 | + <%= c_summoner.name + "\n"%> <!-- 소환사 object --> |
45 | </strong> | 45 | </strong> |
46 | </font> | 46 | </font> |
47 | <table class="table"> | 47 | <table class="table"> | ... | ... |
-
Please register or login to post a comment