소스 검색

change to domain proxy

Stephen Wong 1 년 전
부모
커밋
f4b05f1082

+ 3 - 1
.env

@@ -1,4 +1,6 @@
 HOST=plantation.mafrica.com.my
 UCP_HOST=http://swopt.com:3011/request
 LOGIN_TIMEOUT=100000
-FAILED_TIMEOUT=60000
+FAILED_TIMEOUT=6000
+SERVERNAME=graphql_server
+QueryModuleUrlPort=3012

+ 31 - 29
README.md

@@ -2,10 +2,9 @@
 
 ## Description
 
-1) Graphql query the plantation data from backend server(laravel).
+1. Graphql query the plantation data from backend server(laravel).
 
-2) Graphql server will initialize the all the fis instances, and login to the UCP Server and get the UCPID.
-   
+2. Graphql server will initialize the all the fis instances, and login to the UCP Server and get the UCPID.
 
 Plantation site name , Phases and Blocks
 
@@ -26,10 +25,10 @@ List of db:
 "db"=> "fisWHSB",
 ```
 
-
 ## SCHEMA FIS DATASERVICE
 
 ### REQUEST
+
 ```bash
 dataservice(
     className: String!
@@ -38,15 +37,14 @@ dataservice(
 ): DataService!
 ```
 
-
-| column | description |
-|--------|-------------|
-|className| REQUIRED: define which dataservice data want to retrieve|
-|filter| OPTIONAL : The filter for the getData function will be in  key=value; key=value; pair format where key refers to column name. |
-|returnFormatType| OPTIONAL: byRow , byBatchOf5, byBatchOf10 or full |
-
+| column           | description                                                                                                                  |
+| ---------------- | ---------------------------------------------------------------------------------------------------------------------------- |
+| className        | REQUIRED: define which dataservice data want to retrieve                                                                     |
+| filter           | OPTIONAL : The filter for the getData function will be in key=value; key=value; pair format where key refers to column name. |
+| returnFormatType | OPTIONAL: byRow , byBatchOf5, byBatchOf10 or full                                                                            |
 
 ### RESPONSE
+
 ```bash
 type DataService {
     className: String!
@@ -58,21 +56,17 @@ type DataService {
 }
 ```
 
-
-|column | description|
-|-------|  ----|
-|classname| same as request className |
-| data| responsed data |
-|filter| same as request|
-|returnFormatType| same as requested returnFormatType|
-|returnSequenceTotal | refer to the total number of responses|
-|returnSequenceNumber | refer to the response number start from 1 to total number of response.|
-
-
- 
-
+| column               | description                                                            |
+| -------------------- | ---------------------------------------------------------------------- |
+| classname            | same as request className                                              |
+| data                 | responsed data                                                         |
+| filter               | same as request                                                        |
+| returnFormatType     | same as requested returnFormatType                                     |
+| returnSequenceTotal  | refer to the total number of responses                                 |
+| returnSequenceNumber | refer to the response number start from 1 to total number of response. |
 
 ## Available className:
+
     ARAccountProfileDataService
     APAccountProfileDataService
     CMAccountProfileDataService
@@ -80,12 +74,10 @@ type DataService {
     ProductProfileDataService
     ServiceProgramProfileDataService
 
-
-
 ```bash
 eg:
     query{
-        dataservice(className:"APAccountProfileDataService", 
+        dataservice(className:"APAccountProfileDataService",
         filter: "acct_id=104"){
             filter,
             className,
@@ -93,6 +85,7 @@ eg:
         }
     }
 ```
+
 ###### Note: support multiple filter string by using semicolom as separator. eg: acct_id=104;acct_no=30
 
 ## SCHEMA PlANTATION DATASERVICE
@@ -105,7 +98,6 @@ site(
 ): Site!
 ```
 
-
 ```bash
 type Site {
     db: String!
@@ -143,7 +135,9 @@ type Phase {
   sec_name: String!
 }
 ```
+
 Block Schema
+
 ```bash
 type Block {
   loc_area: String!
@@ -157,6 +151,7 @@ type Block {
 ```bash
 $ npm install
 ```
+
 ```bash
 $ git submodule deinit --all
 ```
@@ -173,16 +168,23 @@ $ git rm --cached src/FisAppQueryModule/message/fisappmessagejsutility/
 $ git submodule update --init --recursive
 ```
 
+```bash
+npm i --save @grpc/grpc-js @grpc/proto-loader
+
+npm install @improbable-eng/grpc-web
+
+npm install socket.io-client
+```
 
 ## Running the app
 
 #####Package Required for DefaultQuery Module
+
 ```bash
 npm install gql-query-builder
 npm install node-json-transform
 ```
 
-
 ```bash
 # development
 $ npm run start

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 17524 - 1
package-lock.json


+ 8 - 3
package.json

@@ -7,10 +7,11 @@
   "license": "UNLICENSED",
   "scripts": {
     "prebuild": "rimraf dist",
-    "build": "nest build",
+    "build": "nest build && npm run copyGrpc",
     "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
     "start": "nest start",
-    "start:dev": "nest start --watch",
+    "start:dev": "nest start --watch && npm run copyGrpc",
+    "copyGrpc": "@powershell copy -Recurse -Force './src/common-service-channel/DomainProxy/src/services/grpc' './dist/common-service-channel/DomainProxy/src/services/'",
     "start:debug": "nest start --debug --watch",
     "start:prod": "node dist/main",
     "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
@@ -23,6 +24,9 @@
   },
   "dependencies": {
     "@graphql-codegen/cli": "^2.3.1",
+    "@grpc/grpc-js": "^1.7.3",
+    "@grpc/proto-loader": "^0.7.3",
+    "@improbable-eng/grpc-web": "^0.15.0",
     "@nestjs/axios": "^0.0.1",
     "@nestjs/common": "^8.0.0",
     "@nestjs/config": "^1.1.6",
@@ -46,6 +50,7 @@
     "rfdc": "^1.3.0",
     "rimraf": "^3.0.2",
     "rxjs": "^7.3.0",
+    "socket.io-client": "^4.5.3",
     "uuid": "^8.3.1"
   },
   "devDependencies": {
@@ -94,4 +99,4 @@
   },
   "main": "index.js",
   "repository": "http://swopt.com:3000/stephenwong/graphql-server.git"
-}
+}

+ 46 - 0
src/FisAppQueryModule/GetIPAddress.ts

@@ -0,0 +1,46 @@
+/* eslint-disable prettier/prettier */
+const { networkInterfaces } = require('os');
+
+const nets = networkInterfaces();
+export const IPs = Object.create(null); // Or just '{}', an empty object
+
+for (const name of Object.keys(nets)) {
+    for (const net of nets[name]) {
+        // Skip over non-IPv4 and internal (i.e. 127.0.0.1) addresses
+        // 'IPv4' is in Node <= 17, from 18 it's a number 4 or 6
+        const familyV4Value = typeof net.family === 'string' ? 'IPv4' : 4
+        if (net.family === familyV4Value && !net.internal) {
+            if (!IPs[name]) {
+                IPs[name] = [];
+            }
+            IPs[name].push(net.address);
+        }
+    }
+}
+ 
+// Short hand
+if (IPs['en0']) {
+  IPs['v4'] = IPs['en0'][0];
+} else {
+  IPs['v4'] = IPs['Ethernet'][0];
+}
+
+//// IPs
+// {
+//     "en0": [
+//       "192.168.1.101"
+//     ],
+//     "eth0": [
+//       "10.0.0.101"
+//     ],
+//     "<network name>": [
+//       "<ip>",
+//       "<ip alias>",
+//       "<ip alias>",
+//       ...
+//     ]
+//   }
+
+//// IPs["en0"][0]
+//"192.168.1.101"
+ 

+ 115 - 51
src/FisAppQueryModule/Manager.dataservice.ts

@@ -1,6 +1,6 @@
 import { HttpService } from '@nestjs/axios';
 import { Injectable } from '@nestjs/common';
-import { from, of, Observable } from 'rxjs';
+import { from, of, Observable, Subject } from 'rxjs';
 // import { FisUASRequestMessage } from '../FisAppQueryModule/message/fis.request.message';
 import { AccountProfileDataService } from './DS/AccountProfile.dataservice';
 // import { AccountProfileDataService } from './DS/AccountProfile.dataservice';
@@ -23,64 +23,104 @@ import { OrganisationProfileDataService } from './DS/OrganisationProfile.dataser
 import { ProductProfileDataService } from './DS/ProductProfile.dataservice';
 import { RoleTypeProfileDataService } from './DS/RoleTypeProfileDataService';
 import { ServiceProgramProfileDataService } from './DS/ServiceProgramProfile.dataservice';
-import { FisCreateMessageUtility } from './message/fisappmessagejsutility/interface/export'; 
+import { AppMessageType, BaseMessage, FisCreateMessageUtility, ResponseExceptionMessage, ResponseMessage, Uuid } from './message/fisappmessagejsutility/interface/export';
 import * as fs from 'graceful-fs';
+import { DomainProxyController } from '../common-service-channel/DomainProxy/src/services/DP.controller';
+import { ConnectionInterface } from '../common-service-channel/DomainProxy/src/interface/DP.Connection.interface';
+import { IPs } from './GetIPAddress';
 
 @Injectable()
 export class DataServiceManager {
 
     static ucpId: string;
-    static ResponseService:FisCreateMessageUtility = new FisCreateMessageUtility("FisAppID/Name")
+    static ResponseService: FisCreateMessageUtility = new FisCreateMessageUtility("FisAppID/Name")
 
     static classes: any = {};
-    static http:HttpService;
+    static http: HttpService;
 
+    static appname: string = "GraphQL Provider Application";
 
-    constructor(public http: HttpService) {
+    constructor(public http: HttpService, public DPControllerInstance: DomainProxyController) {
         DataServiceManager.http = this.http;
-
+        this.DPControllerInstance.setApplicationName(DataServiceManager.appname);
+        let currentUCPId: string = "";
+
+        let msg = this.DPControllerInstance.getMessageService().getLoginMessage();
+        const settings: ConnectionInterface = {
+            IdName: DataServiceManager.appname,
+            Description: "GraphQL login",
+            Type: "Http",
+            Target: "http://swopt.com:3011",
+        }
+        msg.data["serviceProvider"] = {
+            "name": 'GRAPHQL Server',
+            "instanceId": generateId(),
+            "secret": "FisSecret",
+            "singleton": true,
+            // "url": "http://" + IPs['v4'] + ":" + process.env.QueryModuleUrlPort
+        }
+        this.DPControllerInstance.setConnection(settings)
         let timer;
         const subscription = () => {
+            this.DPControllerInstance.setIsConnectionStatusObserved(DataServiceManager.appname, true);
+            this.DPControllerInstance.send(DataServiceManager.appname, msg).subscribe({
+                // DataServiceManager.login(this.http).subscribe({
+                next: (response) => {
+                    // console.log(response.data?.['ServerUCP']?.ucpId)
+                    if (response.data?.['ServerUCP']?.ucpId) {
+                        currentUCPId = response.data?.['ServerUCP']?.ucpId;
+                    }
+                    else {
+                        currentUCPId = null;
+                    }
+
+                    if (currentUCPId != null) {
+                        // if (x.data[0]?.data?.ServerUCP?.ucpId !== undefined || x.data[0]?.data?.ucpId !== undefined) {
+
+                        DataServiceManager.ucpId = currentUCPId
+
+
+                        console.log(DataServiceManager.ucpId) // show the login ucpId
+
+                        DataServiceManager.classes['AccountProfileDataService'] = new AccountProfileDataService(this.http, DataServiceManager.ucpId);
+                        DataServiceManager.classes['APAccountProfileDataService'] = new APAccountProfileDataService(this.http, DataServiceManager.ucpId);
+                        DataServiceManager.classes['ARAccountProfileDataService'] = new ARAccountProfileDataService(this.http, DataServiceManager.ucpId);
+                        DataServiceManager.classes['CMAccountProfileDataService'] = new CMAccountProfileDataService(this.http, DataServiceManager.ucpId);
+
+                        DataServiceManager.classes['DocumentDataService'] = new DocumentDataService(this.http, DataServiceManager.ucpId);
+                        DataServiceManager.classes['ARInvoiceDocumentDataService'] = new ARInvoiceDocumentDataService(this.http, DataServiceManager.ucpId);
+                        DataServiceManager.classes['APInvoiceDocumentDataService'] = new APInvoiceDocumentDataService(this.http, DataServiceManager.ucpId);
+
+                        DataServiceManager.classes['ARReceiptDocumentDataService'] = new ARReceiptDocumentDataService(this.http, DataServiceManager.ucpId);
+                        DataServiceManager.classes['APReceiptDocumentDataService'] = new APReceiptDocumentDataService(this.http, DataServiceManager.ucpId);
+
+
+                        DataServiceManager.classes['OrganisationProfileDataService'] = new OrganisationProfileDataService(this.http, DataServiceManager.ucpId);
+                        DataServiceManager.classes['ProductProfileDataService'] = new ProductProfileDataService(this.http, DataServiceManager.ucpId);
+                        DataServiceManager.classes['ServiceProgramProfileDataService'] = new ServiceProgramProfileDataService(this.http, DataServiceManager.ucpId);
+                        DataServiceManager.classes['FisServiceProgramProfileDataService'] = new FisServiceProgramProfileDataService(this.http, DataServiceManager.ucpId);
+                        DataServiceManager.classes['RoleTypeProfileDataService'] = new RoleTypeProfileDataService(this.http, DataServiceManager.ucpId);
+                        DataServiceManager.classes['LeaveBalanceDataService'] = new LeaveBalanceDataService(this.http, DataServiceManager.ucpId);
+                        DataServiceManager.classes['LeaveHistoryDataService'] = new LeaveHistoryDataService(this.http, DataServiceManager.ucpId);
+                        DataServiceManager.classes['LeaveTypeProfileDataService'] = new LeaveTypeProfileDataService(this.http, DataServiceManager.ucpId);
+
+                        // Keep a copy of the class list
+                        let dataServiceClassesList = JSON.stringify(DataServiceManager.classes, null, 4);
+                        fs.writeFileSync('./src/FisAppQueryModule/dataservice.classesList.json', dataServiceClassesList); // To avoid confusion in src and dist
+                        fs.writeFileSync('./dist/FisAppQueryModule/dataservice.classesList.json', dataServiceClassesList); // To avoid confusion in src and dist
+                    } else if (response.data?.['StatusResponse'].status == '-1') {
+                        console.log("Error getting ucpId")
+                        console.log(response.data)
+                        clearInterval(timer)
+                        timer = setInterval(subscription, parseInt(process.env.FAILED_TIMEOUT))
+                    }
 
-            DataServiceManager.login(this.http).subscribe({
-                next: (x) => {
-
-                    DataServiceManager.ucpId = x.data[0].data.ucpId || x.data[0].data.ServerUCP.ucpId
-
-                    console.log(DataServiceManager.ucpId) // show the login ucpId
-                    
-                    DataServiceManager.classes['AccountProfileDataService'] = new AccountProfileDataService(this.http, DataServiceManager.ucpId);
-                    DataServiceManager.classes['APAccountProfileDataService'] = new APAccountProfileDataService(this.http, DataServiceManager.ucpId);
-                    DataServiceManager.classes['ARAccountProfileDataService'] = new ARAccountProfileDataService(this.http, DataServiceManager.ucpId);
-                    DataServiceManager.classes['CMAccountProfileDataService'] = new CMAccountProfileDataService(this.http, DataServiceManager.ucpId);
-
-                    DataServiceManager.classes['DocumentDataService'] = new DocumentDataService(this.http, DataServiceManager.ucpId);
-                    DataServiceManager.classes['ARInvoiceDocumentDataService'] = new ARInvoiceDocumentDataService(this.http, DataServiceManager.ucpId);
-                    DataServiceManager.classes['APInvoiceDocumentDataService'] = new APInvoiceDocumentDataService(this.http, DataServiceManager.ucpId);
-                    
-                    DataServiceManager.classes['ARReceiptDocumentDataService'] = new ARReceiptDocumentDataService(this.http, DataServiceManager.ucpId);
-                    DataServiceManager.classes['APReceiptDocumentDataService'] = new APReceiptDocumentDataService(this.http, DataServiceManager.ucpId);
-                    
-
-                    DataServiceManager.classes['OrganisationProfileDataService'] = new OrganisationProfileDataService(this.http, DataServiceManager.ucpId);
-                    DataServiceManager.classes['ProductProfileDataService'] = new ProductProfileDataService(this.http, DataServiceManager.ucpId);
-                    DataServiceManager.classes['ServiceProgramProfileDataService'] = new ServiceProgramProfileDataService(this.http, DataServiceManager.ucpId);
-                    DataServiceManager.classes['FisServiceProgramProfileDataService'] = new FisServiceProgramProfileDataService(this.http, DataServiceManager.ucpId);
-                    DataServiceManager.classes['RoleTypeProfileDataService'] = new RoleTypeProfileDataService(this.http, DataServiceManager.ucpId);
-                    DataServiceManager.classes['LeaveBalanceDataService'] = new LeaveBalanceDataService(this.http, DataServiceManager.ucpId);
-                    DataServiceManager.classes['LeaveHistoryDataService'] = new LeaveHistoryDataService(this.http, DataServiceManager.ucpId);
-                    DataServiceManager.classes['LeaveTypeProfileDataService'] = new LeaveTypeProfileDataService(this.http, DataServiceManager.ucpId);
-
-                    // Keep a copy of the class list
-                    let dataServiceClassesList = JSON.stringify(DataServiceManager.classes,null,4);
-                    fs.writeFileSync('./src/FisAppQueryModule/dataservice.classesList.json',dataServiceClassesList); // To avoid confusion in src and dist
-                    fs.writeFileSync('./dist/FisAppQueryModule/dataservice.classesList.json',dataServiceClassesList); // To avoid confusion in src and dist
                 },
 
                 complete: () => {
                     console.log("login done")
                     clearInterval(timer)
-                    timer = setInterval(subscription, parseInt(process.env.LOGIN_TIMEOUT))
+                    // timer = setInterval(subscription, parseInt(process.env.LOGIN_TIMEOUT))
                 },
                 error: (e) => {
                     console.log(e.response)
@@ -96,20 +136,43 @@ export class DataServiceManager {
     }
 
 
-    static getDataServiceData(ClassName, filter, returnFormatType = "full", gq, dynamicClassType = false): Observable<any> {
+
+    getDataServiceData(ClassName, filter, returnFormatType = "full", gq, dynamicClassType = false): Observable<any> {
         let currentDataService: CommonDataService; // declare type 
 
-        if(!dynamicClassType)
-        {   
+        let bufferObservable = new Subject();
+
+        if (!dynamicClassType) {
             currentDataService = DataServiceManager.classes[ClassName];
-        }else{
+        } else {
+
+            currentDataService = new CommonDataService(this.http, DataServiceManager.ucpId, DataServiceManager.classes[ClassName].currentData);
+
 
-            currentDataService = new CommonDataService(this.http, DataServiceManager.ucpId,DataServiceManager.classes[ClassName].currentData);
-           
-            
         }
 
-        return from(currentDataService.getData(ClassName,filter,returnFormatType));
+        from(currentDataService.getData(ClassName, filter, returnFormatType)).subscribe({
+            next: (msg: BaseMessage | ResponseMessage | ResponseExceptionMessage | any) => {
+                if (msg && msg.header && msg.header.messageType == AppMessageType.ResponseException) {
+                    this.DPControllerInstance.send(DataServiceManager.appname, msg).subscribe({
+                        next: (msg: ResponseMessage) => {
+                            bufferObservable.next(msg);
+                            this.getDataServiceData(ClassName, filter, returnFormatType, gq, dynamicClassType)
+                        }
+                    });
+                } else {
+                    bufferObservable.next(msg);
+                }
+            },
+            error: (err) => {
+                bufferObservable.error(err);
+            },
+            complete: () => {
+                bufferObservable.complete();
+            }
+        })
+
+        return bufferObservable.asObservable();
 
     }
 
@@ -169,8 +232,9 @@ export class DataServiceManager {
         }
     }
 
-    static formatType() {
-
-    }
 
 }
+function generateId(): string {
+    let messageId = new Uuid();
+    return messageId.generateId().toString();
+}

+ 17 - 17
src/FisAppQueryModule/dataservice.classesList.json

@@ -7,7 +7,7 @@
             "parameter": "accountType=AP"
         },
         "dataName": "DataService",
-        "ucpId": "nv9ejs9668"
+        "ucpId": "5viut3562"
     },
     "APAccountProfileDataService": {
         "http": {},
@@ -17,7 +17,7 @@
             "parameter": "accountType=AP"
         },
         "dataName": "DataService",
-        "ucpId": "nv9ejs9668"
+        "ucpId": "5viut3562"
     },
     "ARAccountProfileDataService": {
         "http": {},
@@ -27,7 +27,7 @@
             "parameter": "accountType=AR"
         },
         "dataName": "DataService",
-        "ucpId": "nv9ejs9668"
+        "ucpId": "5viut3562"
     },
     "CMAccountProfileDataService": {
         "http": {},
@@ -37,7 +37,7 @@
             "parameter": "accountType=CM"
         },
         "dataName": "DataService",
-        "ucpId": "nv9ejs9668"
+        "ucpId": "5viut3562"
     },
     "DocumentDataService": {
         "http": {},
@@ -47,7 +47,7 @@
             "parameter": "subsystemcode=AP"
         },
         "dataName": "DataService",
-        "ucpId": "nv9ejs9668"
+        "ucpId": "5viut3562"
     },
     "ARInvoiceDocumentDataService": {
         "http": {},
@@ -57,7 +57,7 @@
             "parameter": "doccategory=IV,subsystemcode=AR"
         },
         "dataName": "DataService",
-        "ucpId": "nv9ejs9668"
+        "ucpId": "5viut3562"
     },
     "APInvoiceDocumentDataService": {
         "http": {},
@@ -67,7 +67,7 @@
             "parameter": "doccategory=RC,subsystemcode=AR"
         },
         "dataName": "DataService",
-        "ucpId": "nv9ejs9668"
+        "ucpId": "5viut3562"
     },
     "ARReceiptDocumentDataService": {
         "http": {},
@@ -77,7 +77,7 @@
             "parameter": "doccategory=RC,subsystemcode=AR"
         },
         "dataName": "DataService",
-        "ucpId": "nv9ejs9668"
+        "ucpId": "5viut3562"
     },
     "APReceiptDocumentDataService": {
         "http": {},
@@ -87,7 +87,7 @@
             "parameter": "doccategory=RC,subsystemcode=AP"
         },
         "dataName": "DataService",
-        "ucpId": "nv9ejs9668"
+        "ucpId": "5viut3562"
     },
     "OrganisationProfileDataService": {
         "http": {},
@@ -97,7 +97,7 @@
             "parameter": ""
         },
         "dataName": "DataService",
-        "ucpId": "nv9ejs9668"
+        "ucpId": "5viut3562"
     },
     "ProductProfileDataService": {
         "http": {},
@@ -107,7 +107,7 @@
             "parameter": ""
         },
         "dataName": "DataService",
-        "ucpId": "nv9ejs9668"
+        "ucpId": "5viut3562"
     },
     "ServiceProgramProfileDataService": {
         "http": {},
@@ -117,7 +117,7 @@
             "parameter": ""
         },
         "dataName": "ServiceProgramProfileData",
-        "ucpId": "nv9ejs9668"
+        "ucpId": "5viut3562"
     },
     "FisServiceProgramProfileDataService": {
         "http": {},
@@ -127,7 +127,7 @@
             "parameter": "serviceTypeCode=dataservice"
         },
         "dataName": "ServiceProgramProfileSecurityAccessRightData",
-        "ucpId": "nv9ejs9668"
+        "ucpId": "5viut3562"
     },
     "RoleTypeProfileDataService": {
         "http": {},
@@ -137,7 +137,7 @@
             "parameter": ""
         },
         "dataName": "DataService",
-        "ucpId": "nv9ejs9668"
+        "ucpId": "5viut3562"
     },
     "LeaveBalanceDataService": {
         "http": {},
@@ -147,7 +147,7 @@
             "parameter": ""
         },
         "dataName": "DataService",
-        "ucpId": "nv9ejs9668"
+        "ucpId": "5viut3562"
     },
     "LeaveHistoryDataService": {
         "http": {},
@@ -157,7 +157,7 @@
             "parameter": ""
         },
         "dataName": "DataService",
-        "ucpId": "nv9ejs9668"
+        "ucpId": "5viut3562"
     },
     "LeaveTypeProfileDataService": {
         "http": {},
@@ -167,6 +167,6 @@
             "parameter": ""
         },
         "dataName": "DataService",
-        "ucpId": "nv9ejs9668"
+        "ucpId": "5viut3562"
     }
 }

+ 5 - 2
src/FisAppQueryModule/dataservice.module.ts

@@ -1,5 +1,7 @@
 import { HttpModule } from '@nestjs/axios';
 import { Module } from '@nestjs/common';
+import { MicroserviceDomainProxyService } from '../common-service-channel/DomainProxy/src/services/DP.microservice.service';
+import { DomainProxyController } from '../common-service-channel/DomainProxy/src/services/DP.controller';
 import { ApplicationDataservice } from './Application.dataservice';
 import { DefaultQueryService } from './DefaultQuery/defaultQuery.dataservice';
 import { FisAppQueryResolver } from './fisAppQuery.resolver';
@@ -8,6 +10,7 @@ import { DataServiceManager } from './Manager.dataservice';
 
 @Module({
     imports: [HttpModule],
-    providers: [DataServiceManager,ApplicationDataservice, FisAppQueryResolver,FisAppQueryService, DefaultQueryService]
+    providers: [DataServiceManager, ApplicationDataservice, FisAppQueryResolver, FisAppQueryService, DefaultQueryService, DomainProxyController,
+        MicroserviceDomainProxyService]
 })
-export class DataserviceModule {}
+export class DataserviceModule { }

+ 11 - 11
src/FisAppQueryModule/fisAppQuery.resolver.ts

@@ -4,7 +4,7 @@ import { FisAppQueryService } from './fisAppQuery.service';
 import { Observable, of } from 'rxjs';
 import { DataServiceArgument, DataServiceMessage } from './entities/DataService.entity';
 
-import {  APAccountProfileUnion } from './entities/APAccountProfile';
+import { APAccountProfileUnion } from './entities/APAccountProfile';
 import { AccountProfileArgument, AccountProfileUnion } from './entities/AccountProfile';
 
 import { CMAccountProfileUnion } from './entities/CMAccountProfile';
@@ -13,7 +13,7 @@ import { DocumentUnion, DocumentArgument } from './entities/Document';
 import { ARInvoiceDocumentUnion } from './entities/ARInvoiceDocument';
 import { APInvoiceDocumentUnion } from './entities/APInvoiceDocument';
 import { OrganisationProfileArgument, OrganisationProfileUnion } from './entities/OrganisationProfile';
-import { ServiceProgramProfileArgument, ServiceProgramProfileUnion} from './entities/ServiceProgramProfile';
+import { ServiceProgramProfileArgument, ServiceProgramProfileUnion } from './entities/ServiceProgramProfile';
 import { FisServiceProgramProfileArgument, FisServiceProgramUnion } from './entities/FisServiceProgram';
 import { RoleTypeProfileArgument, RoleTypeProfileUnion } from './entities/RoleTypeProfile';
 import { APReceiptDocumentUnion } from './entities/APReceiptDocument';
@@ -49,41 +49,41 @@ export class FisAppQueryResolver {
   @Query(() => APAccountProfileUnion, { name: 'APAccountProfileQuery' })
   getAPAccountProfileDataService(@Args() dataservice: AccountProfileArgument): Observable<typeof APAccountProfileUnion> {
     const { filter, returnFormatType } = dataservice;
-    return this.fisAppQueryService.APAccountProfileGetData( filter, returnFormatType);
+    return this.fisAppQueryService.APAccountProfileGetData(filter, returnFormatType);
   }
 
   @Query(() => ARAccountProfileUnion, { name: 'ARAccountProfileQuery' })
   getARAccountProfileDataService(@Args() dataservice: AccountProfileArgument): Observable<typeof ARAccountProfileUnion> {
     const { filter, returnFormatType } = dataservice;
-    return this.fisAppQueryService.ARAccountProfileGetData( filter, returnFormatType);
+    return this.fisAppQueryService.ARAccountProfileGetData(filter, returnFormatType);
   }
 
 
   @Query(() => CMAccountProfileUnion, { name: 'CMAccountProfileQuery' })
   getCMAccountProfileDataService(@Args() dataservice: AccountProfileArgument): Observable<typeof CMAccountProfileUnion> {
     const { filter, returnFormatType } = dataservice;
-    return this.fisAppQueryService.CMAccountProfileGetData( filter, returnFormatType);
+    return this.fisAppQueryService.CMAccountProfileGetData(filter, returnFormatType);
   }
 
 
   @Query(() => DocumentUnion, { name: 'DocumentQuery' })
   getDocumentDataService(@Args() dataservice: DocumentArgument): Observable<typeof DocumentUnion> {
     const { filter, returnFormatType } = dataservice;
-    return this.fisAppQueryService.DocumentGetData( filter, returnFormatType);
+    return this.fisAppQueryService.DocumentGetData(filter, returnFormatType);
   }
 
   @Query(() => ARInvoiceDocumentUnion, { name: 'ARInvoiceDocumentQuery' })
   getARInvoiceDocumentDataService(@Args() dataservice: DocumentArgument): Observable<typeof ARInvoiceDocumentUnion> {
     const { filter, returnFormatType } = dataservice;
- 
-    return this.fisAppQueryService.ARInvoiceDocumentGetData( filter, returnFormatType);
+
+    return this.fisAppQueryService.ARInvoiceDocumentGetData(filter, returnFormatType);
   }
 
   @Query(() => APInvoiceDocumentUnion, { name: 'APInvoiceDocumentQuery' })
   getAPInvoiceDocumentDataService(@Args() dataservice: DocumentArgument): Observable<typeof APInvoiceDocumentUnion> {
     const { filter, returnFormatType } = dataservice;
 
-    return this.fisAppQueryService.APInvoiceDocumentGetData( filter, returnFormatType);
+    return this.fisAppQueryService.APInvoiceDocumentGetData(filter, returnFormatType);
   }
   @Query(() => APReceiptDocumentUnion, { name: 'APReceiptDocumentQuery' })
   getAPReceiptDocumentDataService(@Args() dataservice: DocumentArgument): Observable<typeof APReceiptDocumentUnion> {
@@ -94,7 +94,7 @@ export class FisAppQueryResolver {
   @Query(() => ARReceiptDocumentUnion, { name: 'ARReceiptDocumentQuery' })
   getARReceiptDocumentDataService(@Args() dataservice: DocumentArgument): Observable<typeof ARReceiptDocumentUnion> {
     const { filter, returnFormatType } = dataservice;
- 
+
     return this.fisAppQueryService.ARReceiptDocumentGetData(filter, returnFormatType);
   }
   @Query(() => OrganisationProfileUnion, { name: 'OrganisationProfileQuery' })
@@ -151,7 +151,7 @@ export class FisAppQueryResolver {
     return this.fisAppQueryService.LeaveTypeProfileGetData(filter, returnFormatType);
   }
 
-  @Query(() => DefaultQueryData, {name: 'defaultQuery'})
+  @Query(() => DefaultQueryData, { name: 'defaultQuery' })
   getDefaultQuery(): Observable<DefaultQueryData> {
     return this.fisDefaultQuery.GetDefaultQuery();
   }

+ 76 - 75
src/FisAppQueryModule/fisAppQuery.service.ts

@@ -2,18 +2,18 @@ import { HttpService } from '@nestjs/axios';
 import { Injectable } from '@nestjs/common';
 import { map, Observable } from 'rxjs';
 import { DataServiceManager } from '../FisAppQueryModule/Manager.dataservice';
-import {  AccountProfileUnion , thisClassName as AccountProfileClassName } from './entities/AccountProfile';
+import { AccountProfileUnion, thisClassName as AccountProfileClassName } from './entities/AccountProfile';
 
 import { APAccountProfileUnion, thisClassName as APAccountProfileClassName } from './entities/APAccountProfile';
-import { APInvoiceDocumentUnion, thisClassName as APInvoiceDocumentClassName} from './entities/APInvoiceDocument';
+import { APInvoiceDocumentUnion, thisClassName as APInvoiceDocumentClassName } from './entities/APInvoiceDocument';
 import { APReceiptDocumentUnion, thisClassName as APReceiptDocumentClassName } from './entities/APReceiptDocument';
 import { ARAccountProfileUnion, thisClassName as ARAccountProfileClassName } from './entities/ARAccountProfile';
 import { ARInvoiceDocumentUnion, thisClassName as ARInvoiceDocumentClassName } from './entities/ARInvoiceDocument';
 import { ARReceiptDocumentUnion, thisClassName as ARReceiptDocumentClassName } from './entities/ARReceiptDocument';
-import { CMAccountProfileUnion, thisClassName as  CMAccountProfileClassName } from './entities/CMAccountProfile';
+import { CMAccountProfileUnion, thisClassName as CMAccountProfileClassName } from './entities/CMAccountProfile';
 import { DataServiceMessage } from './entities/DataService.entity';
 import { DocumentUnion, thisClassName as DocumentClassName } from './entities/Document';
-import { FisServiceProgramUnion , thisClassName as FisServiceProgramClassName } from './entities/FisServiceProgram';
+import { FisServiceProgramUnion, thisClassName as FisServiceProgramClassName } from './entities/FisServiceProgram';
 import { LeaveBalanceUnion, thisClassName as LeaveBalanceClassName } from './entities/LeaveBalance';
 import { LeaveHistoryUnion, thisClassName as LeaveHistoryClassName } from './entities/LeaveHistory';
 import { LeaveTypeProfileUnion, thisClassName as LeaveTypeProfileClassName } from './entities/LeaveTypeProfile';
@@ -24,7 +24,8 @@ import { ServiceProgramProfileUnion, thisClassName as ServiceProgramProfileClass
 
 @Injectable()
 export class FisAppQueryService {
-  constructor(private readonly http: HttpService) {}
+
+  constructor(private readonly http: HttpService, private dataservicemanager: DataServiceManager) { }
 
   result: any;
   /**
@@ -32,175 +33,175 @@ export class FisAppQueryService {
    * @return {Site} - multiple site entity
    */
 
-  getData(className, filter,returnFormatType) : Observable<DataServiceMessage> {
-    let getDataObservable : Observable<any> = DataServiceManager.getDataServiceData(className,filter, returnFormatType, 1, true).pipe(map(x=>{
-        return x;
+  getData(className, filter, returnFormatType): Observable<DataServiceMessage> {
+    let getDataObservable: Observable<any> = this.dataservicemanager.getDataServiceData(className, filter, returnFormatType, 1, true).pipe(map(x => {
+      return x;
     }));
 
-    return getDataObservable;  
+    return getDataObservable;
   }
 
-  APAccountProfileGetData(filter,returnFormatType) : Observable<typeof APAccountProfileUnion> {
+  APAccountProfileGetData(filter, returnFormatType): Observable<typeof APAccountProfileUnion> {
     let className = APAccountProfileClassName;
 
-    let getDataObservable : Observable<typeof APAccountProfileUnion> = DataServiceManager.getDataServiceData(className,filter, returnFormatType, 1).pipe(map(x=>{
+    let getDataObservable: Observable<typeof APAccountProfileUnion> = this.dataservicemanager.getDataServiceData(className, filter, returnFormatType, 1).pipe(map(x => {
       return x;
     }));
 
-    return getDataObservable;  
+    return getDataObservable;
   }
 
-  CMAccountProfileGetData(filter,returnFormatType) : Observable<typeof CMAccountProfileUnion> {
+  CMAccountProfileGetData(filter, returnFormatType): Observable<typeof CMAccountProfileUnion> {
     let className = CMAccountProfileClassName;
-    let getDataObservable : Observable<any> = DataServiceManager.getDataServiceData(className,filter, returnFormatType, 1).pipe(map(x=>{
+    let getDataObservable: Observable<any> = this.dataservicemanager.getDataServiceData(className, filter, returnFormatType, 1).pipe(map(x => {
       return x;
     }));
 
-    return getDataObservable;  
+    return getDataObservable;
   }
 
-  ARAccountProfileGetData( filter,returnFormatType) : Observable<typeof ARAccountProfileUnion> {
- 
+  ARAccountProfileGetData(filter, returnFormatType): Observable<typeof ARAccountProfileUnion> {
+
     let className = ARAccountProfileClassName;
-    let getDataObservable : Observable<any> = DataServiceManager.getDataServiceData(className,filter, returnFormatType, 1).pipe(map(x=>{
+    let getDataObservable: Observable<any> = this.dataservicemanager.getDataServiceData(className, filter, returnFormatType, 1).pipe(map(x => {
       return x;
     }));
 
-    return getDataObservable;  
+    return getDataObservable;
   }
 
-  AccountProfileGetData(filter,returnFormatType) : Observable<typeof AccountProfileUnion> {
+  AccountProfileGetData(filter, returnFormatType): Observable<typeof AccountProfileUnion> {
 
     let className = AccountProfileClassName
-    let getDataObservable : Observable<typeof AccountProfileUnion> = DataServiceManager.getDataServiceData(className,filter, returnFormatType, 1).pipe(map(x=>{
-        return x;
+    let getDataObservable: Observable<typeof AccountProfileUnion> = this.dataservicemanager.getDataServiceData(className, filter, returnFormatType, 1).pipe(map(x => {
+      return x;
     }));
 
-    return getDataObservable;  
+    return getDataObservable;
   }
 
 
-  DocumentGetData( filter,returnFormatType) : Observable<typeof DocumentUnion> {
+  DocumentGetData(filter, returnFormatType): Observable<typeof DocumentUnion> {
 
     let className = DocumentClassName;
 
-    let getDataObservable : Observable<typeof DocumentUnion> = DataServiceManager.getDataServiceData(className,filter, returnFormatType, 1).pipe(map(x=>{
-        return x;
+    let getDataObservable: Observable<typeof DocumentUnion> = this.dataservicemanager.getDataServiceData(className, filter, returnFormatType, 1).pipe(map(x => {
+      return x;
     }));
 
-    return getDataObservable;  
+    return getDataObservable;
   }
 
-  ARInvoiceDocumentGetData(filter,returnFormatType) : Observable<typeof ARInvoiceDocumentUnion> {
+  ARInvoiceDocumentGetData(filter, returnFormatType): Observable<typeof ARInvoiceDocumentUnion> {
 
     let className = ARInvoiceDocumentClassName
 
-    let getDataObservable : Observable<typeof ARInvoiceDocumentUnion> = DataServiceManager.getDataServiceData(className,filter, returnFormatType, 1).pipe(map(x=>{
-        return x;
+    let getDataObservable: Observable<typeof ARInvoiceDocumentUnion> = this.dataservicemanager.getDataServiceData(className, filter, returnFormatType, 1).pipe(map(x => {
+      return x;
     }));
 
-    return getDataObservable;  
+    return getDataObservable;
   }
 
-  APInvoiceDocumentGetData( filter,returnFormatType) : Observable<typeof APInvoiceDocumentUnion> {
+  APInvoiceDocumentGetData(filter, returnFormatType): Observable<typeof APInvoiceDocumentUnion> {
 
     let className = APInvoiceDocumentClassName
 
-    let getDataObservable : Observable<typeof APInvoiceDocumentUnion> = DataServiceManager.getDataServiceData(className,filter, returnFormatType, 1).pipe(map(x=>{
-        return x;
+    let getDataObservable: Observable<typeof APInvoiceDocumentUnion> = this.dataservicemanager.getDataServiceData(className, filter, returnFormatType, 1).pipe(map(x => {
+      return x;
     }));
 
-    return getDataObservable;  
+    return getDataObservable;
   }
-  APReceiptDocumentGetData(filter,returnFormatType) : Observable<typeof APReceiptDocumentUnion> {
+  APReceiptDocumentGetData(filter, returnFormatType): Observable<typeof APReceiptDocumentUnion> {
 
     let className = APReceiptDocumentClassName;
 
-    let getDataObservable : Observable<typeof APReceiptDocumentUnion> = DataServiceManager.getDataServiceData(className,filter, returnFormatType, 1).pipe(map(x=>{
-        return x;
+    let getDataObservable: Observable<typeof APReceiptDocumentUnion> = this.dataservicemanager.getDataServiceData(className, filter, returnFormatType, 1).pipe(map(x => {
+      return x;
     }));
 
-    return getDataObservable;  
+    return getDataObservable;
   }
-  ARReceiptDocumentGetData( filter,returnFormatType) : Observable<typeof ARReceiptDocumentUnion> {
+  ARReceiptDocumentGetData(filter, returnFormatType): Observable<typeof ARReceiptDocumentUnion> {
     let className = ARReceiptDocumentClassName;
-    let getDataObservable : Observable<typeof ARReceiptDocumentUnion> = DataServiceManager.getDataServiceData(className,filter, returnFormatType, 1).pipe(map(x=>{
-        return x;
+    let getDataObservable: Observable<typeof ARReceiptDocumentUnion> = this.dataservicemanager.getDataServiceData(className, filter, returnFormatType, 1).pipe(map(x => {
+      return x;
     }));
 
-    return getDataObservable;  
+    return getDataObservable;
   }
 
-  OrganisationProfileGetData(filter,returnFormatType) : Observable<typeof OrganisationProfileUnion> {
+  OrganisationProfileGetData(filter, returnFormatType): Observable<typeof OrganisationProfileUnion> {
     let className = OrganisationProfileClassName;
-    let getDataObservable : Observable<typeof OrganisationProfileUnion> = DataServiceManager.getDataServiceData(className,filter, returnFormatType, 1).pipe(map(x=>{
-        return x;
+    let getDataObservable: Observable<typeof OrganisationProfileUnion> = this.dataservicemanager.getDataServiceData(className, filter, returnFormatType, 1).pipe(map(x => {
+      return x;
     }));
 
-    return getDataObservable;  
+    return getDataObservable;
   }
 
-  ServiceProgramProfileGetData(filter,returnFormatType) : Observable<typeof ServiceProgramProfileUnion> {
+  ServiceProgramProfileGetData(filter, returnFormatType): Observable<typeof ServiceProgramProfileUnion> {
     let className = ServiceProgramProfileClassName
-    let getDataObservable : Observable<typeof ServiceProgramProfileUnion> = DataServiceManager.getDataServiceData(className,filter, returnFormatType, 1).pipe(map(x=>{
-        return x;
+    let getDataObservable: Observable<typeof ServiceProgramProfileUnion> = this.dataservicemanager.getDataServiceData(className, filter, returnFormatType, 1).pipe(map(x => {
+      return x;
     }));
 
-    return getDataObservable;  
+    return getDataObservable;
   }
 
-  FisServiceProgramProfileGetData( filter,returnFormatType) : Observable<typeof FisServiceProgramUnion> {
+  FisServiceProgramProfileGetData(filter, returnFormatType): Observable<typeof FisServiceProgramUnion> {
     let className = FisServiceProgramClassName
-    let getDataObservable : Observable<typeof FisServiceProgramUnion> = DataServiceManager.getDataServiceData(className,filter, returnFormatType, 1).pipe(map(x=>{
-        return x;
+    let getDataObservable: Observable<typeof FisServiceProgramUnion> = this.dataservicemanager.getDataServiceData(className, filter, returnFormatType, 1).pipe(map(x => {
+      return x;
     }));
 
-    return getDataObservable;  
+    return getDataObservable;
   }
 
-  RoleTypeProfileGetData(filter,returnFormatType) : Observable<typeof RoleTypeProfileUnion> {
+  RoleTypeProfileGetData(filter, returnFormatType): Observable<typeof RoleTypeProfileUnion> {
     let className = RoleTypeProfileClassName
-    let getDataObservable : Observable<typeof RoleTypeProfileUnion> = DataServiceManager.getDataServiceData(className,filter, returnFormatType, 1).pipe(map(x=>{
-        return x;
+    let getDataObservable: Observable<typeof RoleTypeProfileUnion> = this.dataservicemanager.getDataServiceData(className, filter, returnFormatType, 1).pipe(map(x => {
+      return x;
     }));
 
-    return getDataObservable;  
+    return getDataObservable;
   }
 
-  ProductProfileGetData(filter,returnFormatType) : Observable<typeof ProductProfileUnion> {
+  ProductProfileGetData(filter, returnFormatType): Observable<typeof ProductProfileUnion> {
     let className = ProductProfileClassName
-    let getDataObservable : Observable<typeof ProductProfileUnion> = DataServiceManager.getDataServiceData(className,filter, returnFormatType, 1).pipe(map(x=>{
-        return x;
+    let getDataObservable: Observable<typeof ProductProfileUnion> = this.dataservicemanager.getDataServiceData(className, filter, returnFormatType, 1).pipe(map(x => {
+      return x;
     }));
 
-    return getDataObservable;  
+    return getDataObservable;
   }
 
-  LeaveBalanceGetData(filter,returnFormatType) : Observable<typeof LeaveBalanceUnion> {
+  LeaveBalanceGetData(filter, returnFormatType): Observable<typeof LeaveBalanceUnion> {
     let className = LeaveBalanceClassName
-    let getDataObservable : Observable<typeof LeaveBalanceUnion> = DataServiceManager.getDataServiceData(className,filter, returnFormatType, 1).pipe(map(x=>{
-        return x;
+    let getDataObservable: Observable<typeof LeaveBalanceUnion> = this.dataservicemanager.getDataServiceData(className, filter, returnFormatType, 1).pipe(map(x => {
+      return x;
     }));
 
-    return getDataObservable;  
+    return getDataObservable;
   }
 
-  LeaveHistoryGetData(filter,returnFormatType) : Observable<typeof LeaveHistoryUnion> {
+  LeaveHistoryGetData(filter, returnFormatType): Observable<typeof LeaveHistoryUnion> {
     let className = LeaveHistoryClassName
-    let getDataObservable : Observable<typeof LeaveHistoryUnion> = DataServiceManager.getDataServiceData(className,filter, returnFormatType, 1).pipe(map(x=>{
-        return x;
+    let getDataObservable: Observable<typeof LeaveHistoryUnion> = this.dataservicemanager.getDataServiceData(className, filter, returnFormatType, 1).pipe(map(x => {
+      return x;
     }));
 
-    return getDataObservable;  
+    return getDataObservable;
   }
 
-  LeaveTypeProfileGetData(filter,returnFormatType) : Observable<typeof LeaveTypeProfileUnion> {
+  LeaveTypeProfileGetData(filter, returnFormatType): Observable<typeof LeaveTypeProfileUnion> {
     let className = LeaveTypeProfileClassName
-    let getDataObservable : Observable<typeof LeaveTypeProfileUnion> = DataServiceManager.getDataServiceData(className,filter, returnFormatType, 1).pipe(map(x=>{
-        return x;
+    let getDataObservable: Observable<typeof LeaveTypeProfileUnion> = this.dataservicemanager.getDataServiceData(className, filter, returnFormatType, 1).pipe(map(x => {
+      return x;
     }));
 
-    return getDataObservable;  
+    return getDataObservable;
   }
 
 }

+ 2 - 2
src/common-service-channel/common-service-channel.controller.ts

@@ -6,13 +6,13 @@ import { DataServiceManager } from '../FisAppQueryModule/Manager.dataservice';
 
 @Controller('CommonServiceChannel')
 export class CommonServiceChannelController {
-
+  dataservicemanager: DataServiceManager
 
   @Post()
   post(@Req() req: any): Promise<DataServiceMessage> {
     let result;
     return new Promise((resolve, reject) => {
-      DataServiceManager.getDataServiceData(req.body.data.className, req.body.data.filter, req.body.data.returnFormatType, 0).subscribe({
+      this.dataservicemanager.getDataServiceData(req.body.data.className, req.body.data.filter, req.body.data.returnFormatType, 0).subscribe({
         next: res => {
           result = res;
         },

+ 1 - 1
src/main.ts

@@ -4,7 +4,7 @@ import { AppModule } from './app.module';
 
 async function bootstrap() {
   const app = await NestFactory.create(AppModule);
-  app.useGlobalPipes(new ValidationPipe({transform: true,}));
+  app.useGlobalPipes(new ValidationPipe({ transform: true, }));
   await app.listen(3002);
 }
 bootstrap();

이 변경점에서 너무 많은 파일들이 변경되어 몇몇 파일들은 표시되지 않았습니다.