diff --git a/index.js b/index.js index 529b2ad..4c255da 100644 --- a/index.js +++ b/index.js @@ -34,6 +34,8 @@ const multer = require('multer') // 'tt8':'RabbitMQ - RPC with NodeJs (request-reply pattern)-(1080p60).mp4', // 'tt9':'How to Install RabbitMQ Locally with Docker-(1080p60).mp4', // } +//https://dev140.apitest.wrenchboard.com/ +// http://127.0.0.1:3000/ console.log("Finding File"); @@ -42,12 +44,14 @@ var corsOptions = { optionsSuccessStatus: 200 // some legacy browsers (IE11, various SmartTVs) choke on 204 } -app.use(cors(corsOptions)); +//app.use(cors(corsOptions)); +app.use(cors()); // ,cors(corsOptions) const storage = multer.diskStorage({ destination: function(req, file, cb) { return cb(null, '/opt/wrenchboard/TEST/DUMMY') + //return cb(null, '/usr/src/app/videos') }, filename: function (req, file, cb) { return cb(null, `${Date.now()}_${file.originalname}`) @@ -109,7 +113,136 @@ app.post('/upload/task', upload.single('file'), (req, res) => { }) }) +app.post("/upload/resources", upload.array("files"), (req, res) => { +// Sets multer to intercept files named "files" on uploaded form data + console.log(req.body); // Logs form body values + //console.log(req.files); // Logs any files + + let destinationDir = process.env.COMMON_TASKF_PATH !== undefined ? process.env.COMMON_TASKF_PATH : '/opt/wrenchboard/TEST/TASKFILE'; + + const fs = require('fs'); + const dir = destinationDir + "/" + req.body.uid; + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir); + } + + if (!fs.existsSync(targetDir)) { + fs.mkdirSync(targetDir); + } + + let targetDir = destinationDir+'/MYFILES'; + + + req.files.map(( onefile )=>{ + { + //=============================================== + + console.log( onefile ); + + fs.rename(onefile.path, targetDir, function (err) { + if (err) throw err + console.log('Successfully renamed - '+onefile.path); + console.log('Start::Database Registration!'); + + + var data = { + "description": req.body.description, + "file_name": onefile.filename, + "file_size": onefile.size, + "file_type": onefile.mimetype, + "member_id": req.body.member_id, + "saved_file_name": onefile.filename, + "title": req.body.title + }; + + console.log("DATA - > ", data); + + var queryText = 'INSERT INTO members_myfiles (description,file_name,file_size,file_type,member_id,saved_file_name,title) VALUES ($1,$2,$3,$4,$5,$6,$7) RETURNING uid'; + db.query(queryText, [data.description,data.file_name,data.file_size,data.file_type,data.member_id,data.saved_file_name,data.title], function(dbErr, result) { + if (dbErr) { + console.log("DataError - > ", dbErr.toString()); + }else{ + console.log("DB Result - > " , result.rows); + result_list = result.rows; + } + console.log('End::Database Registration!'); + }) + return res.status(200).json({'status': 'Completed', 'internal_return': 0, 'result_list': result_list }) + //return res.status(200).send('Completed') + }) + //=============================================== + } + // 2024-05-23 22:13:28 fieldname: 'files', + // 2024-05-23 22:13:28 originalname: 'ofac sanctions list service - api documentation.docx', + // 2024-05-23 22:13:28 encoding: '7bit', + // 2024-05-23 22:13:28 mimetype: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document', + // 2024-05-23 22:13:28 destination: '/usr/src/app/videos', + // 2024-05-23 22:13:28 filename: '1716516808509_ofac sanctions list service - api documentation.docx', + // 2024-05-23 22:13:28 path: '/usr/src/app/videos/1716516808509_ofac sanctions list service - api documentation.docx', + // 2024-05-23 22:13:28 size: 243667 + // 2024-05-23 22:13:28 } + }) + + res.json({ message: "File(s) uploaded successfully" }); + + // + +}); + +app.post('/upload/resources2', upload.single('file'), (req, res) => { + console.log(req.body) + console.log(req.file) + + let uid = req.body.uid; + let job_uid = req.body.job_uid; + console.log(" req.body.uid -> ", uid) + console.log(" req.body.job_uid -> ", job_uid) + console.log(" process.env.COMMON_TASKF_PATH-> ", process.env.COMMON_TASKF_PATH) + + let destinationDir = process.env.COMMON_TASKF_PATH !== undefined ? process.env.COMMON_TASKF_PATH : '/opt/wrenchboard/TEST/TASKFILE'; + + const fs = require('fs'); + const dir = destinationDir + "/" + job_uid; + if (!fs.existsSync(dir)) { + fs.mkdirSync(dir); + } + + const oldPath = req.file.path; + const newPath = dir + "/" + req.file.filename; + var result_list =''; + fs.rename(oldPath, newPath, function (err) { + if (err) throw err + console.log('Successfully renamed - AKA moved!'); + console.log('Start::Database Registration!'); + + + var data = { + "member_uid": req.body.uid, + "job_uid": req.body.job_uid, + "filename": req.file.filename, + "originalname": req.file.originalname, + "mimetype": req.file.mimetype, + "size": req.file.size, + "encoding": req.file.encoding + }; + + console.log("DATA - > ", data); + + var queryText = 'INSERT INTO members_jobs_files( member_uid,job_uid,filename,originalname,mimetype,size,encoding ) VALUES($1,$2,$3,$4,$5,$6,$7) RETURNING uid'; + db.query(queryText, [data.member_uid,data.job_uid,data.filename,data.originalname,data.mimetype,data.size,data.encoding], function(dbErr, result) { + if (dbErr) { + console.log("DataError - > ", dbErr.toString()); + }else{ + console.log("DB Result - > " , result.rows); + result_list = result.rows; + } + console.log('End::Database Registration!'); + }) + return res.status(200).json({'status': 'Completed', 'internal_return': 0, 'result_list': result_list }) + //return res.status(200).send('Completed') + }) +}) app.get('/videos/:filename', (req, res)=>{