formatting

pull/4/head
Cameron Clough 2022-03-22 23:53:28 +00:00
parent 827a701e30
commit edf0241636
No known key found for this signature in database
GPG Key ID: BFB3B74B026ED43F
3 changed files with 35 additions and 28 deletions

View File

@ -93,7 +93,7 @@ function moveUploadedFile(buffer, directory, filename) {
const finalPath = mkDirByPathSync(process.env.STORAGE_PATH + directory, { isRelativeToScript: (process.env.STORAGE_PATH.indexOf('/') !== 0) }); const finalPath = mkDirByPathSync(process.env.STORAGE_PATH + directory, { isRelativeToScript: (process.env.STORAGE_PATH.indexOf('/') !== 0) });
if (!finalPath || finalPath.length === 0) { if (!finalPath || finalPath.length === 0) {
logger.error(`moveUploadedFile invalid final path, check permissions to create / write '${process.env.STORAGE_PATH + directory}'`); logger.error(`moveUploadedFile invalid final path, check permissions to create / write '${process.env.STORAGE_PATH}${directory}'`);
return false; return false;
} }

View File

@ -14,9 +14,10 @@ const logger = log4js.getLogger();
const router = express.Router(); const router = express.Router();
router.get('/', isAuthenticated, async (req, res) => { router.get('/', isAuthenticated, async (req, res) => {
const dongles = await deviceController.getDevices(req.account.id); const { account: { id } } = req;
const devices = await deviceController.getDevices(id);
return res.json({ success: true, data: dongles }); return res.json({ success: true, data: devices });
}); });
/* /*
@ -34,32 +35,41 @@ router.get('/', isAuthenticated, async (req, res) => {
} }
*/ */
router.put('/:dongle_id/', [isAuthenticated, bodyParser.json()], async (req, res) => { router.put('/:dongleId', [isAuthenticated, bodyParser.json()], async (req, res) => {
const { body } = req; const { body } = req;
logger.info(MutateDevice.isValid(body)); logger.info(MutateDevice.isValid(body));
// TODO: response? // TODO: response?
return res.json({ success: true }); return res.json({ success: true });
}); });
router.get('/:dongle_id/drives/:drive_identifier/segment', isAuthenticated, async (req, res) => { router.get('/:dongleId/drives/:driveIdentifier/segment', isAuthenticated, async (req, res) => {
const dongleId = req.params.dongle_id; const {
const accountId = req.account.id; account: { id: accountId },
params: {
dongleId,
driveIdentifier,
},
} = req;
const isUserAuthorised = await deviceController.isUserAuthorised(dongleId, accountId); const isUserAuthorised = await deviceController.isUserAuthorised(dongleId, accountId);
// TODO reduce data returned // TODO reduce data returned
if (isUserAuthorised.success === false || isUserAuthorised.data.authorised === false) { if (isUserAuthorised.success === false || isUserAuthorised.data.authorised === false) {
return res.json({ success: false, msg: isUserAuthorised.msg }); return res.json({ success: false, msg: isUserAuthorised.msg });
} }
const dongleIdHash = crypto.createHmac('sha256', process.env.APP_SALT).update(req.params.dongle_id).digest('hex'); const dongleIdHash = crypto.createHmac('sha256', process.env.APP_SALT)
const driveIdentifierHash = crypto.createHmac('sha256', process.env.APP_SALT).update(req.params.drive_identifier).digest('hex'); .update(dongleId)
.digest('hex');
const directoryTree = dirTree(`${process.env.STORAGE_PATH + req.params.dongle_id}/${dongleIdHash}/${driveIdentifierHash}/${req.params.drive_identifier}`); const driveIdentifierHash = crypto.createHmac('sha256', process.env.APP_SALT)
.update(driveIdentifier)
.digest('hex');
const directoryTree = dirTree(`${process.env.STORAGE_PATH}${dongleId}/${dongleIdHash}/${driveIdentifierHash}/${driveIdentifier}`);
return res.json({ success: true, msg: 'ok', data: directoryTree }); return res.json({ success: true, msg: 'ok', data: directoryTree });
}); });
router.get('/:dongle_id/drives/:deleted', isAuthenticated, async (req, res) => { router.get('/:dongleId/drives', isAuthenticated, async (req, res) => {
const dongleId = req.params.dongle_id; const { dongleId } = req.params;
const { deleted } = req.query;
const accountId = req.account.id; const accountId = req.account.id;
const isUserAuthorised = await deviceController.isUserAuthorised(dongleId, accountId); const isUserAuthorised = await deviceController.isUserAuthorised(dongleId, accountId);
@ -68,13 +78,12 @@ router.get('/:dongle_id/drives/:deleted', isAuthenticated, async (req, res) => {
return res.json({ success: false, msg: isUserAuthorised.msg }); return res.json({ success: false, msg: isUserAuthorised.msg });
} }
const dongles = await deviceController.getDrives(req.params.dongle_id, req.params.deleted === 'true', true); const drives = await deviceController.getDrives(dongleId, deleted === 'true', true);
return res.json({ success: true, data: drives });
return res.json({ success: true, data: dongles });
}); });
router.get('/:dongle_id/bootlogs', isAuthenticated, async (req, res) => { router.get('/:dongleId/bootlogs', isAuthenticated, async (req, res) => {
const dongleId = req.params.dongle_id; const { dongleId } = req.params;
const accountId = req.account.id; const accountId = req.account.id;
const isUserAuthorised = await deviceController.isUserAuthorised(dongleId, accountId); const isUserAuthorised = await deviceController.isUserAuthorised(dongleId, accountId);
// TODO reduce data returned // TODO reduce data returned
@ -82,13 +91,12 @@ router.get('/:dongle_id/bootlogs', isAuthenticated, async (req, res) => {
return res.json({ success: false, msg: isUserAuthorised.msg }); return res.json({ success: false, msg: isUserAuthorised.msg });
} }
const bootlogs = await deviceController.getBootlogs(req.params.dongle_id); const bootlogs = await deviceController.getBootlogs(dongleId);
return res.json({ success: true, data: bootlogs }); return res.json({ success: true, data: bootlogs });
}); });
router.get('/:dongle_id/crashlogs', isAuthenticated, async (req, res) => { router.get('/:dongleId/crashlogs', isAuthenticated, async (req, res) => {
const dongleId = req.params.dongle_id; const { dongleId } = req.params;
const accountId = req.account.id; const accountId = req.account.id;
const isUserAuthorised = await deviceController.isUserAuthorised(dongleId, accountId); const isUserAuthorised = await deviceController.isUserAuthorised(dongleId, accountId);
// TODO reduce data returned // TODO reduce data returned
@ -96,8 +104,7 @@ router.get('/:dongle_id/crashlogs', isAuthenticated, async (req, res) => {
return res.json({ success: false, msg: isUserAuthorised.msg }); return res.json({ success: false, msg: isUserAuthorised.msg });
} }
const crashlogs = await deviceController.getCrashlogs(req.params.dongle_id); const crashlogs = await deviceController.getCrashlogs(dongleId);
return res.json({ success: true, data: crashlogs }); return res.json({ success: true, data: crashlogs });
}); });

View File

@ -271,7 +271,7 @@ async function updateSegments() {
.update(segment.drive_identifier) .update(segment.drive_identifier)
.digest('hex'); .digest('hex');
const directoryTreePath = `${process.env.STORAGE_PATH + segment.dongle_id}/${dongleIdHash}/${driveIdentifierHash}/${segment.drive_identifier}/${segment.segment_id}`; const directoryTreePath = `${process.env.STORAGE_PATH}${segment.dongle_id}/${dongleIdHash}/${driveIdentifierHash}/${segment.drive_identifier}/${segment.segment_id}`;
const directoryTree = dirTree(directoryTreePath); const directoryTree = dirTree(directoryTreePath);
if (!directoryTree || !directoryTree.children) { if (!directoryTree || !directoryTree.children) {
@ -350,7 +350,7 @@ async function updateDevices() {
const dongleIdHash = crypto.createHmac('sha256', process.env.APP_SALT) const dongleIdHash = crypto.createHmac('sha256', process.env.APP_SALT)
.update(device.dongle_id) .update(device.dongle_id)
.digest('hex'); .digest('hex');
const devicePath = `${process.env.STORAGE_PATH + device.dongle_id}/${dongleIdHash}`; const devicePath = `${process.env.STORAGE_PATH}${device.dongle_id}/${dongleIdHash}`;
const deviceQuotaMb = Math.round(parseInt(execSync(`du -s ${devicePath} | awk -F'\t' '{print $1;}'`) const deviceQuotaMb = Math.round(parseInt(execSync(`du -s ${devicePath} | awk -F'\t' '{print $1;}'`)
.toString(), 10) / 1024); .toString(), 10) / 1024);
logger.info(`updateDevices device ${dongleId} has an updated storage_used of: ${deviceQuotaMb} MB`); logger.info(`updateDevices device ${dongleId} has an updated storage_used of: ${deviceQuotaMb} MB`);
@ -388,8 +388,8 @@ async function updateDrives() {
const driveIdentifierHash = crypto.createHmac('sha256', process.env.APP_SALT) const driveIdentifierHash = crypto.createHmac('sha256', process.env.APP_SALT)
.update(drive.identifier) .update(drive.identifier)
.digest('hex'); .digest('hex');
const driveUrl = `${process.env.BASE_DRIVE_DOWNLOAD_URL + drive.dongle_id}/${dongleIdHash}/${driveIdentifierHash}/${drive.identifier}`; const driveUrl = `${process.env.BASE_DRIVE_DOWNLOAD_URL}${drive.dongle_id}/${dongleIdHash}/${driveIdentifierHash}/${drive.identifier}`;
const drivePath = `${process.env.STORAGE_PATH + drive.dongle_id}/${dongleIdHash}/${driveIdentifierHash}/${drive.identifier}`; const drivePath = `${process.env.STORAGE_PATH}${drive.dongle_id}/${dongleIdHash}/${driveIdentifierHash}/${drive.identifier}`;
let uploadComplete = true; let uploadComplete = true;
let isProcessed = true; let isProcessed = true;