refactor: get last riot patch from backend instead of manually change it

This commit is contained in:
Valentin Kaelin 2019-10-21 15:30:48 +02:00
parent c9ba6894af
commit 3b12014eb3
10 changed files with 27 additions and 15 deletions

View file

@ -1 +0,0 @@
VUE_APP_PATCH=9.17.1

View file

@ -1,4 +1,4 @@
# riot-vue # LeagueStats Frontend
## Project setup ## Project setup
``` ```

View file

@ -26,7 +26,7 @@
>LVL {{ data.level }}</div> >LVL {{ data.level }}</div>
</div> </div>
<div <div
:style="{backgroundImage: `url('https://ddragon.leagueoflegends.com/cdn/${$patch}/img/champion/${data.champion.id}.png')`}" :style="{backgroundImage: `url('https://ddragon.leagueoflegends.com/cdn/${version}/img/champion/${data.champion.id}.png')`}"
class="ml-2 w-16 h-16 crop-champion bg-blue-1000 rounded-lg" class="ml-2 w-16 h-16 crop-champion bg-blue-1000 rounded-lg"
></div> ></div>
<div class="ml-2 flex flex-col justify-around"> <div class="ml-2 flex flex-col justify-around">
@ -123,7 +123,7 @@
>{{ ally.name }}</router-link> >{{ ally.name }}</router-link>
<div <div
:class="index !== 0 ? '-mt-1': ''" :class="index !== 0 ? '-mt-1': ''"
:style="{backgroundImage: `url('https://ddragon.leagueoflegends.com/cdn/${$patch}/img/champion/${ally.champion.id}.png')`}" :style="{backgroundImage: `url('https://ddragon.leagueoflegends.com/cdn/${version}/img/champion/${ally.champion.id}.png')`}"
class="ml-1 w-6 h-6 bg-blue-1000 bg-center bg-cover rounded-full overflow-hidden" class="ml-1 w-6 h-6 bg-blue-1000 bg-center bg-cover rounded-full overflow-hidden"
></div> ></div>
<div <div
@ -132,7 +132,7 @@
></div> ></div>
<div <div
:class="index !== 0 ? '-mt-1' : ''" :class="index !== 0 ? '-mt-1' : ''"
:style="{backgroundImage: `url('https://ddragon.leagueoflegends.com/cdn/${$patch}/img/champion/${data.enemyTeam[index].champion.id}.png')`}" :style="{backgroundImage: `url('https://ddragon.leagueoflegends.com/cdn/${version}/img/champion/${data.enemyTeam[index].champion.id}.png')`}"
class="w-6 h-6 bg-blue-1000 bg-center bg-cover rounded-full" class="w-6 h-6 bg-blue-1000 bg-center bg-cover rounded-full"
></div> ></div>
<router-link <router-link
@ -153,7 +153,7 @@
</template> </template>
<script> <script>
import { mapState } from 'vuex' import { mapState, mapGetters } from 'vuex'
export default { export default {
props: { props: {
@ -174,6 +174,7 @@ export default {
...mapState({ ...mapState({
roles: state => state.roles roles: state => state.roles
}), }),
...mapGetters('ddragon', ['version']),
}, },
methods: { methods: {

View file

@ -1,6 +1,7 @@
import { timeDifference, getRankImg } from '@/helpers/functions.js' import { timeDifference, getRankImg } from '@/helpers/functions.js'
import { maps, gameModes } from '@/data/data.js' import { maps, gameModes } from '@/data/data.js'
import summonersJSON from '@/data/summoner.json' import summonersJSON from '@/data/summoner.json'
import store from '@/store'
/** /**
* Return all the infos about a list of matches built with the Riot API data * Return all the infos about a list of matches built with the Riot API data
@ -53,7 +54,7 @@ function getItemLink(id) {
if (id === 0) { if (id === 0) {
return null return null
} }
return `url('https://ddragon.leagueoflegends.com/cdn/${process.env.VUE_APP_PATCH}/img/item/${id}.png')` return `url('https://ddragon.leagueoflegends.com/cdn/${store.getters['ddragon/version']}/img/item/${id}.png')`
} }
function getLeagueData(uniqueLeagues, leagueData) { function getLeagueData(uniqueLeagues, leagueData) {
@ -67,5 +68,5 @@ function getLeagueData(uniqueLeagues, leagueData) {
function getSummonerLink(id) { function getSummonerLink(id) {
const spellName = Object.entries(summonersJSON.data).find(([, spell]) => Number(spell.key) === id)[0] const spellName = Object.entries(summonersJSON.data).find(([, spell]) => Number(spell.key) === id)[0]
return `https://ddragon.leagueoflegends.com/cdn/${process.env.VUE_APP_PATCH}/img/spell/${spellName}.png` return `https://ddragon.leagueoflegends.com/cdn/${store.getters['ddragon/version']}/img/spell/${spellName}.png`
} }

View file

@ -15,9 +15,6 @@ Vue.use(VueAxios)
Vue.component('v-icon', Icon) Vue.component('v-icon', Icon)
Vue.prototype.$patch = process.env.VUE_APP_PATCH
new Vue({ new Vue({
router, router,
store, store,

View file

@ -4,7 +4,8 @@ export const namespaced = true
export const state = { export const state = {
champions: [], champions: [],
runes: [] runes: [],
version: ''
} }
export const mutations = { export const mutations = {
@ -13,6 +14,9 @@ export const mutations = {
}, },
PUSH_RUNES(state, runes) { PUSH_RUNES(state, runes) {
state.runes = runes state.runes = runes
},
PUSH_VERSION(state, version) {
state.version = version
} }
} }
@ -30,8 +34,13 @@ export const actions = {
const resp = await axios(({ url: 'ddragon', data: { endpoint }, method: 'POST' })) const resp = await axios(({ url: 'ddragon', data: { endpoint }, method: 'POST' }))
commit('PUSH_RUNES', resp.data) commit('PUSH_RUNES', resp.data)
}, },
getVersion({ commit }, version) {
commit('PUSH_VERSION', version)
},
} }
export const getters = { export const getters = {
areChampionsLoaded: state => !!state.champions.Aatrox areChampionsLoaded: state => !!state.champions.Aatrox,
version: state => state.version
} }

View file

@ -58,6 +58,7 @@ export const actions = {
try { try {
const resp = await axios(({ url: 'api', data: { summoner, region }, method: 'POST' })) const resp = await axios(({ url: 'api', data: { summoner, region }, method: 'POST' }))
if (resp.data) { if (resp.data) {
dispatch('ddragon/getVersion', resp.data.version, { root: true })
const infos = createSummonerData(resp.data) const infos = createSummonerData(resp.data)
commit('SUMMONER_FOUND', infos) commit('SUMMONER_FOUND', infos)
} else { } else {

View file

@ -112,7 +112,7 @@ export default {
computed: { computed: {
getSummonerIcon() { getSummonerIcon() {
return `url(https://ddragon.leagueoflegends.com/cdn/${this.$patch}/img/profileicon/${this.summonerInfos.account.profileIconId}.png) center/cover` return `url(https://ddragon.leagueoflegends.com/cdn/${this.version}/img/profileicon/${this.summonerInfos.account.profileIconId}.png) center/cover`
}, },
summoner() { summoner() {
return this.$route.params.name return this.$route.params.name
@ -123,6 +123,7 @@ export default {
...mapState({ ...mapState({
summonerInfos: state => state.summoner.infos summonerInfos: state => state.summoner.infos
}), }),
...mapGetters('ddragon', ['version']),
...mapGetters('summoner', ['matchesLoading', 'moreMatchesToFetch', 'summonerFound', 'summonerNotFound', 'summonerLoading']) ...mapGetters('summoner', ['matchesLoading', 'moreMatchesToFetch', 'summonerFound', 'summonerNotFound', 'summonerLoading'])
}, },

View file

@ -1,4 +1,4 @@
# Adonis API application # LeagueStats Backend
This is the boilerplate for creating an API server in AdonisJs, it comes pre-configured with. This is the boilerplate for creating an API server in AdonisJs, it comes pre-configured with.

View file

@ -42,6 +42,9 @@ class SummonerController {
// MATCHES DETAILS // MATCHES DETAILS
const gameIds = matchList.slice(0, 10).map(({ gameId }) => gameId) const gameIds = matchList.slice(0, 10).map(({ gameId }) => gameId)
finalJSON.matchesDetails = await MatchHelper.getMatches(account, gameIds) finalJSON.matchesDetails = await MatchHelper.getMatches(account, gameIds)
// PATCH VERSION
finalJSON.version = Jax.DDragon.Version
} catch (error) { } catch (error) {
console.log('username not found') console.log('username not found')
console.log(error) console.log(error)