1
0
mirror of https://github.com/sasjs/server.git synced 2026-01-10 16:00:05 +00:00

style: lint

This commit is contained in:
Mihajlo Medjedovic
2021-10-15 12:57:26 +00:00
parent 8bcb1c4b7b
commit 38ab27c1ed
6 changed files with 81 additions and 71 deletions

View File

@@ -3,34 +3,34 @@ import { getSessionController } from '.'
const multer = require('multer') const multer = require('multer')
export class FileUploadController { export class FileUploadController {
private storage = multer.diskStorage({ private storage = multer.diskStorage({
destination: function (req: any, file: any, cb: any) { destination: function (req: any, file: any, cb: any) {
//Sending the intercepted files to the sessions subfolder //Sending the intercepted files to the sessions subfolder
cb(null, req.sasSession.path) cb(null, req.sasSession.path)
}, },
filename: function (req: any, file: any, cb: any) { filename: function (req: any, file: any, cb: any) {
//req_file prefix + unique hash added to sas request files //req_file prefix + unique hash added to sas request files
cb(null, `req_file_${uuidv4().replace(/-/gm, '')}`) cb(null, `req_file_${uuidv4().replace(/-/gm, '')}`)
} }
}) })
private upload = multer({ storage: this.storage }) private upload = multer({ storage: this.storage })
//It will intercept request and generate uniqe uuid to be used as a subfolder name //It will intercept request and generate uniqe uuid to be used as a subfolder name
//that will store the files uploaded //that will store the files uploaded
public preuploadMiddleware = async (req: any, res: any, next: any) => { public preuploadMiddleware = async (req: any, res: any, next: any) => {
let session let session
const sessionController = getSessionController() const sessionController = getSessionController()
session = await sessionController.getSession() session = await sessionController.getSession()
session.inUse = true session.inUse = true
req.sasSession = session req.sasSession = session
next() next()
} }
public getMulterUploadObject() { public getMulterUploadObject() {
return this.upload return this.upload
} }
} }

View File

@@ -85,39 +85,50 @@ router.get('/SASjsExecutor/do', async (req, res) => {
} }
}) })
router.post('/SASjsExecutor/do', fileUploadController.preuploadMiddleware, fileUploadController.getMulterUploadObject().any(), async (req: any, res: any) => { router.post(
if (isRequestQuery(req.query)) { '/SASjsExecutor/do',
let sasCodePath = path fileUploadController.preuploadMiddleware,
.join(getTmpFilesFolderPath(), req.query._program) fileUploadController.getMulterUploadObject().any(),
.replace(new RegExp('/', 'g'), path.sep) 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 // If no extension provided, add .sas extension
sasCodePath += addExtensionIfNotFound(sasCodePath, 'sas') sasCodePath += addExtensionIfNotFound(sasCodePath, 'sas')
let filesNamesMap = null let filesNamesMap = null
if (req.files && req.files.length > 0) { if (req.files && req.files.length > 0) {
filesNamesMap = makeFilesNamesMap(req.files) filesNamesMap = makeFilesNamesMap(req.files)
} }
await new ExecutionController() await new ExecutionController()
.execute(sasCodePath, undefined, req.sasSession, { ...req.query }, { filesNamesMap: filesNamesMap }) .execute(
.then((result: {}) => { sasCodePath,
res.status(200).send(result) undefined,
}) req.sasSession,
.catch((err: {} | string) => { { ...req.query },
res.status(400).send({ { filesNamesMap: filesNamesMap }
status: 'failure', )
message: 'Job execution failed.', .then((result: {}) => {
...(typeof err === 'object' ? err : { details: err }) 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 export default router

View File

@@ -1,10 +1,10 @@
export interface MulterFile { export interface MulterFile {
fieldname: string fieldname: string
originalname: string originalname: string
encoding: string encoding: string
mimetype: string mimetype: string
destination: string destination: string
filename: string filename: string
path: string path: string
size: number size: number
} }

View File

@@ -10,9 +10,9 @@ import { listFilesInFolder } from '@sasjs/utils'
* @returns object * @returns object
*/ */
export const makeFilesNamesMap = (files: MulterFile[]) => { export const makeFilesNamesMap = (files: MulterFile[]) => {
if (!files) return null if (!files) return null
const filesNamesMap: {[key: string]: string} = {} const filesNamesMap: { [key: string]: string } = {}
for (let file of files) { for (let file of files) {
filesNamesMap[file.filename] = file.fieldname filesNamesMap[file.filename] = file.fieldname
@@ -40,7 +40,6 @@ export const generateFileUploadSasCode = (
count: number count: number
}[] = [] }[] = []
fs.readdirSync(sasSessionFolder).forEach((fileName) => { fs.readdirSync(sasSessionFolder).forEach((fileName) => {
let fileCountString = fileCount < 100 ? '0' + fileCount : fileCount let fileCountString = fileCount < 100 ? '0' + fileCount : fileCount
fileCountString = fileCount < 10 ? '00' + fileCount : fileCount fileCountString = fileCount < 10 ? '00' + fileCount : fileCount