diff options
Diffstat (limited to 'src/app/shared/services/procOnSrvSide.service.ts')
-rw-r--r-- | src/app/shared/services/procOnSrvSide.service.ts | 343 |
1 files changed, 0 insertions, 343 deletions
diff --git a/src/app/shared/services/procOnSrvSide.service.ts b/src/app/shared/services/procOnSrvSide.service.ts deleted file mode 100644 index 17666d3..0000000 --- a/src/app/shared/services/procOnSrvSide.service.ts +++ /dev/null @@ -1,343 +0,0 @@ -//.. processing document on the server side -import { Injectable } from '@angular/core'; -//import { HttpClient, HttpHeaders } from '@angular/common/http'; -import { Http, Response, Headers, RequestOptions } from '@angular/http'; -import { Observable } from 'rxjs'; -import { NotificationsService } from 'angular2-notifications'; - -import { UtilityService } from '../../shared/services/utilityService/utility.service'; - -//const httpOptionsT = { - // headers: new HttpHeaders({ 'Content-Type': 'text/plain' }) -//}; - -@Injectable( -// { providedIn: 'root' } -) -export class ProcOnSrvSideSvc -{ - clName: string = "ProcOnSrvSideSvc"; - public theUrl: string = "/api/proc_cont"; - public resUrlPfx: string = "/api/get_result"; - public parmsUrlPfx: string = "/api/get_params"; - public taskId: string = ''; - public stringBuf: string; - public responBuf: string; - public procResult: string; - public parmsBuf: string; - public responObj: any; - // private respObs: Observable<string>; - private respObs: Observable<Response>; - private respObsObj: Observable<Object>; - public ppartLen: number = 102400; //.. 102912 is too large payload - // public ppartLen: number = 10240; - public ppartCnt: number = 0; - public p_offset: number = 0; - public interval: any; - cycleCnt: number; - cycleMAX: number = 40; - editorHolder: any; - templSyncer: any; - fHeaders: Headers; - rOptions: RequestOptions; - noptions = { - timeOut: 4000, - showProgressBar: true, - pauseOnHover: true, - clickToClose: true, - maxLength: 250 - }; - prevTstampInt: number = 0; - currTstampInt: number = 0; - notifDelayMsec: number = 1200; - - constructor( - // private http: HttpClient, - private http: Http, - private utilSvc: UtilityService, - private nService: NotificationsService ) - { - if( this.utilSvc.getTracelvl() > 0 ) - console.log(this.clName+": new: start"); - this.fHeaders= new Headers({'Content-Type': 'text/plain'}); - this.rOptions= new RequestOptions({'responseType':0}); - } - - sendToSrv( content: string, editorHolder: any, templSyncer: any ) { - var methName= "sendToSrv"; - this.stringBuf= content; - if( this.utilSvc.getTracelvl() > 0 ) - console.log(this.clName+": "+methName+": start: content length="+ - this.stringBuf.length ); - this.editorHolder= editorHolder; - this.templSyncer= templSyncer; - if( this.utilSvc.getTracelvl() > 0 ) - console.log(this.clName+": "+methName+": emptying editor..."); - this.editorHolder.editor.session.setValue("temp empty"); - if( this.utilSvc.getTracelvl() > 0 ) - console.log( this.clName+": "+methName+": theUrl:["+this.theUrl+"]"); - this.nService.info( "Start processing", - "sending: content length="+this.stringBuf.length, this.noptions ); - this.taskId= ''; - let contLen= this.stringBuf.length; - if( this.utilSvc.getTracelvl() > 0 ) - console.log(this.clName+": "+methName+": content length="+contLen+ - " ppartLen="+this.ppartLen ); - this.ppartCnt= 1+ Math.floor(contLen / this.ppartLen); - if( this.utilSvc.getTracelvl() > 0 ) - console.log(this.clName+": "+methName+": ppartCnt="+ this.ppartCnt ); - if( this.ppartCnt > 1 ) { - if( this.utilSvc.getTracelvl() > 0 ) - console.log(this.clName+": "+methName+": will send multiple parts..."); - this.nService.info( "Start processing", "will send multiple parts..."); - this.prevTstampInt= Date.now(); - this.p_offset= 0; - let ppart= this.stringBuf.substr( this.p_offset, this.ppartLen ); - if( this.utilSvc.getTracelvl() > 0 ) - console.log(this.clName+": "+methName+": First part:["+ppart+"]"); - //.. first - this.sendPart( this.theUrl, ppart, 1 ); - } - else { //.. ppartCnt == 1 - if( this.utilSvc.getTracelvl() > 0 ) - console.log(this.clName+": "+methName+": will send all-in-1"); - this.nService.info( "Start processing", - "will send all-in-1 part", this.noptions); - this.prevTstampInt= Date.now(); - //.. single - var sUrl= this.theUrl+"?part=1of1"; - this.sendPart( sUrl, this.stringBuf, 1 ); - }; - } - - sendPart( postUrl: string, contPart: string, partNum: number ) { - var methName= "sendPart"; - if( this.utilSvc.getTracelvl() > 0 ) - console.log(this.clName+": "+methName+": start: Url:["+postUrl+"]"); - this.currTstampInt= Date.now(); - let ntDiff= this.currTstampInt - this.prevTstampInt; - if( this.utilSvc.getTracelvl() > 1 ) - console.log( this.clName+": "+methName+ - ": prevTstampInt="+this.prevTstampInt+ - " currTstampInt="+this.currTstampInt+" the diff="+ntDiff ); - if( ntDiff > this.notifDelayMsec ) { - if( this.utilSvc.getTracelvl() > 1 ) - console.log(this.clName+": "+methName+": notif.delay's long enough."); - this.prevTstampInt= this.currTstampInt; - this.nService.info( "Transferring file", - " part Number="+partNum, this.noptions ); - }; - if( this.utilSvc.getTracelvl() > 0 ) - console.log(this.clName+": "+methName+": part length="+ contPart.length ); - this.respObs= - this.http.post( postUrl, contPart, this.rOptions ); - // this.http.post<string>( postUrl, contPart, httpOptionsT ); - // this.respObs.subscribe( (respo: string) => { - this.respObs.subscribe( (respo: Response) => { - if( this.utilSvc.getTracelvl() > 0 ) - console.log( this.clName+": "+methName+": got response:["+respo+"]"); - if( this.utilSvc.getTracelvl() > 1 ) - console.log( this.clName+": "+methName+": json:["+ - JSON.stringify(respo)+"]"); - this.responBuf= respo.text(); - if( this.utilSvc.getTracelvl() > 0 ) - console.log( this.clName+": "+methName+": responBuf:["+this.responBuf+"]"); - if( this.taskId.length < 1 ) { - if( this.utilSvc.getTracelvl() > 0 ) - console.log( this.clName+": "+methName+ - ": taskId is empty -get it from response"); - let respObj= JSON.parse(this.responBuf); - if( this.utilSvc.getTracelvl() > 0 ) - console.log( this.clName+": "+methName+": respObj.taskId:["+ - respObj.taskId+"]"); - if( respObj.taskId == null || respObj.taskId.length == 0 ) { - let errMsg= this.clName+": "+methName+ - ": Error: failed to get taskId from the server response !"; - console.log( errMsg ); - this.nService.error( "Transferring file", errMsg, this.noptions ); - return; - } - else { //.. extracted respObj.taskId - this.taskId= respObj.taskId; - if( this.utilSvc.getTracelvl() > 0 ) - console.log( this.clName+": "+methName+": obtained new taskId:["+ - this.taskId+"]"); - this.nService.info( "Transferring file", - "current taskId:["+this.taskId+"]", this.noptions); - }; - }; - let tpercent= (100.0*partNum/this.ppartCnt).toFixed(); - if( this.utilSvc.getTracelvl() > 0 ) - console.log( this.clName+": "+methName+ - ": part#="+partNum+" transfer percent="+tpercent ); - this.currTstampInt= Date.now(); - let ntDiff= this.currTstampInt - this.prevTstampInt; - if( this.utilSvc.getTracelvl() > 1 ) - console.log( this.clName+": "+methName+ - ": prevTstampInt="+this.prevTstampInt+ - " currTstampInt="+this.currTstampInt+" the diff="+ntDiff ); - if( ntDiff > this.notifDelayMsec ) { - if( this.utilSvc.getTracelvl() > 1 ) - console.log(this.clName+": "+methName+": notif.delay long enough."); - this.prevTstampInt= this.currTstampInt; - this.nService.info( "Transferring file", - " progress: "+tpercent+" %", this.noptions ); - //" part Number="+partNum+" vs part Count="+this.ppartCnt, this.noptions ); - }; - if( partNum < this.ppartCnt ) { - // this.nService.info( methName,"need to send more parts..."); - let partN= partNum + 1; - this.p_offset= this.p_offset + this.ppartLen; - var ppart= ''; - if( partN < this.ppartCnt ) { - if( this.utilSvc.getTracelvl() > 0 ) - console.log(this.clName+": "+methName+ - ": next part is not the last: partN="+partN ); - ppart= this.stringBuf.substr( this.p_offset, this.ppartLen ); - } - else { - if( this.utilSvc.getTracelvl() > 0 ) - console.log(this.clName+": "+methName+ ": next part is the last."); - ppart= this.stringBuf.substr( this.p_offset ); - }; - if( this.utilSvc.getTracelvl() > 0 ) - console.log(this.clName+": "+methName+": next part:["+ppart+"]"); - let nUrl= - this.theUrl+"?taskId="+this.taskId+"&part="+partN+"of"+this.ppartCnt; - if( this.utilSvc.getTracelvl() > 0 ) - console.log(this.clName+": "+methName+": next Url:["+nUrl+"]"); - this.sendPart( nUrl, ppart, partN ); - } - else { //.. partNum == this.ppartCnt - this.nService.info( "Transferring file", - "all "+this.ppartCnt+ " parts are sent - check processing...", - this.noptions); - var progrUrl= "/api/get_progress?taskId="+this.taskId; - if( this.utilSvc.getTracelvl() > 0 ) - console.log(this.clName+": "+methName+": progrUrl:["+progrUrl+"]"); - this.showProcProgr( progrUrl ); - }; - }, - error => { - console.log( this.clName+": "+methName+ - ": got Error:["+JSON.stringify(error)+']'); - this.responBuf= JSON.stringify(error); - this.nService.error( "Transferring file", - " Error:["+this.responBuf+"]", this.noptions); - }); - } - - showProcProgr( proUrl: string ) { - var methName= "showProcProgr"; - if( this.utilSvc.getTracelvl() > 0 ) - console.log(methName+": start: proUrl:["+proUrl+"]"); - this.cycleCnt= 0; - this.interval = setInterval( () => { - if( this.utilSvc.getTracelvl() > 1 ) - console.log(methName+": call getProcProgr"); - this.getProcProgr( proUrl ); - }, 2500 ); - } - - getProcProgr( proUrl: string ) { - var methName= "getProcProgr"; - if( this.utilSvc.getTracelvl() > 0 ) - console.log( methName+": getProcProgr: start: proUrl:["+proUrl+"]"); - this.cycleCnt++; - if( this.utilSvc.getTracelvl() > 0 ) - console.log( methName+": cycleCnt="+this.cycleCnt ); - this.nService.info( "Processing", - "Requesting server status...", this.noptions); - // this.respObsObj= - // this.http.get( proUrl ); - this.respObs= - this.http.get( proUrl ); - // this.respObs.subscribe( (respo: string) => { - //this.respObsObj.subscribe( (respo) => { - this.respObs.subscribe( (respo: Response) => { - if( this.utilSvc.getTracelvl() > 0 ) - console.log( methName+": response:["+JSON.stringify(respo)+"]"); - this.responBuf= respo.text(); - if( this.utilSvc.getTracelvl() > 0 ) - console.log( methName+": responBuf:["+this.responBuf+"]"); - let respObj= JSON.parse(this.responBuf); - // this.responObj= respo; //.. Object - if( respObj.percentage != undefined && - respObj.percentage != null ) - { - if( this.utilSvc.getTracelvl() > 0 ) - console.log(methName+": got percentage:["+respObj.percentage+"]"); - if( respObj.percentage >= 100.0 ) { - if( this.utilSvc.getTracelvl() > 0 ) - console.log(methName+": percentage == 100 !"); - this.nService.info( "Processing completed", - "The server finished: 100% !", this.noptions); - clearInterval( this.interval ); - if( this.utilSvc.getTracelvl() > 0 ) - console.log(methName+": getting the processing result..."); - this.getProcResult(); - } - }; - if( this.utilSvc.getTracelvl() > 0 ) - console.log(methName+": cycleCnt="+this.cycleCnt+ - " vs MAX="+this.cycleMAX ); - if( this.cycleCnt > this.cycleMAX ) { - this.nService.error( "Processing", - "Too many status requests - stop !",this.noptions ); - clearInterval( this.interval ); - } - }, - error => { - console.log( this.clName+": "+methName+": got Error:["+ - JSON.stringify(error)+']'); - this.responObj= error; //.. as Object - this.nService.error( "Processing"," Error:["+ - JSON.stringify(error)+']', this.noptions ); - clearInterval( this.interval ); - }); - } - - getProcResult() { - var methName= "getProcResult"; - let resUrl= this.resUrlPfx+"?taskId="+this.taskId; - if( this.utilSvc.getTracelvl() > 0 ) - console.log( this.clName+": "+methName+": start: resUrl:["+resUrl+"]"); - this.respObs= - this.http.get( resUrl, this.rOptions ); - // this.http.get( resUrl, {responseType: 'text'} ); - // this.respObs.subscribe( (respo: string) => { - this.respObs.subscribe( (respo: Response) => { - if( this.utilSvc.getTracelvl() > 0 ) - console.log( this.clName+": "+methName+": got response:["+respo+"]"); - if( this.utilSvc.getTracelvl() > 1 ) - console.log( this.clName+": "+methName+": json:["+ - JSON.stringify(respo)+"]"); - this.responBuf= respo.text(); - if( this.utilSvc.getTracelvl() > 1 ) - console.log( this.clName+": "+methName+": responBuf:["+this.responBuf+"]"); - if( this.utilSvc.getTracelvl() == 0 ) { - let respoBg= this.responBuf.substr(0, 300); - console.log(this.clName+": "+methName+": response Begin:["+respoBg+"...]"); - }; - this.procResult= this.responBuf; - this.nService.info( "Processing completed", - "the result length="+this.procResult.length, this.noptions ); - if( this.utilSvc.getTracelvl() > 0 ) - console.log( this.clName+": "+methName+ - ": setting response to the editor..."); - this.editorHolder.editor.session.setValue( this.procResult ); - if( this.utilSvc.getTracelvl() > 0 ) - console.log( this.clName+": "+methName+": calling syncTemplate ..."); - this.templSyncer.syncTemplate('1'); - if( this.utilSvc.getTracelvl() > 0 ) - console.log( this.clName+": "+methName+": finished."); - }, - error => { - console.log( this.clName+": "+methName+": subscribe Error:["+ - JSON.stringify(error)+']'); - this.procResult= JSON.stringify(error); - this.nService.error( "Getting Processing result", - " Error:["+JSON.stringify(error)+']', this.noptions); - }); - } -} |