Add bulk delete functionality for various entities with filter support
All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good
All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good
This commit introduces a new `deleteObjects` function in the database module, allowing for bulk deletion of objects based on specified filters and states. Additionally, new route handlers for deleting invoices, payment policies, payments, tax records, filament stocks, order items, part stocks, product stocks, purchase orders, shipments, stock audits, stock locations, stock transfers, app passwords, couriers, courier services, document printers, document sizes, document templates, email accounts, email templates, filaments, filament SKUs, files, hosts, materials, note types, parts, part SKUs, permission settings, product categories, products, and vendor entities are added. Each route supports deletion based on filters, enhancing the application's data management capabilities.
This commit is contained in:
parent
58cb444bf2
commit
c679066504
@ -1643,6 +1643,73 @@ export const deleteObject = async (
|
||||
}
|
||||
};
|
||||
|
||||
export const deleteObjects = async ({
|
||||
model,
|
||||
filter = {},
|
||||
user = null,
|
||||
checkUnused = false,
|
||||
states,
|
||||
}) => {
|
||||
try {
|
||||
const convertedFilter =
|
||||
filter && Object.keys(filter).length > 0
|
||||
? convertObjectIdStringsInFilter(filter)
|
||||
: {};
|
||||
const objects = await model.find(convertedFilter);
|
||||
const errors = [];
|
||||
let deletedCount = 0;
|
||||
|
||||
for (const object of objects) {
|
||||
const id = object._id;
|
||||
const state = object.state?.type ?? object.state;
|
||||
|
||||
if (Array.isArray(states) && !states.includes(state)) {
|
||||
errors.push({
|
||||
id: String(id),
|
||||
status: 400,
|
||||
error: `Object must be in one of these states: ${states.join(', ')}.`,
|
||||
});
|
||||
continue;
|
||||
}
|
||||
|
||||
try {
|
||||
const result = await deleteObject({
|
||||
model,
|
||||
id,
|
||||
user,
|
||||
checkUnused,
|
||||
});
|
||||
if (result?.error) {
|
||||
errors.push({
|
||||
id: String(id),
|
||||
status: result.code || 500,
|
||||
...result,
|
||||
});
|
||||
continue;
|
||||
}
|
||||
|
||||
deletedCount += 1;
|
||||
} catch (error) {
|
||||
errors.push({
|
||||
id: String(id),
|
||||
status: 500,
|
||||
error: error.message || 'Delete failed.',
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
matchedCount: objects.length,
|
||||
deletedCount,
|
||||
failedCount: errors.length,
|
||||
errors,
|
||||
};
|
||||
} catch (error) {
|
||||
logger.error('deleteObjects error:', error);
|
||||
return { error: error.message, code: 500 };
|
||||
}
|
||||
};
|
||||
|
||||
export const flushFile = async ({ id, user }) => {
|
||||
try {
|
||||
logger.info(`Starting file deletion process for file ID: ${id}`);
|
||||
|
||||
@ -38,6 +38,7 @@ import {
|
||||
editMultipleInvoicesRouteHandler,
|
||||
newInvoiceRouteHandler,
|
||||
deleteInvoiceRouteHandler,
|
||||
deleteInvoiceByFilterRouteHandler,
|
||||
listInvoicesByPropertiesRouteHandler,
|
||||
getInvoiceStatsRouteHandler,
|
||||
getInvoiceHistoryRouteHandler,
|
||||
@ -141,6 +142,25 @@ router.put('/:id', isAuthenticated, checkPermissions('invoice', 'edit'), async (
|
||||
editInvoiceRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('invoice', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteInvoiceByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteInvoiceRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -8,6 +8,7 @@ import {
|
||||
editPaymentPolicyRouteHandler,
|
||||
newPaymentPolicyRouteHandler,
|
||||
deletePaymentPolicyRouteHandler,
|
||||
deletePaymentPolicyByFilterRouteHandler,
|
||||
listPaymentPoliciesByPropertiesRouteHandler,
|
||||
getPaymentPolicyStatsRouteHandler,
|
||||
getPaymentPolicyHistoryRouteHandler,
|
||||
@ -122,6 +123,25 @@ router.put('/:id', isAuthenticated, checkPermissions('paymentPolicy', 'edit'), a
|
||||
editPaymentPolicyRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('paymentPolicy', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deletePaymentPolicyByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deletePaymentPolicyRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -35,6 +35,7 @@ import {
|
||||
editMultiplePaymentsRouteHandler,
|
||||
newPaymentRouteHandler,
|
||||
deletePaymentRouteHandler,
|
||||
deletePaymentByFilterRouteHandler,
|
||||
listPaymentsByPropertiesRouteHandler,
|
||||
getPaymentStatsRouteHandler,
|
||||
getPaymentHistoryRouteHandler,
|
||||
@ -122,6 +123,25 @@ router.put('/:id', isAuthenticated, checkPermissions('payment', 'edit'), async (
|
||||
editPaymentRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('payment', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deletePaymentByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deletePaymentRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -24,6 +24,7 @@ import {
|
||||
editTaxRecordRouteHandler,
|
||||
newTaxRecordRouteHandler,
|
||||
deleteTaxRecordRouteHandler,
|
||||
deleteTaxRecordByFilterRouteHandler,
|
||||
listTaxRecordsByPropertiesRouteHandler,
|
||||
getTaxRecordStatsRouteHandler,
|
||||
getTaxRecordHistoryRouteHandler,
|
||||
@ -102,6 +103,25 @@ router.put('/:id', isAuthenticated, checkPermissions('taxRecord', 'edit'), async
|
||||
editTaxRecordRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('taxRecord', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteTaxRecordByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteTaxRecordRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -34,6 +34,7 @@ import {
|
||||
editMultipleFilamentStocksRouteHandler,
|
||||
newFilamentStockRouteHandler,
|
||||
deleteFilamentStockRouteHandler,
|
||||
deleteFilamentStockByFilterRouteHandler,
|
||||
postFilamentStockRouteHandler,
|
||||
listFilamentStocksByPropertiesRouteHandler,
|
||||
getFilamentStockStatsRouteHandler,
|
||||
@ -118,6 +119,25 @@ router.put('/:id', isAuthenticated, checkPermissions('filamentStock', 'edit'), a
|
||||
editFilamentStockRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('filamentStock', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteFilamentStockByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteFilamentStockRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -39,6 +39,7 @@ import {
|
||||
editMultipleOrderItemsRouteHandler,
|
||||
newOrderItemRouteHandler,
|
||||
deleteOrderItemRouteHandler,
|
||||
deleteOrderItemByFilterRouteHandler,
|
||||
listOrderItemsByPropertiesRouteHandler,
|
||||
getOrderItemStatsRouteHandler,
|
||||
getOrderItemHistoryRouteHandler,
|
||||
@ -139,6 +140,25 @@ router.put('/:id', isAuthenticated, checkPermissions('orderItem', 'edit'), async
|
||||
editOrderItemRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('orderItem', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteOrderItemByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteOrderItemRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -34,6 +34,7 @@ import {
|
||||
editMultiplePartStocksRouteHandler,
|
||||
newPartStockRouteHandler,
|
||||
deletePartStockRouteHandler,
|
||||
deletePartStockByFilterRouteHandler,
|
||||
postPartStockRouteHandler,
|
||||
listPartStocksByPropertiesRouteHandler,
|
||||
getPartStockStatsRouteHandler,
|
||||
@ -118,6 +119,25 @@ router.put('/:id', isAuthenticated, checkPermissions('partStock', 'edit'), async
|
||||
editPartStockRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('partStock', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deletePartStockByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deletePartStockRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -35,6 +35,7 @@ import {
|
||||
editMultipleProductStocksRouteHandler,
|
||||
newProductStockRouteHandler,
|
||||
deleteProductStockRouteHandler,
|
||||
deleteProductStockByFilterRouteHandler,
|
||||
postProductStockRouteHandler,
|
||||
listProductStocksByPropertiesRouteHandler,
|
||||
getProductStockStatsRouteHandler,
|
||||
@ -115,6 +116,25 @@ router.put('/:id', isAuthenticated, checkPermissions('productStock', 'edit'), as
|
||||
editProductStockRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('productStock', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteProductStockByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteProductStockRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -50,6 +50,7 @@ import {
|
||||
editMultiplePurchaseOrdersRouteHandler,
|
||||
newPurchaseOrderRouteHandler,
|
||||
deletePurchaseOrderRouteHandler,
|
||||
deletePurchaseOrderByFilterRouteHandler,
|
||||
listPurchaseOrdersByPropertiesRouteHandler,
|
||||
getPurchaseOrderStatsRouteHandler,
|
||||
getPurchaseOrderHistoryRouteHandler,
|
||||
@ -134,6 +135,25 @@ router.put('/:id', isAuthenticated, checkPermissions('purchaseOrder', 'edit'), a
|
||||
editPurchaseOrderRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('purchaseOrder', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deletePurchaseOrderByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deletePurchaseOrderRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -41,6 +41,7 @@ import {
|
||||
editMultipleShipmentsRouteHandler,
|
||||
newShipmentRouteHandler,
|
||||
deleteShipmentRouteHandler,
|
||||
deleteShipmentByFilterRouteHandler,
|
||||
listShipmentsByPropertiesRouteHandler,
|
||||
getShipmentStatsRouteHandler,
|
||||
getShipmentHistoryRouteHandler,
|
||||
@ -148,6 +149,25 @@ router.put('/:id', isAuthenticated, checkPermissions('shipment', 'edit'), async
|
||||
editShipmentRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('shipment', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteShipmentByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteShipmentRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -24,6 +24,7 @@ import {
|
||||
newStockAuditRouteHandler,
|
||||
updateStockAuditRouteHandler,
|
||||
deleteStockAuditRouteHandler,
|
||||
deleteStockAuditByFilterRouteHandler,
|
||||
getStockAuditStatsRouteHandler,
|
||||
getStockAuditHistoryRouteHandler,
|
||||
searchStockAuditsRouteHandler,
|
||||
@ -114,6 +115,25 @@ router.put('/:id', isAuthenticated, checkPermissions('stockAudit', 'edit'), asyn
|
||||
updateStockAuditRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('stockAudit', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteStockAuditByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteStockAuditRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -15,6 +15,7 @@ import {
|
||||
editMultipleStockLocationsRouteHandler,
|
||||
newStockLocationRouteHandler,
|
||||
deleteStockLocationRouteHandler,
|
||||
deleteStockLocationByFilterRouteHandler,
|
||||
listStockLocationsByPropertiesRouteHandler,
|
||||
getStockLocationStatsRouteHandler,
|
||||
getStockLocationHistoryRouteHandler,
|
||||
@ -82,6 +83,25 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
||||
getStockLocationNeighborsRouteHandler(req, res, property, filter, search, getSort(sortProperty, listAllowedSorters), sortOrder, id);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('stockLocation', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteStockLocationByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.get('/:id', isAuthenticated, checkPermissions('stockLocation', 'info'), async (req, res) => {
|
||||
getStockLocationRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -24,6 +24,7 @@ import {
|
||||
editMultipleStockTransfersRouteHandler,
|
||||
newStockTransferRouteHandler,
|
||||
deleteStockTransferRouteHandler,
|
||||
deleteStockTransferByFilterRouteHandler,
|
||||
postStockTransferRouteHandler,
|
||||
listStockTransfersByPropertiesRouteHandler,
|
||||
getStockTransferStatsRouteHandler,
|
||||
@ -104,6 +105,25 @@ router.put('/:id', isAuthenticated, checkPermissions('stockTransfer', 'edit'), a
|
||||
editStockTransferRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('stockTransfer', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteStockTransferByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteStockTransferRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -23,6 +23,7 @@ import {
|
||||
editAppPasswordRouteHandler,
|
||||
newAppPasswordRouteHandler,
|
||||
deleteAppPasswordRouteHandler,
|
||||
deleteAppPasswordByFilterRouteHandler,
|
||||
listAppPasswordsByPropertiesRouteHandler,
|
||||
getAppPasswordStatsRouteHandler,
|
||||
getAppPasswordHistoryRouteHandler,
|
||||
@ -92,6 +93,25 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
||||
getAppPasswordNeighborsRouteHandler(req, res, property, filter, search, getSort(sortProperty, listAllowedSorters), sortOrder, id);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('appPassword', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteAppPasswordByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||
getAppPasswordRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -24,6 +24,7 @@ import {
|
||||
editCourierRouteHandler,
|
||||
newCourierRouteHandler,
|
||||
deleteCourierRouteHandler,
|
||||
deleteCourierByFilterRouteHandler,
|
||||
listCouriersByPropertiesRouteHandler,
|
||||
getCourierStatsRouteHandler,
|
||||
getCourierHistoryRouteHandler,
|
||||
@ -102,6 +103,25 @@ router.put('/:id', isAuthenticated, checkPermissions('courier', 'edit'), async (
|
||||
editCourierRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('courier', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteCourierByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteCourierRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -55,6 +55,7 @@ import {
|
||||
editCourierServiceRouteHandler,
|
||||
newCourierServiceRouteHandler,
|
||||
deleteCourierServiceRouteHandler,
|
||||
deleteCourierServiceByFilterRouteHandler,
|
||||
listCourierServicesByPropertiesRouteHandler,
|
||||
getCourierServiceStatsRouteHandler,
|
||||
getCourierServiceHistoryRouteHandler,
|
||||
@ -133,6 +134,25 @@ router.put('/:id', isAuthenticated, checkPermissions('courierService', 'edit'),
|
||||
editCourierServiceRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('courierService', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteCourierServiceByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteCourierServiceRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -32,6 +32,7 @@ import {
|
||||
editDocumentPrinterRouteHandler,
|
||||
newDocumentPrinterRouteHandler,
|
||||
deleteDocumentPrinterRouteHandler,
|
||||
deleteDocumentPrinterByFilterRouteHandler,
|
||||
listDocumentPrintersByPropertiesRouteHandler,
|
||||
getDocumentPrinterStatsRouteHandler,
|
||||
getDocumentPrinterHistoryRouteHandler,
|
||||
@ -102,6 +103,25 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
||||
getDocumentPrinterNeighborsRouteHandler(req, res, property, filter, search, getSort(sortProperty, listAllowedSorters), sortOrder, id);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('documentPrinter', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteDocumentPrinterByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||
getDocumentPrinterRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -38,6 +38,7 @@ import {
|
||||
editDocumentSizeRouteHandler,
|
||||
newDocumentSizeRouteHandler,
|
||||
deleteDocumentSizeRouteHandler,
|
||||
deleteDocumentSizeByFilterRouteHandler,
|
||||
listDocumentSizesByPropertiesRouteHandler,
|
||||
getDocumentSizeStatsRouteHandler,
|
||||
getDocumentSizeHistoryRouteHandler,
|
||||
@ -108,6 +109,25 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
||||
getDocumentSizeNeighborsRouteHandler(req, res, property, filter, search, getSort(sortProperty, listAllowedSorters), sortOrder, id);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('documentSize', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteDocumentSizeByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||
getDocumentSizeRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -38,6 +38,7 @@ import {
|
||||
editDocumentTemplateRouteHandler,
|
||||
newDocumentTemplateRouteHandler,
|
||||
deleteDocumentTemplateRouteHandler,
|
||||
deleteDocumentTemplateByFilterRouteHandler,
|
||||
listDocumentTemplatesByPropertiesRouteHandler,
|
||||
getDocumentTemplateStatsRouteHandler,
|
||||
getDocumentTemplateHistoryRouteHandler,
|
||||
@ -115,6 +116,25 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
||||
getDocumentTemplateNeighborsRouteHandler(req, res, property, filter, search, getSort(sortProperty, listAllowedSorters), sortOrder, id);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('documentTemplate', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteDocumentTemplateByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.post('/:id/intellisense', isAuthenticated, checkPermissions('documentTemplate', 'design'), async (req, res) => {
|
||||
intellisenseDocumentTemplateRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -3,6 +3,7 @@ import { isAuthenticated } from '../../keycloak.js';
|
||||
import { checkPermissions } from '../../database/permissions.js';
|
||||
import { convertPropertiesString, getFilter, getSort } from '../../utils.js';
|
||||
import {
|
||||
deleteEmailAccountByFilterRouteHandler,
|
||||
deleteEmailAccountRouteHandler,
|
||||
editEmailAccountRouteHandler,
|
||||
getEmailAccountRouteHandler,
|
||||
@ -75,6 +76,24 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
||||
);
|
||||
});
|
||||
router.post('/', isAuthenticated, checkPermissions('emailAccount', 'new'), newEmailAccountRouteHandler);
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('emailAccount', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
filters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
filters,
|
||||
true
|
||||
);
|
||||
deleteEmailAccountByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
router.get('/:id', isAuthenticated, getEmailAccountRouteHandler);
|
||||
router.put('/:id', isAuthenticated, checkPermissions('emailAccount', 'edit'), editEmailAccountRouteHandler);
|
||||
router.delete('/:id', isAuthenticated, checkPermissions('emailAccount', 'delete'), deleteEmailAccountRouteHandler);
|
||||
|
||||
@ -3,6 +3,7 @@ import { isAuthenticated } from '../../keycloak.js';
|
||||
import { checkPermissions } from '../../database/permissions.js';
|
||||
import { convertPropertiesString, getFilter, getSort } from '../../utils.js';
|
||||
import {
|
||||
deleteEmailTemplateByFilterRouteHandler,
|
||||
deleteEmailTemplateRouteHandler,
|
||||
editEmailTemplateRouteHandler,
|
||||
formatEmailTemplateRouteHandler,
|
||||
@ -94,6 +95,24 @@ router.post('/', isAuthenticated, checkPermissions('emailTemplate', 'new'), newE
|
||||
router.post('/format', isAuthenticated, checkPermissions('emailTemplate', 'design'), formatEmailTemplateRouteHandler);
|
||||
router.post('/:id/intellisense', isAuthenticated, checkPermissions('emailTemplate', 'design'), intellisenseEmailTemplateRouteHandler);
|
||||
router.post('/:id/preview', isAuthenticated, checkPermissions('emailTemplate', 'design'), previewEmailTemplateRouteHandler);
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('emailTemplate', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
filters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
filters,
|
||||
true
|
||||
);
|
||||
deleteEmailTemplateByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
router.get('/:id', isAuthenticated, getEmailTemplateRouteHandler);
|
||||
router.put('/:id', isAuthenticated, checkPermissions('emailTemplate', 'edit'), editEmailTemplateRouteHandler);
|
||||
router.delete('/:id', isAuthenticated, checkPermissions('emailTemplate', 'delete'), deleteEmailTemplateRouteHandler);
|
||||
|
||||
@ -40,6 +40,7 @@ import {
|
||||
editMultipleFilamentsRouteHandler,
|
||||
newFilamentRouteHandler,
|
||||
deleteFilamentRouteHandler,
|
||||
deleteFilamentByFilterRouteHandler,
|
||||
getFilamentStatsRouteHandler,
|
||||
getFilamentHistoryRouteHandler,
|
||||
searchFilamentsRouteHandler,
|
||||
@ -134,6 +135,25 @@ router.put('/:id', isAuthenticated, checkPermissions('filament', 'edit'), async
|
||||
editFilamentRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('filament', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteFilamentByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteFilamentRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -37,6 +37,7 @@ import {
|
||||
editFilamentSkuRouteHandler,
|
||||
newFilamentSkuRouteHandler,
|
||||
deleteFilamentSkuRouteHandler,
|
||||
deleteFilamentSkuByFilterRouteHandler,
|
||||
listFilamentSkusByPropertiesRouteHandler,
|
||||
getFilamentSkuStatsRouteHandler,
|
||||
getFilamentSkuHistoryRouteHandler,
|
||||
@ -140,6 +141,25 @@ router.put('/:id', isAuthenticated, checkPermissions('filamentSku', 'edit'), asy
|
||||
editFilamentSkuRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('filamentSku', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteFilamentSkuByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteFilamentSkuRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -26,6 +26,7 @@ import {
|
||||
newFileRouteHandler,
|
||||
flushFileRouteHandler,
|
||||
deleteFileRouteHandler,
|
||||
deleteFileByFilterRouteHandler,
|
||||
listFilesByPropertiesRouteHandler,
|
||||
getFileStatsRouteHandler,
|
||||
getFileHistoryRouteHandler,
|
||||
@ -116,6 +117,25 @@ router.put('/:id', isAuthenticated, checkPermissions('file', 'edit'), async (req
|
||||
editFileRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('file', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteFileByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteFileRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -23,6 +23,7 @@ import {
|
||||
editHostRouteHandler,
|
||||
newHostRouteHandler,
|
||||
deleteHostRouteHandler,
|
||||
deleteHostByFilterRouteHandler,
|
||||
listHostsByPropertiesRouteHandler,
|
||||
getHostStatsRouteHandler,
|
||||
getHostHistoryRouteHandler,
|
||||
@ -100,6 +101,25 @@ router.put('/:id', isAuthenticated, checkPermissions('host', 'edit'), async (req
|
||||
editHostRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('host', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteHostByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteHostRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -14,6 +14,8 @@ import {
|
||||
getMaterialRouteHandler,
|
||||
editMaterialRouteHandler,
|
||||
newMaterialRouteHandler,
|
||||
deleteMaterialRouteHandler,
|
||||
deleteMaterialByFilterRouteHandler,
|
||||
getMaterialStatsRouteHandler,
|
||||
getMaterialHistoryRouteHandler,
|
||||
searchMaterialsRouteHandler,
|
||||
@ -101,4 +103,27 @@ router.put('/:id', isAuthenticated, checkPermissions('material', 'edit'), async
|
||||
editMaterialRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('material', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteMaterialByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, checkPermissions('material', 'delete'), async (req, res) => {
|
||||
deleteMaterialRouteHandler(req, res);
|
||||
});
|
||||
|
||||
export default router;
|
||||
|
||||
@ -22,6 +22,7 @@ import {
|
||||
editNoteTypeRouteHandler,
|
||||
newNoteTypeRouteHandler,
|
||||
deleteNoteTypeRouteHandler,
|
||||
deleteNoteTypeByFilterRouteHandler,
|
||||
listNoteTypesByPropertiesRouteHandler,
|
||||
getNoteTypeStatsRouteHandler,
|
||||
getNoteTypeHistoryRouteHandler,
|
||||
@ -92,6 +93,25 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
||||
getNoteTypeNeighborsRouteHandler(req, res, property, filter, search, getSort(sortProperty, listAllowedSorters), sortOrder, id);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('noteType', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteNoteTypeByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||
getNoteTypeRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -37,6 +37,7 @@ import {
|
||||
editPartRouteHandler,
|
||||
newPartRouteHandler,
|
||||
deletePartRouteHandler,
|
||||
deletePartByFilterRouteHandler,
|
||||
listPartsByPropertiesRouteHandler,
|
||||
getPartStatsRouteHandler,
|
||||
getPartHistoryRouteHandler,
|
||||
@ -116,6 +117,25 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
||||
);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('part', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deletePartByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||
getPartRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -43,6 +43,7 @@ import {
|
||||
editPartSkuRouteHandler,
|
||||
newPartSkuRouteHandler,
|
||||
deletePartSkuRouteHandler,
|
||||
deletePartSkuByFilterRouteHandler,
|
||||
listPartSkusByPropertiesRouteHandler,
|
||||
getPartSkuStatsRouteHandler,
|
||||
getPartSkuHistoryRouteHandler,
|
||||
@ -131,6 +132,25 @@ router.put('/:id', isAuthenticated, checkPermissions('partSku', 'edit'), async (
|
||||
editPartSkuRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('partSku', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deletePartSkuByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deletePartSkuRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -14,6 +14,7 @@ import {
|
||||
editPermissionSettingsRouteHandler,
|
||||
newPermissionSettingsRouteHandler,
|
||||
deletePermissionSettingsRouteHandler,
|
||||
deletePermissionSettingsByFilterRouteHandler,
|
||||
listPermissionSettingsByPropertiesRouteHandler,
|
||||
getPermissionSettingsStatsRouteHandler,
|
||||
getPermissionSettingsHistoryRouteHandler,
|
||||
@ -148,6 +149,25 @@ router.put(
|
||||
}
|
||||
);
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('permissionSetting', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deletePermissionSettingsByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete(
|
||||
'/:id',
|
||||
isAuthenticated,
|
||||
|
||||
@ -4,6 +4,7 @@ import { checkPermissions } from '../../database/permissions.js';
|
||||
import { convertPropertiesString, getFilter, getSort } from '../../utils.js';
|
||||
import {
|
||||
deleteProductCategoryRouteHandler,
|
||||
deleteProductCategoryByFilterRouteHandler,
|
||||
editProductCategoryRouteHandler,
|
||||
getProductCategoryHistoryRouteHandler,
|
||||
getProductCategoryRouteHandler,
|
||||
@ -96,6 +97,25 @@ router.put('/:id', isAuthenticated, checkPermissions('productCategory', 'edit'),
|
||||
editProductCategoryRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('productCategory', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteProductCategoryByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteProductCategoryRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -41,6 +41,7 @@ import {
|
||||
editProductRouteHandler,
|
||||
newProductRouteHandler,
|
||||
deleteProductRouteHandler,
|
||||
deleteProductByFilterRouteHandler,
|
||||
listProductsByPropertiesRouteHandler,
|
||||
getProductStatsRouteHandler,
|
||||
getProductHistoryRouteHandler,
|
||||
@ -111,6 +112,25 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
||||
getProductNeighborsRouteHandler(req, res, property, filter, search, getSort(sortProperty, listAllowedSorters), sortOrder, id);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('product', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteProductByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||
getProductRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -43,6 +43,7 @@ import {
|
||||
editProductSkuRouteHandler,
|
||||
newProductSkuRouteHandler,
|
||||
deleteProductSkuRouteHandler,
|
||||
deleteProductSkuByFilterRouteHandler,
|
||||
listProductSkusByPropertiesRouteHandler,
|
||||
getProductSkuStatsRouteHandler,
|
||||
getProductSkuHistoryRouteHandler,
|
||||
@ -136,6 +137,25 @@ router.put('/:id', isAuthenticated, checkPermissions('productSku', 'edit'), asyn
|
||||
editProductSkuRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('productSku', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteProductSkuByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteProductSkuRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -15,6 +15,7 @@ import {
|
||||
editStockAuditLevelRouteHandler,
|
||||
newStockAuditLevelRouteHandler,
|
||||
deleteStockAuditLevelRouteHandler,
|
||||
deleteStockAuditLevelByFilterRouteHandler,
|
||||
listStockAuditLevelsByPropertiesRouteHandler,
|
||||
getStockAuditLevelStatsRouteHandler,
|
||||
getStockAuditLevelHistoryRouteHandler,
|
||||
@ -124,6 +125,25 @@ router.put(
|
||||
}
|
||||
);
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('stockAuditLevel', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteStockAuditLevelByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteStockAuditLevelRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -34,6 +34,7 @@ import {
|
||||
editTaxRateRouteHandler,
|
||||
newTaxRateRouteHandler,
|
||||
deleteTaxRateRouteHandler,
|
||||
deleteTaxRateByFilterRouteHandler,
|
||||
listTaxRatesByPropertiesRouteHandler,
|
||||
getTaxRateStatsRouteHandler,
|
||||
getTaxRateHistoryRouteHandler,
|
||||
@ -112,6 +113,25 @@ router.put('/:id', isAuthenticated, checkPermissions('taxRate', 'edit'), async (
|
||||
editTaxRateRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('taxRate', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteTaxRateByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteTaxRateRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -14,6 +14,7 @@ import {
|
||||
editUserGroupRouteHandler,
|
||||
newUserGroupRouteHandler,
|
||||
deleteUserGroupRouteHandler,
|
||||
deleteUserGroupByFilterRouteHandler,
|
||||
listUserGroupsByPropertiesRouteHandler,
|
||||
getUserGroupStatsRouteHandler,
|
||||
getUserGroupHistoryRouteHandler,
|
||||
@ -107,6 +108,25 @@ router.put('/:id', isAuthenticated, checkPermissions('userGroup', 'edit'), async
|
||||
editUserGroupRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('userGroup', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteUserGroupByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteUserGroupRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -22,6 +22,7 @@ import {
|
||||
editVendorRouteHandler,
|
||||
newVendorRouteHandler,
|
||||
deleteVendorRouteHandler,
|
||||
deleteVendorByFilterRouteHandler,
|
||||
listVendorsByPropertiesRouteHandler,
|
||||
getVendorStatsRouteHandler,
|
||||
getVendorHistoryRouteHandler,
|
||||
@ -100,6 +101,25 @@ router.put('/:id', isAuthenticated, checkPermissions('vendor', 'edit'), async (r
|
||||
editVendorRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('vendor', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteVendorByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteVendorRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -4,6 +4,7 @@ import { checkPermissions } from '../../database/permissions.js';
|
||||
import { convertPropertiesString, getFilter, getSort } from '../../utils.js';
|
||||
import {
|
||||
deleteFilamentProfileRouteHandler,
|
||||
deleteFilamentProfileByFilterRouteHandler,
|
||||
editFilamentProfileRouteHandler,
|
||||
getFilamentProfileRouteHandler,
|
||||
listFilamentProfilesByPropertiesRouteHandler,
|
||||
@ -106,6 +107,25 @@ router.put(
|
||||
}
|
||||
);
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('filamentProfile', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteFilamentProfileByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteFilamentProfileRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -28,7 +28,8 @@ import {
|
||||
searchGCodeFilesRouteHandler,
|
||||
getGCodeFilePropertyValuesRouteHandler,
|
||||
|
||||
getGCodeFileNeighborsRouteHandler
|
||||
getGCodeFileNeighborsRouteHandler,
|
||||
deleteGCodeFileByFilterRouteHandler
|
||||
} from '../../services/production/gcodefiles.js';
|
||||
import { convertPropertiesString, getFilter, getSort } from '../../utils.js';
|
||||
|
||||
@ -89,6 +90,25 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
||||
getGCodeFileNeighborsRouteHandler(req, res, property, filter, search, getSort(sortProperty, listAllowedSorters), sortOrder, id);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('gcodeFile', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteGCodeFileByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.get('/:id', isAuthenticated, checkPermissions('gcodeFile', 'info'), async (req, res) => {
|
||||
getGCodeFileRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -32,6 +32,7 @@ import {
|
||||
getJobRouteHandler,
|
||||
newJobRouteHandler,
|
||||
deleteJobRouteHandler,
|
||||
deleteJobByFilterRouteHandler,
|
||||
editJobRouteHandler,
|
||||
getJobStatsRouteHandler,
|
||||
getJobHistoryRouteHandler,
|
||||
@ -125,6 +126,25 @@ router.put('/:id', isAuthenticated, checkPermissions('job', 'edit'), async (req,
|
||||
editJobRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('job', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteJobByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteJobRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -4,6 +4,7 @@ import { checkPermissions } from '../../database/permissions.js';
|
||||
import { convertPropertiesString, getFilter, getSort } from '../../utils.js';
|
||||
import {
|
||||
deletePrinterProfileRouteHandler,
|
||||
deletePrinterProfileByFilterRouteHandler,
|
||||
editPrinterProfileRouteHandler,
|
||||
getPrinterProfileRouteHandler,
|
||||
listPrinterProfilesByPropertiesRouteHandler,
|
||||
@ -86,6 +87,25 @@ router.put('/:id', isAuthenticated, checkPermissions('printerProfile', 'edit'),
|
||||
editPrinterProfileRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('printerProfile', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deletePrinterProfileByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deletePrinterProfileRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -14,6 +14,7 @@ import {
|
||||
searchPrintersRouteHandler,
|
||||
getPrinterPropertyValuesRouteHandler,
|
||||
getPrinterNeighborsRouteHandler,
|
||||
deletePrinterByFilterRouteHandler,
|
||||
} from '../../services/production/printers.js';
|
||||
import { convertPropertiesString, getFilter, getSort } from '../../utils.js';
|
||||
|
||||
@ -93,6 +94,25 @@ router.get('/stats', isAuthenticated, async (req, res) => {
|
||||
getPrinterStatsRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('printer', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deletePrinterByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.get('/:id', isAuthenticated, checkPermissions('printer', 'info'), async (req, res) => {
|
||||
getPrinterRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -31,6 +31,7 @@ import {
|
||||
editClientRouteHandler,
|
||||
newClientRouteHandler,
|
||||
deleteClientRouteHandler,
|
||||
deleteClientByFilterRouteHandler,
|
||||
listClientsByPropertiesRouteHandler,
|
||||
getClientStatsRouteHandler,
|
||||
getClientHistoryRouteHandler,
|
||||
@ -109,6 +110,25 @@ router.put('/:id', isAuthenticated, checkPermissions('client', 'edit'), async (r
|
||||
editClientRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('client', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteClientByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteClientRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -8,6 +8,7 @@ import {
|
||||
editFulfillmentPolicyRouteHandler,
|
||||
newFulfillmentPolicyRouteHandler,
|
||||
deleteFulfillmentPolicyRouteHandler,
|
||||
deleteFulfillmentPolicyByFilterRouteHandler,
|
||||
listFulfillmentPoliciesByPropertiesRouteHandler,
|
||||
getFulfillmentPolicyStatsRouteHandler,
|
||||
getFulfillmentPolicyHistoryRouteHandler,
|
||||
@ -139,6 +140,25 @@ router.put(
|
||||
}
|
||||
);
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('fulfillmentPolicy', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteFulfillmentPolicyByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteFulfillmentPolicyRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -59,6 +59,7 @@ import {
|
||||
editListingRouteHandler,
|
||||
newListingRouteHandler,
|
||||
deleteListingRouteHandler,
|
||||
deleteListingByFilterRouteHandler,
|
||||
listListingsByPropertiesRouteHandler,
|
||||
getListingStatsRouteHandler,
|
||||
getListingHistoryRouteHandler,
|
||||
@ -167,6 +168,25 @@ router.put('/:id', isAuthenticated, checkPermissions('listing', 'edit'), async (
|
||||
editListingRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('listing', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteListingByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteListingRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -46,6 +46,7 @@ import {
|
||||
editListingVarientRouteHandler,
|
||||
newListingVarientRouteHandler,
|
||||
deleteListingVarientRouteHandler,
|
||||
deleteListingVarientByFilterRouteHandler,
|
||||
listListingVarientsByPropertiesRouteHandler,
|
||||
getListingVarientStatsRouteHandler,
|
||||
getListingVarientHistoryRouteHandler,
|
||||
@ -184,6 +185,27 @@ router.put(
|
||||
}
|
||||
);
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('listingVarient', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true,
|
||||
listingVarientModel
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true,
|
||||
listingVarientModel
|
||||
);
|
||||
deleteListingVarientByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteListingVarientRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -41,6 +41,7 @@ import {
|
||||
editMarketplaceRouteHandler,
|
||||
newMarketplaceRouteHandler,
|
||||
deleteMarketplaceRouteHandler,
|
||||
deleteMarketplaceByFilterRouteHandler,
|
||||
listMarketplacesByPropertiesRouteHandler,
|
||||
getMarketplaceStatsRouteHandler,
|
||||
getMarketplaceHistoryRouteHandler,
|
||||
@ -295,6 +296,25 @@ router.put('/:id', isAuthenticated, checkPermissions('marketplace', 'edit'), asy
|
||||
editMarketplaceRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('marketplace', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteMarketplaceByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteMarketplaceRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -8,6 +8,7 @@ import {
|
||||
editReturnPolicyRouteHandler,
|
||||
newReturnPolicyRouteHandler,
|
||||
deleteReturnPolicyRouteHandler,
|
||||
deleteReturnPolicyByFilterRouteHandler,
|
||||
listReturnPoliciesByPropertiesRouteHandler,
|
||||
getReturnPolicyStatsRouteHandler,
|
||||
getReturnPolicyHistoryRouteHandler,
|
||||
@ -137,6 +138,25 @@ router.put('/:id', isAuthenticated, checkPermissions('returnPolicy', 'edit'), as
|
||||
editReturnPolicyRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('returnPolicy', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteReturnPolicyByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteReturnPolicyRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -23,6 +23,7 @@ import {
|
||||
editMultipleSalesOrdersRouteHandler,
|
||||
newSalesOrderRouteHandler,
|
||||
deleteSalesOrderRouteHandler,
|
||||
deleteSalesOrderByFilterRouteHandler,
|
||||
listSalesOrdersByPropertiesRouteHandler,
|
||||
getSalesOrderStatsRouteHandler,
|
||||
getSalesOrderHistoryRouteHandler,
|
||||
@ -107,6 +108,25 @@ router.put('/:id', isAuthenticated, checkPermissions('salesOrder', 'edit'), asyn
|
||||
editSalesOrderRouteHandler(req, res);
|
||||
});
|
||||
|
||||
router.delete(
|
||||
'/delete',
|
||||
isAuthenticated,
|
||||
checkPermissions('salesOrder', 'delete'),
|
||||
async (req, res) => {
|
||||
const filter = await getFilter(
|
||||
req.query.filter ? JSON.parse(req.query.filter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
const masterFilter = await getFilter(
|
||||
req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {},
|
||||
listAllowedFilters,
|
||||
true
|
||||
);
|
||||
deleteSalesOrderByFilterRouteHandler(req, res, filter, masterFilter);
|
||||
}
|
||||
);
|
||||
|
||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||
deleteSalesOrderRouteHandler(req, res);
|
||||
});
|
||||
|
||||
@ -10,6 +10,7 @@ jest.unstable_mockModule('../../../database/database.js', () => ({
|
||||
editObjects: jest.fn(),
|
||||
newObject: jest.fn(),
|
||||
deleteObject: jest.fn(),
|
||||
deleteObjects: jest.fn(),
|
||||
listObjectsByProperties: jest.fn(),
|
||||
getModelStats: jest.fn(),
|
||||
getModelHistory: jest.fn(),
|
||||
|
||||
@ -9,6 +9,7 @@ jest.unstable_mockModule('../../../database/database.js', () => ({
|
||||
editObjects: jest.fn(),
|
||||
newObject: jest.fn(),
|
||||
deleteObject: jest.fn(),
|
||||
deleteObjects: jest.fn(),
|
||||
listObjectsByProperties: jest.fn(),
|
||||
getModelStats: jest.fn(),
|
||||
getModelHistory: jest.fn(),
|
||||
|
||||
@ -8,6 +8,7 @@ jest.unstable_mockModule('../../../database/database.js', () => ({
|
||||
editObject: jest.fn(),
|
||||
newObject: jest.fn(),
|
||||
deleteObject: jest.fn(),
|
||||
deleteObjects: jest.fn(),
|
||||
listObjectsByProperties: jest.fn(),
|
||||
getModelStats: jest.fn(),
|
||||
getModelHistory: jest.fn(),
|
||||
|
||||
@ -4,6 +4,7 @@ import log4js from 'log4js';
|
||||
import mongoose from 'mongoose';
|
||||
import {
|
||||
deleteObject,
|
||||
deleteObjects,
|
||||
listObjects,
|
||||
getObject,
|
||||
editObject,
|
||||
@ -322,6 +323,26 @@ export const newInvoiceRouteHandler = async (req, res) => {
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteInvoiceByFilterRouteHandler = async (
|
||||
req,
|
||||
res,
|
||||
filter = {},
|
||||
masterFilter = {}
|
||||
) => {
|
||||
const result = await deleteObjects({
|
||||
model: invoiceModel,
|
||||
filter: { ...masterFilter, ...filter },
|
||||
user: req.user,
|
||||
});
|
||||
|
||||
if (result.error) {
|
||||
logger.error('Failed to delete filtered Invoice:', result.error);
|
||||
return res.status(result.code || 500).send(result);
|
||||
}
|
||||
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteInvoiceRouteHandler = async (req, res) => {
|
||||
// Get ID from params
|
||||
const id = new mongoose.Types.ObjectId(req.params.id);
|
||||
|
||||
@ -4,6 +4,7 @@ import log4js from 'log4js';
|
||||
import mongoose from 'mongoose';
|
||||
import {
|
||||
deleteObject,
|
||||
deleteObjects,
|
||||
listObjects,
|
||||
getObject,
|
||||
editObject,
|
||||
@ -171,6 +172,26 @@ export const newPaymentPolicyRouteHandler = async (req, res) => {
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deletePaymentPolicyByFilterRouteHandler = async (
|
||||
req,
|
||||
res,
|
||||
filter = {},
|
||||
masterFilter = {}
|
||||
) => {
|
||||
const result = await deleteObjects({
|
||||
model: paymentPolicyModel,
|
||||
filter: { ...masterFilter, ...filter },
|
||||
user: req.user,
|
||||
});
|
||||
|
||||
if (result.error) {
|
||||
logger.error('Failed to delete filtered PaymentPolicy:', result.error);
|
||||
return res.status(result.code || 500).send(result);
|
||||
}
|
||||
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deletePaymentPolicyRouteHandler = async (req, res) => {
|
||||
const id = new mongoose.Types.ObjectId(req.params.id);
|
||||
const result = await deleteObject({
|
||||
|
||||
@ -4,6 +4,7 @@ import log4js from 'log4js';
|
||||
import mongoose from 'mongoose';
|
||||
import {
|
||||
deleteObject,
|
||||
deleteObjects,
|
||||
listObjects,
|
||||
getObject,
|
||||
editObject,
|
||||
@ -240,6 +241,26 @@ export const newPaymentRouteHandler = async (req, res) => {
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deletePaymentByFilterRouteHandler = async (
|
||||
req,
|
||||
res,
|
||||
filter = {},
|
||||
masterFilter = {}
|
||||
) => {
|
||||
const result = await deleteObjects({
|
||||
model: paymentModel,
|
||||
filter: { ...masterFilter, ...filter },
|
||||
user: req.user,
|
||||
});
|
||||
|
||||
if (result.error) {
|
||||
logger.error('Failed to delete filtered Payment:', result.error);
|
||||
return res.status(result.code || 500).send(result);
|
||||
}
|
||||
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deletePaymentRouteHandler = async (req, res) => {
|
||||
// Get ID from params
|
||||
const id = new mongoose.Types.ObjectId(req.params.id);
|
||||
|
||||
@ -4,6 +4,7 @@ import log4js from 'log4js';
|
||||
import mongoose from 'mongoose';
|
||||
import {
|
||||
deleteObject,
|
||||
deleteObjects,
|
||||
listObjects,
|
||||
getObject,
|
||||
editObject,
|
||||
@ -170,6 +171,26 @@ export const newTaxRecordRouteHandler = async (req, res) => {
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteTaxRecordByFilterRouteHandler = async (
|
||||
req,
|
||||
res,
|
||||
filter = {},
|
||||
masterFilter = {}
|
||||
) => {
|
||||
const result = await deleteObjects({
|
||||
model: taxRecordModel,
|
||||
filter: { ...masterFilter, ...filter },
|
||||
user: req.user,
|
||||
});
|
||||
|
||||
if (result.error) {
|
||||
logger.error('Failed to delete filtered TaxRecord:', result.error);
|
||||
return res.status(result.code || 500).send(result);
|
||||
}
|
||||
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteTaxRecordRouteHandler = async (req, res) => {
|
||||
// Get ID from params
|
||||
const id = new mongoose.Types.ObjectId(req.params.id);
|
||||
|
||||
@ -10,6 +10,7 @@ jest.unstable_mockModule('../../../database/database.js', () => ({
|
||||
editObjects: jest.fn(),
|
||||
newObject: jest.fn(),
|
||||
deleteObject: jest.fn(),
|
||||
deleteObjects: jest.fn(),
|
||||
listObjectsByProperties: jest.fn(),
|
||||
getModelStats: jest.fn(),
|
||||
getModelHistory: jest.fn(),
|
||||
|
||||
@ -9,6 +9,7 @@ jest.unstable_mockModule('../../../database/database.js', () => ({
|
||||
editObjects: jest.fn(),
|
||||
newObject: jest.fn(),
|
||||
deleteObject: jest.fn(),
|
||||
deleteObjects: jest.fn(),
|
||||
listObjectsByProperties: jest.fn(),
|
||||
getModelStats: jest.fn(),
|
||||
getModelHistory: jest.fn(),
|
||||
|
||||
@ -9,6 +9,7 @@ jest.unstable_mockModule('../../../database/database.js', () => ({
|
||||
editObjects: jest.fn(),
|
||||
newObject: jest.fn(),
|
||||
deleteObject: jest.fn(),
|
||||
deleteObjects: jest.fn(),
|
||||
listObjectsByProperties: jest.fn(),
|
||||
getModelStats: jest.fn(),
|
||||
getModelHistory: jest.fn(),
|
||||
|
||||
@ -9,6 +9,7 @@ jest.unstable_mockModule('../../../database/database.js', () => ({
|
||||
editObjects: jest.fn(),
|
||||
newObject: jest.fn(),
|
||||
deleteObject: jest.fn(),
|
||||
deleteObjects: jest.fn(),
|
||||
listObjectsByProperties: jest.fn(),
|
||||
getModelStats: jest.fn(),
|
||||
getModelHistory: jest.fn(),
|
||||
|
||||
@ -9,6 +9,7 @@ jest.unstable_mockModule('../../../database/database.js', () => ({
|
||||
editObjects: jest.fn(),
|
||||
newObject: jest.fn(),
|
||||
deleteObject: jest.fn(),
|
||||
deleteObjects: jest.fn(),
|
||||
listObjectsByProperties: jest.fn(),
|
||||
getModelStats: jest.fn(),
|
||||
getModelHistory: jest.fn(),
|
||||
|
||||
@ -8,6 +8,7 @@ jest.unstable_mockModule('../../../database/database.js', () => ({
|
||||
editObject: jest.fn(),
|
||||
newObject: jest.fn(),
|
||||
deleteObject: jest.fn(),
|
||||
deleteObjects: jest.fn(),
|
||||
listObjectsByProperties: jest.fn(),
|
||||
getModelStats: jest.fn(),
|
||||
getModelHistory: jest.fn(),
|
||||
|
||||
@ -4,6 +4,7 @@ import log4js from 'log4js';
|
||||
import mongoose from 'mongoose';
|
||||
import {
|
||||
deleteObject,
|
||||
deleteObjects,
|
||||
listObjects,
|
||||
getObject,
|
||||
editObject,
|
||||
@ -229,6 +230,27 @@ export const newFilamentStockRouteHandler = async (req, res) => {
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteFilamentStockByFilterRouteHandler = async (
|
||||
req,
|
||||
res,
|
||||
filter = {},
|
||||
masterFilter = {}
|
||||
) => {
|
||||
const result = await deleteObjects({
|
||||
model: filamentStockModel,
|
||||
filter: { ...masterFilter, ...filter },
|
||||
user: req.user,
|
||||
states: ['draft'],
|
||||
});
|
||||
|
||||
if (result.error) {
|
||||
logger.error('Failed to delete filtered FilamentStock:', result.error);
|
||||
return res.status(result.code || 500).send(result);
|
||||
}
|
||||
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteFilamentStockRouteHandler = async (req, res) => {
|
||||
// Get ID from params
|
||||
const id = new mongoose.Types.ObjectId(req.params.id);
|
||||
|
||||
@ -5,6 +5,7 @@ import log4js from 'log4js';
|
||||
import mongoose from 'mongoose';
|
||||
import {
|
||||
deleteObject,
|
||||
deleteObjects,
|
||||
listObjects,
|
||||
getObject,
|
||||
editObject,
|
||||
@ -380,6 +381,26 @@ export const newOrderItemRouteHandler = async (req, res) => {
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteOrderItemByFilterRouteHandler = async (
|
||||
req,
|
||||
res,
|
||||
filter = {},
|
||||
masterFilter = {}
|
||||
) => {
|
||||
const result = await deleteObjects({
|
||||
model: orderItemModel,
|
||||
filter: { ...masterFilter, ...filter },
|
||||
user: req.user,
|
||||
});
|
||||
|
||||
if (result.error) {
|
||||
logger.error('Failed to delete filtered OrderItem:', result.error);
|
||||
return res.status(result.code || 500).send(result);
|
||||
}
|
||||
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteOrderItemRouteHandler = async (req, res) => {
|
||||
// Get ID from params
|
||||
const id = new mongoose.Types.ObjectId(req.params.id);
|
||||
|
||||
@ -4,6 +4,7 @@ import log4js from 'log4js';
|
||||
import mongoose from 'mongoose';
|
||||
import {
|
||||
deleteObject,
|
||||
deleteObjects,
|
||||
listObjects,
|
||||
getObject,
|
||||
editObject,
|
||||
@ -218,6 +219,27 @@ export const newPartStockRouteHandler = async (req, res) => {
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deletePartStockByFilterRouteHandler = async (
|
||||
req,
|
||||
res,
|
||||
filter = {},
|
||||
masterFilter = {}
|
||||
) => {
|
||||
const result = await deleteObjects({
|
||||
model: partStockModel,
|
||||
filter: { ...masterFilter, ...filter },
|
||||
user: req.user,
|
||||
states: ['draft'],
|
||||
});
|
||||
|
||||
if (result.error) {
|
||||
logger.error('Failed to delete filtered PartStock:', result.error);
|
||||
return res.status(result.code || 500).send(result);
|
||||
}
|
||||
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deletePartStockRouteHandler = async (req, res) => {
|
||||
// Get ID from params
|
||||
const id = new mongoose.Types.ObjectId(req.params.id);
|
||||
|
||||
@ -4,6 +4,7 @@ import log4js from 'log4js';
|
||||
import mongoose from 'mongoose';
|
||||
import {
|
||||
deleteObject,
|
||||
deleteObjects,
|
||||
listObjects,
|
||||
getObject,
|
||||
editObject,
|
||||
@ -290,6 +291,27 @@ export const newProductStockRouteHandler = async (req, res) => {
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteProductStockByFilterRouteHandler = async (
|
||||
req,
|
||||
res,
|
||||
filter = {},
|
||||
masterFilter = {}
|
||||
) => {
|
||||
const result = await deleteObjects({
|
||||
model: productStockModel,
|
||||
filter: { ...masterFilter, ...filter },
|
||||
user: req.user,
|
||||
states: ['draft'],
|
||||
});
|
||||
|
||||
if (result.error) {
|
||||
logger.error('Failed to delete filtered ProductStock:', result.error);
|
||||
return res.status(result.code || 500).send(result);
|
||||
}
|
||||
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteProductStockRouteHandler = async (req, res) => {
|
||||
const id = new mongoose.Types.ObjectId(req.params.id);
|
||||
|
||||
|
||||
@ -4,6 +4,7 @@ import log4js from 'log4js';
|
||||
import mongoose from 'mongoose';
|
||||
import {
|
||||
deleteObject,
|
||||
deleteObjects,
|
||||
listObjects,
|
||||
getObject,
|
||||
editObject,
|
||||
@ -213,6 +214,26 @@ export const newPurchaseOrderRouteHandler = async (req, res) => {
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deletePurchaseOrderByFilterRouteHandler = async (
|
||||
req,
|
||||
res,
|
||||
filter = {},
|
||||
masterFilter = {}
|
||||
) => {
|
||||
const result = await deleteObjects({
|
||||
model: purchaseOrderModel,
|
||||
filter: { ...masterFilter, ...filter },
|
||||
user: req.user,
|
||||
});
|
||||
|
||||
if (result.error) {
|
||||
logger.error('Failed to delete filtered PurchaseOrder:', result.error);
|
||||
return res.status(result.code || 500).send(result);
|
||||
}
|
||||
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deletePurchaseOrderRouteHandler = async (req, res) => {
|
||||
// Get ID from params
|
||||
const id = new mongoose.Types.ObjectId(req.params.id);
|
||||
|
||||
@ -4,6 +4,7 @@ import log4js from 'log4js';
|
||||
import mongoose from 'mongoose';
|
||||
import {
|
||||
deleteObject,
|
||||
deleteObjects,
|
||||
listObjects,
|
||||
getObject,
|
||||
editObject,
|
||||
@ -219,6 +220,26 @@ export const newShipmentRouteHandler = async (req, res) => {
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteShipmentByFilterRouteHandler = async (
|
||||
req,
|
||||
res,
|
||||
filter = {},
|
||||
masterFilter = {}
|
||||
) => {
|
||||
const result = await deleteObjects({
|
||||
model: shipmentModel,
|
||||
filter: { ...masterFilter, ...filter },
|
||||
user: req.user,
|
||||
});
|
||||
|
||||
if (result.error) {
|
||||
logger.error('Failed to delete filtered Shipment:', result.error);
|
||||
return res.status(result.code || 500).send(result);
|
||||
}
|
||||
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteShipmentRouteHandler = async (req, res) => {
|
||||
// Get ID from params
|
||||
const id = new mongoose.Types.ObjectId(req.params.id);
|
||||
|
||||
@ -11,6 +11,7 @@ import log4js from 'log4js';
|
||||
import mongoose from 'mongoose';
|
||||
import {
|
||||
deleteObject,
|
||||
deleteObjects,
|
||||
listObjects,
|
||||
getObject,
|
||||
editObject,
|
||||
@ -445,6 +446,27 @@ export const newStockAuditRouteHandler = async (req, res) => {
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteStockAuditByFilterRouteHandler = async (
|
||||
req,
|
||||
res,
|
||||
filter = {},
|
||||
masterFilter = {}
|
||||
) => {
|
||||
const result = await deleteObjects({
|
||||
model: stockAuditModel,
|
||||
filter: { ...masterFilter, ...filter },
|
||||
user: req.user,
|
||||
states: ['draft'],
|
||||
});
|
||||
|
||||
if (result.error) {
|
||||
logger.error('Failed to delete filtered StockAudit:', result.error);
|
||||
return res.status(result.code || 500).send(result);
|
||||
}
|
||||
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteStockAuditRouteHandler = async (req, res) => {
|
||||
const id = new mongoose.Types.ObjectId(req.params.id);
|
||||
|
||||
|
||||
@ -4,6 +4,7 @@ import log4js from 'log4js';
|
||||
import mongoose from 'mongoose';
|
||||
import {
|
||||
deleteObject,
|
||||
deleteObjects,
|
||||
listObjects,
|
||||
getObject,
|
||||
editObject,
|
||||
@ -182,6 +183,26 @@ export const newStockLocationRouteHandler = async (req, res) => {
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteStockLocationByFilterRouteHandler = async (
|
||||
req,
|
||||
res,
|
||||
filter = {},
|
||||
masterFilter = {}
|
||||
) => {
|
||||
const result = await deleteObjects({
|
||||
model: stockLocationModel,
|
||||
filter: { ...masterFilter, ...filter },
|
||||
user: req.user,
|
||||
});
|
||||
|
||||
if (result.error) {
|
||||
logger.error('Failed to delete filtered StockLocation:', result.error);
|
||||
return res.status(result.code || 500).send(result);
|
||||
}
|
||||
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteStockLocationRouteHandler = async (req, res) => {
|
||||
const id = new mongoose.Types.ObjectId(req.params.id);
|
||||
|
||||
|
||||
@ -9,6 +9,7 @@ import log4js from 'log4js';
|
||||
import mongoose from 'mongoose';
|
||||
import {
|
||||
deleteObject,
|
||||
deleteObjects,
|
||||
listObjects,
|
||||
getObject,
|
||||
editObject,
|
||||
@ -432,6 +433,27 @@ export const newStockTransferRouteHandler = async (req, res) => {
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteStockTransferByFilterRouteHandler = async (
|
||||
req,
|
||||
res,
|
||||
filter = {},
|
||||
masterFilter = {}
|
||||
) => {
|
||||
const result = await deleteObjects({
|
||||
model: stockTransferModel,
|
||||
filter: { ...masterFilter, ...filter },
|
||||
user: req.user,
|
||||
states: ['draft'],
|
||||
});
|
||||
|
||||
if (result.error) {
|
||||
logger.error('Failed to delete filtered StockTransfer:', result.error);
|
||||
return res.status(result.code || 500).send(result);
|
||||
}
|
||||
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteStockTransferRouteHandler = async (req, res) => {
|
||||
const id = new mongoose.Types.ObjectId(req.params.id);
|
||||
|
||||
|
||||
@ -8,6 +8,7 @@ jest.unstable_mockModule('../../../database/database.js', () => ({
|
||||
editObject: jest.fn(),
|
||||
newObject: jest.fn(),
|
||||
deleteObject: jest.fn(),
|
||||
deleteObjects: jest.fn(),
|
||||
listObjectsByProperties: jest.fn(),
|
||||
getModelStats: jest.fn(),
|
||||
getModelHistory: jest.fn(),
|
||||
|
||||
@ -8,6 +8,7 @@ jest.unstable_mockModule('../../../database/database.js', () => ({
|
||||
editObject: jest.fn(),
|
||||
newObject: jest.fn(),
|
||||
deleteObject: jest.fn(),
|
||||
deleteObjects: jest.fn(),
|
||||
listObjectsByProperties: jest.fn(),
|
||||
getModelStats: jest.fn(),
|
||||
getModelHistory: jest.fn(),
|
||||
|
||||
@ -8,6 +8,7 @@ jest.unstable_mockModule('../../../database/database.js', () => ({
|
||||
editObject: jest.fn(),
|
||||
newObject: jest.fn(),
|
||||
deleteObject: jest.fn(),
|
||||
deleteObjects: jest.fn(),
|
||||
listObjectsByProperties: jest.fn(),
|
||||
getModelStats: jest.fn(),
|
||||
getModelHistory: jest.fn(),
|
||||
|
||||
@ -8,6 +8,7 @@ jest.unstable_mockModule('../../../database/database.js', () => ({
|
||||
editObject: jest.fn(),
|
||||
newObject: jest.fn(),
|
||||
deleteObject: jest.fn(),
|
||||
deleteObjects: jest.fn(),
|
||||
listObjectsByProperties: jest.fn(),
|
||||
getModelStats: jest.fn(),
|
||||
getModelHistory: jest.fn(),
|
||||
|
||||
@ -8,6 +8,7 @@ jest.unstable_mockModule('../../../database/database.js', () => ({
|
||||
editObject: jest.fn(),
|
||||
newObject: jest.fn(),
|
||||
deleteObject: jest.fn(),
|
||||
deleteObjects: jest.fn(),
|
||||
listObjectsByProperties: jest.fn(),
|
||||
getModelStats: jest.fn(),
|
||||
getModelHistory: jest.fn(),
|
||||
|
||||
@ -6,6 +6,7 @@ jest.unstable_mockModule('../../../database/schemas/management/emailaccount.sche
|
||||
}));
|
||||
jest.unstable_mockModule('../../../database/database.js', () => ({
|
||||
deleteObject: jest.fn(),
|
||||
deleteObjects: jest.fn(),
|
||||
editObject: jest.fn(),
|
||||
getObject: jest.fn(),
|
||||
getModelHistory: jest.fn(),
|
||||
|
||||
@ -5,6 +5,7 @@ jest.unstable_mockModule('../../../database/schemas/management/emailtemplate.sch
|
||||
}));
|
||||
jest.unstable_mockModule('../../../database/database.js', () => ({
|
||||
deleteObject: jest.fn(),
|
||||
deleteObjects: jest.fn(),
|
||||
editObject: jest.fn(),
|
||||
getObject: jest.fn(),
|
||||
getModelHistory: jest.fn(),
|
||||
|
||||
@ -9,6 +9,7 @@ jest.unstable_mockModule('../../../database/database.js', () => ({
|
||||
editObjects: jest.fn(),
|
||||
newObject: jest.fn(),
|
||||
deleteObject: jest.fn(),
|
||||
deleteObjects: jest.fn(),
|
||||
listObjectsByProperties: jest.fn(),
|
||||
getModelStats: jest.fn(),
|
||||
getModelHistory: jest.fn(),
|
||||
|
||||
@ -8,6 +8,7 @@ jest.unstable_mockModule('../../../database/database.js', () => ({
|
||||
editObject: jest.fn(),
|
||||
newObject: jest.fn(),
|
||||
deleteObject: jest.fn(),
|
||||
deleteObjects: jest.fn(),
|
||||
listObjectsByProperties: jest.fn(),
|
||||
flushFile: jest.fn(),
|
||||
getModelStats: jest.fn(),
|
||||
|
||||
@ -8,6 +8,7 @@ jest.unstable_mockModule('../../../database/database.js', () => ({
|
||||
editObject: jest.fn(),
|
||||
newObject: jest.fn(),
|
||||
deleteObject: jest.fn(),
|
||||
deleteObjects: jest.fn(),
|
||||
listObjectsByProperties: jest.fn(),
|
||||
getModelStats: jest.fn(),
|
||||
getModelHistory: jest.fn(),
|
||||
|
||||
@ -8,6 +8,8 @@ jest.unstable_mockModule('../../../database/database.js', () => ({
|
||||
getObject: jest.fn(),
|
||||
editObject: jest.fn(),
|
||||
newObject: jest.fn(),
|
||||
deleteObject: jest.fn(),
|
||||
deleteObjects: jest.fn(),
|
||||
getModelStats: jest.fn(),
|
||||
getModelHistory: jest.fn(),
|
||||
getObjectNeighbors: jest.fn(),
|
||||
@ -33,9 +35,13 @@ const {
|
||||
listMaterialsRouteHandler,
|
||||
getMaterialRouteHandler,
|
||||
newMaterialRouteHandler,
|
||||
deleteMaterialRouteHandler,
|
||||
deleteMaterialByFilterRouteHandler,
|
||||
} = await import('../materials.js');
|
||||
|
||||
const { listObjects, getObject, newObject } = await import('../../../database/database.js');
|
||||
const { listObjects, getObject, deleteObject, deleteObjects } = await import(
|
||||
'../../../database/database.js'
|
||||
);
|
||||
const { materialModel } = await import('../../../database/schemas/management/material.schema.js');
|
||||
|
||||
describe('Material Service Route Handlers', () => {
|
||||
@ -79,5 +85,49 @@ describe('Material Service Route Handlers', () => {
|
||||
expect(res.send).toHaveBeenCalledWith(mockMaterial);
|
||||
});
|
||||
});
|
||||
|
||||
describe('deleteMaterialRouteHandler', () => {
|
||||
it('should delete a material by ID', async () => {
|
||||
req.params.id = '507f1f77bcf86cd799439011';
|
||||
const deletedMaterial = { _id: req.params.id, name: 'PLA' };
|
||||
deleteObject.mockResolvedValue(deletedMaterial);
|
||||
|
||||
await deleteMaterialRouteHandler(req, res);
|
||||
|
||||
expect(deleteObject).toHaveBeenCalledWith(
|
||||
expect.objectContaining({
|
||||
model: materialModel,
|
||||
user: req.user,
|
||||
})
|
||||
);
|
||||
expect(res.send).toHaveBeenCalledWith(deletedMaterial);
|
||||
});
|
||||
});
|
||||
|
||||
describe('deleteMaterialByFilterRouteHandler', () => {
|
||||
it('should delete materials matching the merged filters', async () => {
|
||||
const result = {
|
||||
matchedCount: 2,
|
||||
deletedCount: 2,
|
||||
failedCount: 0,
|
||||
errors: [],
|
||||
};
|
||||
deleteObjects.mockResolvedValue(result);
|
||||
|
||||
await deleteMaterialByFilterRouteHandler(
|
||||
req,
|
||||
res,
|
||||
{ name: 'PLA' },
|
||||
{ tags: 'stock' }
|
||||
);
|
||||
|
||||
expect(deleteObjects).toHaveBeenCalledWith({
|
||||
model: materialModel,
|
||||
filter: { tags: 'stock', name: 'PLA' },
|
||||
user: req.user,
|
||||
});
|
||||
expect(res.send).toHaveBeenCalledWith(result);
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@ -8,6 +8,7 @@ jest.unstable_mockModule('../../../database/database.js', () => ({
|
||||
editObject: jest.fn(),
|
||||
newObject: jest.fn(),
|
||||
deleteObject: jest.fn(),
|
||||
deleteObjects: jest.fn(),
|
||||
listObjectsByProperties: jest.fn(),
|
||||
getModelStats: jest.fn(),
|
||||
getModelHistory: jest.fn(),
|
||||
|
||||
@ -8,6 +8,7 @@ jest.unstable_mockModule('../../../database/database.js', () => ({
|
||||
editObject: jest.fn(),
|
||||
newObject: jest.fn(),
|
||||
deleteObject: jest.fn(),
|
||||
deleteObjects: jest.fn(),
|
||||
listObjectsByProperties: jest.fn(),
|
||||
getModelStats: jest.fn(),
|
||||
getModelHistory: jest.fn(),
|
||||
|
||||
@ -8,6 +8,7 @@ jest.unstable_mockModule('../../../database/database.js', () => ({
|
||||
editObject: jest.fn(),
|
||||
newObject: jest.fn(),
|
||||
deleteObject: jest.fn(),
|
||||
deleteObjects: jest.fn(),
|
||||
listObjectsByProperties: jest.fn(),
|
||||
getModelStats: jest.fn(),
|
||||
getModelHistory: jest.fn(),
|
||||
|
||||
@ -8,6 +8,7 @@ jest.unstable_mockModule('../../../database/database.js', () => ({
|
||||
editObject: jest.fn(),
|
||||
newObject: jest.fn(),
|
||||
deleteObject: jest.fn(),
|
||||
deleteObjects: jest.fn(),
|
||||
listObjectsByProperties: jest.fn(),
|
||||
getModelStats: jest.fn(),
|
||||
getModelHistory: jest.fn(),
|
||||
|
||||
@ -8,6 +8,7 @@ jest.unstable_mockModule('../../../database/database.js', () => ({
|
||||
editObject: jest.fn(),
|
||||
newObject: jest.fn(),
|
||||
deleteObject: jest.fn(),
|
||||
deleteObjects: jest.fn(),
|
||||
listObjectsByProperties: jest.fn(),
|
||||
getModelStats: jest.fn(),
|
||||
getModelHistory: jest.fn(),
|
||||
|
||||
@ -8,6 +8,7 @@ jest.unstable_mockModule('../../../database/database.js', () => ({
|
||||
editObject: jest.fn(),
|
||||
newObject: jest.fn(),
|
||||
deleteObject: jest.fn(),
|
||||
deleteObjects: jest.fn(),
|
||||
listObjectsByProperties: jest.fn(),
|
||||
getModelStats: jest.fn(),
|
||||
getModelHistory: jest.fn(),
|
||||
|
||||
@ -8,6 +8,7 @@ jest.unstable_mockModule('../../../database/database.js', () => ({
|
||||
editObject: jest.fn(),
|
||||
newObject: jest.fn(),
|
||||
deleteObject: jest.fn(),
|
||||
deleteObjects: jest.fn(),
|
||||
listObjectsByProperties: jest.fn(),
|
||||
getModelStats: jest.fn(),
|
||||
getModelHistory: jest.fn(),
|
||||
|
||||
@ -8,6 +8,7 @@ jest.unstable_mockModule('../../../database/database.js', () => ({
|
||||
editObject: jest.fn(),
|
||||
newObject: jest.fn(),
|
||||
deleteObject: jest.fn(),
|
||||
deleteObjects: jest.fn(),
|
||||
listObjectsByProperties: jest.fn(),
|
||||
getModelStats: jest.fn(),
|
||||
getModelHistory: jest.fn(),
|
||||
|
||||
@ -11,6 +11,7 @@ import {
|
||||
editObject,
|
||||
newObject,
|
||||
deleteObject,
|
||||
deleteObjects,
|
||||
getModelStats,
|
||||
getModelHistory,
|
||||
searchObjects,
|
||||
@ -178,6 +179,26 @@ export const newAppPasswordRouteHandler = async (req, res) => {
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteAppPasswordByFilterRouteHandler = async (
|
||||
req,
|
||||
res,
|
||||
filter = {},
|
||||
masterFilter = {}
|
||||
) => {
|
||||
const result = await deleteObjects({
|
||||
model: appPasswordModel,
|
||||
filter: { ...masterFilter, ...filter },
|
||||
user: req.user,
|
||||
});
|
||||
|
||||
if (result.error) {
|
||||
logger.error('Failed to delete filtered AppPassword:', result.error);
|
||||
return res.status(result.code || 500).send(result);
|
||||
}
|
||||
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteAppPasswordRouteHandler = async (req, res) => {
|
||||
const id = new mongoose.Types.ObjectId(req.params.id);
|
||||
|
||||
|
||||
@ -4,6 +4,7 @@ import log4js from 'log4js';
|
||||
import mongoose from 'mongoose';
|
||||
import {
|
||||
deleteObject,
|
||||
deleteObjects,
|
||||
listObjects,
|
||||
getObject,
|
||||
editObject,
|
||||
@ -171,6 +172,26 @@ export const newCourierRouteHandler = async (req, res) => {
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteCourierByFilterRouteHandler = async (
|
||||
req,
|
||||
res,
|
||||
filter = {},
|
||||
masterFilter = {}
|
||||
) => {
|
||||
const result = await deleteObjects({
|
||||
model: courierModel,
|
||||
filter: { ...masterFilter, ...filter },
|
||||
user: req.user,
|
||||
});
|
||||
|
||||
if (result.error) {
|
||||
logger.error('Failed to delete filtered Courier:', result.error);
|
||||
return res.status(result.code || 500).send(result);
|
||||
}
|
||||
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteCourierRouteHandler = async (req, res) => {
|
||||
// Get ID from params
|
||||
const id = new mongoose.Types.ObjectId(req.params.id);
|
||||
|
||||
@ -4,6 +4,7 @@ import log4js from 'log4js';
|
||||
import mongoose from 'mongoose';
|
||||
import {
|
||||
deleteObject,
|
||||
deleteObjects,
|
||||
listObjects,
|
||||
getObject,
|
||||
editObject,
|
||||
@ -193,6 +194,26 @@ export const newCourierServiceRouteHandler = async (req, res) => {
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteCourierServiceByFilterRouteHandler = async (
|
||||
req,
|
||||
res,
|
||||
filter = {},
|
||||
masterFilter = {}
|
||||
) => {
|
||||
const result = await deleteObjects({
|
||||
model: courierServiceModel,
|
||||
filter: { ...masterFilter, ...filter },
|
||||
user: req.user,
|
||||
});
|
||||
|
||||
if (result.error) {
|
||||
logger.error('Failed to delete filtered CourierService:', result.error);
|
||||
return res.status(result.code || 500).send(result);
|
||||
}
|
||||
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteCourierServiceRouteHandler = async (req, res) => {
|
||||
// Get ID from params
|
||||
const id = new mongoose.Types.ObjectId(req.params.id);
|
||||
|
||||
@ -4,6 +4,7 @@ import log4js from 'log4js';
|
||||
import mongoose from 'mongoose';
|
||||
import {
|
||||
deleteObject,
|
||||
deleteObjects,
|
||||
listObjects,
|
||||
getObject,
|
||||
editObject,
|
||||
@ -182,6 +183,26 @@ export const newDocumentPrinterRouteHandler = async (req, res) => {
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteDocumentPrinterByFilterRouteHandler = async (
|
||||
req,
|
||||
res,
|
||||
filter = {},
|
||||
masterFilter = {}
|
||||
) => {
|
||||
const result = await deleteObjects({
|
||||
model: documentPrinterModel,
|
||||
filter: { ...masterFilter, ...filter },
|
||||
user: req.user,
|
||||
});
|
||||
|
||||
if (result.error) {
|
||||
logger.error('Failed to delete filtered DocumentPrinter:', result.error);
|
||||
return res.status(result.code || 500).send(result);
|
||||
}
|
||||
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteDocumentPrinterRouteHandler = async (req, res) => {
|
||||
// Get ID from params
|
||||
const id = new mongoose.Types.ObjectId(req.params.id);
|
||||
|
||||
@ -4,6 +4,7 @@ import log4js from 'log4js';
|
||||
import mongoose from 'mongoose';
|
||||
import {
|
||||
deleteObject,
|
||||
deleteObjects,
|
||||
listObjects,
|
||||
getObject,
|
||||
editObject,
|
||||
@ -176,6 +177,26 @@ export const newDocumentSizeRouteHandler = async (req, res) => {
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteDocumentSizeByFilterRouteHandler = async (
|
||||
req,
|
||||
res,
|
||||
filter = {},
|
||||
masterFilter = {}
|
||||
) => {
|
||||
const result = await deleteObjects({
|
||||
model: documentSizeModel,
|
||||
filter: { ...masterFilter, ...filter },
|
||||
user: req.user,
|
||||
});
|
||||
|
||||
if (result.error) {
|
||||
logger.error('Failed to delete filtered DocumentSize:', result.error);
|
||||
return res.status(result.code || 500).send(result);
|
||||
}
|
||||
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteDocumentSizeRouteHandler = async (req, res) => {
|
||||
// Get ID from params
|
||||
const id = new mongoose.Types.ObjectId(req.params.id);
|
||||
|
||||
@ -4,6 +4,7 @@ import log4js from 'log4js';
|
||||
import mongoose from 'mongoose';
|
||||
import {
|
||||
deleteObject,
|
||||
deleteObjects,
|
||||
listObjects,
|
||||
getObject,
|
||||
editObject,
|
||||
@ -239,6 +240,26 @@ export const newDocumentTemplateRouteHandler = async (req, res) => {
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteDocumentTemplateByFilterRouteHandler = async (
|
||||
req,
|
||||
res,
|
||||
filter = {},
|
||||
masterFilter = {}
|
||||
) => {
|
||||
const result = await deleteObjects({
|
||||
model: documentTemplateModel,
|
||||
filter: { ...masterFilter, ...filter },
|
||||
user: req.user,
|
||||
});
|
||||
|
||||
if (result.error) {
|
||||
logger.error('Failed to delete filtered DocumentTemplate:', result.error);
|
||||
return res.status(result.code || 500).send(result);
|
||||
}
|
||||
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteDocumentTemplateRouteHandler = async (req, res) => {
|
||||
// Get ID from params
|
||||
const id = new mongoose.Types.ObjectId(req.params.id);
|
||||
|
||||
@ -9,6 +9,7 @@ import {
|
||||
editObject,
|
||||
newObject,
|
||||
deleteObject,
|
||||
deleteObjects,
|
||||
getModelStats,
|
||||
getModelHistory,
|
||||
searchObjects,
|
||||
@ -182,6 +183,27 @@ export const newEmailAccountRouteHandler = async (req, res) => {
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteEmailAccountByFilterRouteHandler = async (
|
||||
req,
|
||||
res,
|
||||
filter = {},
|
||||
masterFilter = {}
|
||||
) => {
|
||||
const result = await deleteObjects({
|
||||
model: emailAccountModel,
|
||||
filter: { ...masterFilter, ...filter },
|
||||
user: req.user,
|
||||
checkUnused: true,
|
||||
});
|
||||
|
||||
if (result.error) {
|
||||
logger.error('Failed to delete filtered EmailAccount:', result.error);
|
||||
return res.status(result.code || 500).send(result);
|
||||
}
|
||||
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteEmailAccountRouteHandler = async (req, res) => {
|
||||
const id = new mongoose.Types.ObjectId(req.params.id);
|
||||
|
||||
|
||||
@ -9,6 +9,7 @@ import {
|
||||
editObject,
|
||||
newObject,
|
||||
deleteObject,
|
||||
deleteObjects,
|
||||
getModelStats,
|
||||
getModelHistory,
|
||||
searchObjects,
|
||||
@ -222,6 +223,27 @@ export const newEmailTemplateRouteHandler = async (req, res) => {
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteEmailTemplateByFilterRouteHandler = async (
|
||||
req,
|
||||
res,
|
||||
filter = {},
|
||||
masterFilter = {}
|
||||
) => {
|
||||
const result = await deleteObjects({
|
||||
model: emailTemplateModel,
|
||||
filter: { ...masterFilter, ...filter },
|
||||
user: req.user,
|
||||
checkUnused: true,
|
||||
});
|
||||
|
||||
if (result.error) {
|
||||
logger.error('Failed to delete filtered EmailTemplate:', result.error);
|
||||
return res.status(result.code || 500).send(result);
|
||||
}
|
||||
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteEmailTemplateRouteHandler = async (req, res) => {
|
||||
const id = new mongoose.Types.ObjectId(req.params.id);
|
||||
|
||||
|
||||
@ -10,6 +10,7 @@ import {
|
||||
editObjects,
|
||||
newObject,
|
||||
deleteObject,
|
||||
deleteObjects,
|
||||
getModelStats,
|
||||
getModelHistory,
|
||||
searchObjects,
|
||||
@ -227,6 +228,27 @@ export const newFilamentRouteHandler = async (req, res) => {
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteFilamentByFilterRouteHandler = async (
|
||||
req,
|
||||
res,
|
||||
filter = {},
|
||||
masterFilter = {}
|
||||
) => {
|
||||
const result = await deleteObjects({
|
||||
model: filamentModel,
|
||||
filter: { ...masterFilter, ...filter },
|
||||
user: req.user,
|
||||
checkUnused: true,
|
||||
});
|
||||
|
||||
if (result.error) {
|
||||
logger.error('Failed to delete filtered Filament:', result.error);
|
||||
return res.status(result.code || 500).send(result);
|
||||
}
|
||||
|
||||
res.send(result);
|
||||
};
|
||||
|
||||
export const deleteFilamentRouteHandler = async (req, res) => {
|
||||
const id = new mongoose.Types.ObjectId(req.params.id);
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user