diff --git a/src/lib/services.js b/src/lib/services.js index b07a46ce..9adebf11 100644 --- a/src/lib/services.js +++ b/src/lib/services.js @@ -1,4 +1,5 @@ import axios from 'axios'; +import moment from 'moment'; import userState from "./userstate.js"; import exchangeRates from "./exchangeRates.js"; @@ -213,7 +214,13 @@ export default { getLatestExchangeRates: () => { return axios.get('v1/exchange_rates/latest.json'); }, - refreshLatestExchangeRates: () => { + autoRefreshLatestExchangeRates: () => { + const currentExchangeRateData = exchangeRates.getExchangeRates(); + + if (currentExchangeRateData && currentExchangeRateData.date === moment().format('YYYY-MM-DD')) { + return; + } + return axios.get('v1/exchange_rates/latest.json', { ignoreError: true }).then(response => { diff --git a/src/mobile-main.js b/src/mobile-main.js index a21effbe..4690a802 100644 --- a/src/mobile-main.js +++ b/src/mobile-main.js @@ -167,7 +167,7 @@ if (userstate.isUserLogined()) { // auto refresh exchange rates data if (settings.isAutoUpdateExchangeRatesData()) { - services.refreshLatestExchangeRates(); + services.autoRefreshLatestExchangeRates(); } new Vue({ diff --git a/src/views/mobile/Login.vue b/src/views/mobile/Login.vue index e9d27995..3257728b 100644 --- a/src/views/mobile/Login.vue +++ b/src/views/mobile/Login.vue @@ -188,7 +188,7 @@ export default { self.$user.updateTokenAndUserInfo(data.result); if (self.$settings.isAutoUpdateExchangeRatesData()) { - self.$services.refreshLatestExchangeRates(); + self.$services.autoRefreshLatestExchangeRates(); } router.navigate('/');