Fixed more variable renaming issues

This commit is contained in:
Dunemask 2021-08-02 21:57:55 -06:00
parent a19b3f6603
commit 122f722ff6
3 changed files with 22 additions and 20 deletions

View file

@ -38,6 +38,7 @@ function getFile(userId, fileId) {
function deleteFiles(userId, fileIds) { function deleteFiles(userId, fileIds) {
return files.find({ _id: { $in: fileIds } }).then((databaseFiles) => { return files.find({ _id: { $in: fileIds } }).then((databaseFiles) => {
var failed = []; var failed = [];
var toRemove = [];
filesByOwner = {}; filesByOwner = {};
databaseFiles.forEach((file) => { databaseFiles.forEach((file) => {
if (file.owner in filesByOwner) filesByOwner[file.owner].push(file); if (file.owner in filesByOwner) filesByOwner[file.owner].push(file);
@ -52,26 +53,27 @@ function deleteFiles(userId, fileIds) {
filesByOwner[owner].splice(i, 1); filesByOwner[owner].splice(i, 1);
} else deleteSize += file.size; } else deleteSize += file.size;
} }
fileIds = fileIds.filter((fileId) => !failed.includes(fileId));
toRemove.concat(
databaseFiles.filter((file) => fileIds.includes(`${file._id}`))
);
// Update User's owned
users users
.updateOne( .updateOne(
{ _id: owner, usedStorage: { $gte: deleteSize } }, { cairoId: owner, usedStorage: { $gte: deleteSize } },
{ {
$pull: { owned: { $in: filesByOwner[owner] } }, $pull: { owned: { $in: fileIds } },
$inc: { $inc: {
usedStorage: -deleteSize, usedStorage: -deleteSize,
}, },
} }
) )
.exec(); .exec();
fileIds = fileIds.filter((fileId) => !failed.includes(fileId)); // Update files DB
rfiles = databaseFiles.filter((file) => fileIds.includes(`${file._id}`)); files.deleteMany({ _id: { $in: fileIds } }).exec();
files console.log(toRemove);
.deleteMany({
_id: { $in: fileIds },
})
.exec();
return { files: rfiles, failed };
} }
return { files: toRemove, failed };
}); });
} }
@ -108,11 +110,11 @@ function uploadFile(cairoId, fileData) {
return getUserByCairoId(cairoId).then((user) => { return getUserByCairoId(cairoId).then((user) => {
if (user.usedStorage + fileData.size > user.storage) return null; if (user.usedStorage + fileData.size > user.storage) return null;
return users return users
.updateOne({ _id: cairoId }, { $inc: { usedStorage: fileData.size } }) .updateOne({ cairoId }, { $inc: { usedStorage: fileData.size } })
.then(() => createFile(user._id, fileData)) .then(() => createFile(cairoId, fileData))
.then((file) => { .then((file) => {
if (file == null) return null; if (file == null) return null;
users.updateOne({ _id: userId }, { $push: { owned: file._id } }).then(); users.updateOne({ cairoId }, { $push: { owned: file._id } }).then();
return file; return file;
}); });
}); });

View file

@ -6,12 +6,12 @@ const multer = require("multer");
const config = require("../config.json"); const config = require("../config.json");
//Multer Configs //Multer Configs
const userUploadStorage = multer.diskStorage({ const userUploadStorage = multer.diskStorage({
destination: (req, file, cb) => cb(null, userUploadDestination(req.user._id)), destination: (req, file, cb) => cb(null, userUploadDestination(req.user.cairoId)),
filename: (req, file, cb) => { filename: (req, file, cb) => {
const n = file.originalname.replaceAll(" ", "_"); const n = file.originalname.replaceAll(" ", "_");
const fileName = `${Date.now()}-${n}`; const fileName = `${Date.now()}-${n}`;
req.on("aborted", () => req.on("aborted", () =>
cancelUpload(resolvePath(userUploadDestination(req.user._id), fileName)) cancelUpload(resolvePath(userUploadDestination(req.user.cairoId), fileName))
); );
cb(null, fileName); cb(null, fileName);
}, },

View file

@ -38,7 +38,7 @@ const authMiddleware = (req, res, next) => {
router.use(cairoMiddleware); router.use(cairoMiddleware);
router.get("/files", authMiddleware, (req, res) => router.get("/files", authMiddleware, (req, res) =>
asUser.getOwnedFiles(req.user._id, req.user.owned).then((files) => { asUser.getOwnedFiles(req.user.cairoId, req.user.owned).then((files) => {
res.status(200).json(files); res.status(200).json(files);
}) })
); );
@ -46,7 +46,7 @@ router.get("/files", authMiddleware, (req, res) =>
router.post("/upload", authMiddleware, (req, res) => { router.post("/upload", authMiddleware, (req, res) => {
upload.userUpload(req, res, (err) => { upload.userUpload(req, res, (err) => {
if (err || req.file == null) return res.sendStatus(500); if (err || req.file == null) return res.sendStatus(500);
asUser.uploadFile(req.user._id, req.file).then((file) => { asUser.uploadFile(req.user.cairoId, req.file).then((file) => {
if (file != null) return res.json(file); if (file != null) return res.json(file);
upload.cancelUpload(req.file.path); upload.cancelUpload(req.file.path);
return res.sendStatus(500); return res.sendStatus(500);
@ -56,7 +56,7 @@ router.post("/upload", authMiddleware, (req, res) => {
router.post("/delete", authMiddleware, (req, res) => { router.post("/delete", authMiddleware, (req, res) => {
if (!req.body || !(req.body instanceof Array)) return res.sendStatus(400); if (!req.body || !(req.body instanceof Array)) return res.sendStatus(400);
asUser.deleteFiles(req.user._id, req.body).then((failed) => { asUser.deleteFiles(req.user.cairoId, req.body).then((failed) => {
if (!failed) return res.sendStatus(200); if (!failed) return res.sendStatus(200);
res.status(500).json(failed); res.status(500).json(failed);
}); });
@ -65,7 +65,7 @@ router.post("/delete", authMiddleware, (req, res) => {
router.get("/download", (req, res) => { router.get("/download", (req, res) => {
if (!req.query || (!req.query.target && !req.query.zipTarget)) if (!req.query || (!req.query.target && !req.query.zipTarget))
return res.sendStatus(404); return res.sendStatus(404);
const userId = req.user == null ? null : req.user._id; const userId = req.user == null ? null : req.user.cairoId;
if (req.query.target) if (req.query.target)
return storage.getFile(userId, req.query.target).then((file) => { return storage.getFile(userId, req.query.target).then((file) => {
if (file) return res.download(file.path); if (file) return res.download(file.path);
@ -76,7 +76,7 @@ router.get("/download", (req, res) => {
router.post("/public", authMiddleware, async (req, res) => { router.post("/public", authMiddleware, async (req, res) => {
if (!req.body || !(req.body instanceof Array)) return res.sendStatus(400); if (!req.body || !(req.body instanceof Array)) return res.sendStatus(400);
const failed = asUser.publicfyFiles(req.user._id, req.body); const failed = asUser.publicfyFiles(req.user.cairoId, req.body);
if (!failed) return res.sendStatus(200); if (!failed) return res.sendStatus(200);
res.status(500).json(failed); res.status(500).json(failed);
}); });