Enhance allowed filters and sorters in management routes to include 'overrideCost' and 'overridePrice'
This commit updates the allowed filters and sorters in the filament, part, and product SKU management routes to include 'overrideCost' and 'overridePrice'. Additionally, it refactors the route handlers for improved readability and consistency. These changes aim to enhance data retrieval capabilities and maintain a consistent structure across the management routes.
This commit is contained in:
parent
91eb22ac49
commit
9f5b390771
@ -13,6 +13,7 @@ const listAllowedFilters = [
|
|||||||
'name',
|
'name',
|
||||||
'color',
|
'color',
|
||||||
'cost',
|
'cost',
|
||||||
|
'overrideCost',
|
||||||
'costWithTax',
|
'costWithTax',
|
||||||
'createdAt',
|
'createdAt',
|
||||||
'updatedAt',
|
'updatedAt',
|
||||||
@ -25,6 +26,7 @@ const listAllowedSorters = [
|
|||||||
'color',
|
'color',
|
||||||
'cost',
|
'cost',
|
||||||
'costWithTax',
|
'costWithTax',
|
||||||
|
'overrideCost',
|
||||||
'createdAt',
|
'createdAt',
|
||||||
'updatedAt',
|
'updatedAt',
|
||||||
];
|
];
|
||||||
@ -46,18 +48,33 @@ import {
|
|||||||
router.get('/', isAuthenticated, checkPermissions('filamentSku', 'list'), async (req, res) => {
|
router.get('/', isAuthenticated, checkPermissions('filamentSku', 'list'), async (req, res) => {
|
||||||
const { page, limit, property, search, sortProperty, sortOrder } = req.query;
|
const { page, limit, property, search, sortProperty, sortOrder } = req.query;
|
||||||
const filter = await getFilter(req.query, listAllowedFilters);
|
const filter = await getFilter(req.query, listAllowedFilters);
|
||||||
listFilamentSkusRouteHandler(req, res, page, limit, property, filter, search, getSort(sortProperty, listAllowedSorters), sortOrder);
|
listFilamentSkusRouteHandler(
|
||||||
|
req,
|
||||||
|
res,
|
||||||
|
page,
|
||||||
|
limit,
|
||||||
|
property,
|
||||||
|
filter,
|
||||||
|
search,
|
||||||
|
getSort(sortProperty, listAllowedSorters),
|
||||||
|
sortOrder
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('filamentSku', 'list'), isAuthenticated, async (req, res) => {
|
router.get(
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
'/properties',
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
checkPermissions('filamentSku', 'list'),
|
||||||
let masterFilter = {};
|
isAuthenticated,
|
||||||
if (req.query.masterFilter) {
|
async (req, res) => {
|
||||||
masterFilter = JSON.parse(req.query.masterFilter);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
|
let masterFilter = {};
|
||||||
|
if (req.query.masterFilter) {
|
||||||
|
masterFilter = JSON.parse(req.query.masterFilter);
|
||||||
|
}
|
||||||
|
listFilamentSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
}
|
}
|
||||||
listFilamentSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
);
|
||||||
});
|
|
||||||
|
|
||||||
router.get(
|
router.get(
|
||||||
'/values',
|
'/values',
|
||||||
@ -68,23 +85,29 @@ router.get(
|
|||||||
const filter = await getFilter(req.query, listAllowedFilters, true);
|
const filter = await getFilter(req.query, listAllowedFilters, true);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
if (req.query.masterFilter) {
|
if (req.query.masterFilter) {
|
||||||
masterFilter = await getFilter(
|
masterFilter = await getFilter(JSON.parse(req.query.masterFilter), listAllowedFilters, true);
|
||||||
JSON.parse(req.query.masterFilter),
|
|
||||||
listAllowedFilters,
|
|
||||||
true
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
getFilamentSkuPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
|
getFilamentSkuPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
router.get('/search', checkPermissions('filamentSku', 'list'), isAuthenticated, async (req, res) => {
|
router.get(
|
||||||
const { search } = req.query;
|
'/search',
|
||||||
searchFilamentSkusRouteHandler(req, res, search);
|
checkPermissions('filamentSku', 'list'),
|
||||||
});
|
isAuthenticated,
|
||||||
|
async (req, res) => {
|
||||||
|
const { search } = req.query;
|
||||||
|
searchFilamentSkusRouteHandler(req, res, search);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('filament', 'newFilamentSku'), async (req, res) => {
|
router.post(
|
||||||
newFilamentSkuRouteHandler(req, res);
|
'/',
|
||||||
});
|
isAuthenticated,
|
||||||
|
checkPermissions('filament', 'newFilamentSku'),
|
||||||
|
async (req, res) => {
|
||||||
|
newFilamentSkuRouteHandler(req, res);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
router.get('/stats', isAuthenticated, async (req, res) => {
|
router.get('/stats', isAuthenticated, async (req, res) => {
|
||||||
getFilamentSkuStatsRouteHandler(req, res);
|
getFilamentSkuStatsRouteHandler(req, res);
|
||||||
@ -97,7 +120,16 @@ router.get('/history', isAuthenticated, async (req, res) => {
|
|||||||
router.get('/neighbors', isAuthenticated, async (req, res) => {
|
router.get('/neighbors', isAuthenticated, async (req, res) => {
|
||||||
const { property, search, sortProperty, sortOrder, id } = req.query;
|
const { property, search, sortProperty, sortOrder, id } = req.query;
|
||||||
const filter = await getFilter(req.query, listAllowedFilters);
|
const filter = await getFilter(req.query, listAllowedFilters);
|
||||||
getFilamentSkuNeighborsRouteHandler(req, res, property, filter, search, getSort(sortProperty, listAllowedSorters), sortOrder, id);
|
getFilamentSkuNeighborsRouteHandler(
|
||||||
|
req,
|
||||||
|
res,
|
||||||
|
property,
|
||||||
|
filter,
|
||||||
|
search,
|
||||||
|
getSort(sortProperty, listAllowedSorters),
|
||||||
|
sortOrder,
|
||||||
|
id
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/:id', isAuthenticated, async (req, res) => {
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||||
|
|||||||
@ -12,8 +12,10 @@ const listAllowedFilters = [
|
|||||||
'part._id',
|
'part._id',
|
||||||
'name',
|
'name',
|
||||||
'cost',
|
'cost',
|
||||||
|
'overrideCost',
|
||||||
'costWithTax',
|
'costWithTax',
|
||||||
'price',
|
'price',
|
||||||
|
'overridePrice',
|
||||||
'priceWithTax',
|
'priceWithTax',
|
||||||
'margin',
|
'margin',
|
||||||
'createdAt',
|
'createdAt',
|
||||||
@ -28,6 +30,8 @@ const listAllowedSorters = [
|
|||||||
'costWithTax',
|
'costWithTax',
|
||||||
'price',
|
'price',
|
||||||
'priceWithTax',
|
'priceWithTax',
|
||||||
|
'overrideCost',
|
||||||
|
'overridePrice',
|
||||||
'margin',
|
'margin',
|
||||||
'createdAt',
|
'createdAt',
|
||||||
'updatedAt',
|
'updatedAt',
|
||||||
@ -44,50 +48,54 @@ import {
|
|||||||
getPartSkuHistoryRouteHandler,
|
getPartSkuHistoryRouteHandler,
|
||||||
searchPartSkusRouteHandler,
|
searchPartSkusRouteHandler,
|
||||||
getPartSkuPropertyValuesRouteHandler,
|
getPartSkuPropertyValuesRouteHandler,
|
||||||
|
getPartSkuNeighborsRouteHandler,
|
||||||
getPartSkuNeighborsRouteHandler
|
|
||||||
} from '../../services/management/partskus.js';
|
} from '../../services/management/partskus.js';
|
||||||
|
|
||||||
router.get('/', isAuthenticated, checkPermissions('partSku', 'list'), async (req, res) => {
|
router.get('/', isAuthenticated, checkPermissions('partSku', 'list'), async (req, res) => {
|
||||||
const { page, limit, property, search, sortProperty, sortOrder } = req.query;
|
const { page, limit, property, search, sortProperty, sortOrder } = req.query;
|
||||||
const filter = await getFilter(req.query, listAllowedFilters);
|
const filter = await getFilter(req.query, listAllowedFilters);
|
||||||
listPartSkusRouteHandler(req, res, page, limit, property, filter, search, getSort(sortProperty, listAllowedSorters), sortOrder);
|
listPartSkusRouteHandler(
|
||||||
});
|
req,
|
||||||
|
res,
|
||||||
router.get('/properties', checkPermissions('partSku', 'list'), isAuthenticated, async (req, res) => {
|
page,
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
limit,
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
property,
|
||||||
let masterFilter = {};
|
filter,
|
||||||
if (req.query.masterFilter) {
|
search,
|
||||||
masterFilter = JSON.parse(req.query.masterFilter);
|
getSort(sortProperty, listAllowedSorters),
|
||||||
}
|
sortOrder
|
||||||
listPartSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get(
|
router.get(
|
||||||
'/values',
|
'/properties',
|
||||||
checkPermissions('partSku', 'list'),
|
checkPermissions('partSku', 'list'),
|
||||||
isAuthenticated,
|
isAuthenticated,
|
||||||
async (req, res) => {
|
async (req, res) => {
|
||||||
const { property } = req.query;
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, listAllowedFilters, true);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
let masterFilter = {};
|
||||||
if (req.query.masterFilter) {
|
if (req.query.masterFilter) {
|
||||||
masterFilter = await getFilter(
|
masterFilter = JSON.parse(req.query.masterFilter);
|
||||||
JSON.parse(req.query.masterFilter),
|
|
||||||
listAllowedFilters,
|
|
||||||
true
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
getPartSkuPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
|
listPartSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
router.get('/values', checkPermissions('partSku', 'list'), isAuthenticated, async (req, res) => {
|
||||||
|
const { property } = req.query;
|
||||||
|
const filter = await getFilter(req.query, listAllowedFilters, true);
|
||||||
|
var masterFilter = {};
|
||||||
|
if (req.query.masterFilter) {
|
||||||
|
masterFilter = await getFilter(JSON.parse(req.query.masterFilter), listAllowedFilters, true);
|
||||||
|
}
|
||||||
|
getPartSkuPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
|
||||||
|
});
|
||||||
router.get('/search', checkPermissions('partSku', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', checkPermissions('partSku', 'list'), isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchPartSkusRouteHandler(req, res, search);
|
searchPartSkusRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('part', 'newPartSku'), async (req, res) => {
|
router.post('/', isAuthenticated, checkPermissions('part', 'newPartSku'), async (req, res) => {
|
||||||
newPartSkuRouteHandler(req, res);
|
newPartSkuRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
@ -103,7 +111,16 @@ router.get('/history', isAuthenticated, async (req, res) => {
|
|||||||
router.get('/neighbors', isAuthenticated, async (req, res) => {
|
router.get('/neighbors', isAuthenticated, async (req, res) => {
|
||||||
const { property, search, sortProperty, sortOrder, id } = req.query;
|
const { property, search, sortProperty, sortOrder, id } = req.query;
|
||||||
const filter = await getFilter(req.query, listAllowedFilters);
|
const filter = await getFilter(req.query, listAllowedFilters);
|
||||||
getPartSkuNeighborsRouteHandler(req, res, property, filter, search, getSort(sortProperty, listAllowedSorters), sortOrder, id);
|
getPartSkuNeighborsRouteHandler(
|
||||||
|
req,
|
||||||
|
res,
|
||||||
|
property,
|
||||||
|
filter,
|
||||||
|
search,
|
||||||
|
getSort(sortProperty, listAllowedSorters),
|
||||||
|
sortOrder,
|
||||||
|
id
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/:id', isAuthenticated, async (req, res) => {
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||||
|
|||||||
@ -12,6 +12,8 @@ const listAllowedFilters = [
|
|||||||
'product._id',
|
'product._id',
|
||||||
'name',
|
'name',
|
||||||
'cost',
|
'cost',
|
||||||
|
'overrideCost',
|
||||||
|
'overridePrice',
|
||||||
'costWithTax',
|
'costWithTax',
|
||||||
'price',
|
'price',
|
||||||
'priceWithTax',
|
'priceWithTax',
|
||||||
@ -26,6 +28,8 @@ const listAllowedSorters = [
|
|||||||
'name',
|
'name',
|
||||||
'cost',
|
'cost',
|
||||||
'costWithTax',
|
'costWithTax',
|
||||||
|
'overrideCost',
|
||||||
|
'overridePrice',
|
||||||
'price',
|
'price',
|
||||||
'priceWithTax',
|
'priceWithTax',
|
||||||
'margin',
|
'margin',
|
||||||
@ -44,53 +48,62 @@ import {
|
|||||||
getProductSkuHistoryRouteHandler,
|
getProductSkuHistoryRouteHandler,
|
||||||
searchProductSkusRouteHandler,
|
searchProductSkusRouteHandler,
|
||||||
getProductSkuPropertyValuesRouteHandler,
|
getProductSkuPropertyValuesRouteHandler,
|
||||||
|
getProductSkuNeighborsRouteHandler,
|
||||||
getProductSkuNeighborsRouteHandler
|
|
||||||
} from '../../services/management/productskus.js';
|
} from '../../services/management/productskus.js';
|
||||||
|
|
||||||
router.get('/', isAuthenticated, checkPermissions('productSku', 'list'), async (req, res) => {
|
router.get('/', isAuthenticated, checkPermissions('productSku', 'list'), async (req, res) => {
|
||||||
const { page, limit, property, search, sortProperty, sortOrder } = req.query;
|
const { page, limit, property, search, sortProperty, sortOrder } = req.query;
|
||||||
const filter = await getFilter(req.query, listAllowedFilters);
|
const filter = await getFilter(req.query, listAllowedFilters);
|
||||||
listProductSkusRouteHandler(req, res, page, limit, property, filter, search, getSort(sortProperty, listAllowedSorters), sortOrder);
|
listProductSkusRouteHandler(
|
||||||
});
|
req,
|
||||||
|
res,
|
||||||
router.get('/properties', checkPermissions('productSku', 'list'), isAuthenticated, async (req, res) => {
|
page,
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
limit,
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
property,
|
||||||
let masterFilter = {};
|
filter,
|
||||||
if (req.query.masterFilter) {
|
search,
|
||||||
masterFilter = JSON.parse(req.query.masterFilter);
|
getSort(sortProperty, listAllowedSorters),
|
||||||
}
|
sortOrder
|
||||||
listProductSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get(
|
router.get(
|
||||||
'/values',
|
'/properties',
|
||||||
checkPermissions('productSku', 'list'),
|
checkPermissions('productSku', 'list'),
|
||||||
isAuthenticated,
|
isAuthenticated,
|
||||||
async (req, res) => {
|
async (req, res) => {
|
||||||
const { property } = req.query;
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, listAllowedFilters, true);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
let masterFilter = {};
|
||||||
if (req.query.masterFilter) {
|
if (req.query.masterFilter) {
|
||||||
masterFilter = await getFilter(
|
masterFilter = JSON.parse(req.query.masterFilter);
|
||||||
JSON.parse(req.query.masterFilter),
|
|
||||||
listAllowedFilters,
|
|
||||||
true
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
getProductSkuPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
|
listProductSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
|
router.get('/values', checkPermissions('productSku', 'list'), isAuthenticated, async (req, res) => {
|
||||||
|
const { property } = req.query;
|
||||||
|
const filter = await getFilter(req.query, listAllowedFilters, true);
|
||||||
|
var masterFilter = {};
|
||||||
|
if (req.query.masterFilter) {
|
||||||
|
masterFilter = await getFilter(JSON.parse(req.query.masterFilter), listAllowedFilters, true);
|
||||||
|
}
|
||||||
|
getProductSkuPropertyValuesRouteHandler(req, res, property, filter, masterFilter);
|
||||||
|
});
|
||||||
router.get('/search', checkPermissions('productSku', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', checkPermissions('productSku', 'list'), isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchProductSkusRouteHandler(req, res, search);
|
searchProductSkusRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
router.post(
|
||||||
router.post('/', isAuthenticated, checkPermissions('product', 'newProductSku'), async (req, res) => {
|
'/',
|
||||||
newProductSkuRouteHandler(req, res);
|
isAuthenticated,
|
||||||
});
|
checkPermissions('product', 'newProductSku'),
|
||||||
|
async (req, res) => {
|
||||||
|
newProductSkuRouteHandler(req, res);
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
router.get('/stats', isAuthenticated, async (req, res) => {
|
router.get('/stats', isAuthenticated, async (req, res) => {
|
||||||
getProductSkuStatsRouteHandler(req, res);
|
getProductSkuStatsRouteHandler(req, res);
|
||||||
@ -103,7 +116,16 @@ router.get('/history', isAuthenticated, async (req, res) => {
|
|||||||
router.get('/neighbors', isAuthenticated, async (req, res) => {
|
router.get('/neighbors', isAuthenticated, async (req, res) => {
|
||||||
const { property, search, sortProperty, sortOrder, id } = req.query;
|
const { property, search, sortProperty, sortOrder, id } = req.query;
|
||||||
const filter = await getFilter(req.query, listAllowedFilters);
|
const filter = await getFilter(req.query, listAllowedFilters);
|
||||||
getProductSkuNeighborsRouteHandler(req, res, property, filter, search, getSort(sortProperty, listAllowedSorters), sortOrder, id);
|
getProductSkuNeighborsRouteHandler(
|
||||||
|
req,
|
||||||
|
res,
|
||||||
|
property,
|
||||||
|
filter,
|
||||||
|
search,
|
||||||
|
getSort(sortProperty, listAllowedSorters),
|
||||||
|
sortOrder,
|
||||||
|
id
|
||||||
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/:id', isAuthenticated, async (req, res) => {
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user