| 
					
				 | 
			
			
				@@ -1,15 +1,28 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { map, Observable, tap } from "rxjs"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { ResponseMessage } from "../dependencies/fisappmessagejsutilty/dependencies/dependencies"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { FisCreateMessageUtility } from "../dependencies/fisappmessagejsutilty/services/fis.create.message"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { AnyObject } from "mongoose"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { map, Observable, of, tap } from "rxjs"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { Command, ResponseMessage } from "../dependencies/fisappmessagejsutilty/interface/export" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { FisCreateMessageUtility } from "../dependencies/fisappmessagejsutilty/interface/export"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { LoggingService } from "../dependencies/fisloggingservice/services/logging-service"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 import { LogSetting } from "../dependencies/fisloggingservice/type/datatype"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-import { Acknowledgemeent } from "../interface/acknowledgement.interface"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { Acknowledgemeent, AcknowledgementLogSetting } from "../type/acknowledgement.interface"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 export class AcknowledgementService implements Acknowledgemeent { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     private messageUtil: FisCreateMessageUtility = new FisCreateMessageUtility("FisAppID/Name") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    private settings: LogSetting = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private settings1: LogSetting = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        storage: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        setting: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            appId: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            appName: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            logLocName: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            logLocId: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            appLogLocId: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            appLocName: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            appLogId: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private settings2: LogSetting = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         storage: '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         setting: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             appId: '', 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -22,30 +35,51 @@ export class AcknowledgementService implements Acknowledgemeent { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    constructor(private logService?: LoggingService) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    constructor(private logService1?: LoggingService, private logService2?: LoggingService) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.logService1 = new LoggingService() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.logService2 = new LoggingService() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // set the data. I dont know what to set yet 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    public async init(settings: LogSetting) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public async init(settings: AcknowledgementLogSetting) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let logSetting1: LogSetting = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ...settings, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            setting: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ...settings.setting, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                logLocName: "locationName1", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                appLocName: "appLocName1" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let logSetting2: LogSetting = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ...settings, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            setting: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ...settings.setting, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                logLocName: "locationName2", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                appLocName: "appLocName2" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // console.log(settings) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.settings = settings 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.logService.init(this.settings) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        // Error Cannot error properties of undefined (reading 'init') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.settings1 = logSetting1 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.logService1.init(logSetting1) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.settings2 = logSetting2 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.logService2.init(logSetting2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // suppose to call logging service to give an observable type report for every message streamed 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     public subscribe(obs: Observable<any>): Observable<ResponseMessage> { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        obs.subscribe((data) => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // console.log(data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            this.logService.subscribe(data) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let acknowledgementToken = obs.pipe( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.logService1.subscribe(obs) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let acknowledgementToken: Observable<ResponseMessage> = obs.pipe( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             map( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                acknowledgement => acknowledgement 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // acknowledement =>  this.utilMessage.getResponseMessage(Parameters to be discussed) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // this.logService(acknowledgement) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                incoming_msg => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    let emulatedId = "GeneratedFromMessageSync" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    let emulatedRequest = this.messageUtil.getCommandMessage(emulatedId, Command.New, incoming_msg) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    let finalResponse = this.messageUtil.getResponseMessage(emulatedId, { "Acknowledgement": 1 }, emulatedRequest) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return finalResponse 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             )) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        this.logService.subscribe(acknowledgementToken) // Only log MessageObservable Type. Cannot log acknowledgement 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return acknowledgementToken// return response Message 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.logService2.subscribe(acknowledgementToken)  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return acknowledgementToken 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |