You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
80 lines
1.9 KiB
80 lines
1.9 KiB
const express = require('express'); |
|
const { spawnSync } = require('child_process'); |
|
|
|
const router = express.Router(); |
|
|
|
router |
|
.get('/', (request, response) => { |
|
console.log('Calling CLI script to get data.'); |
|
|
|
const scriptName = 'striker-access-database'; |
|
const childProcess = spawnSync( |
|
scriptName, |
|
[ |
|
'--query', |
|
'SELECT file_uuid, file_name, file_size, file_type, file_md5sum FROM files;', |
|
], |
|
{ |
|
timeout: 10000, |
|
encoding: 'utf-8', |
|
}, |
|
); |
|
let stdoutJSON; |
|
|
|
if (childProcess.error) { |
|
console.log('Error:', childProcess.error); |
|
|
|
response.status(500).send(); |
|
} |
|
|
|
console.log('Stdout:', childProcess.stdout); |
|
console.log('Stderr:', childProcess.stderr); |
|
|
|
try { |
|
stdoutJSON = JSON.parse(childProcess.stdout); |
|
} catch (jsonParseError) { |
|
console.warn(`Failed to parse output of script ${scriptName}.`); |
|
} |
|
|
|
response.status(200).send(stdoutJSON); |
|
}) |
|
.get('/:fileUUID', (request, response) => { |
|
console.log('Calling CLI script to get data.'); |
|
|
|
const scriptName = 'striker-access-database'; |
|
const childProcess = spawnSync( |
|
scriptName, |
|
[ |
|
'--query', |
|
`SELECT * |
|
FROM files AS fil |
|
JOIN file_locations AS fil_loc |
|
ON fil.file_uuid = fil_loc.file_location_file_uuid |
|
WHERE fil.file_uuid = '${request.params.fileUUID}';`, |
|
], |
|
{ |
|
timeout: 10000, |
|
encoding: 'utf-8', |
|
}, |
|
); |
|
let stdoutJSON; |
|
|
|
if (childProcess.error) { |
|
console.log('Error:', childProcess.error); |
|
|
|
response.status(500).send(); |
|
} |
|
|
|
console.log('Stdout:', childProcess.stdout); |
|
console.log('Stderr:', childProcess.stderr); |
|
|
|
try { |
|
stdoutJSON = JSON.parse(childProcess.stdout); |
|
} catch (jsonParseError) { |
|
console.warn(`Failed to parse output of script ${scriptName}.`); |
|
} |
|
|
|
response.status(200).send(stdoutJSON); |
|
}); |
|
|
|
module.exports = router;
|
|
|