@@ -1,91 +0,0 @@
|
||||
|
||||
|
||||
const checkValidations = validationResult => {
|
||||
return (req, res, next) => {
|
||||
const errors = validationResult(req)
|
||||
if (!errors.isEmpty()) {
|
||||
const msg = {}
|
||||
errors.errors.forEach(err => {
|
||||
msg[err.path] = err.msg
|
||||
});
|
||||
res.status(422).json(msg)
|
||||
} else next()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function filterDatesWithinDays(data, days, status) {
|
||||
const currentDate = new Date();
|
||||
const sevenDaysAgo = new Date(currentDate.getTime() - days * 24 * 60 * 60 * 1000);
|
||||
if (status) {
|
||||
return data.orders.filter(item => {
|
||||
const itemDate = new Date(item.orderDate);
|
||||
return itemDate >= sevenDaysAgo && itemDate <= currentDate && item.status == status;
|
||||
});
|
||||
} else {
|
||||
return data.orders.filter(item => {
|
||||
const itemDate = new Date(item.orderDate);
|
||||
return itemDate >= sevenDaysAgo && itemDate <= currentDate;
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
function filterWithStatus(data, status) {
|
||||
return data.orders.filter(item => {
|
||||
return item.status == status;
|
||||
});
|
||||
}
|
||||
|
||||
const sumProductsById = (data) => {
|
||||
const sumArray = [];
|
||||
const map = {};
|
||||
|
||||
data.forEach(item => {
|
||||
item.products.forEach(pd=>{
|
||||
const productId = pd.product.uid;
|
||||
const product = pd.product;
|
||||
const price = pd.price;
|
||||
|
||||
if (!map[productId]) {
|
||||
map[productId] = { product, total: 0, quantity: 0 };
|
||||
sumArray.push(map[productId]);
|
||||
}
|
||||
|
||||
map[productId].total += price;
|
||||
map[productId].quantity = product.stockQuantity;
|
||||
|
||||
})
|
||||
});
|
||||
|
||||
return (sumArray.sort((a, b) => a - b)).slice(0, 5);
|
||||
};
|
||||
|
||||
function filterQuantityHigh3(data) {
|
||||
return data.products.filter(item => {
|
||||
return item.stockQuantity > 0
|
||||
});
|
||||
}
|
||||
|
||||
function filterQuantityLow3(data) {
|
||||
return data.products.filter(item => {
|
||||
return item.stockQuantity <= 3
|
||||
});
|
||||
}
|
||||
|
||||
function filterZeroStock(data) {
|
||||
return data.products.filter(item => {
|
||||
return item.stockQuantity == 0
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
module.exports = {
|
||||
filterDatesWithinDays,
|
||||
sumProductsById,
|
||||
filterWithStatus,
|
||||
filterQuantityHigh3,
|
||||
filterQuantityLow3,
|
||||
filterZeroStock,
|
||||
checkValidations
|
||||
}
|
||||
Reference in New Issue
Block a user