| 
					
				 | 
			
			
				@@ -1,7 +1,7 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const cookieParser = require('cookie-parser'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const cors = require("cors"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const fs = require("fs"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-const path = require("path"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const globalPath = require("path"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const express = require("express"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const axios = require("axios"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // const SERVER_PORT = process.env.port || process.env.PORT || 53000; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -17,9 +17,19 @@ const multer  = require('multer'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const XLSX = require('xlsx'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const pptxgen = require('pptxgenjs'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const msal = require('@azure/msal-node'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const FormData = require("form-data"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const {pool, sql} = require('./config/sql.js'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const { v4: uuidv4 } = require('uuid'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const apiUrl = 'http://192.168.20.99:5050'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const createErrors = require('http-errors'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const gateWayKey = process.env.GATE_WAY_KEY; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const errorMap = new Map([ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const msalConfig = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   auth: { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -72,7 +82,7 @@ serverApp.use(session({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 serverApp.set(express.json()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 serverApp.use(cookieParser()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 serverApp.use(express.urlencoded({ extended: false })); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-serverApp.use("/static", express.static(path.join(__dirname, 'static'))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+serverApp.use("/static", express.static(globalPath.join(__dirname, 'static'))); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const options = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   key: process.env.SSL_KEY_FILE ? fs.readFileSync(process.env.SSL_KEY_FILE) : undefined, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -132,7 +142,7 @@ serverApp.use(bodyParser.json()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 serverApp.get("/tab",  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // isAuthenticated,  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   async function (req, res, next) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    res.sendFile(path.join(__dirname, "/views/hello.html"),  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    res.sendFile(globalPath.join(__dirname, "/views/hello.html"),  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       // { idTokenClaims: req.session.account.idTokenClaims } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -250,6 +260,7 @@ serverApp.get("/post-redirect", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // })); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 serverApp.post("/getGroupList",  async function (req, res, next) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // throw new Error('Error'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const oneDrive = await getFetch(endPoint + "/me/drive/root", req.session.accessToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const sharePointIds = await getFetch(endPoint + "/me/drive/SharePointIds", req.session.accessToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       // const publicTeam = await getFetch(endPoint + "/groups?$filter=groupTypes/any(c:c+eq+'Unified')", req.session.accessToken); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -398,10 +409,16 @@ serverApp.post('/api/makeWord', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       Packer.toBuffer(doc).then(async (buffer)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const resultObj = {message:"", success: 'F'};; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const base64EncodeData = Buffer.from(buffer).toString('base64'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const labelData = await setLabel(gateWayKey, req.session.account.idTokenClaims.email, name,  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      "878173ae-cc36-4881-af57-604af868314c", base64EncodeData, "Make New Word 문서"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (labelData.success === 'F') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return res.json(labelData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           const sitesInfo = await axios.get(endPoint + "/sites/"+ siteId + path, options); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           if (sitesInfo.data && sitesInfo.data.id) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const itemId = sitesInfo.data.id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            const result = await axios.put(endPoint + "/sites/"+ siteId +"/drive/items/"+itemId+':/'+name+':/content', buffer, options); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const result = await axios.put(endPoint + "/sites/"+ siteId +"/drive/items/"+itemId+':/'+name+':/content', labelData.data, options); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (result.data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               resultObj.message = "요청하신 Word 파일이 생성되었습니다.<br>파일명 : "+ name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               resultObj.success = 'S'; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -431,11 +448,19 @@ serverApp.post('/api/makeExcel', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const wb = XLSX.utils.book_new(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       XLSX.utils.book_append_sheet(wb, XLSX.utils.json_to_sheet([]), 'Sheet1'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       var wbout = XLSX.write(wb, {bookType:'xlsx',  type: 'buffer'}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const base64EncodeData = Buffer.from(wbout).toString('base64'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const resultObj = {message:'', success: 'F'}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       try{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const labelData = await setLabel(gateWayKey, req.session.account.idTokenClaims.email, name,  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        "878173ae-cc36-4881-af57-604af868314c", base64EncodeData, "Make New Excel 통합 문서"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (labelData.success === 'F') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          return res.json(labelData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const parentData = await axios.get(endPoint + "/sites/"+ siteId +path, options); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (parentData.data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          const result = await axios.put(endPoint + "/sites/"+ siteId +"/drive/items/"+parentData.data.id+':/'+name+':/content', wbout, options); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const result = await axios.put(endPoint + "/sites/"+ siteId +"/drive/items/"+parentData.data.id+':/'+name+':/content', labelData.data, options); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           if (result.data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             resultObj.message ='요청하신 Excel 파일이 생성 되었습니다.'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             resultObj.success = 'S'; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -446,10 +471,110 @@ serverApp.post('/api/makeExcel', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       catch(error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        resultObj.message = "요청하신 Word 파일 생성 중 오류가 발생하였습니다.<br>" + getErrorMessage(error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        resultObj.message = "요청하신 Excel 파일 생성 중 오류가 발생하였습니다.<br>" + getErrorMessage(error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       res.json(resultObj); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+async function setLabelFiles(param, headers, lengthSync, apiKey, email) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  console.log('======================setLabelFiles=====================================') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // const param = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //   apiKey: apiKey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //   email: email, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  //   file : files, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // dispFileName: dispFileName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // aipGuid: aipGuid, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // fileData: fileData, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // comment: comment, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const resultObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    message : null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    success : 'F', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    data : null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const errorMessage = '레이블 적용 중 오류가 발생했습니다.<br>에러 : '; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // const result = await axios.post(apiUrl + '/api/v1/stream/set-label', param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // console.log('실행') 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // console.log(param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const result = await axios.post(apiUrl + '/api/v1/file/encrypt', param, { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      headers : { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ...headers, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        "Content-Length" : lengthSync, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // console.log(result.data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (result && result.data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (result.data.statusCode === 200 && !result.data.result.errorCode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // resultObj.data = Buffer.from(result.data.result.fileData, "base64"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // console.log(param.get('apiKey')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // console.log(param.get('email')); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const infoParam = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          apiKey: apiKey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          email: email, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          dispFileName: result.data.result.dispFileName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          realFileName: result.data.result.outputFileName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log(infoParam); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const infoData = await axios.post(apiUrl + '/api/v1/file/info', infoParam); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log('=================infoData ========================'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log(infoData.data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        resultObj.data = result.data.result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        resultObj.success = 'S';  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        resultObj.message = errorMessage + result.data.result.errorMessage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      resultObj.message = errorMessage + '수신 데이터 없음'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  catch (error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    console.log(error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    resultObj.message = errorMessage + JSON.stringify(error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  return resultObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+async function setLabel(apiKey, email, dispFileName, aipGuid, fileData, comment) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const param = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    apiKey: apiKey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    email: email, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    dispFileName: dispFileName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    aipGuid: aipGuid, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    fileData: fileData, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    comment: comment, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const resultObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    message : null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    success : 'F', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    data : null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const errorMessage = '레이블 적용 중 오류가 발생했습니다.<br>에러 : '; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const result = await axios.post(apiUrl + '/api/v1/stream/set-label', param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (result && result.data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (result.data.statusCode === 200 && !result.data.result.errorCode && result.data.result.fileData) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        resultObj.data = Buffer.from(result.data.result.fileData, "base64"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        resultObj.success = 'S'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        resultObj.message = errorMessage + result.data.result.errorMessage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      resultObj.message = errorMessage + '수신 데이터 없음'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  catch (error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    resultObj.message = errorMessage + JSON.stringify(error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  return resultObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 serverApp.post('/api/makePptx',  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // isAuthenticated, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -463,9 +588,16 @@ serverApp.post('/api/makePptx', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const resultObj = {message:'', success: 'F'}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       pres.stream().then(async (data)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         try{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const base64EncodeData = Buffer.from(data).toString('base64'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const labelData = await setLabel(gateWayKey, req.session.account.idTokenClaims.email, name,  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      "878173ae-cc36-4881-af57-604af868314c", base64EncodeData, "Make New PowerPoint 프레젠테이션"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          if (labelData.success === 'F') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return res.json(labelData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           const parentData = await axios.get(endPoint + "/sites/"+ siteId +path, options); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           if (parentData.data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            const result = await axios.put(endPoint + "/sites/"+ siteId +"/drive/items/"+parentData.data.id+':/'+name+':/content', data, options); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const result = await axios.put(endPoint + "/sites/"+ siteId +"/drive/items/"+parentData.data.id+':/'+name+':/content', labelData.data, options); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (result.data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               resultObj.message ='요청하신 PowerPoint 프레젠테이션 파일이 생성 되었습니다.'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               resultObj.success = 'S'; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -606,19 +738,19 @@ serverApp.post('/api/upload', upload.array('file'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const promiseArray = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (files && files.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          console.log(files); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           let beforeUri = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           let beforeItemId = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          for (let file of files) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            const fileName = file.originalname; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            let filePath = req.body[ fileName + "_path"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const possibleExt = await getPossibleExt(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          for (let idx in files) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const file = files[idx]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //const fileName = file.originalname; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //let filePath = req.body[ fileName + "_path"]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             file.originalname = Buffer.from(file.originalname, 'ascii').toString('utf8'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let originName = file.originalname; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-             
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (originName.lastIndexOf('.') >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              const possibleExt = await getPossibleExt(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (originName && possibleExt) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              const ext = globalPath.extname(originName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               const {supported_file_ext, protected_file_ext} = possibleExt.data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              const ext = originName.substring(originName.lastIndexOf('.'), originName.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               if (supported_file_ext && protected_file_ext) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -633,68 +765,124 @@ serverApp.post('/api/upload', upload.array('file'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                       +'<br>해당 파일은 업로드 불가 파일입니다. 다시 시도해주세요.<br>가능 확장자 :'  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                       + JSON.stringify(supportedArr)}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                const fileData = Buffer.from(file.buffer).toString('base64'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                const uuid = uuidv4(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                const realFileName = uuid + ext; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                fs.writeFileSync('Z:/Source/' + realFileName, file.buffer); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const param = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   apiKey: gateWayKey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   email: req.session.account.idTokenClaims.email, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   dispFileName: originName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  realFileName : realFileName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   aipGuid: "878173ae-cc36-4881-af57-604af868314c", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   comment: "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  fileData: fileData 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                console.log(param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  const result = await axios.post('http://192.168.20.99:5050/api/v1/stream/set-label', param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  console.log(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  if (result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (result.data.statusCode === 200 && !result.data.result.errorCode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      let bufferValue = Buffer.from(result.data.result.fileData, "base64"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      file = bufferValue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      console.log(result.data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                      return res.json({success:'F', message: '파일명 : ' + originName + '<br>에러 : ' + result.data.result.errorMessage}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  const result = await axios.post(apiUrl + '/api/v1/file/set-label', param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  if (result.data.statusCode !== 200 && result.data.result.errorCode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    console.log(result.data.result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return res.json({success:'F', message: '파일 레이블 작업 중 오류가 발생했습니다.<br>에러 : ' + result.data.result.errorMessage}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 catch(error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  console.log(error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  return res.json({success:'F', message: '파일 레이블 작업 중 오류가 발생했습니다.<br>에러 : ' + JSON.stringify(error.message)}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                const labelFile = fs.readFileSync('Z:/Source/' + realFileName); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let formatPath = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (file_path[idx]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  if (!path.includes(":")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    formatPath = ":" + file_path[idx]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let itemId = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                const uri = endPoint + "/sites/"+ siteId + path + formatPath; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (beforeUri === uri) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  itemId = beforeItemId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    const sitesInfo = await axios.get(uri, options); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    itemId = sitesInfo.data.id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    beforeUri = uri; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    beforeItemId = itemId;  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  catch(error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    console.log(error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    res.json({success:'F', message: '파일 업로드 작업 중 오류가 발생했습니다.<br>에러 : ' + JSON.stringify(error.message)}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                promiseArray.push(axios.put(endPoint + "/sites/"+ siteId +"/drive/items/"+itemId+':/'+originName+':/content', labelFile, options)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // console.log(labelFile); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // const labelData = await setLabelFiles(param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // const fileData = Buffer.from(file.buffer).toString('base64'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // const param = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //   apiKey: gateWayKey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //   email: req.session.account.idTokenClaims.email, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //   dispFileName: originName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //   aipGuid: "878173ae-cc36-4881-af57-604af868314c", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //   comment: "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //   fileData: fileData 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //   const result = await axios.post(apiUrl + '/api/v1/stream/set-label', param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //   if (result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //     if (result.data.statusCode === 200 && !result.data.result.errorCode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //       let bufferValue = Buffer.from(result.data.result.fileData, "base64"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //       file = bufferValue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //     else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //       console.log(result.data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //       return res.json({success:'F', message: '파일명 : ' + originName + '<br>에러 : ' + result.data.result.errorMessage}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // catch(error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                //   console.log(error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            let formatPath = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (filePath) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              if (Array.isArray(filePath) && filePath.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                formatPath = filePath[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (filePath.length > 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  req.body[ fileName + "_path"] = filePath.splice(1);  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              else if (filePath.trim()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                formatPath = filePath; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // console.log(labelData.data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // return res.json({message:'test'}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // let formatPath = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // if (filePath) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //   if (Array.isArray(filePath) && filePath.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //     formatPath = filePath[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //     if (filePath.length > 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //       req.body[ fileName + "_path"] = filePath.splice(1);  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //   else if (filePath.trim()){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //     formatPath = filePath; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              if (!path.includes(":")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                formatPath = ":" + formatPath; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //   if (!path.includes(":")) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //     formatPath = ":" + formatPath; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            let itemId = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            const uri = endPoint + "/sites/"+ siteId + path + formatPath; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // let itemId = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // const uri = endPoint + "/sites/"+ siteId + path + formatPath; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				              
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (beforeUri === uri) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              itemId = beforeItemId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              const sitesInfo = await axios.get(uri, options); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              itemId = sitesInfo.data.id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              beforeUri = uri; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              beforeItemId = itemId;  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            promiseArray.push(axios.put(endPoint + "/sites/"+ siteId +"/drive/items/"+itemId+':/'+originName+':/content', file, options)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // if (beforeUri === uri) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //   itemId = beforeItemId; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //   const sitesInfo = await axios.get(uri, options); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //   itemId = sitesInfo.data.id; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //   beforeUri = uri; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            //   beforeItemId = itemId;  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // promiseArray.push(axios.put(endPoint + "/sites/"+ siteId +"/drive/items/"+itemId+':/'+originName+':/content', file, options)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (promiseArray.length > 0) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -787,7 +975,7 @@ serverApp.post('/api/download', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     fileData: file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                    
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  const result = await axios.post('http://192.168.20.99:5050/api/v1/stream/delete-label', param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  const result = await axios.post(apiUrl + '/api/v1/stream/delete-label', param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   if (result && result.data.statusCode === 200 && !result.data.result.errorCode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                       decodeFile = result.data.result.fileData; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -913,7 +1101,7 @@ serverApp.post('/api/folderMove', async (req, res, next)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 async function findSubFolder(data, movePath, moveSiteId, options) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    let resultType = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let resultType = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const moveItem = await axios.get(movePath, options); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -938,9 +1126,7 @@ async function findSubFolder(data, movePath, moveSiteId, options) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                       const children = childrenValues[ii]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                       if (children && children.folder) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                           const result = await findSubFolder(children, makeFolderPath, moveSiteId, options); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          if (!result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            resultType = result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          resultType = result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                       else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                           const dataUrl = children['@microsoft.graph.downloadUrl']; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -949,42 +1135,26 @@ async function findSubFolder(data, movePath, moveSiteId, options) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                           },}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                           if (response.data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             const file = response.data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            const uploadResult = await axios.put(`${endPoint}/sites/${moveSiteId}/drive/items/${makeFolderData.data.id}:/${children.name}:/content`, file.buffer, options); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if (!uploadResult) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                              resultType = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            const uploadResult = await axios.put(`${endPoint}/sites/${moveSiteId}/drive/items/${makeFolderData.data.id}:/${children.name}:/content`,  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                                  file.buffer, options); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (uploadResult) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                              resultType = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            resultType = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  resultType = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                resultType = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              resultType = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          resultType = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      resultType = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return resultType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   catch(error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     console.log(error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    return false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return resultType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  return resultType; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 function createZipFile(obj, zip) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1063,7 +1233,7 @@ serverApp.post('/api/getPossibleExtList', async (req, res, next)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     catch(error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       console.log(error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      res.status(500); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      res.status(error.status); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       res.send(error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1330,6 +1500,7 @@ async function getPossibleExt() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const query = await pool; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const result = await query.request().query(sqlQuery); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (result && result.recordset.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         resultObj.success = 'S'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         resultObj.message = 'Success'; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1341,6 +1512,7 @@ async function getPossibleExt() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     catch(error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // console.log(error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       console.log(error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       resultObj.success = 'F'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       resultObj.message = JSON.stringify(error); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1377,8 +1549,6 @@ async function setLabelFile(session, file, supported_file_ext) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const fileData = Buffer.from(file.buffer).toString('base64'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      console.log('=================fileData ================================='); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      console.log(fileData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const param = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         apiKey: gateWayKey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         email: session.account.idTokenClaims.email, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1389,7 +1559,7 @@ async function setLabelFile(session, file, supported_file_ext) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				        
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const result = await axios.post('http://192.168.20.99:5050/api/v1/stream/set-label', param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const result = await axios.post(apiUrl + '/api/v1/stream/set-label', param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           if (result.data.statusCode === 200 && !result.data.result.errorCode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             resultObj.fileData = Buffer.from(result.data.result.fileData, "base64"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1427,7 +1597,7 @@ async function deleteLabelFile(session, name, file) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       fileData: file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				      
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    const result = await axios.post('http://192.168.20.99:5050/api/v1/stream/delete-label', param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const result = await axios.post(apiUrl + '/api/v1/stream/delete-label', param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (result && result.data.statusCode === 200 && !result.data.result.errorCode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         resultObj.fileData = result.data.result.fileData; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1452,6 +1622,19 @@ function getOptions(token) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   return options; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+serverApp.use((err, req, res, next)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  console.log(err.message); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  console.log(err); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  console.log(res.statusCode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    res.status(400); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    res.json({message: err.message}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    res.status(500); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    res.json({message: err.message}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 server.listen(SERVER_PORT, function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   console.log(`\n${serverApp.name} listening to ${SERVER_PORT}`); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 });  
			 |