ecommerce-express-utils
Version:
A collection of handy express utilities for ecommerce
30 lines (26 loc) • 857 B
JavaScript
import asyncHandler from 'express-async-handler';
const getAllDocuments = async (model) => {
try {
return await model.find();
} catch (error) {
throw new Error(error.message);
}
};
const getWebsiteContents = ({ models }) => asyncHandler(async (req, res) => {
try {
const websiteContents = await Promise.all(
Object.entries(models).map(async ([key, model]) => {
const documents = await getAllDocuments(model);
return { key, documents };
})
);
const result = websiteContents.reduce((acc, { key, documents }) => {
acc[key] = documents;
return acc;
}, {});
res.status(200).json(result);
} catch (error) {
res.status(400).json({ error: error.message });
}
});
export { getWebsiteContents };