in ui/projects/streampipes/shared-ui/src/lib/dialog/data-download-dialog/services/data-export.service.ts [44:105]
public downloadData(
exportConfig: ExportConfig,
dataDownloadDialogModel: DataDownloadDialogModel,
) {
let downloadRequest;
if (
exportConfig.dataExportConfig.dataRangeConfiguration === 'visible'
) {
downloadRequest = this.dataLakeRestService.downloadQueriedData(
exportConfig.dataExportConfig.measurement,
exportConfig.formatExportConfig,
exportConfig.dataExportConfig.missingValueBehaviour,
this.generateQueryRequest(
exportConfig,
dataDownloadDialogModel,
),
);
} else {
// case for 'all' and 'customInverval'
let startTime,
endTime = undefined;
if (
exportConfig.dataExportConfig.dataRangeConfiguration ===
'customInterval'
) {
startTime =
exportConfig.dataExportConfig.dateRange.startDate.getTime();
endTime =
exportConfig.dataExportConfig.dateRange.endDate.getTime();
}
downloadRequest = this.dataLakeRestService.downloadRawData(
exportConfig.dataExportConfig.measurement,
exportConfig.formatExportConfig,
exportConfig.dataExportConfig.missingValueBehaviour,
startTime,
endTime,
);
}
downloadRequest.subscribe(event => {
let downloadProgress: DownloadProgress;
// progress
if (event.type === HttpEventType.DownloadProgress) {
downloadProgress = {
downloadedMBs: event.loaded / 1024 / 1014,
finished: false,
};
this.updateDownloadProgress.emit(downloadProgress);
}
// finished
if (event.type === HttpEventType.Response) {
this.createFile(event.body, exportConfig);
downloadProgress = {
downloadedMBs: event.loaded / 1024 / 1014,
finished: true,
};
this.updateDownloadProgress.emit(downloadProgress);
}
});
}