feat(striker-ui-api): add handler for files GET one

main
Tsu-ba-me 3 years ago
parent de0783909d
commit ca1a9b1f1b
  1. 107
      striker-ui-api/routes/files.js

@ -3,39 +3,78 @@ const { spawnSync } = require('child_process');
const router = express.Router(); const router = express.Router();
router.get('/', (request, response) => { router
console.log('Calling CLI script to get data.'); .get('/', (request, response) => {
console.log('Calling CLI script to get data.');
const scriptName = 'striker-access-database';
const childProcess = spawnSync( const scriptName = 'striker-access-database';
scriptName, const childProcess = spawnSync(
[ scriptName,
'--query', [
'SELECT file_uuid, file_name, file_size, file_type, file_md5sum FROM files;', '--query',
], 'SELECT file_uuid, file_name, file_size, file_type, file_md5sum FROM files;',
{ ],
timeout: 10000, {
encoding: 'utf-8', timeout: 10000,
}, encoding: 'utf-8',
); },
let stdoutJSON; );
let stdoutJSON;
if (childProcess.error) {
console.log('Error:', childProcess.error); if (childProcess.error) {
console.log('Error:', childProcess.error);
response.status(500).send();
} response.status(500).send();
}
console.log('Stdout:', childProcess.stdout);
console.log('Stderr:', childProcess.stderr); console.log('Stdout:', childProcess.stdout);
console.log('Stderr:', childProcess.stderr);
try {
stdoutJSON = JSON.parse(childProcess.stdout); try {
} catch (jsonParseError) { stdoutJSON = JSON.parse(childProcess.stdout);
console.warn(`Failed to parse output of script ${scriptName}.`); } catch (jsonParseError) {
} console.warn(`Failed to parse output of script ${scriptName}.`);
}
response.status(200).send(stdoutJSON);
}); 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; module.exports = router;

Loading…
Cancel
Save