diff --git a/src/_services/user.service.js b/src/_services/user.service.js index 87ace74..c5dc559 100644 --- a/src/_services/user.service.js +++ b/src/_services/user.service.js @@ -10,6 +10,7 @@ export const userService = { appLogin, logout, restore, + restoreFromPackage, forgotPassword, register, searchAccounts, @@ -77,6 +78,14 @@ function restore(shortKey, longKey, password, messages, errors) { .then(handleAuthResponse(messages, errors)); } +function restoreFromPackage(shortKey, backupFileRef, password, messages, errors) { + let formData = new FormData(); + formData.append('file', backupFileRef); + formData.append('password', password); + return fetch(`${config.apiUrl}/auth/restore/apply/${shortKey}`, util.putWithAuth(formData)) + .then(util.handleAuthResponse(messages, errors)); +} + function logout(messages, errors) { if (util.currentUser() === null) { console.log('userService.logout: already logged out'); diff --git a/src/_store/account.module.js b/src/_store/account.module.js index 81360f6..a20293e 100644 --- a/src/_store/account.module.js +++ b/src/_store/account.module.js @@ -164,6 +164,12 @@ const actions = { (error) => commit('restoreFailure', systemConfigs, error) ); }, + restoreFromPackage({ commit }, { shortKey, backupFileRef, password, systemConfigs, messages, errors }) { + commit('restoreRequest', systemConfigs); + userService.restoreFromPackage(shortKey, backupFileRef, password, messages, errors) + .then(ok => commit('restoreSuccess', systemConfigs), + error => commit('restoreFailure', systemConfigs, error)); + }, forgotPassword({ commit }, { username, messages, errors }) { commit('forgotPasswordRequest'); return userService.forgotPassword(username, messages, errors).then( diff --git a/src/auth/RestorePage.vue b/src/auth/RestorePage.vue index 5b87eec..88605f3 100644 --- a/src/auth/RestorePage.vue +++ b/src/auth/RestorePage.vue @@ -24,15 +24,29 @@ -