dynamic-display-shared
Version:
A library for dynamic view
123 lines • 16.2 kB
JavaScript
import { Inject, Injectable } from '@angular/core';
// import { ConfigurationService } from '../configuration/configuration.service';
// import { LoaderService } from '../loader.service';
// import { MessageService } from '../message.service';
import { AzurestorageService } from './azure-storage.service';
import { StorageService } from './storage.service';
import * as i0 from "@angular/core";
import * as i1 from "./azure-storage.service";
import * as i2 from "./storage.service";
export class AzureFileUploadBlService {
constructor(
// private azureFileUploadService: AzureFileUploadService,
blobService,
// private configService: ConfigurationService,
// private signalr: SignalRService,
// private loaderService: LoaderService,
// private messageService: MessageService,
storage, env) {
this.blobService = blobService;
this.storage = storage;
this.env = env;
// this.azureFile$ = this.azureFileSubject.asObservable();
}
ngOnDestroy() {
// need tis func because using untilDestroyed
}
// public startListenSignalrData() {
// this.signalrData$ = this.signalr.data$.pipe(untilDestroyed(this)).subscribe(
// (data => {
// if (data != null) {
// console.log('signalrData ', data);
// const d: IServiceBusMessage = data;
// if (this.currentFileName != null && this.currentFileName.indexOf(d.sourceFileName) !== -1) {
// const file: IAzureFile = { FilePath: d.targetUrl, FileName: d.sourceFileName };
// this.azureFileSubject.next(file);
// this.signalr.removeReceiveMessageListener();
// }
// }
// }));
// this.signalrError$ = this.signalr.error$.subscribe(
// (err => {
// this.showErrr(err);
// }));
// }
// showErrr(err) {
// if (err != null && err !== '') {
// this.loaderService.letHide = true;
// this.loaderService.hide();
// console.log('signalrError ', err);
// const m: IMessage = { text: 'שגיאה בהעלאת הקובץ.' };
// this.messageService.show(m);
// }
// }
uploadFileByToken(file, fileName, mimeType) {
// this.signalr.startConnection().then(connectionId => {
// console.log('SIGNALR ConnectionId', connectionId);
this.currentFileName = fileName;
const fileToSAS = { FileName: fileName, MimeType: mimeType };
this.getSasTokenWrite(fileName).subscribe(sas => {
this.uploadFile(file, sas, fileName);
}, err => {
console.log(err);
});
// }).catch(
// err => {
// this.showErrr(err);
// }
// );
}
getSasTokenWrite(file) {
// return this.azureFileUploadService.getSasTokenWrite(file);
return this.storage.getSAS(file);
}
uploadFile(file, token, fileName) {
const Config = {
sas: token,
storageAccount: this.env.azureStorageConfig.storageAccount,
containerName: this.env.azureStorageConfig.containerName
};
const res = false;
if (file !== null) {
const fileTitle = fileName == null ? file.name : fileName;
const baseUrl = 'https://' + Config.storageAccount + '/' + Config.containerName + '/' + fileTitle;
this.uploadConfig = {
baseUrl,
blockSize: 1024 * 500,
sasToken: Config.sas,
file,
complete: () => {
console.log('Transfer completed !');
// this.saveFileSuccess(isSave);
},
error: (err) => {
console.log('Transfer Error:', err);
this.saveFileError(err);
},
progress: (percent) => {
this.percent = percent;
}
};
this.blobService.upload(this.uploadConfig);
}
}
saveFileError(error) {
console.log('saveFileError', error);
}
}
AzureFileUploadBlService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: AzureFileUploadBlService, deps: [{ token: i1.AzurestorageService }, { token: i2.StorageService }, { token: 'env' }], target: i0.ɵɵFactoryTarget.Injectable });
AzureFileUploadBlService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: AzureFileUploadBlService, providedIn: 'root' });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.4", ngImport: i0, type: AzureFileUploadBlService, decorators: [{
type: Injectable,
args: [{
providedIn: 'root'
}]
}], ctorParameters: function () { return [{ type: i1.AzurestorageService }, { type: i2.StorageService }, { type: undefined, decorators: [{
type: Inject,
args: ['env']
}] }]; } });
export class UploadParams {
}
export class UploadConfig {
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXp1cmUtZmlsZS11cGxvYWQtYmwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2R5bmFtaWMtZGlzcGxheS1zaGFyZWQvc3JjL2xpYi9zaGFyZWQvZG9jdW1lbnRzL2F6dXJlLWZpbGUtdXBsb2FkLWJsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFTOUQsaUZBQWlGO0FBQ2pGLHFEQUFxRDtBQUNyRCx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7O0FBTW5ELE1BQU0sT0FBTyx3QkFBd0I7SUFXbkM7SUFDRSwwREFBMEQ7SUFDbEQsV0FBZ0M7SUFDeEMsK0NBQStDO0lBQy9DLG1DQUFtQztJQUNuQyx3Q0FBd0M7SUFDeEMsMENBQTBDO0lBQ2xDLE9BQXVCLEVBQ04sR0FBUTtRQU56QixnQkFBVyxHQUFYLFdBQVcsQ0FBcUI7UUFLaEMsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFDTixRQUFHLEdBQUgsR0FBRyxDQUFLO1FBQ2pDLDBEQUEwRDtJQUM1RCxDQUFDO0lBQ0QsV0FBVztRQUNULDZDQUE2QztJQUMvQyxDQUFDO0lBQ0Qsb0NBQW9DO0lBQ3BDLGlGQUFpRjtJQUNqRixpQkFBaUI7SUFDakIsNEJBQTRCO0lBQzVCLDZDQUE2QztJQUM3Qyw4Q0FBOEM7SUFDOUMsdUdBQXVHO0lBQ3ZHLDRGQUE0RjtJQUM1Riw4Q0FBOEM7SUFDOUMseURBQXlEO0lBQ3pELFlBQVk7SUFDWixVQUFVO0lBQ1YsV0FBVztJQUNYLHdEQUF3RDtJQUN4RCxnQkFBZ0I7SUFDaEIsNEJBQTRCO0lBQzVCLFdBQVc7SUFDWCxJQUFJO0lBQ0osa0JBQWtCO0lBQ2xCLHFDQUFx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QVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBb0JJLE1BQU07MkJBQUMsS0FBSzs7QUE0RmpCLE1BQU0sT0FBTyxZQUFZO0NBSXhCO0FBQ0QsTUFBTSxPQUFPLFlBQVk7Q0FReEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG4vLyBpbXBvcnQgeyBTaWduYWxSU2VydmljZSB9IGZyb20gJy4vc2lnbmFsLXIuc2VydmljZSc7XHJcbi8vIGltcG9ydCB7IFVwbG9hZFBhcmFtcywgVXBsb2FkQ29uZmlnLCBJTWVzc2FnZSwgSVNlcnZpY2VCdXNNZXNzYWdlIH0gZnJvbSAnc3JjL2FwcC9pbnRlcmZhY2VzJztcclxuXHJcbi8vIGltcG9ydCB7IEF6dXJlRmlsZVVwbG9hZFNlcnZpY2UgfSBmcm9tICcuL2F6dXJlLWZpbGUtdXBsb2FkLnNlcnZpY2UnO1xyXG4vLyBpbXBvcnQgeyB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ25neC10YWtlLXVudGlsLWRlc3Ryb3knO1xyXG4vLyBpbXBvcnQgeyBGaWxlVG9Ub2tlbiwgSUF6dXJlRmlsZSB9IGZyb20gJ3NyYy9hcHAvaW50ZXJmYWNlcy9GaWxlJztcclxuLy8gaW1wb3J0IHsgQmFzZVZpZXdNb2RlbCB9IGZyb20gJ3NyYy9hcHAvaW50ZXJmYWNlcy9tb2RlbHMvQmFzZVZpZXdNb2RlbCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG4vLyBpbXBvcnQgeyBDb25maWd1cmF0aW9uU2VydmljZSB9IGZyb20gJy4uL2NvbmZpZ3VyYXRpb24vY29uZmlndXJhdGlvbi5zZXJ2aWNlJztcclxuLy8gaW1wb3J0IHsgTG9hZGVyU2VydmljZSB9IGZyb20gJy4uL2xvYWRlci5zZXJ2aWNlJztcclxuLy8gaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi9tZXNzYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBenVyZXN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9henVyZS1zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vc3RvcmFnZS5zZXJ2aWNlJztcclxuXHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBenVyZUZpbGVVcGxvYWRCbFNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuICAvLyBwcml2YXRlIGF6dXJlRmlsZVN1YmplY3Q6IEJlaGF2aW9yU3ViamVjdDxJQXp1cmVGaWxlPiA9IG5ldyBCZWhhdmlvclN1YmplY3QobnVsbCk7XHJcbiAgLy8gcHVibGljIGF6dXJlRmlsZSQ6IE9ic2VydmFibGU8SUF6dXJlRmlsZT47XHJcblxyXG4gIHNpZ25hbHJEYXRhJDogYW55O1xyXG4gIHNpZ25hbHJFcnJvciQ6IGFueTtcclxuICB1cGxvYWRDb25maWchOiBVcGxvYWRDb25maWc7XHJcbiAgcGVyY2VudCE6IG51bWJlcjtcclxuICBjdXJyZW50RmlsZU5hbWUhOiBzdHJpbmc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgLy8gcHJpdmF0ZSBhenVyZUZpbGVVcGxvYWRTZXJ2aWNlOiBBenVyZUZpbGVVcGxvYWRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBibG9iU2VydmljZTogQXp1cmVzdG9yYWdlU2VydmljZSxcclxuICAgIC8vIHByaXZhdGUgY29uZmlnU2VydmljZTogQ29uZmlndXJhdGlvblNlcnZpY2UsXHJcbiAgICAvLyBwcml2YXRlIHNpZ25hbHI6IFNpZ25hbFJTZXJ2aWNlLFxyXG4gICAgLy8gcHJpdmF0ZSBsb2FkZXJTZXJ2aWNlOiBMb2FkZXJTZXJ2aWNlLFxyXG4gICAgLy8gcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHN0b3JhZ2U6IFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgQEluamVjdCgnZW52JykgcHJvdGVjdGVkIGVudjogYW55KSB7XHJcbiAgICAvLyB0aGlzLmF6dXJlRmlsZSQgPSB0aGlzLmF6dXJlRmlsZVN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XHJcbiAgfVxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgLy8gbmVlZCB0aXMgZnVuYyBiZWNhdXNlIHVzaW5nIHVudGlsRGVzdHJveWVkXHJcbiAgfVxyXG4gIC8vIHB1YmxpYyBzdGFydExpc3RlblNpZ25hbHJEYXRhKCkge1xyXG4gIC8vICAgdGhpcy5zaWduYWxyRGF0YSQgPSB0aGlzLnNpZ25hbHIuZGF0YSQucGlwZSh1bnRpbERlc3Ryb3llZCh0aGlzKSkuc3Vic2NyaWJlKFxyXG4gIC8vICAgICAoZGF0YSA9PiB7XHJcbiAgLy8gICAgICAgaWYgKGRhdGEgIT0gbnVsbCkge1xyXG4gIC8vICAgICAgICAgY29uc29sZS5sb2coJ3NpZ25hbHJEYXRhICcsIGRhdGEpO1xyXG4gIC8vICAgICAgICAgY29uc3QgZDogSVNlcnZpY2VCdXNNZXNzYWdlID0gZGF0YTtcclxuICAvLyAgICAgICAgIGlmICh0aGlzLmN1cnJlbnRGaWxlTmFtZSAhPSBudWxsICYmIHRoaXMuY3VycmVudEZpbGVOYW1lLmluZGV4T2YoZC5zb3VyY2VGaWxlTmFtZSkgIT09IC0xKSB7XHJcbiAgLy8gICAgICAgICAgIGNvbnN0IGZpbGU6IElBenVyZUZpbGUgPSB7IEZpbGVQYXRoOiBkLnRhcmdldFVybCwgRmlsZU5hbWU6IGQuc291cmNlRmlsZU5hbWUgfTtcclxuICAvLyAgICAgICAgICAgdGhpcy5henVyZUZpbGVTdWJqZWN0Lm5leHQoZmlsZSk7XHJcbiAgLy8gICAgICAgICAgIHRoaXMuc2lnbmFsci5yZW1vdmVSZWNlaXZlTWVzc2FnZUxpc3RlbmVyKCk7XHJcbiAgLy8gICAgICAgICB9XHJcbiAgLy8gICAgICAgfVxyXG4gIC8vICAgICB9KSk7XHJcbiAgLy8gICB0aGlzLnNpZ25hbHJFcnJvciQgPSB0aGlzLnNpZ25hbHIuZXJyb3IkLnN1YnNjcmliZShcclxuICAvLyAgICAgKGVyciA9PiB7XHJcbiAgLy8gICAgICAgdGhpcy5zaG93RXJycihlcnIpO1xyXG4gIC8vICAgICB9KSk7XHJcbiAgLy8gfVxyXG4gIC8vIHNob3dFcnJyKGVycikge1xyXG4gIC8vICAgaWYgKGVyciAhPSBudWxsICYmIGVyciAhPT0gJycpIHtcclxuICAvLyAgICAgdGhpcy5sb2FkZXJTZXJ2aWNlLmxldEhpZGUgPSB0cnVlO1xyXG4gIC8vICAgICB0aGlzLmxvYWRlclNlcnZpY2UuaGlkZSgpO1xyXG4gIC8vICAgICBjb25zb2xlLmxvZygnc2lnbmFsckVycm9yICcsIGVycik7XHJcbiAgLy8gICAgIGNvbnN0IG06IElNZXNzYWdlID0geyB0ZXh0OiAn16nXkteZ15DXlCDXkdeU16LXnNeQ16og15TXp9eV15HXpS4nIH07XHJcbiAgLy8gICAgIHRoaXMubWVzc2FnZVNlcnZpY2Uuc2hvdyhtKTtcclxuXHJcbiAgLy8gICB9XHJcbiAgLy8gfVxyXG5cclxuICB1cGxvYWRGaWxlQnlUb2tlbihmaWxlOiBGaWxlLCBmaWxlTmFtZTogc3RyaW5nLCBtaW1lVHlwZTogc3RyaW5nKSB7XHJcbiAgICAvLyB0aGlzLnNpZ25hbHIuc3RhcnRDb25uZWN0aW9uKCkudGhlbihjb25uZWN0aW9uSWQgPT4ge1xyXG4gICAgLy8gY29uc29sZS5sb2coJ1NJR05BTFIgQ29ubmVjdGlvbklkJywgY29ubmVjdGlvbklkKTtcclxuICAgIHRoaXMuY3VycmVudEZpbGVOYW1lID0gZmlsZU5hbWU7XHJcbiAgICBjb25zdCBmaWxlVG9TQVMgPSB7IEZpbGVOYW1lOiBmaWxlTmFtZSwgTWltZVR5cGU6IG1pbWVUeXBlIH07XHJcbiAgICB0aGlzLmdldFNhc1Rva2VuV3JpdGUoZmlsZU5hbWUpLnN1YnNjcmliZShzYXMgPT4ge1xyXG4gICAgICB0aGlzLnVwbG9hZEZpbGUoZmlsZSwgc2FzLCBmaWxlTmFtZSk7XHJcbiAgICB9LCBlcnIgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhlcnIpO1xyXG4gICAgfVxyXG4gICAgKTtcclxuICAgIC8vIH0pLmNhdGNoKFxyXG4gICAgLy8gICBlcnIgPT4ge1xyXG4gICAgLy8gICAgIHRoaXMuc2hvd0VycnIoZXJyKTtcclxuICAgIC8vICAgfVxyXG4gICAgLy8gKTtcclxuICB9XHJcblxyXG4gIGdldFNhc1Rva2VuV3JpdGUoZmlsZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcclxuICAgIC8vICByZXR1cm4gdGhpcy5henVyZUZpbGVVcGxvYWRTZXJ2aWNlLmdldFNhc1Rva2VuV3JpdGUoZmlsZSk7XHJcbiAgICByZXR1cm4gdGhpcy5zdG9yYWdlLmdldFNBUyhmaWxlKTtcclxuICB9XHJcblxyXG4gIHVwbG9hZEZpbGUoZmlsZTogRmlsZSwgdG9rZW46IHN0cmluZywgZmlsZU5hbWU/OiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IENvbmZpZzogVXBsb2FkUGFyYW1zID0ge1xyXG4gICAgICBzYXM6IHRva2VuLFxyXG4gICAgICBzdG9yYWdlQWNjb3VudDogdGhpcy5lbnYuYXp1cmVTdG9yYWdlQ29uZmlnLnN0b3JhZ2VBY2NvdW50LFxyXG4gICAgICBjb250YWluZXJOYW1lOiB0aGlzLmVudi5henVyZVN0b3JhZ2VDb25maWcuY29udGFpbmVyTmFtZVxyXG4gICAgfTtcclxuICAgIGNvbnN0IHJlcyA9IGZhbHNlO1xyXG4gICAgaWYgKGZpbGUgIT09IG51bGwpIHtcclxuICAgICAgY29uc3QgZmlsZVRpdGxlID0gZmlsZU5hbWUgPT0gbnVsbCA/IGZpbGUubmFtZSA6IGZpbGVOYW1lO1xyXG4gICAgICBjb25zdCBiYXNlVXJsID0gJ2h0dHBzOi8vJyArIENvbmZpZy5zdG9yYWdlQWNjb3VudCArICcvJyArIENvbmZpZy5jb250YWluZXJOYW1lICsgJy8nICsgZmlsZVRpdGxlO1xyXG4gICAgICB0aGlzLnVwbG9hZENvbmZpZyA9IHtcclxuICAgICAgICBiYXNlVXJsLFxyXG4gICAgICAgIGJsb2NrU2l6ZTogMTAyNCAqIDUwMCxcclxuICAgICAgICBzYXNUb2tlbjogQ29uZmlnLnNhcyxcclxuICAgICAgICBmaWxlLFxyXG4gICAgICAgIGNvbXBsZXRlOiAoKSA9PiB7XHJcbiAgICAgICAgICBjb25zb2xlLmxvZygnVHJhbnNmZXIgY29tcGxldGVkICEnKTtcclxuICAgICAgICAgIC8vIHRoaXMuc2F2ZUZpbGVTdWNjZXNzKGlzU2F2ZSk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycikgPT4ge1xyXG4gICAgICAgICAgY29uc29sZS5sb2coJ1RyYW5zZmVyIEVycm9yOicsIGVycik7XHJcbiAgICAgICAgICB0aGlzLnNhdmVGaWxlRXJyb3IoZXJyKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIHByb2dyZXNzOiAocGVyY2VudCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wZXJjZW50ID0gcGVyY2VudDtcclxuICAgICAgICB9XHJcbiAgICAgIH07XHJcbiAgICAgIHRoaXMuYmxvYlNlcnZpY2UudXBsb2FkKHRoaXMudXBsb2FkQ29uZmlnKTtcclxuICAgIH1cclxuICB9XHJcbiAgc2F2ZUZpbGVFcnJvcihlcnJvcjogYW55KSB7XHJcbiAgICBjb25zb2xlLmxvZygnc2F2ZUZpbGVFcnJvcicsIGVycm9yKTtcclxuICB9XHJcbn1cclxuZXhwb3J0IGNsYXNzIFVwbG9hZFBhcmFtcyB7XHJcbiAgc2FzITogc3RyaW5nO1xyXG4gIHN0b3JhZ2VBY2NvdW50ITogc3RyaW5nO1xyXG4gIGNvbnRhaW5lck5hbWUhOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGNsYXNzIFVwbG9hZENvbmZpZyB7XHJcbiAgYmFzZVVybCE6IHN0cmluZztcclxuICBibG9ja1NpemUhOiBudW1iZXI7XHJcbiAgc2FzVG9rZW4hOiBzdHJpbmc7XHJcbiAgZmlsZSE6IEZpbGU7XHJcbiAgY29tcGxldGUhOiAoKSA9PiB2b2lkO1xyXG4gIGVycm9yITogKGVycjogYW55KSA9PiB2b2lkO1xyXG4gIHByb2dyZXNzITogKHBlcmNlbnQ6IGFueSkgPT4gdm9pZDtcclxufVxyXG4iXX0=