Compare commits
No commits in common. "e8c9a307ab4b917fe180ed62529276a344a292f7" and "1c51766da63bd29b46a63f9f124bdb4010a2a669" have entirely different histories.
e8c9a307ab
...
1c51766da6
@ -1,32 +1,4 @@
|
|||||||
import { jest } from '@jest/globals';
|
import { applyPermissionSettingsList } from '../permissions.js';
|
||||||
|
|
||||||
const redisMock = {
|
|
||||||
getKey: jest.fn(),
|
|
||||||
setKey: jest.fn(),
|
|
||||||
};
|
|
||||||
|
|
||||||
const lean = jest.fn();
|
|
||||||
const select = jest.fn(() => ({ lean }));
|
|
||||||
const findById = jest.fn(() => ({ select }));
|
|
||||||
const userModel = { findById };
|
|
||||||
|
|
||||||
jest.unstable_mockModule('../redis.js', () => ({
|
|
||||||
redisServer: redisMock,
|
|
||||||
}));
|
|
||||||
|
|
||||||
jest.unstable_mockModule('mongoose', () => ({
|
|
||||||
default: {
|
|
||||||
model: jest.fn(() => userModel),
|
|
||||||
},
|
|
||||||
}));
|
|
||||||
|
|
||||||
const {
|
|
||||||
applyPermissionSettingsList,
|
|
||||||
checkPermissions,
|
|
||||||
hasPermission,
|
|
||||||
getUserPermissionsCacheKey,
|
|
||||||
saveUserPermissionsToRedis,
|
|
||||||
} = await import('../permissions.js');
|
|
||||||
|
|
||||||
describe('applyPermissionSettingsList', () => {
|
describe('applyPermissionSettingsList', () => {
|
||||||
it('applies permission settings in order and inherits intermediate values', () => {
|
it('applies permission settings in order and inherits intermediate values', () => {
|
||||||
@ -82,95 +54,3 @@ describe('applyPermissionSettingsList', () => {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
describe('saveUserPermissionsToRedis', () => {
|
|
||||||
beforeEach(() => {
|
|
||||||
jest.clearAllMocks();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('saves permissions under permissions:userID', async () => {
|
|
||||||
const permissions = { user: { info: true } };
|
|
||||||
|
|
||||||
await saveUserPermissionsToRedis('user-1', permissions);
|
|
||||||
|
|
||||||
expect(redisMock.setKey).toHaveBeenCalledWith('permissions:user-1', permissions);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('hasPermission', () => {
|
|
||||||
beforeEach(() => {
|
|
||||||
jest.clearAllMocks();
|
|
||||||
redisMock.getKey.mockResolvedValue(null);
|
|
||||||
redisMock.setKey.mockResolvedValue(undefined);
|
|
||||||
lean.mockResolvedValue(null);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('returns true when the cached permission is allowed', async () => {
|
|
||||||
redisMock.getKey.mockResolvedValue({ printer: { edit: true } });
|
|
||||||
|
|
||||||
await expect(hasPermission({ _id: 'user-1' }, 'printer', 'edit')).resolves.toBe(true);
|
|
||||||
expect(redisMock.getKey).toHaveBeenCalledWith(getUserPermissionsCacheKey('user-1'));
|
|
||||||
expect(findById).not.toHaveBeenCalled();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('returns false when the cached permission is denied or missing', async () => {
|
|
||||||
redisMock.getKey.mockResolvedValue({ printer: { edit: false } });
|
|
||||||
|
|
||||||
await expect(hasPermission('user-1', 'printer', 'edit')).resolves.toBe(false);
|
|
||||||
await expect(hasPermission('user-1', 'printer', 'delete')).resolves.toBe(false);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('loads permissions from mongodb when redis is empty and caches them', async () => {
|
|
||||||
lean.mockResolvedValue({
|
|
||||||
permissions: { job: { info: true, edit: false } },
|
|
||||||
});
|
|
||||||
|
|
||||||
await expect(hasPermission('user-2', 'job', 'info')).resolves.toBe(true);
|
|
||||||
expect(findById).toHaveBeenCalledWith('user-2');
|
|
||||||
expect(select).toHaveBeenCalledWith('permissions');
|
|
||||||
expect(redisMock.setKey).toHaveBeenCalledWith('permissions:user-2', {
|
|
||||||
job: { info: true, edit: false },
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
it('returns false when the user or action cannot be resolved', async () => {
|
|
||||||
await expect(hasPermission(null, 'job', 'info')).resolves.toBe(false);
|
|
||||||
await expect(hasPermission('user-1', '', 'info')).resolves.toBe(false);
|
|
||||||
expect(redisMock.getKey).not.toHaveBeenCalled();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
describe('checkPermissions middleware', () => {
|
|
||||||
const json = jest.fn();
|
|
||||||
const status = jest.fn(() => ({ json }));
|
|
||||||
const next = jest.fn();
|
|
||||||
const res = { status };
|
|
||||||
|
|
||||||
beforeEach(() => {
|
|
||||||
jest.clearAllMocks();
|
|
||||||
redisMock.getKey.mockResolvedValue(null);
|
|
||||||
redisMock.setKey.mockResolvedValue(undefined);
|
|
||||||
lean.mockResolvedValue(null);
|
|
||||||
});
|
|
||||||
|
|
||||||
it('calls next when the user is allowed', async () => {
|
|
||||||
redisMock.getKey.mockResolvedValue({ part: { edit: true } });
|
|
||||||
const req = { user: { _id: 'user-1' } };
|
|
||||||
|
|
||||||
await checkPermissions('part', 'edit')(req, res, next);
|
|
||||||
|
|
||||||
expect(next).toHaveBeenCalledWith();
|
|
||||||
expect(status).not.toHaveBeenCalled();
|
|
||||||
});
|
|
||||||
|
|
||||||
it('returns 403 when the user is not allowed', async () => {
|
|
||||||
redisMock.getKey.mockResolvedValue({ part: { edit: false } });
|
|
||||||
const req = { user: { _id: 'user-1' } };
|
|
||||||
|
|
||||||
await checkPermissions('part', 'edit')(req, res, next);
|
|
||||||
|
|
||||||
expect(status).toHaveBeenCalledWith(403);
|
|
||||||
expect(json).toHaveBeenCalledWith({ error: 'Forbidden', code: 'FORBIDDEN' });
|
|
||||||
expect(next).not.toHaveBeenCalled();
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|||||||
@ -1,65 +1,4 @@
|
|||||||
import mongoose from 'mongoose';
|
import mongoose from 'mongoose';
|
||||||
import { redisServer } from './redis.js';
|
|
||||||
|
|
||||||
import config from '../config.js';
|
|
||||||
import log4js from 'log4js';
|
|
||||||
|
|
||||||
const logger = log4js.getLogger('Permissions');
|
|
||||||
logger.level = config.server.logLevel;
|
|
||||||
|
|
||||||
export const getUserPermissionsCacheKey = (userId) => `permissions:${userId}`;
|
|
||||||
|
|
||||||
export const saveUserPermissionsToRedis = async (userId, permissions = {}) => {
|
|
||||||
if (!userId) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
await redisServer.setKey(getUserPermissionsCacheKey(userId), permissions || {});
|
|
||||||
};
|
|
||||||
|
|
||||||
const getUserId = (user) => {
|
|
||||||
if (!user) return null;
|
|
||||||
if (typeof user === 'string') return user;
|
|
||||||
if (user._id) return user._id._id || user._id;
|
|
||||||
return user;
|
|
||||||
};
|
|
||||||
|
|
||||||
const loadPermissionsFromMongo = async (userId) => {
|
|
||||||
const userDoc = await mongoose.model('user').findById(userId).select('permissions').lean();
|
|
||||||
|
|
||||||
return userDoc?.permissions || {};
|
|
||||||
};
|
|
||||||
|
|
||||||
export const hasPermission = async (user, objectType, action) => {
|
|
||||||
const userId = getUserId(user);
|
|
||||||
if (!userId || !objectType || !action) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
logger.debug(`Checking permission: ${userId}, ${objectType}, ${action}`);
|
|
||||||
|
|
||||||
const cacheKey = getUserPermissionsCacheKey(userId);
|
|
||||||
let permissions = await redisServer.getKey(cacheKey);
|
|
||||||
|
|
||||||
if (permissions == null) {
|
|
||||||
permissions = await loadPermissionsFromMongo(userId);
|
|
||||||
await saveUserPermissionsToRedis(userId, permissions);
|
|
||||||
}
|
|
||||||
|
|
||||||
return permissions?.[objectType]?.[action] === true;
|
|
||||||
};
|
|
||||||
|
|
||||||
export const checkPermissions = (objectType, action) => async (req, res, next) => {
|
|
||||||
try {
|
|
||||||
const allowed = await hasPermission(req.user, objectType, action);
|
|
||||||
if (!allowed) {
|
|
||||||
return res.status(403).json({ error: 'Forbidden', code: 'FORBIDDEN' });
|
|
||||||
}
|
|
||||||
return next();
|
|
||||||
} catch (err) {
|
|
||||||
return next(err);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
export const applyPermissionSettingsList = (settingsList = []) => {
|
export const applyPermissionSettingsList = (settingsList = []) => {
|
||||||
const permissions = {};
|
const permissions = {};
|
||||||
|
|||||||
@ -4,7 +4,6 @@ import {
|
|||||||
applyPermissionSettingsList,
|
applyPermissionSettingsList,
|
||||||
resolvePermissionSettings,
|
resolvePermissionSettings,
|
||||||
resolveReferencedDocs,
|
resolveReferencedDocs,
|
||||||
saveUserPermissionsToRedis,
|
|
||||||
} from '../../permissions.js';
|
} from '../../permissions.js';
|
||||||
|
|
||||||
const { Schema } = mongoose;
|
const { Schema } = mongoose;
|
||||||
@ -48,7 +47,6 @@ userSchema.statics.recalculate = async function (user, actingUser) {
|
|||||||
if (user && typeof user === 'object' && !user._bsontype) {
|
if (user && typeof user === 'object' && !user._bsontype) {
|
||||||
user.permissions = permissions;
|
user.permissions = permissions;
|
||||||
}
|
}
|
||||||
await saveUserPermissionsToRedis(userId, permissions);
|
|
||||||
const { editObject } = await import('../../database.js');
|
const { editObject } = await import('../../database.js');
|
||||||
|
|
||||||
await editObject({
|
await editObject({
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions, hasPermission } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -20,15 +19,15 @@ const listAllowedFilters = [
|
|||||||
];
|
];
|
||||||
const listAllowedSorters = ['createdAt', 'state', 'updatedAt', 'invoiceDate', 'dueDate'];
|
const listAllowedSorters = ['createdAt', 'state', 'updatedAt', 'invoiceDate', 'dueDate'];
|
||||||
const propertiesAllowedFilters = [
|
const propertiesAllowedFilters = [
|
||||||
'vendor',
|
'vendor',
|
||||||
'client',
|
'client',
|
||||||
'orderType',
|
'orderType',
|
||||||
'order',
|
'order',
|
||||||
'state.type',
|
'state.type',
|
||||||
'value',
|
'value',
|
||||||
'vendor._id',
|
'vendor._id',
|
||||||
'client._id',
|
'client._id',
|
||||||
];
|
];
|
||||||
import {
|
import {
|
||||||
listInvoicesRouteHandler,
|
listInvoicesRouteHandler,
|
||||||
getInvoiceRouteHandler,
|
getInvoiceRouteHandler,
|
||||||
@ -44,27 +43,18 @@ import {
|
|||||||
postInvoiceRouteHandler,
|
postInvoiceRouteHandler,
|
||||||
searchInvoicesRouteHandler,
|
searchInvoicesRouteHandler,
|
||||||
getInvoicePropertyValuesRouteHandler,
|
getInvoicePropertyValuesRouteHandler,
|
||||||
getInvoiceNeighborsRouteHandler,
|
|
||||||
|
getInvoiceNeighborsRouteHandler
|
||||||
} from '../../services/finance/invoices.js';
|
} from '../../services/finance/invoices.js';
|
||||||
|
|
||||||
// list of invoices
|
// list of invoices
|
||||||
router.get('/', isAuthenticated, async (req, res) => {
|
router.get('/', isAuthenticated, async (req, res) => {
|
||||||
const { page, limit, property, search, sort, order } = req.query;
|
const { page, limit, property, search, sort, order } = req.query;
|
||||||
const filter = await getFilter(req.query, listAllowedFilters);
|
const filter = await getFilter(req.query, listAllowedFilters);
|
||||||
listInvoicesRouteHandler(
|
listInvoicesRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
req,
|
|
||||||
res,
|
|
||||||
page,
|
|
||||||
limit,
|
|
||||||
property,
|
|
||||||
filter,
|
|
||||||
search,
|
|
||||||
getSort(sort, listAllowedSorters),
|
|
||||||
order
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('invoice', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -74,16 +64,17 @@ router.get('/properties', checkPermissions('invoice', 'list'), isAuthenticated,
|
|||||||
listInvoicesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listInvoicesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('invoice', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getInvoicePropertyValuesRouteHandler(req, res, property);
|
getInvoicePropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
router.get('/search', checkPermissions('invoice', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchInvoicesRouteHandler(req, res, search);
|
searchInvoicesRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('invoice', 'new'), async (req, res) => {
|
|
||||||
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newInvoiceRouteHandler(req, res);
|
newInvoiceRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -100,28 +91,19 @@ router.get('/history', isAuthenticated, async (req, res) => {
|
|||||||
router.get('/neighbors', isAuthenticated, async (req, res) => {
|
router.get('/neighbors', isAuthenticated, async (req, res) => {
|
||||||
const { property, search, sort, order, id } = req.query;
|
const { property, search, sort, order, id } = req.query;
|
||||||
const filter = await getFilter(req.query, listAllowedFilters);
|
const filter = await getFilter(req.query, listAllowedFilters);
|
||||||
getInvoiceNeighborsRouteHandler(
|
getInvoiceNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
||||||
req,
|
|
||||||
res,
|
|
||||||
property,
|
|
||||||
filter,
|
|
||||||
search,
|
|
||||||
getSort(sort, listAllowedSorters),
|
|
||||||
order,
|
|
||||||
id
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/:id', isAuthenticated, checkPermissions('invoice', 'info'), async (req, res) => {
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||||
getInvoiceRouteHandler(req, res);
|
getInvoiceRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
// update multiple invoices
|
// update multiple invoices
|
||||||
router.put('/', isAuthenticated, checkPermissions('invoice', 'edit'), async (req, res) => {
|
router.put('/', isAuthenticated, async (req, res) => {
|
||||||
editMultipleInvoicesRouteHandler(req, res);
|
editMultipleInvoicesRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('invoice', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editInvoiceRouteHandler(req, res);
|
editInvoiceRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -129,26 +111,16 @@ router.delete('/:id', isAuthenticated, async (req, res) => {
|
|||||||
deleteInvoiceRouteHandler(req, res);
|
deleteInvoiceRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/:id/post', isAuthenticated, checkPermissions('invoice', 'post'), async (req, res) => {
|
router.post('/:id/post', isAuthenticated, async (req, res) => {
|
||||||
postInvoiceRouteHandler(req, res);
|
postInvoiceRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post(
|
router.post('/:id/acknowledge', isAuthenticated, async (req, res) => {
|
||||||
'/:id/acknowledge',
|
acknowledgeInvoiceRouteHandler(req, res);
|
||||||
isAuthenticated,
|
});
|
||||||
checkPermissions('invoice', 'acknowledge'),
|
|
||||||
async (req, res) => {
|
|
||||||
acknowledgeInvoiceRouteHandler(req, res);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
router.post(
|
router.post('/:id/cancel', isAuthenticated, async (req, res) => {
|
||||||
'/:id/cancel',
|
cancelInvoiceRouteHandler(req, res);
|
||||||
isAuthenticated,
|
});
|
||||||
checkPermissions('invoice', 'cancel'),
|
|
||||||
async (req, res) => {
|
|
||||||
cancelInvoiceRouteHandler(req, res);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
export default router;
|
export default router;
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -55,7 +54,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listPaymentsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listPaymentsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('payment', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -65,17 +64,17 @@ router.get('/properties', checkPermissions('payment', 'list'), isAuthenticated,
|
|||||||
listPaymentsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listPaymentsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('payment', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getPaymentPropertyValuesRouteHandler(req, res, property);
|
getPaymentPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
router.get('/search', checkPermissions('payment', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchPaymentsRouteHandler(req, res, search);
|
searchPaymentsRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('invoice', 'newPayment'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newPaymentRouteHandler(req, res);
|
newPaymentRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -95,16 +94,16 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
|||||||
getPaymentNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
getPaymentNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/:id', isAuthenticated, checkPermissions('payment', 'info'), async (req, res) => {
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||||
getPaymentRouteHandler(req, res);
|
getPaymentRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
// update multiple payments
|
// update multiple payments
|
||||||
router.put('/', isAuthenticated, checkPermissions('payment', 'edit'), async (req, res) => {
|
router.put('/', isAuthenticated, async (req, res) => {
|
||||||
editMultiplePaymentsRouteHandler(req, res);
|
editMultiplePaymentsRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('payment', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editPaymentRouteHandler(req, res);
|
editPaymentRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -112,19 +111,19 @@ router.delete('/:id', isAuthenticated, async (req, res) => {
|
|||||||
deletePaymentRouteHandler(req, res);
|
deletePaymentRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/:id/post', isAuthenticated, checkPermissions('payment', 'post'), async (req, res) => {
|
router.post('/:id/post', isAuthenticated, async (req, res) => {
|
||||||
postPaymentRouteHandler(req, res);
|
postPaymentRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/:id/authorise', isAuthenticated, checkPermissions('payment', 'authorise'), async (req, res) => {
|
router.post('/:id/authorise', isAuthenticated, async (req, res) => {
|
||||||
authorisePaymentRouteHandler(req, res);
|
authorisePaymentRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/:id/decline', isAuthenticated, checkPermissions('payment', 'decline'), async (req, res) => {
|
router.post('/:id/decline', isAuthenticated, async (req, res) => {
|
||||||
declinePaymentRouteHandler(req, res);
|
declinePaymentRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/:id/cancel', isAuthenticated, checkPermissions('payment', 'cancel'), async (req, res) => {
|
router.post('/:id/cancel', isAuthenticated, async (req, res) => {
|
||||||
cancelPaymentRouteHandler(req, res);
|
cancelPaymentRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -40,7 +39,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listTaxRecordsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listTaxRecordsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('taxRecord', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -50,17 +49,17 @@ router.get('/properties', checkPermissions('taxRecord', 'list'), isAuthenticated
|
|||||||
listTaxRecordsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listTaxRecordsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('taxRecord', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getTaxRecordPropertyValuesRouteHandler(req, res, property);
|
getTaxRecordPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
router.get('/search', checkPermissions('taxRecord', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchTaxRecordsRouteHandler(req, res, search);
|
searchTaxRecordsRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('taxRecord', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newTaxRecordRouteHandler(req, res);
|
newTaxRecordRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -80,11 +79,11 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
|||||||
getTaxRecordNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
getTaxRecordNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/:id', isAuthenticated, checkPermissions('taxRecord', 'info'), async (req, res) => {
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||||
getTaxRecordRouteHandler(req, res);
|
getTaxRecordRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('taxRecord', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editTaxRecordRouteHandler(req, res);
|
editTaxRecordRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -50,7 +49,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listFilamentStocksRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listFilamentStocksRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('filamentStock', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -60,17 +59,17 @@ router.get('/properties', checkPermissions('filamentStock', 'list'), isAuthentic
|
|||||||
listFilamentStocksByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listFilamentStocksByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('filamentStock', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getFilamentStockPropertyValuesRouteHandler(req, res, property);
|
getFilamentStockPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
router.get('/search', checkPermissions('filamentStock', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchFilamentStocksRouteHandler(req, res, search);
|
searchFilamentStocksRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('filamentStock', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newFilamentStockRouteHandler(req, res);
|
newFilamentStockRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -90,16 +89,16 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
|||||||
getFilamentStockNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
getFilamentStockNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/:id', isAuthenticated, checkPermissions('filamentStock', 'info'), async (req, res) => {
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||||
getFilamentStockRouteHandler(req, res);
|
getFilamentStockRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
// update multiple filament stocks
|
// update multiple filament stocks
|
||||||
router.put('/', isAuthenticated, checkPermissions('filamentStock', 'edit'), async (req, res) => {
|
router.put('/', isAuthenticated, async (req, res) => {
|
||||||
editMultipleFilamentStocksRouteHandler(req, res);
|
editMultipleFilamentStocksRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('filamentStock', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editFilamentStockRouteHandler(req, res);
|
editFilamentStockRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -51,20 +50,10 @@ import {
|
|||||||
router.get('/', isAuthenticated, async (req, res) => {
|
router.get('/', isAuthenticated, async (req, res) => {
|
||||||
const { page, limit, property, search, sort, order } = req.query;
|
const { page, limit, property, search, sort, order } = req.query;
|
||||||
const filter = await getFilter(req.query, listAllowedFilters);
|
const filter = await getFilter(req.query, listAllowedFilters);
|
||||||
listOrderItemsRouteHandler(
|
listOrderItemsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
req,
|
|
||||||
res,
|
|
||||||
page,
|
|
||||||
limit,
|
|
||||||
property,
|
|
||||||
filter,
|
|
||||||
search,
|
|
||||||
getSort(sort, listAllowedSorters),
|
|
||||||
order
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('orderItem', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -74,16 +63,16 @@ router.get('/properties', checkPermissions('orderItem', 'list'), isAuthenticated
|
|||||||
listOrderItemsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listOrderItemsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('orderItem', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getOrderItemPropertyValuesRouteHandler(req, res, property);
|
getOrderItemPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
router.get('/search', checkPermissions('orderItem', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchOrderItemsRouteHandler(req, res, search);
|
searchOrderItemsRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('orderItem', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newOrderItemRouteHandler(req, res);
|
newOrderItemRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -100,28 +89,19 @@ router.get('/history', isAuthenticated, async (req, res) => {
|
|||||||
router.get('/neighbors', isAuthenticated, async (req, res) => {
|
router.get('/neighbors', isAuthenticated, async (req, res) => {
|
||||||
const { property, search, sort, order, id } = req.query;
|
const { property, search, sort, order, id } = req.query;
|
||||||
const filter = await getFilter(req.query, listAllowedFilters);
|
const filter = await getFilter(req.query, listAllowedFilters);
|
||||||
getOrderItemNeighborsRouteHandler(
|
getOrderItemNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
||||||
req,
|
|
||||||
res,
|
|
||||||
property,
|
|
||||||
filter,
|
|
||||||
search,
|
|
||||||
getSort(sort, listAllowedSorters),
|
|
||||||
order,
|
|
||||||
id
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/:id', isAuthenticated, checkPermissions('orderItem', 'info'), async (req, res) => {
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||||
getOrderItemRouteHandler(req, res);
|
getOrderItemRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
// update multiple order items
|
// update multiple order items
|
||||||
router.put('/', isAuthenticated, checkPermissions('orderItem', 'edit'), async (req, res) => {
|
router.put('/', isAuthenticated, async (req, res) => {
|
||||||
editMultipleOrderItemsRouteHandler(req, res);
|
editMultipleOrderItemsRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('orderItem', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editOrderItemRouteHandler(req, res);
|
editOrderItemRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -42,7 +41,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listPartStocksRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listPartStocksRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('partStock', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -52,17 +51,17 @@ router.get('/properties', checkPermissions('partStock', 'list'), isAuthenticated
|
|||||||
listPartStocksByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listPartStocksByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('partStock', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getPartStockPropertyValuesRouteHandler(req, res, property);
|
getPartStockPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
router.get('/search', checkPermissions('partStock', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchPartStocksRouteHandler(req, res, search);
|
searchPartStocksRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('partStock', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newPartStockRouteHandler(req, res);
|
newPartStockRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -82,16 +81,16 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
|||||||
getPartStockNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
getPartStockNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/:id', isAuthenticated, checkPermissions('partStock', 'info'), async (req, res) => {
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||||
getPartStockRouteHandler(req, res);
|
getPartStockRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
// update multiple part stocks
|
// update multiple part stocks
|
||||||
router.put('/', isAuthenticated, checkPermissions('partStock', 'edit'), async (req, res) => {
|
router.put('/', isAuthenticated, async (req, res) => {
|
||||||
editMultiplePartStocksRouteHandler(req, res);
|
editMultiplePartStocksRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('partStock', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editPartStockRouteHandler(req, res);
|
editPartStockRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -41,7 +40,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listProductStocksRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listProductStocksRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('productStock', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -51,17 +50,17 @@ router.get('/properties', checkPermissions('productStock', 'list'), isAuthentica
|
|||||||
listProductStocksByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listProductStocksByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('productStock', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getProductStockPropertyValuesRouteHandler(req, res, property);
|
getProductStockPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
router.get('/search', checkPermissions('productStock', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchProductStocksRouteHandler(req, res, search);
|
searchProductStocksRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('productStock', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newProductStockRouteHandler(req, res);
|
newProductStockRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -79,15 +78,15 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
|||||||
getProductStockNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
getProductStockNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/:id', isAuthenticated, checkPermissions('productStock', 'info'), async (req, res) => {
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||||
getProductStockRouteHandler(req, res);
|
getProductStockRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/', isAuthenticated, checkPermissions('productStock', 'edit'), async (req, res) => {
|
router.put('/', isAuthenticated, async (req, res) => {
|
||||||
editMultipleProductStocksRouteHandler(req, res);
|
editMultipleProductStocksRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('productStock', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editProductStockRouteHandler(req, res);
|
editProductStockRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -95,7 +94,7 @@ router.delete('/:id', isAuthenticated, async (req, res) => {
|
|||||||
deleteProductStockRouteHandler(req, res);
|
deleteProductStockRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/:id/post', isAuthenticated, checkPermissions('productStock', 'post'), async (req, res) => {
|
router.post('/:id/post', isAuthenticated, async (req, res) => {
|
||||||
postProductStockRouteHandler(req, res);
|
postProductStockRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -68,7 +67,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listPurchaseOrdersRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listPurchaseOrdersRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('purchaseOrder', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -78,16 +77,16 @@ router.get('/properties', checkPermissions('purchaseOrder', 'list'), isAuthentic
|
|||||||
listPurchaseOrdersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listPurchaseOrdersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('purchaseOrder', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getPurchaseOrderPropertyValuesRouteHandler(req, res, property);
|
getPurchaseOrderPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
router.get('/search', checkPermissions('purchaseOrder', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchPurchaseOrdersRouteHandler(req, res, search);
|
searchPurchaseOrdersRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('purchaseOrder', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newPurchaseOrderRouteHandler(req, res);
|
newPurchaseOrderRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -107,16 +106,16 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
|||||||
getPurchaseOrderNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
getPurchaseOrderNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/:id', isAuthenticated, checkPermissions('purchaseOrder', 'info'), async (req, res) => {
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||||
getPurchaseOrderRouteHandler(req, res);
|
getPurchaseOrderRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
// update multiple purchase orders
|
// update multiple purchase orders
|
||||||
router.put('/', isAuthenticated, checkPermissions('purchaseOrder', 'edit'), async (req, res) => {
|
router.put('/', isAuthenticated, async (req, res) => {
|
||||||
editMultiplePurchaseOrdersRouteHandler(req, res);
|
editMultiplePurchaseOrdersRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('purchaseOrder', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editPurchaseOrderRouteHandler(req, res);
|
editPurchaseOrderRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -124,15 +123,15 @@ router.delete('/:id', isAuthenticated, async (req, res) => {
|
|||||||
deletePurchaseOrderRouteHandler(req, res);
|
deletePurchaseOrderRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/:id/post', isAuthenticated, checkPermissions('purchaseOrder', 'post'), async (req, res) => {
|
router.post('/:id/post', isAuthenticated, async (req, res) => {
|
||||||
postPurchaseOrderRouteHandler(req, res);
|
postPurchaseOrderRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/:id/acknowledge', isAuthenticated, checkPermissions('purchaseOrder', 'acknowledge'), async (req, res) => {
|
router.post('/:id/acknowledge', isAuthenticated, async (req, res) => {
|
||||||
acknowledgePurchaseOrderRouteHandler(req, res);
|
acknowledgePurchaseOrderRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/:id/cancel', isAuthenticated, checkPermissions('purchaseOrder', 'cancel'), async (req, res) => {
|
router.post('/:id/cancel', isAuthenticated, async (req, res) => {
|
||||||
cancelPurchaseOrderRouteHandler(req, res);
|
cancelPurchaseOrderRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -18,14 +17,7 @@ const listAllowedFilters = [
|
|||||||
'updatedAt',
|
'updatedAt',
|
||||||
'_reference',
|
'_reference',
|
||||||
];
|
];
|
||||||
const listAllowedSorters = [
|
const listAllowedSorters = ['createdAt', 'state', 'updatedAt', 'shippedAt', 'expectedAt', 'deliveredAt'];
|
||||||
'createdAt',
|
|
||||||
'state',
|
|
||||||
'updatedAt',
|
|
||||||
'shippedAt',
|
|
||||||
'expectedAt',
|
|
||||||
'deliveredAt',
|
|
||||||
];
|
|
||||||
const propertiesAllowedFilters = [
|
const propertiesAllowedFilters = [
|
||||||
'orderType',
|
'orderType',
|
||||||
'order',
|
'order',
|
||||||
@ -56,43 +48,29 @@ import {
|
|||||||
router.get('/', isAuthenticated, async (req, res) => {
|
router.get('/', isAuthenticated, async (req, res) => {
|
||||||
const { page, limit, property, search, sort, order } = req.query;
|
const { page, limit, property, search, sort, order } = req.query;
|
||||||
const filter = await getFilter(req.query, listAllowedFilters);
|
const filter = await getFilter(req.query, listAllowedFilters);
|
||||||
listShipmentsRouteHandler(
|
listShipmentsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
req,
|
|
||||||
res,
|
|
||||||
page,
|
|
||||||
limit,
|
|
||||||
property,
|
|
||||||
filter,
|
|
||||||
search,
|
|
||||||
getSort(sort, listAllowedSorters),
|
|
||||||
order
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('shipment', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
if (req.query.masterFilter) {
|
if (req.query.masterFilter) {
|
||||||
masterFilter = await getFilter(
|
masterFilter = await getFilter(JSON.parse(req.query.masterFilter), propertiesAllowedFilters, true);
|
||||||
JSON.parse(req.query.masterFilter),
|
|
||||||
propertiesAllowedFilters,
|
|
||||||
true
|
|
||||||
);
|
|
||||||
}
|
}
|
||||||
listShipmentsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listShipmentsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('shipment', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getShipmentPropertyValuesRouteHandler(req, res, property);
|
getShipmentPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
router.get('/search', checkPermissions('shipment', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchShipmentsRouteHandler(req, res, search);
|
searchShipmentsRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('shipment', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newShipmentRouteHandler(req, res);
|
newShipmentRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -109,28 +87,19 @@ router.get('/history', isAuthenticated, async (req, res) => {
|
|||||||
router.get('/neighbors', isAuthenticated, async (req, res) => {
|
router.get('/neighbors', isAuthenticated, async (req, res) => {
|
||||||
const { property, search, sort, order, id } = req.query;
|
const { property, search, sort, order, id } = req.query;
|
||||||
const filter = await getFilter(req.query, listAllowedFilters);
|
const filter = await getFilter(req.query, listAllowedFilters);
|
||||||
getShipmentNeighborsRouteHandler(
|
getShipmentNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
||||||
req,
|
|
||||||
res,
|
|
||||||
property,
|
|
||||||
filter,
|
|
||||||
search,
|
|
||||||
getSort(sort, listAllowedSorters),
|
|
||||||
order,
|
|
||||||
id
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/:id', isAuthenticated, checkPermissions('shipment', 'info'), async (req, res) => {
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||||
getShipmentRouteHandler(req, res);
|
getShipmentRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
// update multiple shipments
|
// update multiple shipments
|
||||||
router.put('/', isAuthenticated, checkPermissions('shipment', 'edit'), async (req, res) => {
|
router.put('/', isAuthenticated, async (req, res) => {
|
||||||
editMultipleShipmentsRouteHandler(req, res);
|
editMultipleShipmentsRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('shipment', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editShipmentRouteHandler(req, res);
|
editShipmentRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -138,31 +107,16 @@ router.delete('/:id', isAuthenticated, async (req, res) => {
|
|||||||
deleteShipmentRouteHandler(req, res);
|
deleteShipmentRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post(
|
router.post('/:id/ship', isAuthenticated, async (req, res) => {
|
||||||
'/:id/ship',
|
shipShipmentRouteHandler(req, res);
|
||||||
isAuthenticated,
|
});
|
||||||
checkPermissions('shipment', 'ship'),
|
|
||||||
async (req, res) => {
|
|
||||||
shipShipmentRouteHandler(req, res);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
router.post(
|
router.post('/:id/receive', isAuthenticated, async (req, res) => {
|
||||||
'/:id/receive',
|
receiveShipmentRouteHandler(req, res);
|
||||||
isAuthenticated,
|
});
|
||||||
checkPermissions('shipment', 'receive'),
|
|
||||||
async (req, res) => {
|
|
||||||
receiveShipmentRouteHandler(req, res);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
router.post(
|
router.post('/:id/cancel', isAuthenticated, async (req, res) => {
|
||||||
'/:id/cancel',
|
cancelShipmentRouteHandler(req, res);
|
||||||
isAuthenticated,
|
});
|
||||||
checkPermissions('shipment', 'cancel'),
|
|
||||||
async (req, res) => {
|
|
||||||
cancelShipmentRouteHandler(req, res);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
export default router;
|
export default router;
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { parseFilter, getFilter, getSort } from '../../utils.js';
|
import { parseFilter, getFilter, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -46,12 +45,12 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Create new stock audit
|
// Create new stock audit
|
||||||
router.post('/', isAuthenticated, checkPermissions('stockAudit', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newStockAuditRouteHandler(req, res);
|
newStockAuditRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
// get stock audit stats
|
// get stock audit stats
|
||||||
router.get('/search', checkPermissions('stockAudit', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchStockAuditsRouteHandler(req, res, search);
|
searchStockAuditsRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
@ -72,12 +71,12 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// Get specific stock audit
|
// Get specific stock audit
|
||||||
router.get('/:id', isAuthenticated, checkPermissions('stockAudit', 'info'), async (req, res) => {
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||||
getStockAuditRouteHandler(req, res);
|
getStockAuditRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
// Update stock audit
|
// Update stock audit
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('stockAudit', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
updateStockAuditRouteHandler(req, res);
|
updateStockAuditRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -31,7 +30,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listStockEventsRouteHandler(req, res, page, limit, filter, getSort(sort, listAllowedSorters), order);
|
listStockEventsRouteHandler(req, res, page, limit, filter, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('stockEvent', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -41,17 +40,17 @@ router.get('/properties', checkPermissions('stockEvent', 'list'), isAuthenticate
|
|||||||
listStockEventsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listStockEventsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('stockEvent', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getStockEventPropertyValuesRouteHandler(req, res, property);
|
getStockEventPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
router.get('/search', checkPermissions('stockEvent', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchStockEventsRouteHandler(req, res, search);
|
searchStockEventsRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('stockEvent', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newStockEventRouteHandler(req, res);
|
newStockEventRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -71,16 +70,16 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
|||||||
getStockEventNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
getStockEventNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/:id', isAuthenticated, checkPermissions('stockEvent', 'info'), async (req, res) => {
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||||
getStockEventRouteHandler(req, res);
|
getStockEventRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
// update multiple stock events
|
// update multiple stock events
|
||||||
router.put('/', isAuthenticated, checkPermissions('stockEvent', 'edit'), async (req, res) => {
|
router.put('/', isAuthenticated, async (req, res) => {
|
||||||
editMultipleStockEventsRouteHandler(req, res);
|
editMultipleStockEventsRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('stockEvent', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editStockEventRouteHandler(req, res);
|
editStockEventRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -30,7 +29,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listStockLocationsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listStockLocationsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('stockLocation', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -40,17 +39,17 @@ router.get('/properties', checkPermissions('stockLocation', 'list'), isAuthentic
|
|||||||
listStockLocationsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listStockLocationsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('stockLocation', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getStockLocationPropertyValuesRouteHandler(req, res, property);
|
getStockLocationPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
router.get('/search', checkPermissions('stockLocation', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchStockLocationsRouteHandler(req, res, search);
|
searchStockLocationsRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('stockLocation', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newStockLocationRouteHandler(req, res);
|
newStockLocationRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -68,15 +67,15 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
|||||||
getStockLocationNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
getStockLocationNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/:id', isAuthenticated, checkPermissions('stockLocation', 'info'), async (req, res) => {
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||||
getStockLocationRouteHandler(req, res);
|
getStockLocationRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/', isAuthenticated, checkPermissions('stockLocation', 'edit'), async (req, res) => {
|
router.put('/', isAuthenticated, async (req, res) => {
|
||||||
editMultipleStockLocationsRouteHandler(req, res);
|
editMultipleStockLocationsRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('stockLocation', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editStockLocationRouteHandler(req, res);
|
editStockLocationRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -39,7 +38,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listStockTransfersRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listStockTransfersRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('stockTransfer', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -49,17 +48,17 @@ router.get('/properties', checkPermissions('stockTransfer', 'list'), isAuthentic
|
|||||||
listStockTransfersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listStockTransfersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('stockTransfer', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getStockTransferPropertyValuesRouteHandler(req, res, property);
|
getStockTransferPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
router.get('/search', checkPermissions('stockTransfer', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchStockTransfersRouteHandler(req, res, search);
|
searchStockTransfersRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('stockTransfer', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newStockTransferRouteHandler(req, res);
|
newStockTransferRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -77,15 +76,15 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
|||||||
getStockTransferNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
getStockTransferNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/:id', isAuthenticated, checkPermissions('stockTransfer', 'info'), async (req, res) => {
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||||
getStockTransferRouteHandler(req, res);
|
getStockTransferRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/', isAuthenticated, checkPermissions('stockTransfer', 'edit'), async (req, res) => {
|
router.put('/', isAuthenticated, async (req, res) => {
|
||||||
editMultipleStockTransfersRouteHandler(req, res);
|
editMultipleStockTransfersRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('stockTransfer', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editStockTransferRouteHandler(req, res);
|
editStockTransferRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -93,7 +92,7 @@ router.delete('/:id', isAuthenticated, async (req, res) => {
|
|||||||
deleteStockTransferRouteHandler(req, res);
|
deleteStockTransferRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/:id/post', isAuthenticated, checkPermissions('stockTransfer', 'post'), async (req, res) => {
|
router.post('/:id/post', isAuthenticated, async (req, res) => {
|
||||||
postStockTransferRouteHandler(req, res);
|
postStockTransferRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -39,24 +38,24 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listAppPasswordsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listAppPasswordsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('appPassword', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
const properties = convertPropertiesString(req.query.properties);
|
const properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
const masterFilter = req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {};
|
const masterFilter = req.query.masterFilter ? JSON.parse(req.query.masterFilter) : {};
|
||||||
listAppPasswordsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listAppPasswordsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('appPassword', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getAppPasswordPropertyValuesRouteHandler(req, res, property);
|
getAppPasswordPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/search', checkPermissions('appPassword', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchAppPasswordsRouteHandler(req, res, search);
|
searchAppPasswordsRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('user', 'newAppPassword'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newAppPasswordRouteHandler(req, res);
|
newAppPasswordRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -68,7 +67,7 @@ router.get('/history', isAuthenticated, async (req, res) => {
|
|||||||
getAppPasswordHistoryRouteHandler(req, res);
|
getAppPasswordHistoryRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/:id/regenerateSecret', isAuthenticated, checkPermissions('appPassword', 'regenerateSecret'), async (req, res) => {
|
router.post('/:id/regenerateSecret', isAuthenticated, async (req, res) => {
|
||||||
regenerateSecretRouteHandler(req, res);
|
regenerateSecretRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -82,7 +81,7 @@ router.get('/:id', isAuthenticated, async (req, res) => {
|
|||||||
getAppPasswordRouteHandler(req, res);
|
getAppPasswordRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('appPassword', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editAppPasswordRouteHandler(req, res);
|
editAppPasswordRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import {
|
import {
|
||||||
listAuditLogsRouteHandler,
|
listAuditLogsRouteHandler,
|
||||||
getAuditLogRouteHandler,
|
getAuditLogRouteHandler,
|
||||||
@ -36,7 +35,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/search', checkPermissions('auditLog', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchAuditLogsRouteHandler(req, res, search);
|
searchAuditLogsRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -40,7 +39,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listCouriersRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listCouriersRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('courier', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -50,17 +49,17 @@ router.get('/properties', checkPermissions('courier', 'list'), isAuthenticated,
|
|||||||
listCouriersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listCouriersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('courier', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getCourierPropertyValuesRouteHandler(req, res, property);
|
getCourierPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/search', checkPermissions('courier', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchCouriersRouteHandler(req, res, search);
|
searchCouriersRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('courier', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newCourierRouteHandler(req, res);
|
newCourierRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -84,7 +83,7 @@ router.get('/:id', isAuthenticated, async (req, res) => {
|
|||||||
getCourierRouteHandler(req, res);
|
getCourierRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('courier', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editCourierRouteHandler(req, res);
|
editCourierRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -64,7 +63,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listCourierServicesRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listCourierServicesRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('courierService', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -74,17 +73,17 @@ router.get('/properties', checkPermissions('courierService', 'list'), isAuthenti
|
|||||||
listCourierServicesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listCourierServicesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('courierService', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getCourierServicePropertyValuesRouteHandler(req, res, property);
|
getCourierServicePropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/search', checkPermissions('courierService', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchCourierServicesRouteHandler(req, res, search);
|
searchCourierServicesRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('courierService', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newCourierServiceRouteHandler(req, res);
|
newCourierServiceRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -108,7 +107,7 @@ router.get('/:id', isAuthenticated, async (req, res) => {
|
|||||||
getCourierServiceRouteHandler(req, res);
|
getCourierServiceRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('courierService', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editCourierServiceRouteHandler(req, res);
|
editCourierServiceRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -38,7 +37,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listDocumentJobsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listDocumentJobsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('documentJob', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -48,17 +47,17 @@ router.get('/properties', checkPermissions('documentJob', 'list'), isAuthenticat
|
|||||||
listDocumentJobsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listDocumentJobsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('documentJob', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getDocumentJobPropertyValuesRouteHandler(req, res, property);
|
getDocumentJobPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/search', checkPermissions('documentJob', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchDocumentJobsRouteHandler(req, res, search);
|
searchDocumentJobsRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('documentJob', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newDocumentJobRouteHandler(req, res);
|
newDocumentJobRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -82,7 +81,7 @@ router.get('/:id', isAuthenticated, async (req, res) => {
|
|||||||
getDocumentJobRouteHandler(req, res);
|
getDocumentJobRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('documentJob', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editDocumentJobRouteHandler(req, res);
|
editDocumentJobRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -39,7 +38,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listDocumentPrintersRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listDocumentPrintersRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('documentPrinter', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -49,17 +48,17 @@ router.get('/properties', checkPermissions('documentPrinter', 'list'), isAuthent
|
|||||||
listDocumentPrintersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listDocumentPrintersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('documentPrinter', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getDocumentPrinterPropertyValuesRouteHandler(req, res, property);
|
getDocumentPrinterPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/search', checkPermissions('documentPrinter', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchDocumentPrintersRouteHandler(req, res, search);
|
searchDocumentPrintersRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('documentPrinter', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newDocumentPrinterRouteHandler(req, res);
|
newDocumentPrinterRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -83,7 +82,7 @@ router.get('/:id', isAuthenticated, async (req, res) => {
|
|||||||
getDocumentPrinterRouteHandler(req, res);
|
getDocumentPrinterRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('documentPrinter', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editDocumentPrinterRouteHandler(req, res);
|
editDocumentPrinterRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -30,7 +29,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listDocumentSizesRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listDocumentSizesRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('documentSize', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -40,17 +39,17 @@ router.get('/properties', checkPermissions('documentSize', 'list'), isAuthentica
|
|||||||
listDocumentSizesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listDocumentSizesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('documentSize', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getDocumentSizePropertyValuesRouteHandler(req, res, property);
|
getDocumentSizePropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/search', checkPermissions('documentSize', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchDocumentSizesRouteHandler(req, res, search);
|
searchDocumentSizesRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('documentSize', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newDocumentSizeRouteHandler(req, res);
|
newDocumentSizeRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -74,7 +73,7 @@ router.get('/:id', isAuthenticated, async (req, res) => {
|
|||||||
getDocumentSizeRouteHandler(req, res);
|
getDocumentSizeRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('documentSize', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editDocumentSizeRouteHandler(req, res);
|
editDocumentSizeRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -54,7 +53,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listDocumentTemplatesRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listDocumentTemplatesRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('documentTemplate', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -64,21 +63,21 @@ router.get('/properties', checkPermissions('documentTemplate', 'list'), isAuthen
|
|||||||
listDocumentTemplatesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listDocumentTemplatesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('documentTemplate', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getDocumentTemplatePropertyValuesRouteHandler(req, res, property);
|
getDocumentTemplatePropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/search', checkPermissions('documentTemplate', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchDocumentTemplatesRouteHandler(req, res, search);
|
searchDocumentTemplatesRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('documentTemplate', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newDocumentTemplateRouteHandler(req, res);
|
newDocumentTemplateRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/format', isAuthenticated, checkPermissions('documentTemplate', 'design'), async (req, res) => {
|
router.post('/format', isAuthenticated, async (req, res) => {
|
||||||
formatDocumentTemplateRouteHandler(req, res);
|
formatDocumentTemplateRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -98,11 +97,11 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
|||||||
getDocumentTemplateNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
getDocumentTemplateNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/:id/preview', isAuthenticated, checkPermissions('documentTemplate', 'design'), async (req, res) => {
|
router.post('/:id/preview', isAuthenticated, async (req, res) => {
|
||||||
previewDocumentTemplateRouteHandler(req, res);
|
previewDocumentTemplateRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/:id/download', isAuthenticated, checkPermissions('documentTemplate', 'design'), async (req, res) => {
|
router.post('/:id/download', isAuthenticated, async (req, res) => {
|
||||||
downloadDocumentTemplateRouteHandler(req, res);
|
downloadDocumentTemplateRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -110,7 +109,7 @@ router.get('/:id', isAuthenticated, async (req, res) => {
|
|||||||
getDocumentTemplateRouteHandler(req, res);
|
getDocumentTemplateRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('documentTemplate', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editDocumentTemplateRouteHandler(req, res);
|
editDocumentTemplateRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { convertPropertiesString, getFilter, parseFilter, getSort } from '../../utils.js';
|
import { convertPropertiesString, getFilter, parseFilter, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -60,7 +59,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listFilamentsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listFilamentsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('filament', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -70,17 +69,17 @@ router.get('/properties', checkPermissions('filament', 'list'), isAuthenticated,
|
|||||||
listFilamentsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listFilamentsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('filament', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getFilamentPropertyValuesRouteHandler(req, res, property);
|
getFilamentPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/search', checkPermissions('filament', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchFilamentsRouteHandler(req, res, search);
|
searchFilamentsRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('filament', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newFilamentRouteHandler(req, res);
|
newFilamentRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -105,12 +104,12 @@ router.get('/:id', isAuthenticated, async (req, res) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// update filaments info
|
// update filaments info
|
||||||
router.put('/', isAuthenticated, checkPermissions('filament', 'edit'), async (req, res) => {
|
router.put('/', isAuthenticated, async (req, res) => {
|
||||||
editMultipleFilamentsRouteHandler(req, res);
|
editMultipleFilamentsRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
// update filament info
|
// update filament info
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('filament', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editFilamentRouteHandler(req, res);
|
editFilamentRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -49,7 +48,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listFilamentSkusRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listFilamentSkusRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('filamentSku', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
let masterFilter = {};
|
let masterFilter = {};
|
||||||
@ -59,16 +58,16 @@ router.get('/properties', checkPermissions('filamentSku', 'list'), isAuthenticat
|
|||||||
listFilamentSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listFilamentSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('filamentSku', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getFilamentSkuPropertyValuesRouteHandler(req, res, property);
|
getFilamentSkuPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
router.get('/search', checkPermissions('filamentSku', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchFilamentSkusRouteHandler(req, res, search);
|
searchFilamentSkusRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('filament', 'newFilamentSku'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newFilamentSkuRouteHandler(req, res);
|
newFilamentSkuRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -90,7 +89,7 @@ router.get('/:id', isAuthenticated, async (req, res) => {
|
|||||||
getFilamentSkuRouteHandler(req, res);
|
getFilamentSkuRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('filamentSku', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editFilamentSkuRouteHandler(req, res);
|
editFilamentSkuRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -42,7 +41,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listFilesRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listFilesRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('file', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -52,17 +51,17 @@ router.get('/properties', checkPermissions('file', 'list'), isAuthenticated, asy
|
|||||||
listFilesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listFilesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('file', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getFilePropertyValuesRouteHandler(req, res, property);
|
getFilePropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/search', checkPermissions('file', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchFilesRouteHandler(req, res, search);
|
searchFilesRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('file', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newFileRouteHandler(req, res);
|
newFileRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -98,7 +97,7 @@ router.get('/:id/thumbnail', isAuthenticated, async (req, res) => {
|
|||||||
getFileThumbnailRouteHandler(req, res);
|
getFileThumbnailRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('file', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editFileRouteHandler(req, res);
|
editFileRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -38,7 +37,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listHostsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listHostsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('host', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -48,17 +47,17 @@ router.get('/properties', checkPermissions('host', 'list'), isAuthenticated, asy
|
|||||||
listHostsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listHostsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('host', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getHostPropertyValuesRouteHandler(req, res, property);
|
getHostPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/search', checkPermissions('host', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchHostsRouteHandler(req, res, search);
|
searchHostsRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('host', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newHostRouteHandler(req, res);
|
newHostRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -82,7 +81,7 @@ router.get('/:id', isAuthenticated, async (req, res) => {
|
|||||||
getHostRouteHandler(req, res);
|
getHostRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('host', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editHostRouteHandler(req, res);
|
editHostRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { convertPropertiesString, getFilter, parseFilter, getSort } from '../../utils.js';
|
import { convertPropertiesString, getFilter, parseFilter, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -38,7 +37,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listMaterialsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listMaterialsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('material', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -48,17 +47,17 @@ router.get('/properties', checkPermissions('material', 'list'), isAuthenticated,
|
|||||||
listMaterialsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listMaterialsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('material', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getMaterialPropertyValuesRouteHandler(req, res, property);
|
getMaterialPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/search', checkPermissions('material', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchMaterialsRouteHandler(req, res, search);
|
searchMaterialsRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('material', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newMaterialRouteHandler(req, res);
|
newMaterialRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -83,7 +82,7 @@ router.get('/:id', isAuthenticated, async (req, res) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// update material info
|
// update material info
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('material', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editMaterialRouteHandler(req, res);
|
editMaterialRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -38,7 +37,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listNoteTypesRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listNoteTypesRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('noteType', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -48,17 +47,17 @@ router.get('/properties', checkPermissions('noteType', 'list'), isAuthenticated,
|
|||||||
listNoteTypesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listNoteTypesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('noteType', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getNoteTypePropertyValuesRouteHandler(req, res, property);
|
getNoteTypePropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
router.get('/search', checkPermissions('noteType', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchNoteTypesRouteHandler(req, res, search);
|
searchNoteTypesRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('noteType', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newNoteTypeRouteHandler(req, res);
|
newNoteTypeRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -82,7 +81,7 @@ router.get('/:id', isAuthenticated, async (req, res) => {
|
|||||||
getNoteTypeRouteHandler(req, res);
|
getNoteTypeRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('noteType', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editNoteTypeRouteHandler(req, res);
|
editNoteTypeRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -29,27 +28,18 @@ import {
|
|||||||
getPartHistoryRouteHandler,
|
getPartHistoryRouteHandler,
|
||||||
searchPartsRouteHandler,
|
searchPartsRouteHandler,
|
||||||
getPartPropertyValuesRouteHandler,
|
getPartPropertyValuesRouteHandler,
|
||||||
getPartNeighborsRouteHandler,
|
|
||||||
|
getPartNeighborsRouteHandler
|
||||||
} from '../../services/management/parts.js';
|
} from '../../services/management/parts.js';
|
||||||
|
|
||||||
// list of parts
|
// list of parts
|
||||||
router.get('/', isAuthenticated, async (req, res) => {
|
router.get('/', isAuthenticated, async (req, res) => {
|
||||||
const { page, limit, property, search, sort, order } = req.query;
|
const { page, limit, property, search, sort, order } = req.query;
|
||||||
const filter = await getFilter(req.query, listAllowedFilters);
|
const filter = await getFilter(req.query, listAllowedFilters);
|
||||||
listPartsRouteHandler(
|
listPartsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
req,
|
|
||||||
res,
|
|
||||||
page,
|
|
||||||
limit,
|
|
||||||
property,
|
|
||||||
filter,
|
|
||||||
search,
|
|
||||||
getSort(sort, listAllowedSorters),
|
|
||||||
order
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('part', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -59,17 +49,17 @@ router.get('/properties', checkPermissions('part', 'list'), isAuthenticated, asy
|
|||||||
listPartsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listPartsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('part', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getPartPropertyValuesRouteHandler(req, res, property);
|
getPartPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/search', checkPermissions('part', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchPartsRouteHandler(req, res, search);
|
searchPartsRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('part', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newPartRouteHandler(req, res);
|
newPartRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -86,23 +76,14 @@ router.get('/history', isAuthenticated, async (req, res) => {
|
|||||||
router.get('/neighbors', isAuthenticated, async (req, res) => {
|
router.get('/neighbors', isAuthenticated, async (req, res) => {
|
||||||
const { property, search, sort, order, id } = req.query;
|
const { property, search, sort, order, id } = req.query;
|
||||||
const filter = await getFilter(req.query, listAllowedFilters);
|
const filter = await getFilter(req.query, listAllowedFilters);
|
||||||
getPartNeighborsRouteHandler(
|
getPartNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
||||||
req,
|
|
||||||
res,
|
|
||||||
property,
|
|
||||||
filter,
|
|
||||||
search,
|
|
||||||
getSort(sort, listAllowedSorters),
|
|
||||||
order,
|
|
||||||
id
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/:id', isAuthenticated, async (req, res) => {
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||||
getPartRouteHandler(req, res);
|
getPartRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('part', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editPartRouteHandler(req, res);
|
editPartRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -50,7 +49,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listPartSkusRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listPartSkusRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('partSku', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
let masterFilter = {};
|
let masterFilter = {};
|
||||||
@ -60,17 +59,17 @@ router.get('/properties', checkPermissions('partSku', 'list'), isAuthenticated,
|
|||||||
listPartSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listPartSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('partSku', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getPartSkuPropertyValuesRouteHandler(req, res, property);
|
getPartSkuPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
router.get('/search', checkPermissions('partSku', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchPartSkusRouteHandler(req, res, search);
|
searchPartSkusRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('part', 'newPartSku'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newPartSkuRouteHandler(req, res);
|
newPartSkuRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -92,7 +91,7 @@ router.get('/:id', isAuthenticated, async (req, res) => {
|
|||||||
getPartSkuRouteHandler(req, res);
|
getPartSkuRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('partSku', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editPartSkuRouteHandler(req, res);
|
editPartSkuRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -38,7 +37,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('permissionSetting', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -48,17 +47,17 @@ router.get('/properties', checkPermissions('permissionSetting', 'list'), isAuthe
|
|||||||
listPermissionSettingsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listPermissionSettingsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('permissionSetting', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getPermissionSettingsPropertyValuesRouteHandler(req, res, property);
|
getPermissionSettingsPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/search', checkPermissions('permissionSetting', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchPermissionSettingsRouteHandler(req, res, search);
|
searchPermissionSettingsRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('permissionSetting', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newPermissionSettingsRouteHandler(req, res);
|
newPermissionSettingsRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -89,7 +88,7 @@ router.get('/:id', isAuthenticated, async (req, res) => {
|
|||||||
getPermissionSettingsRouteHandler(req, res);
|
getPermissionSettingsRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('permissionSetting', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editPermissionSettingsRouteHandler(req, res);
|
editPermissionSettingsRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { convertPropertiesString, getFilter, getSort } from '../../utils.js';
|
import { convertPropertiesString, getFilter, getSort } from '../../utils.js';
|
||||||
import {
|
import {
|
||||||
deleteProductCategoryRouteHandler,
|
deleteProductCategoryRouteHandler,
|
||||||
@ -29,7 +28,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listProductCategoriesRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listProductCategoriesRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('productCategory', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
const properties = convertPropertiesString(req.query.properties);
|
const properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -39,17 +38,17 @@ router.get('/properties', checkPermissions('productCategory', 'list'), isAuthent
|
|||||||
listProductCategoriesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listProductCategoriesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('productCategory', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getProductCategoryPropertyValuesRouteHandler(req, res, property);
|
getProductCategoryPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/search', checkPermissions('productCategory', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchProductCategoriesRouteHandler(req, res, search);
|
searchProductCategoriesRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('productCategory', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newProductCategoryRouteHandler(req, res);
|
newProductCategoryRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -71,7 +70,7 @@ router.get('/:id', isAuthenticated, async (req, res) => {
|
|||||||
getProductCategoryRouteHandler(req, res);
|
getProductCategoryRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('productCategory', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editProductCategoryRouteHandler(req, res);
|
editProductCategoryRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -50,7 +49,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listProductsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listProductsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('product', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -60,17 +59,17 @@ router.get('/properties', checkPermissions('product', 'list'), isAuthenticated,
|
|||||||
listProductsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listProductsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('product', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getProductPropertyValuesRouteHandler(req, res, property);
|
getProductPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/search', checkPermissions('product', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchProductsRouteHandler(req, res, search);
|
searchProductsRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('product', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newProductRouteHandler(req, res);
|
newProductRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -94,7 +93,7 @@ router.get('/:id', isAuthenticated, async (req, res) => {
|
|||||||
getProductRouteHandler(req, res);
|
getProductRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('product', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editProductRouteHandler(req, res);
|
editProductRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -50,7 +49,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listProductSkusRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listProductSkusRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('productSku', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
let masterFilter = {};
|
let masterFilter = {};
|
||||||
@ -60,17 +59,17 @@ router.get('/properties', checkPermissions('productSku', 'list'), isAuthenticate
|
|||||||
listProductSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listProductSkusByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('productSku', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getProductSkuPropertyValuesRouteHandler(req, res, property);
|
getProductSkuPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
router.get('/search', checkPermissions('productSku', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchProductSkusRouteHandler(req, res, search);
|
searchProductSkusRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('product', 'newProductSku'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newProductSkuRouteHandler(req, res);
|
newProductSkuRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -92,7 +91,7 @@ router.get('/:id', isAuthenticated, async (req, res) => {
|
|||||||
getProductSkuRouteHandler(req, res);
|
getProductSkuRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('productSku', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editProductSkuRouteHandler(req, res);
|
editProductSkuRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -48,7 +47,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listTaxRatesRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listTaxRatesRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('taxRate', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -58,17 +57,17 @@ router.get('/properties', checkPermissions('taxRate', 'list'), isAuthenticated,
|
|||||||
listTaxRatesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listTaxRatesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('taxRate', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getTaxRatePropertyValuesRouteHandler(req, res, property);
|
getTaxRatePropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/search', checkPermissions('taxRate', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchTaxRatesRouteHandler(req, res, search);
|
searchTaxRatesRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('taxRate', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newTaxRateRouteHandler(req, res);
|
newTaxRateRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -92,7 +91,7 @@ router.get('/:id', isAuthenticated, async (req, res) => {
|
|||||||
getTaxRateRouteHandler(req, res);
|
getTaxRateRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('taxRate', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editTaxRateRouteHandler(req, res);
|
editTaxRateRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -38,7 +37,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('userGroup', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -48,17 +47,17 @@ router.get('/properties', checkPermissions('userGroup', 'list'), isAuthenticated
|
|||||||
listUserGroupsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listUserGroupsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('userGroup', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getUserGroupPropertyValuesRouteHandler(req, res, property);
|
getUserGroupPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/search', checkPermissions('userGroup', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchUserGroupsRouteHandler(req, res, search);
|
searchUserGroupsRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('userGroup', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newUserGroupRouteHandler(req, res);
|
newUserGroupRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -89,7 +88,7 @@ router.get('/:id', isAuthenticated, async (req, res) => {
|
|||||||
getUserGroupRouteHandler(req, res);
|
getUserGroupRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('userGroup', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editUserGroupRouteHandler(req, res);
|
editUserGroupRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { convertPropertiesString, getFilter, getSort } from '../../utils.js';
|
import { convertPropertiesString, getFilter, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -40,7 +39,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listUsersRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listUsersRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('user', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -50,11 +49,11 @@ router.get('/properties', checkPermissions('user', 'list'), isAuthenticated, asy
|
|||||||
listUsersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listUsersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('user', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getUserPropertyValuesRouteHandler(req, res, property);
|
getUserPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
router.get('/search', checkPermissions('user', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchUsersRouteHandler(req, res, search);
|
searchUsersRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
@ -81,11 +80,11 @@ router.get('/:id', isAuthenticated, async (req, res) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// update user info
|
// update user info
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('user', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editUserRouteHandler(req, res);
|
editUserRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/:id/setAppPassword', isAuthenticated, checkPermissions('user', 'newAppPassword'), async (req, res) => {
|
router.post('/:id/setAppPassword', isAuthenticated, async (req, res) => {
|
||||||
setAppPasswordRouteHandler(req, res);
|
setAppPasswordRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -38,7 +37,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listVendorsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listVendorsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('vendor', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -48,17 +47,17 @@ router.get('/properties', checkPermissions('vendor', 'list'), isAuthenticated, a
|
|||||||
listVendorsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listVendorsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('vendor', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getVendorPropertyValuesRouteHandler(req, res, property);
|
getVendorPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/search', checkPermissions('vendor', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchVendorsRouteHandler(req, res, search);
|
searchVendorsRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('vendor', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newVendorRouteHandler(req, res);
|
newVendorRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -82,7 +81,7 @@ router.get('/:id', isAuthenticated, async (req, res) => {
|
|||||||
getVendorRouteHandler(req, res);
|
getVendorRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('vendor', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editVendorRouteHandler(req, res);
|
editVendorRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { convertPropertiesString, getFilter, getSort } from '../../utils.js';
|
import { convertPropertiesString, getFilter, getSort } from '../../utils.js';
|
||||||
import {
|
import {
|
||||||
deleteFilamentProfileRouteHandler,
|
deleteFilamentProfileRouteHandler,
|
||||||
@ -11,7 +10,8 @@ import {
|
|||||||
newFilamentProfileRouteHandler,
|
newFilamentProfileRouteHandler,
|
||||||
searchFilamentProfilesRouteHandler,
|
searchFilamentProfilesRouteHandler,
|
||||||
getFilamentProfilePropertyValuesRouteHandler,
|
getFilamentProfilePropertyValuesRouteHandler,
|
||||||
getFilamentProfileNeighborsRouteHandler,
|
|
||||||
|
getFilamentProfileNeighborsRouteHandler
|
||||||
} from '../../services/production/filamentprofiles.js';
|
} from '../../services/production/filamentprofiles.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -23,20 +23,10 @@ const propertiesAllowedFilters = ['name'];
|
|||||||
router.get('/', isAuthenticated, async (req, res) => {
|
router.get('/', isAuthenticated, async (req, res) => {
|
||||||
const { page, limit, property, search, sort, order } = req.query;
|
const { page, limit, property, search, sort, order } = req.query;
|
||||||
const filter = await getFilter(req.query, listAllowedFilters);
|
const filter = await getFilter(req.query, listAllowedFilters);
|
||||||
listFilamentProfilesRouteHandler(
|
listFilamentProfilesRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
req,
|
|
||||||
res,
|
|
||||||
page,
|
|
||||||
limit,
|
|
||||||
property,
|
|
||||||
filter,
|
|
||||||
search,
|
|
||||||
getSort(sort, listAllowedSorters),
|
|
||||||
order
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('filamentProfile', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
const properties = convertPropertiesString(req.query.properties);
|
const properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -46,51 +36,32 @@ router.get('/properties', checkPermissions('filamentProfile', 'list'), isAuthent
|
|||||||
listFilamentProfilesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listFilamentProfilesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('filamentProfile', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getFilamentProfilePropertyValuesRouteHandler(req, res, property);
|
getFilamentProfilePropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/search', checkPermissions('filamentProfile', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
searchFilamentProfilesRouteHandler(req, res, req.query.search);
|
searchFilamentProfilesRouteHandler(req, res, req.query.search);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('filamentProfile', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newFilamentProfileRouteHandler(req, res);
|
newFilamentProfileRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/neighbors', isAuthenticated, async (req, res) => {
|
router.get('/neighbors', isAuthenticated, async (req, res) => {
|
||||||
const { property, search, sort, order, id } = req.query;
|
const { property, search, sort, order, id } = req.query;
|
||||||
const filter = await getFilter(req.query, listAllowedFilters);
|
const filter = await getFilter(req.query, listAllowedFilters);
|
||||||
getFilamentProfileNeighborsRouteHandler(
|
getFilamentProfileNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
||||||
req,
|
|
||||||
res,
|
|
||||||
property,
|
|
||||||
filter,
|
|
||||||
search,
|
|
||||||
getSort(sort, listAllowedSorters),
|
|
||||||
order,
|
|
||||||
id
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get(
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||||
'/:id',
|
getFilamentProfileRouteHandler(req, res);
|
||||||
isAuthenticated,
|
});
|
||||||
checkPermissions('filamentProfile', 'info'),
|
|
||||||
async (req, res) => {
|
|
||||||
getFilamentProfileRouteHandler(req, res);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
router.put(
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
'/:id',
|
editFilamentProfileRouteHandler(req, res);
|
||||||
isAuthenticated,
|
});
|
||||||
checkPermissions('filamentProfile', 'edit'),
|
|
||||||
async (req, res) => {
|
|
||||||
editFilamentProfileRouteHandler(req, res);
|
|
||||||
}
|
|
||||||
);
|
|
||||||
|
|
||||||
router.delete('/:id', isAuthenticated, async (req, res) => {
|
router.delete('/:id', isAuthenticated, async (req, res) => {
|
||||||
deleteFilamentProfileRouteHandler(req, res);
|
deleteFilamentProfileRouteHandler(req, res);
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
|
|
||||||
@ -39,7 +38,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listGCodeFilesRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listGCodeFilesRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('gcodeFile', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -49,18 +48,18 @@ router.get('/properties', checkPermissions('gcodeFile', 'list'), isAuthenticated
|
|||||||
listGCodeFilesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listGCodeFilesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('gcodeFile', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getGCodeFilePropertyValuesRouteHandler(req, res, property);
|
getGCodeFilePropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
router.get('/search', checkPermissions('gcodeFile', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchGCodeFilesRouteHandler(req, res, search);
|
searchGCodeFilesRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
// create new gcodeFile
|
// create new gcodeFile
|
||||||
router.post('/', isAuthenticated, checkPermissions('gcodeFile', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newGCodeFileRouteHandler(req, res);
|
newGCodeFileRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -75,7 +74,7 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
|||||||
getGCodeFileNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
getGCodeFileNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/:id', isAuthenticated, checkPermissions('gcodeFile', 'info'), async (req, res) => {
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||||
getGCodeFileRouteHandler(req, res);
|
getGCodeFileRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -84,7 +83,7 @@ router.get('/:id/content', isAuthenticated, async (req, res) => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
// update gcodeFile info
|
// update gcodeFile info
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('gcodeFile', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editGCodeFileRouteHandler(req, res);
|
editGCodeFileRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
|
|
||||||
@ -48,7 +47,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listJobsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listJobsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('job', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -58,16 +57,16 @@ router.get('/properties', checkPermissions('job', 'list'), isAuthenticated, asyn
|
|||||||
listJobsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listJobsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('job', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getJobPropertyValuesRouteHandler(req, res, property);
|
getJobPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
router.get('/search', checkPermissions('job', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchJobsRouteHandler(req, res, search);
|
searchJobsRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('job', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newJobRouteHandler(req, res);
|
newJobRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -87,11 +86,11 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
|||||||
getJobNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
getJobNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/:id', isAuthenticated, checkPermissions('job', 'info'), async (req, res) => {
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||||
getJobRouteHandler(req, res);
|
getJobRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('job', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editJobRouteHandler(req, res);
|
editJobRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { convertPropertiesString, getFilter, getSort } from '../../utils.js';
|
import { convertPropertiesString, getFilter, getSort } from '../../utils.js';
|
||||||
import {
|
import {
|
||||||
deletePrinterProfileRouteHandler,
|
deletePrinterProfileRouteHandler,
|
||||||
@ -35,7 +34,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listPrinterProfilesRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listPrinterProfilesRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('printerProfile', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
const properties = convertPropertiesString(req.query.properties);
|
const properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -45,16 +44,16 @@ router.get('/properties', checkPermissions('printerProfile', 'list'), isAuthenti
|
|||||||
listPrinterProfilesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listPrinterProfilesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('printerProfile', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getPrinterProfilePropertyValuesRouteHandler(req, res, property);
|
getPrinterProfilePropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/search', checkPermissions('printerProfile', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
searchPrinterProfilesRouteHandler(req, res, req.query.search);
|
searchPrinterProfilesRouteHandler(req, res, req.query.search);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('printer', 'newPrinterProfile'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newPrinterProfileRouteHandler(req, res);
|
newPrinterProfileRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -64,11 +63,11 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
|||||||
getPrinterProfileNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
getPrinterProfileNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/:id', isAuthenticated, checkPermissions('printerProfile', 'info'), async (req, res) => {
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||||
getPrinterProfileRouteHandler(req, res);
|
getPrinterProfileRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('printerProfile', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editPrinterProfileRouteHandler(req, res);
|
editPrinterProfileRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
import {
|
import {
|
||||||
@ -39,7 +38,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listPrintersRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listPrintersRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('printer', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -49,17 +48,17 @@ router.get('/properties', checkPermissions('printer', 'list'), isAuthenticated,
|
|||||||
listPrintersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listPrintersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('printer', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getPrinterPropertyValuesRouteHandler(req, res, property);
|
getPrinterPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
router.get('/search', checkPermissions('printer', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchPrintersRouteHandler(req, res, search);
|
searchPrintersRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
// create new printer
|
// create new printer
|
||||||
router.post('/', isAuthenticated, checkPermissions('printer', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newPrinterRouteHandler(req, res);
|
newPrinterRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -79,12 +78,12 @@ router.get('/stats', isAuthenticated, async (req, res) => {
|
|||||||
getPrinterStatsRouteHandler(req, res);
|
getPrinterStatsRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/:id', isAuthenticated, checkPermissions('printer', 'info'), async (req, res) => {
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||||
getPrinterRouteHandler(req, res);
|
getPrinterRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
// update printer info
|
// update printer info
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('printer', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editPrinterRouteHandler(req, res);
|
editPrinterRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
|
|
||||||
@ -46,7 +45,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listSubJobsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listSubJobsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('subJob', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -56,11 +55,11 @@ router.get('/properties', checkPermissions('subJob', 'list'), isAuthenticated, a
|
|||||||
listSubJobsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listSubJobsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('subJob', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getSubJobPropertyValuesRouteHandler(req, res, property);
|
getSubJobPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
router.get('/search', checkPermissions('subJob', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchSubJobsRouteHandler(req, res, search);
|
searchSubJobsRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
@ -81,7 +80,7 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
|||||||
getSubJobNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
getSubJobNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/:id', isAuthenticated, checkPermissions('subJob', 'info'), async (req, res) => {
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||||
getSubJobRouteHandler(req, res);
|
getSubJobRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -39,7 +38,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listClientsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listClientsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('client', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -49,17 +48,17 @@ router.get('/properties', checkPermissions('client', 'list'), isAuthenticated, a
|
|||||||
listClientsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listClientsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('client', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getClientPropertyValuesRouteHandler(req, res, property);
|
getClientPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
router.get('/search', checkPermissions('client', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchClientsRouteHandler(req, res, search);
|
searchClientsRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('client', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newClientRouteHandler(req, res);
|
newClientRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -79,11 +78,11 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
|||||||
getClientNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
getClientNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/:id', isAuthenticated, checkPermissions('client', 'info'), async (req, res) => {
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||||
getClientRouteHandler(req, res);
|
getClientRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('client', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editClientRouteHandler(req, res);
|
editClientRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -65,7 +64,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listListingsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listListingsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('listing', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -75,16 +74,16 @@ router.get('/properties', checkPermissions('listing', 'list'), isAuthenticated,
|
|||||||
listListingsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listListingsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('listing', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getListingPropertyValuesRouteHandler(req, res, property);
|
getListingPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
router.get('/search', checkPermissions('listing', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchListingsRouteHandler(req, res, search);
|
searchListingsRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('listing', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newListingRouteHandler(req, res);
|
newListingRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -96,11 +95,11 @@ router.get('/history', isAuthenticated, async (req, res) => {
|
|||||||
getListingHistoryRouteHandler(req, res);
|
getListingHistoryRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/:id/publish', isAuthenticated, checkPermissions('listing', 'publish'), async (req, res) => {
|
router.post('/:id/publish', isAuthenticated, async (req, res) => {
|
||||||
publishListingRouteHandler(req, res);
|
publishListingRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/:id/unpublish', isAuthenticated, checkPermissions('listing', 'unpublish'), async (req, res) => {
|
router.post('/:id/unpublish', isAuthenticated, async (req, res) => {
|
||||||
unpublishListingRouteHandler(req, res);
|
unpublishListingRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -110,11 +109,11 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
|||||||
getListingNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
getListingNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/:id', isAuthenticated, checkPermissions('listing', 'info'), async (req, res) => {
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||||
getListingRouteHandler(req, res);
|
getListingRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('listing', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editListingRouteHandler(req, res);
|
editListingRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -52,7 +51,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listListingVarientsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listListingVarientsRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('listingVarient', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -62,17 +61,17 @@ router.get('/properties', checkPermissions('listingVarient', 'list'), isAuthenti
|
|||||||
listListingVarientsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listListingVarientsByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('listingVarient', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getListingVarientPropertyValuesRouteHandler(req, res, property);
|
getListingVarientPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
router.get('/search', checkPermissions('listingVarient', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchListingVarientsRouteHandler(req, res, search);
|
searchListingVarientsRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('listing', 'newListingVarient'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newListingVarientRouteHandler(req, res);
|
newListingVarientRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -84,11 +83,11 @@ router.get('/history', isAuthenticated, async (req, res) => {
|
|||||||
getListingVarientHistoryRouteHandler(req, res);
|
getListingVarientHistoryRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/:id/publish', isAuthenticated, checkPermissions('listingVarient', 'publish'), async (req, res) => {
|
router.post('/:id/publish', isAuthenticated, async (req, res) => {
|
||||||
publishListingVarientRouteHandler(req, res);
|
publishListingVarientRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/:id/unpublish', isAuthenticated, checkPermissions('listingVarient', 'unpublish'), async (req, res) => {
|
router.post('/:id/unpublish', isAuthenticated, async (req, res) => {
|
||||||
unpublishListingVarientRouteHandler(req, res);
|
unpublishListingVarientRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -98,11 +97,11 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
|||||||
getListingVarientNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
getListingVarientNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/:id', isAuthenticated, checkPermissions('listingVarient', 'info'), async (req, res) => {
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||||
getListingVarientRouteHandler(req, res);
|
getListingVarientRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('listingVarient', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editListingVarientRouteHandler(req, res);
|
editListingVarientRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions, hasPermission } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -54,7 +53,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listMarketplacesRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listMarketplacesRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('marketplace', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -64,17 +63,17 @@ router.get('/properties', checkPermissions('marketplace', 'list'), isAuthenticat
|
|||||||
listMarketplacesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listMarketplacesByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('marketplace', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getMarketplacePropertyValuesRouteHandler(req, res, property);
|
getMarketplacePropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
router.get('/search', checkPermissions('marketplace', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchMarketplacesRouteHandler(req, res, search);
|
searchMarketplacesRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('marketplace', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newMarketplaceRouteHandler(req, res);
|
newMarketplaceRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -90,31 +89,19 @@ router.get('/:id/auth/url', isAuthenticated, async (req, res) => {
|
|||||||
getMarketplaceAuthUrlRouteHandler(req, res);
|
getMarketplaceAuthUrlRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/:id/auth/exchange', isAuthenticated, async (req, res, next) => {
|
router.post('/:id/auth/exchange', isAuthenticated, async (req, res) => {
|
||||||
try {
|
|
||||||
const allowed =
|
|
||||||
(await hasPermission(req.user, 'marketplace', 'connect')) ||
|
|
||||||
(await hasPermission(req.user, 'marketplace', 'reconnect'));
|
|
||||||
if (!allowed) {
|
|
||||||
return res.status(403).json({ error: 'Forbidden', code: 'FORBIDDEN' });
|
|
||||||
}
|
|
||||||
return next();
|
|
||||||
} catch (err) {
|
|
||||||
return next(err);
|
|
||||||
}
|
|
||||||
}, async (req, res) => {
|
|
||||||
exchangeMarketplaceAuthCodeRouteHandler(req, res);
|
exchangeMarketplaceAuthCodeRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/:id/auth/refresh', isAuthenticated, checkPermissions('marketplace', 'refreshToken'), async (req, res) => {
|
router.post('/:id/auth/refresh', isAuthenticated, async (req, res) => {
|
||||||
refreshMarketplaceAuthRouteHandler(req, res);
|
refreshMarketplaceAuthRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/:id/sync/items', isAuthenticated, checkPermissions('marketplace', 'syncListings'), async (req, res) => {
|
router.post('/:id/sync/items', isAuthenticated, async (req, res) => {
|
||||||
syncMarketplaceItemsRouteHandler(req, res);
|
syncMarketplaceItemsRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/:id/sync/orders', isAuthenticated, checkPermissions('marketplace', 'syncOrders'), async (req, res) => {
|
router.post('/:id/sync/orders', isAuthenticated, async (req, res) => {
|
||||||
syncMarketplaceOrdersRouteHandler(req, res);
|
syncMarketplaceOrdersRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -129,11 +116,11 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
|||||||
getMarketplaceNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
getMarketplaceNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/:id', isAuthenticated, checkPermissions('marketplace', 'info'), async (req, res) => {
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||||
getMarketplaceRouteHandler(req, res);
|
getMarketplaceRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('marketplace', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editMarketplaceRouteHandler(req, res);
|
editMarketplaceRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@ -1,6 +1,5 @@
|
|||||||
import express from 'express';
|
import express from 'express';
|
||||||
import { isAuthenticated } from '../../keycloak.js';
|
import { isAuthenticated } from '../../keycloak.js';
|
||||||
import { checkPermissions } from '../../database/permissions.js';
|
|
||||||
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
import { getFilter, convertPropertiesString, getSort } from '../../utils.js';
|
||||||
|
|
||||||
const router = express.Router();
|
const router = express.Router();
|
||||||
@ -41,7 +40,7 @@ router.get('/', isAuthenticated, async (req, res) => {
|
|||||||
listSalesOrdersRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
listSalesOrdersRouteHandler(req, res, page, limit, property, filter, search, getSort(sort, listAllowedSorters), order);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/properties', checkPermissions('salesOrder', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/properties', isAuthenticated, async (req, res) => {
|
||||||
let properties = convertPropertiesString(req.query.properties);
|
let properties = convertPropertiesString(req.query.properties);
|
||||||
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
const filter = await getFilter(req.query, propertiesAllowedFilters, false);
|
||||||
var masterFilter = {};
|
var masterFilter = {};
|
||||||
@ -51,16 +50,16 @@ router.get('/properties', checkPermissions('salesOrder', 'list'), isAuthenticate
|
|||||||
listSalesOrdersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
listSalesOrdersByPropertiesRouteHandler(req, res, properties, filter, masterFilter);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/values', checkPermissions('salesOrder', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/values', isAuthenticated, async (req, res) => {
|
||||||
const { property } = req.query;
|
const { property } = req.query;
|
||||||
getSalesOrderPropertyValuesRouteHandler(req, res, property);
|
getSalesOrderPropertyValuesRouteHandler(req, res, property);
|
||||||
});
|
});
|
||||||
router.get('/search', checkPermissions('salesOrder', 'list'), isAuthenticated, async (req, res) => {
|
router.get('/search', isAuthenticated, async (req, res) => {
|
||||||
const { search } = req.query;
|
const { search } = req.query;
|
||||||
searchSalesOrdersRouteHandler(req, res, search);
|
searchSalesOrdersRouteHandler(req, res, search);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/', isAuthenticated, checkPermissions('salesOrder', 'new'), async (req, res) => {
|
router.post('/', isAuthenticated, async (req, res) => {
|
||||||
newSalesOrderRouteHandler(req, res);
|
newSalesOrderRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -80,16 +79,16 @@ router.get('/neighbors', isAuthenticated, async (req, res) => {
|
|||||||
getSalesOrderNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
getSalesOrderNeighborsRouteHandler(req, res, property, filter, search, getSort(sort, listAllowedSorters), order, id);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.get('/:id', isAuthenticated, checkPermissions('salesOrder', 'info'), async (req, res) => {
|
router.get('/:id', isAuthenticated, async (req, res) => {
|
||||||
getSalesOrderRouteHandler(req, res);
|
getSalesOrderRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
// update multiple sales orders
|
// update multiple sales orders
|
||||||
router.put('/', isAuthenticated, checkPermissions('salesOrder', 'edit'), async (req, res) => {
|
router.put('/', isAuthenticated, async (req, res) => {
|
||||||
editMultipleSalesOrdersRouteHandler(req, res);
|
editMultipleSalesOrdersRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.put('/:id', isAuthenticated, checkPermissions('salesOrder', 'edit'), async (req, res) => {
|
router.put('/:id', isAuthenticated, async (req, res) => {
|
||||||
editSalesOrderRouteHandler(req, res);
|
editSalesOrderRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -97,15 +96,15 @@ router.delete('/:id', isAuthenticated, async (req, res) => {
|
|||||||
deleteSalesOrderRouteHandler(req, res);
|
deleteSalesOrderRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/:id/post', isAuthenticated, checkPermissions('salesOrder', 'post'), async (req, res) => {
|
router.post('/:id/post', isAuthenticated, async (req, res) => {
|
||||||
postSalesOrderRouteHandler(req, res);
|
postSalesOrderRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/:id/confirm', isAuthenticated, checkPermissions('salesOrder', 'confirm'), async (req, res) => {
|
router.post('/:id/confirm', isAuthenticated, async (req, res) => {
|
||||||
confirmSalesOrderRouteHandler(req, res);
|
confirmSalesOrderRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
router.post('/:id/cancel', isAuthenticated, checkPermissions('salesOrder', 'cancel'), async (req, res) => {
|
router.post('/:id/cancel', isAuthenticated, async (req, res) => {
|
||||||
cancelSalesOrderRouteHandler(req, res);
|
cancelSalesOrderRouteHandler(req, res);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user