33 lines
906 B
JavaScript
33 lines
906 B
JavaScript
const Route = require('../../structures/Route');
|
|
const Util = require('../../utils/Util');
|
|
|
|
class filesGET extends Route {
|
|
constructor() {
|
|
super('/admin/file/:id', 'get', { adminOnly: true });
|
|
}
|
|
|
|
async run(req, res, db) {
|
|
const { id } = req.params;
|
|
if (!id) return res.status(400).json({ message: 'Invalid file ID supplied' });
|
|
|
|
let file = await db.table('files').where({ id }).first();
|
|
const user = await db.table('users')
|
|
.select('id', 'username', 'enabled', 'createdAt', 'editedAt', 'apiKeyEditedAt', 'isAdmin')
|
|
.where({ id: file.userId })
|
|
.first();
|
|
file = Util.constructFilePublicLink(req, file);
|
|
|
|
// Additional relevant data
|
|
const filesFromUser = await db.table('files').where({ userId: user.id }).select('id');
|
|
user.fileCount = filesFromUser.length;
|
|
|
|
return res.json({
|
|
message: 'Successfully retrieved file',
|
|
file,
|
|
user
|
|
});
|
|
}
|
|
}
|
|
|
|
module.exports = filesGET;
|