diff --git a/src/controllers/Execution.ts b/src/controllers/Execution.ts
index af379c1..47b5218 100644
--- a/src/controllers/Execution.ts
+++ b/src/controllers/Execution.ts
@@ -41,7 +41,7 @@ export class ExecutionController {
let webout = path.join(session.path, 'webout.txt')
await createFile(webout, '')
-
+
program = `
%let sasjsprocessmode=Stored Program;
filename _webout "${webout}";
@@ -93,7 +93,7 @@ ${program}`
(key: string) => key.toLowerCase() === '_debug'
)
- if (debug && vars[debug] >= 131 || stderr) {
+ if ((debug && vars[debug] >= 131) || stderr) {
webout = `
${webout}
@@ -102,7 +102,7 @@ ${webout}
`
}
-
+
session.inUse = false
sessionController.deleteSession(session)
diff --git a/src/routes/index.ts b/src/routes/index.ts
index 60f280f..ba7e3a4 100644
--- a/src/routes/index.ts
+++ b/src/routes/index.ts
@@ -1,8 +1,16 @@
import express from 'express'
-import { createFileTree, getSessionController, getTreeExample } from '../controllers'
+import {
+ createFileTree,
+ getSessionController,
+ getTreeExample
+} from '../controllers'
import { ExecutionResult, isRequestQuery, isFileTree } from '../types'
import path from 'path'
-import { getTmpFilesFolderPath, getTmpFolderPath, makeFilesNamesMap } from '../utils'
+import {
+ getTmpFilesFolderPath,
+ getTmpFolderPath,
+ makeFilesNamesMap
+} from '../utils'
import { ExecutionController } from '../controllers'
import { uuidv4 } from '@sasjs/utils'
@@ -30,7 +38,7 @@ const preuploadMiddleware = async (req: any, res: any, next: any) => {
const sessionController = getSessionController()
session = await sessionController.getSession()
session.inUse = true
-
+
req.sasSession = session
next()
@@ -78,7 +86,7 @@ router.get('/SASjsExecutor/do', async (req, res) => {
let sasCodePath = path
.join(getTmpFilesFolderPath(), req.query._program)
.replace(new RegExp('/', 'g'), path.sep)
-
+
// If no extension provided, add .sas extension
sasCodePath += !sasCodePath.includes('.') ? '.sas' : ''
@@ -102,39 +110,50 @@ router.get('/SASjsExecutor/do', async (req, res) => {
}
})
-router.post('/SASjsExecutor/do', preuploadMiddleware, upload.any(), async (req: any, res: any) => {
- if (isRequestQuery(req.query)) {
- let sasCodePath = path
- .join(getTmpFilesFolderPath(), req.query._program)
- .replace(new RegExp('/', 'g'), path.sep)
+router.post(
+ '/SASjsExecutor/do',
+ preuploadMiddleware,
+ upload.any(),
+ async (req: any, res: any) => {
+ if (isRequestQuery(req.query)) {
+ let sasCodePath = path
+ .join(getTmpFilesFolderPath(), req.query._program)
+ .replace(new RegExp('/', 'g'), path.sep)
- // If no extension provided, add .sas extension
- sasCodePath += !sasCodePath.includes('.') ? '.sas' : ''
+ // If no extension provided, add .sas extension
+ sasCodePath += !sasCodePath.includes('.') ? '.sas' : ''
- let filesNamesMap = null
+ let filesNamesMap = null
- if (req.files && req.files.length > 0) {
- filesNamesMap = makeFilesNamesMap(req.files)
- }
+ if (req.files && req.files.length > 0) {
+ filesNamesMap = makeFilesNamesMap(req.files)
+ }
- await new ExecutionController()
- .execute(sasCodePath, undefined, req.sasSession, { ...req.query }, { filesNamesMap: filesNamesMap })
- .then((result: {}) => {
- res.status(200).send(result)
- })
- .catch((err: {} | string) => {
- res.status(400).send({
- status: 'failure',
- message: 'Job execution failed.',
- ...(typeof err === 'object' ? err : { details: err })
+ await new ExecutionController()
+ .execute(
+ sasCodePath,
+ undefined,
+ req.sasSession,
+ { ...req.query },
+ { filesNamesMap: filesNamesMap }
+ )
+ .then((result: {}) => {
+ res.status(200).send(result)
})
+ .catch((err: {} | string) => {
+ res.status(400).send({
+ status: 'failure',
+ message: 'Job execution failed.',
+ ...(typeof err === 'object' ? err : { details: err })
+ })
+ })
+ } else {
+ res.status(400).send({
+ status: 'failure',
+ message: `Please provide the location of SAS code`
})
- } else {
- res.status(400).send({
- status: 'failure',
- message: `Please provide the location of SAS code`
- })
+ }
}
-})
+)
export default router
diff --git a/src/utils/index.ts b/src/utils/index.ts
index 61fe8f3..2f4a3cb 100644
--- a/src/utils/index.ts
+++ b/src/utils/index.ts
@@ -1,3 +1,3 @@
export * from './file'
export * from './sleep'
-export * from './upload'
\ No newline at end of file
+export * from './upload'
diff --git a/src/utils/upload.ts b/src/utils/upload.ts
index ce9e8a0..b04a2ee 100644
--- a/src/utils/upload.ts
+++ b/src/utils/upload.ts
@@ -8,15 +8,15 @@ import { getTmpSessionsFolderPath } from '.'
* @returns object
*/
export const makeFilesNamesMap = (files: any) => {
- if (!files) return null
+ if (!files) return null
- const filesNamesMap: any = {}
+ const filesNamesMap: any = {}
- for (let file of files) {
- filesNamesMap[file.filename] = file.fieldname
- }
+ for (let file of files) {
+ filesNamesMap[file.filename] = file.fieldname
+ }
- return filesNamesMap
+ return filesNamesMap
}
/**
@@ -25,7 +25,7 @@ export const makeFilesNamesMap = (files: any) => {
* @param sasUploadFolder name of the folder that is created for the purpose of files in concurrent request
* @returns generated sas code
*/
- export const generateFileUploadSasCode = (
+export const generateFileUploadSasCode = (
filesNamesMap: any,
sasSessionFolder: string
): string => {
@@ -83,4 +83,4 @@ export const makeFilesNamesMap = (files: any) => {
uploadSasCode += `\n`
return uploadSasCode
-}
\ No newline at end of file
+}