Save workspace at Backend

This commit is contained in:
Luis Fernando Molina committed 2020-05-11 17:16:56 +02:00
1 parent 546b91a3c9
commit 9485a0aafb
1 file changed
+92 -13
+92 -13
View File
@@ -55,19 +55,30 @@ exports.newWebServer = function newWebServer(EVENTS_SERVER) {
if (CONSOLE_LOG === true && request.url.indexOf('NO-LOG') === -1) { console.log('[INFO] webServer -> onBrowserRequest -> request.url = ' + request.url) }
function getBody(callback) { // Gets the de body from a POST request to the web server
let body = ''
try {
request.on('data', function (data) {
body += data
// Too much POST data
if (body.length > 1e6) {
request.connection.destroy()
}
})
let body = ''
request.on('end', function () {
callback(body)
})
request.on('data', function (data) {
body += data
// Too much POST data
if (body.length > 1e6) {
request.connection.destroy()
}
})
request.on('end', function () {
callback(body)
})
request.on('error', function (err) {
if (CONSOLE_LOG === true) { console.log('[INFO] webServer -> onBrowserRequest -> getBody -> err = ' + err.stack) }
respondWithContent(JSON.stringify(global.DEFAULT_OK_RESPONSE), response)
})
} catch (err) {
if (CONSOLE_LOG === true) { console.log('[INFO] webServer -> onBrowserRequest -> getBody -> err = ' + err.stack) }
respondWithContent(JSON.stringify(global.DEFAULT_OK_RESPONSE), response)
}
}
let requestParameters = request.url.split('/')
@@ -170,8 +181,10 @@ exports.newWebServer = function newWebServer(EVENTS_SERVER) {
}
break
}
break
case 'Webhook': {
case 'Webhook':
{
switch (requestParameters[2]) { // switch by command
case 'Fetch-Messages': {
let exchange = requestParameters[3]
@@ -243,9 +256,10 @@ exports.newWebServer = function newWebServer(EVENTS_SERVER) {
break
}
}
break
}
break
case 'ResetLogsAndData':
{
try {
@@ -378,6 +392,7 @@ exports.newWebServer = function newWebServer(EVENTS_SERVER) {
respondWithFile(filePath, response)
}
break
case 'Panels':
{
respondWithFile(process.env.PATH_TO_CANVAS_APP + '/' + requestParameters[1] + '/' + requestParameters[2], response)
@@ -464,6 +479,70 @@ exports.newWebServer = function newWebServer(EVENTS_SERVER) {
}
break
case 'ListWorkspaces':
{
let dirPath = process.env.MY_WORKSPACES_PATH
try {
let fs = require('fs')
fs.readdir(dirPath, onDirRead)
function onDirRead(err, fileList) {
if (err) {
if (CONSOLE_LOG === true) { console.log('[ERROR] Error reading a directory content. filePath = ' + dirPath) }
respondWithContent(JSON.stringify(global.DEFAULT_FAIL_RESPONSE), response)
} else {
respondWithContent(fileList, response)
}
}
} catch (err) {
if (CONSOLE_LOG === true) { console.log('[ERROR] Error reading a directory content. filePath = ' + dirPath) }
respondWithContent(JSON.stringify(global.DEFAULT_FAIL_RESPONSE), response)
}
}
break
case 'LoadWorkspace':
{
respondWithFile(process.env.MY_WORKSPACES_PATH + '/' + requestParameters[2], response)
}
break
case 'SaveWorkspace':
{
getBody(processRequest)
async function processRequest(body) {
let fileContent = body
let fileName = unescape(requestParameters[2])
let filePath = process.env.MY_WORKSPACES_PATH + '/' + fileName + '.json'
try {
let fs = require('fs')
fs.writeFile(filePath, fileContent, onFileWritten)
function onFileWritten(err) {
if (err) {
if (CONSOLE_LOG === true) { console.log('[ERROR] Error writting the Workspace file. fileName = ' + fileName) }
respondWithContent(JSON.stringify(exchanges), response)
} else {
respondWithContent(JSON.stringify(global.DEFAULT_OK_RESPONSE), response)
}
}
} catch (err) {
if (CONSOLE_LOG === true) { console.log('[ERROR] Error writting the Workspace file. fileName = ' + fileName) }
respondWithContent(JSON.stringify(exchanges), response)
}
}
}
break
case 'DataMines':
{
respondWithFile(process.env.DATA_MINES_PATH + '/' + requestParameters[2] + '.json', response)