From 5487882c157db4903d651667c486ddd1e36b6657 Mon Sep 17 00:00:00 2001 From: MaysWind Date: Wed, 18 Nov 2020 22:07:05 +0800 Subject: [PATCH] auto update exchange rates data only when current date does not equal to last updated date --- src/lib/services.js | 9 ++++++++- src/mobile-main.js | 2 +- src/views/mobile/Login.vue | 2 +- 3 files changed, 10 insertions(+), 3 deletions(-) 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('/');