optimize user data export process

This commit is contained in:
MaysWind
2023-04-02 23:18:05 +08:00
parent 44ca940ca3
commit 33250d2f3d
9 changed files with 103 additions and 42 deletions
+2
View File
@@ -68,6 +68,7 @@ import {
getCurrentUserProfile,
updateUserProfile,
getUserDataStatistics,
getExportedUserData,
clearUserData,
clearUserInfoState,
resetState,
@@ -947,6 +948,7 @@ const stores = {
getCurrentUserProfile,
updateUserProfile,
getUserDataStatistics,
getExportedUserData,
clearUserData,
clearUserInfoState,
resetState,
+24
View File
@@ -307,6 +307,30 @@ export function getUserDataStatistics() {
});
}
export function getExportedUserData() {
return new Promise((resolve, reject) => {
services.getExportedUserData().then(response => {
if (response && response.headers && response.headers['content-type'] !== 'text/csv') {
reject({ message: 'Unable to get exported user data' });
return;
}
const blob = new Blob([response.data], { type: response.headers['content-type'] });
resolve(blob);
}).catch(error => {
logger.error('failed to get user statistics data', error);
if (error.response.headers['content-type'] === 'text/text' && error.response && error.response.data) {
reject({ message: 'error.' + error.response.data });
} else if (!error.processed) {
reject({ message: 'Unable to get exported user data' });
} else {
reject(error);
}
});
});
}
export function clearUserData(context, { password }) {
return new Promise((resolve, reject) => {
services.clearData({