| 
					
				 | 
			
			
				@@ -325,11 +325,7 @@ serverApp.post('/api/makeFolder', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // isAccessTokens, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     async (req, res, next)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const options = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        headers: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          Authorization: `Bearer ${req.session.accessToken}`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const options = getOptions(req.session.accessToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const {siteId, path, name} = req.body; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const resultObj = {message:"", success: 'F'}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const param ={ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -383,11 +379,7 @@ serverApp.post('/api/makeWord', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // isAuthenticated, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // isAccessTokens, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     async (req, res, next)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const options = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        headers: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          Authorization: `Bearer ${req.session.accessToken}`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const options = getOptions(req.session.accessToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const {siteId, path, name} = req.body; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const doc = new Document({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         sections : [ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -434,13 +426,7 @@ serverApp.post('/api/makeExcel', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // isAccessTokens, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     async (req, res, next)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const fileOptions = { headers: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Authorization: `Bearer ${req.session.accessToken}`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const options = { headers: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Authorization: `Bearer ${req.session.accessToken}`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const options = getOptions(req.session.accessToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const {siteId, path, name} = req.body; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const wb = XLSX.utils.book_new(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       XLSX.utils.book_append_sheet(wb, XLSX.utils.json_to_sheet([]), 'Sheet1'); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -470,9 +456,7 @@ serverApp.post('/api/makePptx', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // isAccessTokens, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     async (req, res, next)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const options = { headers: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        Authorization: `Bearer ${req.session.accessToken}`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const options = getOptions(req.session.accessToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const {siteId, path, name} = req.body; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const pres = new pptxgen(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       pres.addSlide("TITLE_SLIDE"); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -503,11 +487,7 @@ serverApp.post('/api/check-name', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // isAccessTokens, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     async (req, res, next)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const options = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        headers: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          Authorization: `Bearer ${req.session.accessToken}`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const options = getOptions(req.session.accessToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const {siteId, path, name} = req.body; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       try{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const sitesInfo = await axios.get(endPoint + "/sites/"+ siteId + path, options); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -540,21 +520,18 @@ serverApp.post('/api/check-name', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 serverApp.post('/api/upload', upload.array('file'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // isAuthenticated, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   // isAccessTokens, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   async (req, res, next)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const startTime = new Date(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const files = req.files; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    let {siteId, path, folder} = req.body; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    let {siteId, path, folder, file_path} = req.body; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (siteId && path) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const options = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        headers: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          Authorization: `Bearer ${req.session.accessToken}`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const options = getOptions(req.session.accessToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // const folderResult = await makeFolder(options, folder, siteId, path, file_path, files, req.session); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // console.log(folderResult); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      // return res.json(folderResult); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (folder) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           if (!Array.isArray(folder)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             folder = [folder]; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -629,6 +606,7 @@ 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) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -636,33 +614,48 @@ serverApp.post('/api/upload', upload.array('file'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             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(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              const {supported_file_ext, protected_file_ext} = possibleExt; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              const {supported_file_ext, protected_file_ext} = possibleExt.data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               const ext = originName.substring(originName.lastIndexOf('.'), originName.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+               
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               if (supported_file_ext && protected_file_ext) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                const supportedArr = supported_file_ext.split(';'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let supportedArr = supported_file_ext.split(';'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!supportedArr[supportedArr.length - 1]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  supportedArr.splice(supportedArr.length - 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (!supportedArr.includes(ext)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    return res.json({success:'F', message: '파일명 : '+originName+'<br>해당 파일은 업로드 불가 파일입니다. 다시 시도해주세요.'}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return res.json({success:'F', message: '파일명 : ' + originName  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                      +'<br>해당 파일은 업로드 불가 파일입니다. 다시 시도해주세요.<br>가능 확장자 :'  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                      + JSON.stringify(supportedArr)}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const fileData = Buffer.from(file.buffer).toString('base64'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const param = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  apiKey: process.env.GATE_WAY_KEY, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  apiKey: gateWayKey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   email: req.session.account.idTokenClaims.email, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   dispFileName: originName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   aipGuid: "878173ae-cc36-4881-af57-604af868314c", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   comment: "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   fileData: fileData 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                console.log(param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  // const result = await axios.post('https://115.91.94.42/api/v1/stream/set-label', param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   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) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    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) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -700,12 +693,8 @@ serverApp.post('/api/upload', upload.array('file'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               beforeUri = uri; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               beforeItemId = itemId;  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            const fileOptions = { headers: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              Authorization: `Bearer ${req.session.accessToken}`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              "Content-Type" : file.mimeType 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            // await axios.put(endPoint + "/sites/"+ siteId +"/drive/items/"+itemId+':/'+file.originalname+':/content', file.buffer, fileOptions); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            promiseArray.push(axios.put(endPoint + "/sites/"+ siteId +"/drive/items/"+itemId+':/'+originName+':/content', file, fileOptions)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            promiseArray.push(axios.put(endPoint + "/sites/"+ siteId +"/drive/items/"+itemId+':/'+originName+':/content', file, options)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (promiseArray.length > 0) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -738,11 +727,7 @@ serverApp.post('/api/download', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (req.body) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const {siteId, path, fileIds, zipName} = req.body; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (siteId && path && fileIds) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const options = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          headers: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Authorization: `Bearer ${req.session.accessToken}`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const options = getOptions(req.session.accessToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const arr = JSON.parse(fileIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (arr.length === 1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           const sitesInfo = await axios.get(endPoint + "/sites/"+ siteId + "/drive/items/" + arr[0], options); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -789,28 +774,25 @@ serverApp.post('/api/download', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               const response = await axios.get(dataUrl, {responseType: 'arraybuffer', headers: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 withCredentials:true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               },}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               if (response.data) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                const file = response.data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                const file = Buffer.from(response.data, 'arraybuffer').toString('base64'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 let decodeFile = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   const param = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    apiKey: process.env.GATE_WAY_KEY, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    apiKey: gateWayKey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     email : req.session.account.idTokenClaims.email, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     dispFileName: data.name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     comment: "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    fileData: Buffer.from(file).toString("base64") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    fileData: file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   const result = await axios.post('http://192.168.20.99:5050/api/v1/stream/delete-label', param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                  if (result && result.data.statusCode === 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    var binaryString = atob(result.data.result.fileData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    var bytes = new Uint8Array(binaryString.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    for (var i = 0; i < binaryString.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        bytes[i] = binaryString.charCodeAt(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    decodeFile = bytes.buffer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  if (result && result.data.statusCode === 200 && !result.data.result.errorCode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      decodeFile = result.data.result.fileData; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    return res.json({message: '레이블 해제 중 오류가 발생하였습니다.<br>' + result.data.message, success: 'F'}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      return res.json({message: '파일명 : ' +data.name + '<br>에러 : ' + result.data.result.errorMessage, success: 'F'}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 catch(error) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -891,11 +873,7 @@ serverApp.post('/api/folderMove', async (req, res, next)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const resultObj = {message:'폴더 이동에 실패 하였습니다.', success: 'F'}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (name && isNaN(name)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const nameArray = JSON.parse(name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const options = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        headers: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          Authorization: `Bearer ${req.session.accessToken}`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const options = getOptions(req.session.accessToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (nameArray && nameArray.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (let moveItem of nameArray) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1013,7 +991,7 @@ function createZipFile(obj, zip) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				    
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   if (obj.files.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     for (let file of obj.files) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      zip.file(file.name, file.data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      zip.file(file.name, file.data, {base64: true}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1057,34 +1035,12 @@ async function getFolderItems(url, array, options, session) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const response = await axios.get(dataUrl, {responseType: 'arraybuffer', headers: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           withCredentials:true, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         },}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         //암호화 해제 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let decodeFile; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          const param = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            apiKey: process.env.GATE_WAY_KEY, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            email : session.account.idTokenClaims.email, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            dispFileName: data.name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            comment: "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            fileData: Buffer.from(response.data).toString("base64") 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          const result = await axios.post('http://192.168.20.99:5050/api/v1/stream/delete-label', param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          if (result && result.data.statusCode === 200) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            var binaryString = atob(result.data.result.fileData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            var bytes = new Uint8Array(binaryString.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for (var i = 0; i < binaryString.length; i++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                bytes[i] = binaryString.charCodeAt(i); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            decodeFile = bytes.buffer; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            return res.json({message: '레이블 해제 중 오류가 발생하였습니다.<br>' + result.data.message, success: 'F'}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        catch(error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          return res.json({message: '레이블 해제 중 오류가 발생하였습니다.<br>' + JSON.stringify(error.message), success: 'F'}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const result = await deleteLabelFile(session, data.name, response.data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (!result.error && result.fileData) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          files.push({name : data.name, data : result.fileData, type: data.file.mimeType}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        files.push({name : data.name, data : decodeFile, type: data.file.mimeType}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         // files.push({name : data.name, data : response.data, type: data.file.mimeType}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1123,11 +1079,7 @@ serverApp.post('/api/delete', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (siteId && itemIds) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const itemIdArr = JSON.parse(itemIds); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (itemIdArr.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          const options = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            headers: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              Authorization: `Bearer ${req.session.accessToken}`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          const options = getOptions(req.session.accessToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           for (let itemId of itemIdArr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             try{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				               await axios.delete(endPoint + "/sites/"+ siteId + "/drive/items/" + itemId, options); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1164,11 +1116,7 @@ serverApp.post('/api/update-name', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const {siteId, itemId, name} = req.body; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const resultObj = {success: '', message:''}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (siteId && itemId && name) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          const options = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            headers: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-              Authorization: `Bearer ${req.session.accessToken}`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const options = getOptions(req.session.accessToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           try{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             await axios.patch(endPoint + "/sites/"+ siteId + "/drive/items/" + itemId, {name : name}, options); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1200,12 +1148,7 @@ serverApp.post('/api/move-item', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const resultObj = {message:'', successItems : [], failItems : [], locations: []}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (name && isNaN(name)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const nameArray = JSON.parse(name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        const options = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          headers: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            Authorization: `Bearer ${req.session.accessToken}`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            ContentType: "application/json", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const options = getOptions(req.session.accessToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (nameArray && nameArray.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				           for (let moveItem of nameArray) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1248,12 +1191,7 @@ async (req, res, next)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const resultObj = {message:'', successItems : [], failItems : [], locations: []}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (name && isNaN(name)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const nameArray = JSON.parse(name); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const options = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        headers: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          Authorization: `Bearer ${req.session.accessToken}`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          ContentType: "application/json", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const options = getOptions(req.session.accessToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       if (nameArray && nameArray.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         for (let moveItem of nameArray) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1321,12 +1259,7 @@ async (req, res, next)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const {name, siteId, path, teamId, teamName, bindId} = req.body; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const resultObj = {message:'', success: 'F'}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (name && siteId && path && teamId && teamName) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      const options = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        headers: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          Authorization: `Bearer ${req.session.accessToken}`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-          ContentType: "application/json", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const options = getOptions(req.session.accessToken); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         const teamInfo = await axios.get(`${endPoint}/teams/${teamId}/channels`, options); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1383,24 +1316,141 @@ async (req, res, next)=>{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 async function getPossibleExt() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const resultObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    success : 'F', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    message : null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    data : null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   const sqlQuery =  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     `SELECT  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         A.ConfigValue AS supported_file_ext,  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         B.ConfigValue AS protected_file_ext  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      FROM (SELECT * FROM TB_AIP_CONFIG WHERE ConfigKey = 'SupportedFileExt') A,   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-           (SELECT * FROM TB_AIP_CONFIG WHERE ConfigKey = 'ProtectedFileExt') B`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      FROM (SELECT * FROM TB_AIP_CONFIG WHERE ConfigKey = 'SupportedFileExt' AND AipServerId = 0) A,   
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+           (SELECT * FROM TB_AIP_CONFIG WHERE ConfigKey = 'ProtectedFileExt' AND AipServerId = 0) B`; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const query = await pool; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       const result = await query.request().query(sqlQuery); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-      if (result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        return result.recordset[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (result && result.recordset.length) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        resultObj.success = 'S'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        resultObj.message = 'Success'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        resultObj.data = result.recordset[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        resultObj.success = 'F'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        resultObj.message = "Not Found Data"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     catch(error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       console.log(error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      resultObj.success = 'F'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      resultObj.message = JSON.stringify(error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return resultObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+async function setLabelFile(session, file, supported_file_ext) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const resultObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    success : 'F', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    message : null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    fileData : null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const originName = file.originalname; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // 파일 확장자  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  if (originName && originName.lastIndexOf('.') >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const ext = originName.substring(originName.lastIndexOf('.'), originName.length); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (supported_file_ext) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      let supportedArr = supported_file_ext.split(';'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (!supportedArr[supportedArr.length - 1]) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        supportedArr.splice(supportedArr.length - 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (!supportedArr.includes(ext)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        resultObj.status = 500; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        resultObj.error = '파일명 : ' + originName  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          +'<br>해당 파일은 업로드 불가 파일입니다. 다시 시도해주세요.<br>가능 확장자 :'  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                          + JSON.stringify(supportedArr); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return resultObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const fileData = Buffer.from(file.buffer).toString('base64'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      console.log('=================fileData ================================='); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      console.log(fileData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      const param = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        apiKey: gateWayKey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        email: session.account.idTokenClaims.email, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        dispFileName: originName,  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        aipGuid: "878173ae-cc36-4881-af57-604af868314c", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        comment: "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        fileData: fileData 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+       
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const result = await axios.post('http://192.168.20.99:5050/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"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            console.log(result.data); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            resultObj.success = 'F'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            resultObj.message = '파일명 : ' + originName + '<br>에러 : ' + result.data.result.errorMessage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      catch(error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        console.log(error); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        resultObj.success = 'F'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        resultObj.message = '레이블 설정 중 오류가 발생하였습니다.<br>' + JSON.stringify(error.message); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  return resultObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+async function deleteLabelFile(session, name, file) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const resultObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    error : false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    errorMessage : null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    fileData : null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const param = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      apiKey: gateWayKey, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      email : session.account.idTokenClaims.email, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      dispFileName: name, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      comment: "", 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      fileData: file 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+     
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    const result = await axios.post('http://192.168.20.99:5050/api/v1/stream/delete-label', param); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (result && result.data.statusCode === 200 && !result.data.result.errorCode) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        resultObj.fileData = result.data.result.fileData; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      resultObj.error = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      resultObj.errorMessage = '파일명 : ' +data.name + '<br>에러 : ' + result.data.result.errorMessage; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  catch(error) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    resultObj.error = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    resultObj.errorMessage = '레이블 해제 중 오류가 발생하였습니다.<br>' + JSON.stringify(error.message); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  return resultObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function getOptions(token) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  const options = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    headers: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      Authorization: `Bearer ${token}`, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  return options; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 server.listen(SERVER_PORT, function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   console.log(`\n${serverApp.name} listening to ${SERVER_PORT}`); 
			 |