code refactor

This commit is contained in:
MaysWind
2021-01-04 23:52:57 +08:00
parent 5077b93105
commit b7589e57f2
20 changed files with 561 additions and 293 deletions
+2 -2
View File
@@ -65,7 +65,7 @@ export default {
self.$webauthn.registerCredential(
self.$user.getUserAppLockState(),
self.$user.getUserInfo(),
self.$store.state.currentUserInfo,
).then(({ id }) => {
self.$hideLoading();
@@ -120,7 +120,7 @@ export default {
return;
}
const user = this.$user.getUserInfo();
const user = this.$store.state.currentUserInfo;
if (!user || !user.username) {
this.$alert('An error has occurred');
+1 -1
View File
@@ -55,7 +55,7 @@ export default {
const self = this;
return {
baseCurrency: self.$user.getUserInfo() ? self.$user.getUserInfo().defaultCurrency : self.$t('default.currency'),
baseCurrency: self.$store.getters.currentUserDefaultCurrency || self.$t('default.currency'),
exchangeRatesData: self.$exchangeRates.getExchangeRates(),
updating: false
};
+14 -74
View File
@@ -174,57 +174,30 @@ export default {
self.logining = true;
self.$showLoading(() => self.logining);
self.$services.authorize({
self.$store.dispatch('authorize', {
loginName: self.username,
password: self.password
}).then(response => {
}).then(authResponse => {
self.logining = false;
self.$hideLoading();
const data = response.data;
if (!data || !data.success || !data.result || !data.result.token) {
self.$toast('Unable to login');
return;
}
if (data.result.need2FA) {
self.tempToken = data.result.token;
if (authResponse.need2FA) {
self.tempToken = authResponse.token;
self.show2faSheet = true;
return;
}
if (self.$settings.isEnableApplicationLock() || self.$user.getUserAppLockState()) {
const appLockState = self.$user.getUserAppLockState();
if (!appLockState || appLockState.username !== data.result.user.username) {
self.$user.clearTokenAndUserInfo(true);
self.$settings.setEnableApplicationLock(false);
self.$settings.setEnableApplicationLockWebAuthn(false);
self.$user.clearWebAuthnConfig();
}
}
self.$user.updateTokenAndUserInfo(data.result);
if (self.$settings.isAutoUpdateExchangeRatesData()) {
self.$services.autoRefreshLatestExchangeRates();
}
router.refreshPage();
}).catch(error => {
self.$logger.error('failed to login', error);
self.logining = false;
self.$hideLoading();
if (error && error.processed) {
return;
}
if (error.response && error.response.data && error.response.data.errorMessage) {
self.$toast({ error: error.response.data });
} else if (!error.processed) {
self.$toast('Unable to login');
if (!error.processed) {
self.$toast(error.message || error);
}
});
},
@@ -257,42 +230,13 @@ export default {
self.verifying = true;
self.$showLoading(() => self.verifying);
let promise = null;
if (self.twoFAVerifyType === 'backupcode') {
promise = self.$services.authorize2FAByBackupCode({
recoveryCode: self.backupCode,
token: self.tempToken
});
} else {
promise = self.$services.authorize2FA({
passcode: self.passcode,
token: self.tempToken
});
}
promise.then(response => {
self.$store.dispatch('authorize2FA', {
token: self.tempToken,
passcode: self.twoFAVerifyType === 'passcode' ? self.passcode : null,
recoveryCode: self.twoFAVerifyType === 'backupcode' ? self.backupCode : null
}).then(() => {
self.verifying = false;
self.$hideLoading();
const data = response.data;
if (!data || !data.success || !data.result || !data.result.token) {
self.$toast('Unable to verify');
return;
}
if (self.$settings.isEnableApplicationLock() || self.$user.getUserAppLockState()) {
const appLockState = self.$user.getUserAppLockState();
if (!appLockState || appLockState.username !== data.result.user.username) {
self.$user.clearTokenAndUserInfo(true);
self.$settings.setEnableApplicationLock(false);
self.$settings.setEnableApplicationLockWebAuthn(false);
self.$user.clearWebAuthnConfig();
}
}
self.$user.updateTokenAndUserInfo(data.result);
if (self.$settings.isAutoUpdateExchangeRatesData()) {
self.$services.autoRefreshLatestExchangeRates();
@@ -301,17 +245,13 @@ export default {
self.show2faSheet = false;
router.refreshPage();
}).catch(error => {
self.$logger.error('failed to verify 2fa', error);
self.verifying = false;
self.$hideLoading();
if (error.response && error.response.data && error.response.data.errorMessage) {
self.$toast({ error: error.response.data });
} else if (!error.processed) {
self.$toast('Unable to verify');
if (!error.processed) {
self.$toast(error.message || error);
}
})
});
},
switch2FAVerifyType() {
if (this.twoFAVerifyType === 'passcode') {
+6 -25
View File
@@ -86,7 +86,6 @@ export default {
const self = this;
return {
currentNickName: self.getCurrentUserNickName(),
isEnableApplicationLock: this.$settings.isEnableApplicationLock(),
exchangeRatesLastUpdateDate: self.getExchangeRatesLastUpdateDate(),
logouting: false
@@ -108,6 +107,9 @@ export default {
this.exchangeRatesLastUpdateDate = this.getExchangeRatesLastUpdateDate();
}
},
currentNickName() {
return this.$store.getters.currentUserNickname || this.$t('User');
},
isDataExportingEnabled() {
return this.$settings.isDataExportingEnabled();
},
@@ -168,14 +170,9 @@ export default {
},
methods: {
onPageAfterIn() {
this.currentNickName = this.getCurrentUserNickName();
this.isEnableApplicationLock = this.$settings.isEnableApplicationLock();
this.exchangeRatesLastUpdateDate = this.getExchangeRatesLastUpdateDate();
},
getCurrentUserNickName() {
const userInfo = this.$user.getUserInfo() || {};
return userInfo.nickname || userInfo.username || this.$t('User');
},
getExchangeRatesLastUpdateDate() {
const exchangeRates = this.$exchangeRates.getExchangeRates();
return exchangeRates && exchangeRates.date ? this.$moment(exchangeRates.date).format(this.$t('format.date.long')) : '';
@@ -188,37 +185,21 @@ export default {
self.logouting = true;
self.$showLoading(() => self.logouting);
self.$services.logout().then(response => {
self.$store.dispatch('logout').then(() => {
self.logouting = false;
self.$hideLoading();
const data = response.data;
if (!data || !data.success || !data.result) {
self.$toast('Unable to logout');
return;
}
self.$user.clearTokenAndUserInfo(true);
self.$user.clearWebAuthnConfig();
self.$exchangeRates.clearExchangeRates();
self.$settings.clearSettings();
self.$locale.init();
router.navigate('/');
}).catch(error => {
self.$logger.error('failed to log out', error);
self.logouting = false;
self.$hideLoading();
if (error && error.processed) {
return;
}
if (error.response && error.response.data && error.response.data.errorMessage) {
self.$toast({ error: error.response.data });
} else if (!error.processed) {
self.$toast('Unable to logout');
if (!error.processed) {
self.$toast(error.message || error);
}
});
});
+6 -28
View File
@@ -152,31 +152,13 @@ export default {
self.submitting = true;
self.$showLoading(() => self.submitting);
self.$services.register({
username: self.user.username,
password: self.user.password,
email: self.user.email,
nickname: self.user.nickname,
defaultCurrency: self.user.defaultCurrency
}).then(response => {
self.$store.dispatch('register', {
user: self.user
}).then(() => {
self.submitting = false;
self.$hideLoading();
const data = response.data;
if (!data || !data.success || !data.result) {
self.$toast('Unable to sign up');
return;
}
if (self.$settings.isEnableApplicationLock()) {
self.$settings.setEnableApplicationLock(false);
self.$settings.setEnableApplicationLockWebAuthn(false);
self.$user.clearWebAuthnConfig();
}
if (self.$utilities.isString(data.result.token)) {
self.$user.updateTokenAndUserInfo(data.result);
if (self.$user.isUserLogined()) {
if (self.$settings.isAutoUpdateExchangeRatesData()) {
self.$services.autoRefreshLatestExchangeRates();
}
@@ -189,15 +171,11 @@ export default {
router.navigate('/category/default?type=0');
});
}).catch(error => {
self.$logger.error('failed to sign up', error);
self.submitting = false;
self.$hideLoading();
if (error.response && error.response.data && error.response.data.errorMessage) {
self.$toast({ error: error.response.data });
} else if (!error.processed) {
self.$toast('Unable to sign up');
if (!error.processed) {
self.$toast(error.message || error);
}
});
}
+5 -4
View File
@@ -51,13 +51,13 @@ export default {
self.$showLoading();
self.$webauthn.verifyCredential(
self.$user.getUserInfo(),
self.$store.state.currentUserInfo,
self.$user.getWebAuthnCredentialId()
).then(({ id, userName, userSecret }) => {
self.$hideLoading();
self.$user.unlockTokenByWebAuthn(id, userName, userSecret);
self.$services.refreshToken();
self.$store.dispatch('refreshTokenAndRevokeOldToken');
if (self.$settings.isAutoUpdateExchangeRatesData()) {
self.$services.autoRefreshLatestExchangeRates();
@@ -92,7 +92,7 @@ export default {
}
const router = this.$f7router;
const user = this.$user.getUserInfo();
const user = this.$store.state.currentUserInfo;
if (!user || !user.username) {
this.$alert('An error has occurred');
@@ -101,7 +101,7 @@ export default {
try {
this.$user.unlockTokenByPinCode(user.username, this.pinCode);
this.$services.refreshToken();
this.$store.dispatch('refreshTokenAndRevokeOldToken');
if (this.$settings.isAutoUpdateExchangeRatesData()) {
this.$services.autoRefreshLatestExchangeRates();
@@ -120,6 +120,7 @@ export default {
self.$confirm('Are you sure you want to re-login?', () => {
self.$user.clearTokenAndUserInfo(true);
self.$user.clearWebAuthnConfig();
self.$store.dispatch('clearUserInfoState');
self.$exchangeRates.clearExchangeRates();
self.$settings.clearSettings();
self.$locale.init();
+4 -4
View File
@@ -320,7 +320,7 @@ export default {
name: '',
icon: self.$constants.icons.defaultAccountIconId,
color: self.$constants.colors.defaultAccountColor,
currency: self.$user.getUserInfo() ? self.$user.getUserInfo().defaultCurrency : self.$t('default.currency'),
currency: self.$store.getters.currentUserDefaultCurrency || self.$t('default.currency'),
balance: 0,
comment: '',
visible: true,
@@ -447,9 +447,9 @@ export default {
category: null,
type: null,
name: '',
icon: this.account.icon,
color: this.account.color,
currency: self.$user.getUserInfo() ? self.$user.getUserInfo().defaultCurrency : self.$t('default.currency'),
icon: self.account.icon,
color: self.account.color,
currency: self.$store.getters.currentUserDefaultCurrency || self.$t('default.currency'),
balance: 0,
comment: '',
visible: true,
+1 -1
View File
@@ -214,7 +214,7 @@ export default {
},
computed: {
defaultCurrency() {
return this.$user.getUserInfo() ? this.$user.getUserInfo().defaultCurrency : this.$t('default.currency');
return this.$store.getters.currentUserDefaultCurrency || this.$t('default.currency');
},
allAccountCategories() {
return this.$constants.account.allCategories;
+1 -1
View File
@@ -308,7 +308,7 @@ export default {
}
},
defaultCurrency() {
return this.$user.getUserInfo() ? this.$user.getUserInfo().defaultCurrency : this.$t('default.currency');
return this.$store.getters.currentUserDefaultCurrency || this.$t('default.currency');
},
hasAvailableExpenseCategories() {
if (!this.allCategories || !this.allCategories[this.$constants.category.allCategoryTypes.Expense] || !this.allCategories[this.$constants.category.allCategoryTypes.Expense].length) {
+1 -1
View File
@@ -394,7 +394,7 @@ export default {
},
computed: {
defaultCurrency() {
return this.$user.getUserInfo() ? this.$user.getUserInfo().defaultCurrency : this.$t('default.currency');
return this.$store.getters.currentUserDefaultCurrency || this.$t('default.currency');
},
noTransaction() {
for (let i = 0; i < this.transactions.length; i++) {
+21 -59
View File
@@ -56,25 +56,14 @@ export default {
self.loading = true;
self.$services.getTokens().then(response => {
const data = response.data;
if (!data || !data.success || !data.result) {
self.$toast('Unable to get session list');
router.back();
return;
}
self.tokens = data.result;
self.$store.dispatch('getAllTokens').then(tokens => {
self.tokens = tokens;
self.loading = false;
}).catch(error => {
self.$logger.error('failed to load token list', error);
self.loading = false;
if (error.response && error.response.data && error.response.data.errorMessage) {
self.$toast({ error: error.response.data });
router.back();
} else if (!error.processed) {
self.$toast('Unable to get session list');
if (!error.processed) {
self.$toast(error.message || error);
router.back();
}
});
@@ -83,26 +72,19 @@ export default {
reload(done) {
const self = this;
self.$services.getTokens().then(response => {
done();
const data = response.data;
if (!data || !data.success || !data.result) {
self.$toast('Unable to get session list');
return;
self.$store.dispatch('getAllTokens').then(tokens => {
if (done) {
done();
}
self.tokens = data.result;
self.tokens = tokens;
}).catch(error => {
self.$logger.error('failed to reload token list', error);
if (done) {
done();
}
done();
if (error.response && error.response.data && error.response.data.errorMessage) {
self.$toast({ error: error.response.data });
} else if (!error.processed) {
self.$toast('Unable to get session list');
if (!error.processed) {
self.$toast(error.message || error);
}
});
},
@@ -114,16 +96,10 @@ export default {
self.$confirm('Are you sure you want to logout from this session?', () => {
self.$showLoading();
self.$services.revokeToken({
self.$store.dispatch('revokeToken', {
tokenId: token.tokenId
}).then(response => {
}).then(() => {
self.$hideLoading();
const data = response.data;
if (!data || !data.success || !data.result) {
self.$toast('Unable to logout from this session');
return;
}
app.swipeout.delete($$(`#${self.$options.filters.tokenDomId(token)}`), () => {
for (let i = 0; i < self.tokens.length; i++) {
@@ -133,14 +109,10 @@ export default {
}
});
}).catch(error => {
self.$logger.error('failed to revoke token', error);
self.$hideLoading();
if (error.response && error.response.data && error.response.data.errorMessage) {
self.$toast({error: error.response.data});
} else if (!error.processed) {
self.$toast('Unable to logout from this session');
if (!error.processed) {
self.$toast(error.message || error);
}
});
});
@@ -155,14 +127,8 @@ export default {
self.$confirm('Are you sure you want to logout all other sessions?', () => {
self.$showLoading();
self.$services.revokeAllTokens().then(response => {
self.$store.dispatch('revokeAllTokens').then(() => {
self.$hideLoading();
const data = response.data;
if (!data || !data.success || !data.result) {
self.$toast('Unable to logout all other sessions');
return;
}
for (let i = self.tokens.length - 1; i >= 0; i--) {
if (!self.tokens[i].isCurrent) {
@@ -172,14 +138,10 @@ export default {
self.$toast('You have logged out all other sessions');
}).catch(error => {
self.$logger.error('failed to revoke all tokens', error);
self.$hideLoading();
if (error.response && error.response.data && error.response.data.errorMessage) {
self.$toast({error: error.response.data});
} else if (!error.processed) {
self.$toast('Unable to logout all other sessions');
if (!error.processed) {
self.$toast(error.message || error);
}
});
});
+14 -46
View File
@@ -158,31 +158,21 @@ export default {
self.loading = true;
self.$services.getProfile().then(response => {
const data = response.data;
if (!data || !data.success || !data.result) {
self.$toast('Unable to get user profile');
router.back();
return;
}
self.oldProfile.email = data.result.email;
self.oldProfile.nickname = data.result.nickname;
self.oldProfile.defaultCurrency = data.result.defaultCurrency;
self.$store.dispatch('getCurrentUserProfile').then(profile => {
self.oldProfile.email = profile.email;
self.oldProfile.nickname = profile.nickname;
self.oldProfile.defaultCurrency = profile.defaultCurrency;
self.newProfile.email = self.oldProfile.email
self.newProfile.nickname = self.oldProfile.nickname;
self.newProfile.defaultCurrency = self.oldProfile.defaultCurrency;
self.loading = false;
}).catch(error => {
self.$logger.error('failed to get user profile', error);
self.loading = false;
if (error.response && error.response.data && error.response.data.errorMessage) {
self.$toast({ error: error.response.data });
router.back();
} else if (!error.processed) {
self.$toast('Unable to get user profile');
if (!error.processed) {
self.$toast(error.message || error);
router.back();
}
});
@@ -209,45 +199,23 @@ export default {
self.saving = true;
self.$showLoading(() => self.saving);
self.$services.updateProfile({
password: self.newProfile.password,
oldPassword: self.currentPassword,
email: self.newProfile.email,
nickname: self.newProfile.nickname,
defaultCurrency: self.newProfile.defaultCurrency
}).then(response => {
self.$store.dispatch('updateUserProfile', {
profile: self.newProfile,
currentPassword: self.currentPassword
}).then(() => {
self.saving = false;
self.$hideLoading();
self.currentPassword = '';
const data = response.data;
if (!data || !data.success || !data.result) {
self.$toast('Unable to update user profile');
return;
}
if (self.$utilities.isString(data.result.newToken)) {
self.$user.updateToken(data.result.newToken);
}
if (self.$utilities.isObject(data.result.user)) {
self.$user.updateUserInfo(data.result.user);
}
self.$toast('Your profile has been successfully updated');
router.back();
}).catch(error => {
self.$logger.error('failed to save user profile', error);
self.saving = false;
self.$hideLoading();
self.currentPassword = '';
if (error.response && error.response.data && error.response.data.errorMessage) {
self.$toast({ error: error.response.data });
} else if (!error.processed) {
self.$toast('Unable to update user profile');
if (!error.processed) {
self.$toast(error.message || error);
}
});
}