|
@@ -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}`);
|
|
|
});
|