Untitled
unknown
plain_text
a year ago
2.4 kB
11
Indexable
exports.addAll = catchAsync(async (req, res, next) => {
let { categories, products_section1, products_section2, products_section3, imagesmobile, imagesdesktop } = req.body;
let obj = {};
if (products_section1) {
const prod_s1 = await addsec1(products_section1, next);
obj.section1 = prod_s1;
}
if (products_section2) {
const prod_s2 = await addSec2(products_section2, next);
obj.section2 = prod_s2;
}
if (products_section2) {
const prod_s3 = await addSec3(products_section3, next);
obj.section3 = prod_s3;
}
if (categories) {
const cats = await addCats(categories, next);
obj.categories = cats;
}
if (imagesmobile) {
const imagesformobile = await addMobileBanner(imagesmobile, next);
obj.mobileimages = imagesformobile;
}
if (imagesdesktop) {
const imagesfordesktop = await addDesktopBanner(imagesdesktop, next);
obj.desktopimages = imagesfordesktop;
}
const result = await Layout.updateOne({}, obj);
if (result) {
res.status(200).json({
message: 'Layout is successfully updated',
result
});
} else {
return next(new AppError('Internal Server Error', 500));
}
});
const addSec3 = async (products, next) => {
let { products } = req.body;
if (products) {
if (products.length > 0) {
let duplicate = new Set(products);
if (duplicate.size !== products.length) {
return next(new AppError('Duplicate product in list', 400));
}
for (const product_id of products) {
try {
var Id = new mongoose.Types.ObjectId(product_id);
} catch (e) {
return next(new AppError('Invalid id.', 400));
}
const prod = await Product.findById(Id);
if (!prod) {
return next(new AppError('product not found', 400));
}
}
const result = await Layout.updateOne({}, { section3: products });
if (result) {
res.status(200).json({
message: 'Products have been added to section 3 successfully',
result
});
} else {
return next(new AppError('Internal Server Error', 500));
}
} else {
return next(new AppError('min of products to add is 1', 400));
}
} else {
return next(new AppError('products is required', 500));
}
};
Editor is loading...
Leave a Comment