Ver a proveniência

Download backup async

pull/38/head
Kristijan Mitrovic há 4 anos
ascendente
cometimento
826e5a3bc9
2 ficheiros alterados com 29 adições e 8 eliminações
  1. +22
    -6
      src/_services/network.service.js
  2. +7
    -2
      src/_store/networks.module.js

+ 22
- 6
src/_services/network.service.js Ver ficheiro

@@ -19,7 +19,8 @@ export const networkService = {
deleteNetwork,
requestNetworkKeys,
retrieveNetworkKeys,
retrieveBackupPackage,
startBackupPackageDownload,
downloadBackupPackage,
getNetworkBackups,
getLogFlag, enableLog, disableLog
};
@@ -89,11 +90,26 @@ function retrieveNetworkKeys(userId, networkId, code, password, messages, errors
.then(netKeyObj => netKeyObj.data)
.then(util.handleDataToDownloadAsFile('restore.' + networkId + '.key', 'text/plain'));
}
function retrieveBackupPackage(userId, networkId, code, password, backupId, messages, errors) {
return fetch(
`${config.apiUrl}/users/${userId}/networks/${networkId}/actions/keys/${code}/backups/${backupId}/download`,
util.postWithAuth({ name: 'password', value: password })
).then(util.handleResponseToDownloadAsFile('backup.' + networkId + '.tgz.enc'));
function startBackupPackageDownload(userId, networkId, code, password, backupId, messages, errors) {
return fetch(`${config.apiUrl}/users/${userId}/networks/${networkId}/actions/keys/${code}/backups/start?backupId=${backupId}`,
util.postWithAuth({ name: 'password', value: password }))
.then(util.handleCrudResponse(messages, errors))
// ).then(util.handleResponseToDownloadAsFile('backup.' + networkId + '.tgz.enc'));
}

function downloadBackupPackage(userId, networkId, code, messages, errors) {
return fetch(`${config.apiUrl}/users/${userId}/networks/${networkId}/actions/keys/${code}/backups/download`,
util.postWithAuth({ name: 'password', value: password }))
.then(response => {
if (response.status == 202) {
// accepted, but not yet done
setTimeout(() => downloadBackupPackage(userId, networkId, code, messages, errors), 5000);
} else if (response.ok) {
return util.downloadBlob(response.blob(), ('backup.' + networkId + '.tgz.enc'));
} else {
return response;
}
});
}

function getNetworkBackups(userId, networkId, messages, errors) {


+ 7
- 2
src/_store/networks.module.js Ver ficheiro

@@ -158,8 +158,13 @@ const actions = {

retrieveLatestBackupPackage({ commit }, {userId, networkId, code, password, messages, errors}) {
commit('retrieveLatestBackupPackageRequest');
networkService.retrieveBackupPackage(userId, networkId, code, password, state.backups[0].uuid, messages, errors)
.then(ok => commit('retrieveLatestBackupPackageSuccess'),
networkService.startBackupPackageDownload(userId, networkId, code, password, state.backups[0].uuid,
messages, errors)
.then(ok => {
networkService.downloadBackupPackage(userId, networkId, code, messages, errors)
.then(ok => commit('retrieveLatestBackupPackageSuccess'),
error => commit('retrieveLatestBackupPackageFailure', error));
},
error => commit('retrieveLatestBackupPackageFailure', error));
},



Carregando…
Cancelar
Guardar