diff --git a/client/src/helpers/summoner.js b/client/src/helpers/summoner.js index ebccc55..c285fe9 100644 --- a/client/src/helpers/summoner.js +++ b/client/src/helpers/summoner.js @@ -64,7 +64,8 @@ export function createSummonerData(RiotData) { account: RiotData.account, ranked: RiotData.ranked, matchList: RiotData.allMatches, - matches: createMatchData(RiotData.matchesDetails) + matches: createMatchData(RiotData.matchesDetails), + playing: RiotData.playing } } diff --git a/client/src/store/modules/summoner.js b/client/src/store/modules/summoner.js index 42968fe..3e81f00 100644 --- a/client/src/store/modules/summoner.js +++ b/client/src/store/modules/summoner.js @@ -9,7 +9,8 @@ export const state = { matchIndex: 0, matchList: [], matches: [], - ranked: {} + ranked: {}, + playing: false }, matchesLoading: false, status: '', @@ -35,6 +36,7 @@ export const mutations = { state.infos.matches = infos.matches state.infos.ranked = infos.ranked state.infos.matchIndex = infos.matches.length + state.infos.playing = infos.playing state.status = 'found' }, SUMMONER_NOT_FOUND(state) { @@ -80,6 +82,7 @@ export const actions = { export const getters = { matchesLoading: state => state.matchesLoading, moreMatchesToFetch: state => state.infos.matchIndex < state.infos.matchList.length, + playing: state => state.infos.playing, summonerFound: state => state.status === 'found', summonerNotFound: state => state.status === 'error', summonerLoading: state => state.status === 'loading', diff --git a/client/src/views/Summoner.vue b/client/src/views/Summoner.vue index 3bffd07..004a396 100644 --- a/client/src/views/Summoner.vue +++ b/client/src/views/Summoner.vue @@ -22,14 +22,24 @@
-

- {{ summonerInfos.account.name[0] }} - {{ summonerInfos.account.name.substring(1) }} -

+
+

+ {{ summonerInfos.account.name[0] }} + {{ summonerInfos.account.name.substring(1) }} +

+
+
+ In Game +
+
-
+
- +
@@ -124,7 +134,7 @@ export default { summonerInfos: state => state.summoner.infos }), ...mapGetters('ddragon', ['version']), - ...mapGetters('summoner', ['matchesLoading', 'moreMatchesToFetch', 'summonerFound', 'summonerNotFound', 'summonerLoading']) + ...mapGetters('summoner', ['matchesLoading', 'moreMatchesToFetch', 'playing', 'summonerFound', 'summonerNotFound', 'summonerLoading']) }, watch: { @@ -149,3 +159,62 @@ export default { } } + + diff --git a/client/tailwind.config.js b/client/tailwind.config.js index 662c6b3..bd82830 100644 --- a/client/tailwind.config.js +++ b/client/tailwind.config.js @@ -80,6 +80,7 @@ module.exports = { 700: '#2c7a7b', 800: '#285e61', 900: '#234e52', + 'flashy': '#24e8cc', }, blue: { 100: '#ebf8ff', diff --git a/server/app/Controllers/Http/SummonerController.js b/server/app/Controllers/Http/SummonerController.js index e399c58..2ce1ff2 100644 --- a/server/app/Controllers/Http/SummonerController.js +++ b/server/app/Controllers/Http/SummonerController.js @@ -28,6 +28,9 @@ class SummonerController { account.region = region finalJSON.account = account + // CURRENT GAME + const currentGame = await Jax.Spectator.summonerID(account.id) + finalJSON.playing = !!currentGame // RANKED STATS const ranked = await Jax.League.summonerID(account.id) finalJSON.ranked = { diff --git a/server/providers/Jax/src/Endpoints/SpectatorEndpoint.js b/server/providers/Jax/src/Endpoints/SpectatorEndpoint.js new file mode 100644 index 0000000..8ffcb3a --- /dev/null +++ b/server/providers/Jax/src/Endpoints/SpectatorEndpoint.js @@ -0,0 +1,18 @@ +const JaxRequest = require('../JaxRequest') + +class SpectatorEndpoint { + constructor(config, limiter) { + this.config = config + this.limiter = limiter + } + + summonerID(summonerID) { + return new JaxRequest( + this.config, + `spectator/v4/active-games/by-summoner/${summonerID}`, + this.limiter + ).execute() + } +} + +module.exports = SpectatorEndpoint diff --git a/server/providers/Jax/src/Jax.js b/server/providers/Jax/src/Jax.js index ec4939c..bba492b 100644 --- a/server/providers/Jax/src/Jax.js +++ b/server/providers/Jax/src/Jax.js @@ -2,6 +2,7 @@ const RiotRateLimiter = require('riot-ratelimiter') const LeagueEndpoint = require('./Endpoints/LeagueEndpoint') const MatchEndpoint = require('./Endpoints/MatchEndpoint') const MatchlistEndpoint = require('./Endpoints/MatchlistEndpoint') +const SpectatorEndpoint = require('./Endpoints/SpectatorEndpoint') const SummonerEndpoint = require('./Endpoints/SummonerEndpoint') const DDragonVersionEndpoint = require('./Endpoints/DDragonEndpoints/DDragonVersionEndpoint') @@ -20,6 +21,7 @@ class Jax { this.League = new LeagueEndpoint(this.config, this.limiter) this.Match = new MatchEndpoint(this.config, this.limiter) this.Matchlist = new MatchlistEndpoint(this.config, this.limiter) + this.Spectator = new SpectatorEndpoint(this.config, this.limiter) this.Summoner = new SummonerEndpoint(this.config, this.limiter) this.initDDragon()