S3 for other controolers
This commit is contained in:
@@ -8,13 +8,19 @@ const {
|
||||
checkValidations,
|
||||
} = require("../plugins/controllersHelperFunctions");
|
||||
const News = require("../models/News");
|
||||
const sharp = require("sharp");
|
||||
const fs = require("fs");
|
||||
const { extname } = require("path");
|
||||
const {
|
||||
deleteCategoryImage,
|
||||
deleteShafafiatIcon,
|
||||
uploadProcessedImage,
|
||||
uploadShafafiatIcon,
|
||||
uploadTermsFile,
|
||||
deleteTermsFile,
|
||||
getStoredImageName,
|
||||
} = require("../plugins/categoryImageStorage");
|
||||
|
||||
// variables
|
||||
const titleFilterRegex = new RegExp("/", "g");
|
||||
const noCover = "/img/no-cover.jpg";
|
||||
const coverNewsWidth = 400;
|
||||
const coverNewsHeight = 400;
|
||||
const coverQuality = 100;
|
||||
@@ -411,34 +417,13 @@ module.exports.addCategory = [
|
||||
image.mimetype.split("/")[1]
|
||||
}`;
|
||||
try {
|
||||
const target = sharp(image.data);
|
||||
await target
|
||||
.resize(coverNewsWidth, coverNewsHeight, { fit: "cover" })
|
||||
.jpeg({ quality: coverQuality })
|
||||
.toFile(`./static/uploads/images/category/${imageName}`);
|
||||
|
||||
/**
|
||||
* if exist old pic delete it from file
|
||||
*/
|
||||
// if (targetNews.cover !== noCover && !targetNews.imported) {
|
||||
// let oldPic = `./static${targetNews.cover}`;
|
||||
//
|
||||
// if (await fs.existsSync(oldPic)) {
|
||||
// fs.unlink(oldPic, (err) => {
|
||||
// if (err) return res500(res, err?.message);
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (targetNews.thumbCover !== noCover && !targetNews.imported) {
|
||||
// let oldPic = `./static${targetNews.thumbCover}`;
|
||||
//
|
||||
// if (await fs.existsSync(oldPic)) {
|
||||
// fs.unlink(oldPic, (err) => {
|
||||
// if (err) return res500(res, err?.message);
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
await uploadProcessedImage(
|
||||
image.data,
|
||||
imageName,
|
||||
coverNewsWidth,
|
||||
coverNewsHeight,
|
||||
coverQuality
|
||||
);
|
||||
|
||||
create.managerCover = imageName;
|
||||
await create.save();
|
||||
@@ -461,33 +446,12 @@ module.exports.addCategory = [
|
||||
const ext = extname(image.name);
|
||||
const imageName = `shafafiat_icon_${Date.now()}${ext}`;
|
||||
try {
|
||||
await image.mv(
|
||||
`${process.cwd()}/static/uploads/images/category/shafafiat/${imageName}`
|
||||
await uploadShafafiatIcon(
|
||||
image.data,
|
||||
imageName,
|
||||
image.mimetype
|
||||
);
|
||||
|
||||
/**
|
||||
* if exist old pic delete it from file
|
||||
*/
|
||||
// if (targetNews.cover !== noCover && !targetNews.imported) {
|
||||
// let oldPic = `./static${targetNews.cover}`;
|
||||
//
|
||||
// if (await fs.existsSync(oldPic)) {
|
||||
// fs.unlink(oldPic, (err) => {
|
||||
// if (err) return res500(res, err?.message);
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
|
||||
// if (targetNews.thumbCover !== noCover && !targetNews.imported) {
|
||||
// let oldPic = `./static${targetNews.thumbCover}`;
|
||||
//
|
||||
// if (await fs.existsSync(oldPic)) {
|
||||
// fs.unlink(oldPic, (err) => {
|
||||
// if (err) return res500(res, err?.message);
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
|
||||
create.icon = imageName;
|
||||
await create.save();
|
||||
} catch (e) {
|
||||
@@ -812,24 +776,15 @@ module.exports.updateCategory = [
|
||||
image.mimetype.split("/")[1]
|
||||
}`;
|
||||
try {
|
||||
const target = sharp(image.data);
|
||||
await target
|
||||
.resize(coverNewsWidth, coverNewsHeight, { fit: "cover" })
|
||||
.jpeg({ quality: coverQuality })
|
||||
.toFile(`./static/uploads/images/category/${imageName}`);
|
||||
await deleteCategoryImage(targetCategory, "managerCover");
|
||||
|
||||
/**
|
||||
* if exist old pic delete it from file
|
||||
*/
|
||||
if (targetCategory.managerCover !== noCover) {
|
||||
let oldPic = `./static${targetCategory.managerCover}`;
|
||||
|
||||
if (await fs.existsSync(oldPic)) {
|
||||
fs.unlink(oldPic, (err) => {
|
||||
if (err) return res500(res, err?.message);
|
||||
});
|
||||
}
|
||||
}
|
||||
await uploadProcessedImage(
|
||||
image.data,
|
||||
imageName,
|
||||
coverNewsWidth,
|
||||
coverNewsHeight,
|
||||
coverQuality
|
||||
);
|
||||
|
||||
targetCategory.managerCover = imageName;
|
||||
} catch (e) {
|
||||
@@ -839,7 +794,6 @@ module.exports.updateCategory = [
|
||||
|
||||
if (req.files?.icon) {
|
||||
const image = req.files.icon;
|
||||
console.log(image);
|
||||
if (!_sr.supportedImageFormats.includes(image.mimetype.split("/")[1])) {
|
||||
return res.status(422).json({
|
||||
validation: {
|
||||
@@ -852,30 +806,17 @@ module.exports.updateCategory = [
|
||||
const ext = extname(image.name);
|
||||
const imageName = `shafafiat_icon_${Date.now()}${ext}`;
|
||||
try {
|
||||
await image.mv(
|
||||
`${process.cwd()}/static/uploads/images/category/shafafiat/${imageName}`
|
||||
await deleteShafafiatIcon(
|
||||
getStoredImageName(targetCategory, "icon")
|
||||
);
|
||||
// const target = sharp(image.data)
|
||||
// await target
|
||||
// .resize(coverNewsWidth, coverNewsHeight, {fit: 'cover'})
|
||||
// .jpeg({quality: coverQuality})
|
||||
// .toFile(`./static/uploads/images/category/shafafiat/${imageName}`);
|
||||
|
||||
/**
|
||||
* if exist old pic delete it from file
|
||||
*/
|
||||
if (targetCategory.icon !== noCover) {
|
||||
let oldPic = `./static${targetCategory.icon}`;
|
||||
|
||||
if (await fs.existsSync(oldPic)) {
|
||||
fs.unlink(oldPic, (err) => {
|
||||
if (err) return res500(res, err?.message);
|
||||
});
|
||||
}
|
||||
}
|
||||
await uploadShafafiatIcon(
|
||||
image.data,
|
||||
imageName,
|
||||
image.mimetype
|
||||
);
|
||||
|
||||
targetCategory.icon = imageName;
|
||||
console.log(targetCategory);
|
||||
} catch (e) {
|
||||
return res500(res, e?.message);
|
||||
}
|
||||
@@ -1223,52 +1164,59 @@ module.exports.getParent = [
|
||||
module.exports.addTermsFileToCategory = [
|
||||
[body("termsTitle").notEmpty().withMessage(_sr["fa"].required.title)],
|
||||
checkValidations(validationResult),
|
||||
(req, res) => {
|
||||
if (!req.files?.file)
|
||||
return res
|
||||
.status(422)
|
||||
.json({ validation: { file: { msg: _sr["fa"].required.file } } });
|
||||
if (req.files?.file.mimetype.split("/")[1] !== "pdf")
|
||||
return res
|
||||
.status(422)
|
||||
.json({ validation: { file: { msg: "فقط فرمت PDF قابل قبول است" } } });
|
||||
async (req, res) => {
|
||||
try {
|
||||
if (!req.files?.file)
|
||||
return res
|
||||
.status(422)
|
||||
.json({ validation: { file: { msg: _sr["fa"].required.file } } });
|
||||
if (req.files?.file.mimetype.split("/")[1] !== "pdf")
|
||||
return res
|
||||
.status(422)
|
||||
.json({ validation: { file: { msg: "فقط فرمت PDF قابل قبول است" } } });
|
||||
|
||||
const data = { title: req.body.termsTitle };
|
||||
const file = req.files.file;
|
||||
const fileName =
|
||||
req.body.termsTitle.replace(titleFilterRegex, "-") +
|
||||
"_" +
|
||||
Date.now() +
|
||||
".pdf";
|
||||
file.mv(`./static/uploads/files/terms/${fileName}`);
|
||||
data.file = fileName;
|
||||
const category = await Category.findById(req.params.categoryId);
|
||||
if (!category) return res404(res, "category not found");
|
||||
|
||||
Category.findById(req.params.categoryId, (err, category) => {
|
||||
if (err || !category) return res404(res, err);
|
||||
category.terms.push(data);
|
||||
category.save((err) => {
|
||||
if (err) return res500(res, err);
|
||||
else return res.json({ message: _sr["fa"].response.success_save });
|
||||
const fileName =
|
||||
req.body.termsTitle.replace(titleFilterRegex, "-") +
|
||||
"_" +
|
||||
Date.now() +
|
||||
".pdf";
|
||||
|
||||
await uploadTermsFile(req.files.file.data, fileName);
|
||||
|
||||
category.terms.push({
|
||||
title: req.body.termsTitle,
|
||||
file: fileName,
|
||||
});
|
||||
});
|
||||
await category.save();
|
||||
|
||||
return res.json({ message: _sr["fa"].response.success_save });
|
||||
} catch (err) {
|
||||
return res500(res, err);
|
||||
}
|
||||
},
|
||||
];
|
||||
|
||||
module.exports.removeTermsFileFromCategory = [
|
||||
(req, res) => {
|
||||
Category.findOne({ "terms._id": req.params.fileId }, (err, category) => {
|
||||
if (err || !category) return res404(res, err);
|
||||
const file = category.terms.id(req.params.fileId);
|
||||
if (!file) return res404(res, "not found");
|
||||
file.remove();
|
||||
fs.unlink(`./static/${file.file}`, (err) => {
|
||||
if (err) console.log(err);
|
||||
});
|
||||
category.save((err) => {
|
||||
if (err) return res500(res, err);
|
||||
else return res.json({ message: _sr["fa"].response.success_remove });
|
||||
});
|
||||
});
|
||||
async (req, res) => {
|
||||
try {
|
||||
const category = await Category.findOne({ "terms._id": req.params.fileId });
|
||||
if (!category) return res404(res, "not found");
|
||||
|
||||
const termsFile = category.terms.id(req.params.fileId);
|
||||
if (!termsFile) return res404(res, "not found");
|
||||
|
||||
const fileName = getStoredImageName(termsFile, "file");
|
||||
termsFile.remove();
|
||||
await deleteTermsFile(fileName);
|
||||
await category.save();
|
||||
|
||||
return res.json({ message: _sr["fa"].response.success_remove });
|
||||
} catch (err) {
|
||||
return res500(res, err);
|
||||
}
|
||||
},
|
||||
];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user