Enhance allowedFilters across multiple routes to include 'createdAt', 'updatedAt', and '_reference' for improved filtering capabilities. This update applies to finance, inventory, management, and sales modules, ensuring consistency and better query handling.
All checks were successful
farmcontrol/farmcontrol-api/pipeline/head This commit looks good

This commit is contained in:
Tom Butcher 2026-08-01 14:26:40 +01:00
parent c233be5d80
commit c043ad7a86
47 changed files with 348 additions and 48 deletions

View File

@ -13,6 +13,9 @@ const listAllowedFilters = [
'order', 'order',
'order._id', 'order._id',
'orderType', 'orderType',
'createdAt',
'updatedAt',
'_reference'
]; ];
const propertiesAllowedFilters = [ const propertiesAllowedFilters = [
'vendor', 'vendor',

View File

@ -12,6 +12,9 @@ const listAllowedFilters = [
'client._id', 'client._id',
'invoice', 'invoice',
'invoice._id', 'invoice._id',
'createdAt',
'updatedAt',
'_reference'
]; ];
const propertiesAllowedFilters = [ const propertiesAllowedFilters = [
'vendor', 'vendor',

View File

@ -4,7 +4,15 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['taxRate', 'transactionType', 'transaction', 'transactionDate']; const listAllowedFilters = [
'taxRate',
'transactionType',
'transaction',
'transactionDate',
'createdAt',
'updatedAt',
'_reference'
];
const propertiesAllowedFilters = ['taxRate', 'transactionType', 'transaction']; const propertiesAllowedFilters = ['taxRate', 'transactionType', 'transaction'];
import { import {
listTaxRecordsRouteHandler, listTaxRecordsRouteHandler,

View File

@ -14,6 +14,9 @@ const listAllowedFilters = [
'filamentSku._id', 'filamentSku._id',
'stockLocation', 'stockLocation',
'stockLocation._id', 'stockLocation._id',
'createdAt',
'updatedAt',
'_reference'
]; ];
const propertiesAllowedFilters = [ const propertiesAllowedFilters = [
'filament', 'filament',

View File

@ -14,6 +14,10 @@ const listAllowedFilters = [
'orderType', 'orderType',
'shipment', 'shipment',
'shipment._id', 'shipment._id',
'state',
'createdAt',
'updatedAt',
'_reference'
]; ];
const propertiesAllowedFilters = [ const propertiesAllowedFilters = [
'name', 'name',

View File

@ -12,6 +12,9 @@ const listAllowedFilters = [
'partSku._id', 'partSku._id',
'stockLocation', 'stockLocation',
'stockLocation._id', 'stockLocation._id',
'createdAt',
'updatedAt',
'_reference'
]; ];
const propertiesAllowedFilters = ['part', 'state.type']; const propertiesAllowedFilters = ['part', 'state.type'];
import { import {

View File

@ -11,6 +11,9 @@ const listAllowedFilters = [
'productSku._id', 'productSku._id',
'stockLocation', 'stockLocation',
'stockLocation._id', 'stockLocation._id',
'createdAt',
'updatedAt',
'_reference'
]; ];
const propertiesAllowedFilters = ['productSku', 'state.type']; const propertiesAllowedFilters = ['productSku', 'state.type'];
import { import {

View File

@ -15,6 +15,9 @@ const listAllowedFilters = [
'shippingAmount', 'shippingAmount',
'shippingAmountWithTax', 'shippingAmountWithTax',
'grandTotalAmount', 'grandTotalAmount',
'createdAt',
'updatedAt',
'_reference'
]; ];
const propertiesAllowedFilters = [ const propertiesAllowedFilters = [
'vendor', 'vendor',

View File

@ -4,7 +4,17 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['orderType', 'order', 'state', 'courierService', 'order._id', 'taxRate']; const listAllowedFilters = [
'orderType',
'order',
'state',
'courierService',
'order._id',
'taxRate',
'createdAt',
'updatedAt',
'_reference'
];
const propertiesAllowedFilters = [ const propertiesAllowedFilters = [
'orderType', 'orderType',
'order', 'order',

View File

@ -15,7 +15,15 @@ import {
getStockAuditNeighborsRouteHandler, getStockAuditNeighborsRouteHandler,
} from '../../services/inventory/stockaudits.js'; } from '../../services/inventory/stockaudits.js';
const listAllowedFilters = ['status', 'type', 'createdBy']; const listAllowedFilters = [
'status',
'type',
'createdBy',
'state',
'createdAt',
'updatedAt',
'_reference'
];
// List stock audits // List stock audits
router.get('/', isAuthenticated, (req, res) => { router.get('/', isAuthenticated, (req, res) => {

View File

@ -4,7 +4,13 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['owner._id', 'parent._id']; const listAllowedFilters = [
'owner._id',
'parent._id',
'createdAt',
'updatedAt',
'_reference'
];
const propertiesAllowedFilters = ['owner._id', 'parent._id']; const propertiesAllowedFilters = ['owner._id', 'parent._id'];
import { import {
listStockEventsRouteHandler, listStockEventsRouteHandler,

View File

@ -4,7 +4,7 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['name']; const listAllowedFilters = ['name','createdAt','updatedAt','_reference'];
const propertiesAllowedFilters = ['name']; const propertiesAllowedFilters = ['name'];
import { import {
listStockLocationsRouteHandler, listStockLocationsRouteHandler,

View File

@ -4,7 +4,15 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['state', 'state.type', 'postedAt']; const listAllowedFilters = [
'state',
'state.type',
'postedAt',
'name',
'createdAt',
'updatedAt',
'_reference'
];
const propertiesAllowedFilters = ['state.type']; const propertiesAllowedFilters = ['state.type'];
import { import {
listStockTransfersRouteHandler, listStockTransfersRouteHandler,

View File

@ -4,7 +4,16 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['_id', 'name', 'user', 'active', 'user._id']; const listAllowedFilters = [
'_id',
'name',
'user',
'active',
'user._id',
'createdAt',
'updatedAt',
'_reference'
];
const propertiesAllowedFilters = ['name', 'user', 'active']; const propertiesAllowedFilters = ['name', 'user', 'active'];
import { import {
listAppPasswordsRouteHandler, listAppPasswordsRouteHandler,

View File

@ -15,7 +15,14 @@ const router = express.Router();
router.get('/', isAuthenticated, async (req, res) => { router.get('/', isAuthenticated, async (req, res) => {
const { page, limit, sort, order } = req.query; const { page, limit, sort, order } = req.query;
const allowedFilters = ['parent._id', 'owner._id', 'operation']; const allowedFilters = [
'parent._id',
'owner._id',
'operation',
'createdAt',
'updatedAt',
'_reference'
];
var filter = {}; var filter = {};

View File

@ -4,7 +4,17 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['name', 'website', 'email', 'phone', 'contact', 'country']; const listAllowedFilters = [
'name',
'website',
'email',
'phone',
'contact',
'country',
'createdAt',
'updatedAt',
'_reference'
];
const propertiesAllowedFilters = ['name', 'website', 'email', 'phone', 'contact', 'country']; const propertiesAllowedFilters = ['name', 'website', 'email', 'phone', 'contact', 'country'];
import { import {
listCouriersRouteHandler, listCouriersRouteHandler,

View File

@ -14,6 +14,9 @@ const listAllowedFilters = [
'deliveryTime', 'deliveryTime',
'cost', 'cost',
'costWithTax', 'costWithTax',
'createdAt',
'updatedAt',
'_reference'
]; ];
const propertiesAllowedFilters = [ const propertiesAllowedFilters = [
'_id', '_id',

View File

@ -4,7 +4,15 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['name', 'width', 'height']; const listAllowedFilters = [
'name',
'width',
'height',
'state',
'createdAt',
'updatedAt',
'_reference'
];
const propertiesAllowedFilters = []; const propertiesAllowedFilters = [];
import { import {
listDocumentJobsRouteHandler, listDocumentJobsRouteHandler,

View File

@ -4,7 +4,16 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['name', 'tags', 'active', 'isGlobal']; const listAllowedFilters = [
'name',
'tags',
'active',
'isGlobal',
'state',
'createdAt',
'updatedAt',
'_reference'
];
const propertiesAllowedFilters = ['tags']; const propertiesAllowedFilters = ['tags'];
import { import {
listDocumentPrintersRouteHandler, listDocumentPrintersRouteHandler,

View File

@ -4,7 +4,14 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['name', 'width', 'height']; const listAllowedFilters = [
'name',
'width',
'height',
'createdAt',
'updatedAt',
'_reference'
];
const propertiesAllowedFilters = []; const propertiesAllowedFilters = [];
import { import {
listDocumentSizesRouteHandler, listDocumentSizesRouteHandler,

View File

@ -4,7 +4,16 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['name', 'tags', 'active', 'global', 'objectType']; const listAllowedFilters = [
'name',
'tags',
'active',
'global',
'objectType',
'createdAt',
'updatedAt',
'_reference'
];
const propertiesAllowedFilters = ['documentSize', 'tags']; const propertiesAllowedFilters = ['documentSize', 'tags'];
import { import {
listDocumentTemplatesRouteHandler, listDocumentTemplatesRouteHandler,

View File

@ -4,7 +4,17 @@ import { convertPropertiesString, getFilter, parseFilter } from '../../utils.js'
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['_id', 'material', 'material._id', 'diameter', 'name', 'cost']; const listAllowedFilters = [
'_id',
'material',
'material._id',
'diameter',
'name',
'cost',
'createdAt',
'updatedAt',
'_reference'
];
const propertiesAllowedFilters = ['diameter', 'material']; const propertiesAllowedFilters = ['diameter', 'material'];
import { import {
listFilamentsRouteHandler, listFilamentsRouteHandler,

View File

@ -4,7 +4,19 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['_id', 'barcode', 'filament', 'filament._id', 'name', 'color', 'cost', 'costWithTax']; const listAllowedFilters = [
'_id',
'barcode',
'filament',
'filament._id',
'name',
'color',
'cost',
'costWithTax',
'createdAt',
'updatedAt',
'_reference'
];
const propertiesAllowedFilters = ['filament', 'filament._id']; const propertiesAllowedFilters = ['filament', 'filament._id'];
import { import {
listFilamentSkusRouteHandler, listFilamentSkusRouteHandler,

View File

@ -4,7 +4,16 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['_id', 'name', 'type', 'size', 'extension']; const listAllowedFilters = [
'_id',
'name',
'type',
'size',
'extension',
'createdAt',
'updatedAt',
'_reference'
];
const propertiesAllowedFilters = ['type', 'extension']; const propertiesAllowedFilters = ['type', 'extension'];
import { import {
listFilesRouteHandler, listFilesRouteHandler,

View File

@ -4,7 +4,15 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['_id', 'name', 'tags']; const listAllowedFilters = [
'_id',
'name',
'tags',
'state',
'createdAt',
'updatedAt',
'_reference'
];
const propertiesAllowedFilters = ['tags']; const propertiesAllowedFilters = ['tags'];
import { import {
listHostsRouteHandler, listHostsRouteHandler,
@ -17,8 +25,7 @@ import {
getHostHistoryRouteHandler, getHostHistoryRouteHandler,
searchHostsRouteHandler, searchHostsRouteHandler,
getHostPropertyValuesRouteHandler, getHostPropertyValuesRouteHandler,
getHostNeighborsRouteHandler,
getHostNeighborsRouteHandler
} from '../../services/management/hosts.js'; } from '../../services/management/hosts.js';
// list of hosts // list of hosts

View File

@ -4,7 +4,14 @@ import { convertPropertiesString, getFilter, parseFilter } from '../../utils.js'
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['_id', 'name', 'tags']; const listAllowedFilters = [
'_id',
'name',
'tags',
'createdAt',
'updatedAt',
'_reference'
];
const propertiesAllowedFilters = ['name', 'tags']; const propertiesAllowedFilters = ['name', 'tags'];
import { import {
listMaterialsRouteHandler, listMaterialsRouteHandler,

View File

@ -4,7 +4,15 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['_id', 'name', 'active', 'color']; const listAllowedFilters = [
'_id',
'name',
'active',
'color',
'createdAt',
'updatedAt',
'_reference'
];
const propertiesAllowedFilters = ['active', 'color']; const propertiesAllowedFilters = ['active', 'color'];
import { import {
listNoteTypesRouteHandler, listNoteTypesRouteHandler,

View File

@ -4,7 +4,14 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['product._id', '_id', 'name']; const listAllowedFilters = [
'product._id',
'_id',
'name',
'createdAt',
'updatedAt',
'_reference'
];
const propertiesAllowedFilters = ['product._id']; const propertiesAllowedFilters = ['product._id'];
import { import {
listPartsRouteHandler, listPartsRouteHandler,

View File

@ -4,7 +4,18 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['_id', 'barcode', 'part', 'part._id', 'name', 'cost', 'price']; const listAllowedFilters = [
'_id',
'barcode',
'part',
'part._id',
'name',
'cost',
'price',
'createdAt',
'updatedAt',
'_reference'
];
const propertiesAllowedFilters = ['part', 'part._id']; const propertiesAllowedFilters = ['part', 'part._id'];
import { import {
listPartSkusRouteHandler, listPartSkusRouteHandler,

View File

@ -18,7 +18,7 @@ import {
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['_id', 'name']; const listAllowedFilters = ['_id','name','createdAt','updatedAt','_reference'];
const propertiesAllowedFilters = ['name']; const propertiesAllowedFilters = ['name'];
router.get('/', isAuthenticated, (req, res) => { router.get('/', isAuthenticated, (req, res) => {

View File

@ -4,7 +4,16 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['_id', 'name', 'globalPrice', 'productCategory', 'productCategory._id']; const listAllowedFilters = [
'_id',
'name',
'globalPrice',
'productCategory',
'productCategory._id',
'createdAt',
'updatedAt',
'_reference'
];
const propertiesAllowedFilters = []; const propertiesAllowedFilters = [];
import { import {
listProductsRouteHandler, listProductsRouteHandler,

View File

@ -4,7 +4,18 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['_id', 'barcode', 'product', 'product._id', 'name', 'cost', 'price']; const listAllowedFilters = [
'_id',
'barcode',
'product',
'product._id',
'name',
'cost',
'price',
'createdAt',
'updatedAt',
'_reference'
];
const propertiesAllowedFilters = ['product', 'product._id']; const propertiesAllowedFilters = ['product', 'product._id'];
import { import {
listProductSkusRouteHandler, listProductSkusRouteHandler,

View File

@ -4,7 +4,16 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['name', 'rate', 'rateType', 'active', 'country']; const listAllowedFilters = [
'name',
'rate',
'rateType',
'active',
'country',
'createdAt',
'updatedAt',
'_reference'
];
const propertiesAllowedFilters = ['rateType', 'country', 'active']; const propertiesAllowedFilters = ['rateType', 'country', 'active'];
import { import {
listTaxRatesRouteHandler, listTaxRatesRouteHandler,

View File

@ -4,7 +4,16 @@ import { convertPropertiesString, getFilter } from '../../utils.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['name', 'username', 'firstName', 'lastName', 'email']; const listAllowedFilters = [
'name',
'username',
'firstName',
'lastName',
'email',
'createdAt',
'updatedAt',
'_reference'
];
const propertiesAllowedFilters = []; const propertiesAllowedFilters = [];
import { import {
listUsersRouteHandler, listUsersRouteHandler,

View File

@ -4,7 +4,14 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['country', 'active', 'createdAt', 'updatedAt']; const listAllowedFilters = [
'country',
'active',
'createdAt',
'updatedAt',
'name',
'_reference'
];
const propertiesAllowedFilters = ['country', 'active', 'createdAt', 'updatedAt']; const propertiesAllowedFilters = ['country', 'active', 'createdAt', 'updatedAt'];
import { import {
listVendorsRouteHandler, listVendorsRouteHandler,

View File

@ -17,7 +17,12 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['parent._id']; const listAllowedFilters = [
'parent._id',
'createdAt',
'updatedAt',
'_reference'
];
const propertiesAllowedFilters = ['parent']; const propertiesAllowedFilters = ['parent'];
// list of notes // list of notes

View File

@ -16,7 +16,7 @@ import {
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['_id', 'name']; const listAllowedFilters = ['_id','name','createdAt','updatedAt','_reference'];
const propertiesAllowedFilters = ['name']; const propertiesAllowedFilters = ['name'];
router.get('/', isAuthenticated, (req, res) => { router.get('/', isAuthenticated, (req, res) => {

View File

@ -3,7 +3,17 @@ import { isAuthenticated } from '../../keycloak.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['_id', 'name', 'filament', 'filament._id', 'filamentSku', 'filamentSku._id']; const listAllowedFilters = [
'_id',
'name',
'filament',
'filament._id',
'filamentSku',
'filamentSku._id',
'createdAt',
'updatedAt',
'_reference'
];
const propertiesAllowedFilters = ['filament', 'filament._id', 'filamentSku', 'filamentSku._id']; const propertiesAllowedFilters = ['filament', 'filament._id', 'filamentSku', 'filamentSku._id'];
import { import {
listGCodeFilesRouteHandler, listGCodeFilesRouteHandler,

View File

@ -3,7 +3,15 @@ import { isAuthenticated } from '../../keycloak.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['state', 'gcodeFile._id', 'quantity', '_id', '_reference']; const listAllowedFilters = [
'state',
'gcodeFile._id',
'quantity',
'_id',
'_reference',
'createdAt',
'updatedAt'
];
const propertiesAllowedFilters = ['state']; const propertiesAllowedFilters = ['state'];
import { import {
listJobsRouteHandler, listJobsRouteHandler,

View File

@ -16,7 +16,7 @@ import {
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['_id', 'name']; const listAllowedFilters = ['_id','name','createdAt','updatedAt','_reference'];
const propertiesAllowedFilters = ['name']; const propertiesAllowedFilters = ['name'];
router.get('/', isAuthenticated, (req, res) => { router.get('/', isAuthenticated, (req, res) => {

View File

@ -25,7 +25,9 @@ const listAllowedFilters = [
'_id', '_id',
'_reference', '_reference',
'state', 'state',
]; 'createdAt',
'updatedAt'
];
const propertiesAllowedFilters = ['tags']; const propertiesAllowedFilters = ['tags'];
// list of printers // list of printers
router.get('/', isAuthenticated, (req, res) => { router.get('/', isAuthenticated, (req, res) => {

View File

@ -3,7 +3,15 @@ import { isAuthenticated } from '../../keycloak.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['_id', 'job._id', 'printer._id', '_reference', 'state']; const listAllowedFilters = [
'_id',
'job._id',
'printer._id',
'_reference',
'state',
'createdAt',
'updatedAt'
];
const propertiesAllowedFilters = ['job']; const propertiesAllowedFilters = ['job'];
import { import {
listSubJobsRouteHandler, listSubJobsRouteHandler,

View File

@ -4,7 +4,14 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['country', 'active', 'createdAt', 'updatedAt']; const listAllowedFilters = [
'country',
'active',
'createdAt',
'updatedAt',
'name',
'_reference'
];
const propertiesAllowedFilters = ['country', 'active', 'createdAt', 'updatedAt']; const propertiesAllowedFilters = ['country', 'active', 'createdAt', 'updatedAt'];
import { import {
listClientsRouteHandler, listClientsRouteHandler,

View File

@ -14,6 +14,7 @@ const listAllowedFilters = [
'state.type', 'state.type',
'createdAt', 'createdAt',
'updatedAt', 'updatedAt',
'_reference'
]; ];
const propertiesAllowedFilters = [ const propertiesAllowedFilters = [
'product', 'product',

View File

@ -13,6 +13,7 @@ const listAllowedFilters = [
'state.type', 'state.type',
'createdAt', 'createdAt',
'updatedAt', 'updatedAt',
'_reference'
]; ];
const propertiesAllowedFilters = [ const propertiesAllowedFilters = [
'listing', 'listing',

View File

@ -4,7 +4,17 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['name', 'provider', 'active', 'connected', 'state.type', 'createdAt', 'updatedAt']; const listAllowedFilters = [
'name',
'provider',
'active',
'connected',
'state.type',
'createdAt',
'updatedAt',
'state',
'_reference'
];
const propertiesAllowedFilters = ['name', 'provider', 'active', 'connected', 'state.type', 'createdAt', 'updatedAt']; const propertiesAllowedFilters = ['name', 'provider', 'active', 'connected', 'state.type', 'createdAt', 'updatedAt'];
import { import {
listMarketplacesRouteHandler, listMarketplacesRouteHandler,

View File

@ -4,7 +4,15 @@ import { getFilter, convertPropertiesString } from '../../utils.js';
const router = express.Router(); const router = express.Router();
const listAllowedFilters = ['client', 'state', 'value', 'client._id']; const listAllowedFilters = [
'client',
'state',
'value',
'client._id',
'createdAt',
'updatedAt',
'_reference'
];
const propertiesAllowedFilters = ['client', 'state.type', 'value', 'client._id']; const propertiesAllowedFilters = ['client', 'state.type', 'value', 'client._id'];
import { import {
listSalesOrdersRouteHandler, listSalesOrdersRouteHandler,