| Current Path : /home/deltalab/PMS/partner-manager-backend/rest/routes/ |
| Current File : //home/deltalab/PMS/partner-manager-backend/rest/routes/partners.js |
const express = require('express');
const { productQuery } = require('../queries');
const products = require('./products');
const utility = require('../../services/utility');
const router = express.Router();
router.use('/:partnerId/products', products);
// TODO: guardare se serve
router.get('/:partnerId/productsSearch', async (req, res) => {
try {
const productList = await productQuery.readMany(req.params.partnerId);
return res.status(200).json({ success: true, data: productList });
} catch (error) {
console.log(error);
return res.status(400).send({ success: false, message: 'Error updating the product', error: error.message });
}
});
router.get('/:partnerId/productSearch/:channelId', async (req, res) => {
try {
const productList = await productQuery.readManyByChannel(req.params.partnerId, req.params.channelId);
return res.status(200).json({ success: true, data: productList });
} catch (error) {
console.log(error);
return res.status(400).send({ success: false, message: 'Error updating the product', error: error.message });
}
});
router.get('/:partnerId/offerSearch/:channelId', async (req, res) => {
try {
const productList = await productQuery.readManyOffersByChannel(req.params.partnerId, req.params.channelId);
return res.status(200).json({ success: true, data: productList });
} catch (error) {
console.log(error);
return res.status(400).send({ success: false, message: 'Error updating the product', error: error.message });
}
});
router.get('/productSearch/:channelId', async (req, res) => {
try {
const productList = await productQuery.readManyByChannel(undefined, req.params.channelId);
return res.status(200).json({ success: true, data: productList });
} catch (error) {
console.log(error);
return res.status(400).send({ success: false, message: 'Error updating the product', error: error.message });
}
});
router.get('/productSearch/linked/:productId', async (req, res) => {
try {
const productList = await productQuery.readManyLinked(req.params.productId);
return res.status(200).json({ success: true, data: productList });
} catch (error) {
console.log(error);
return res.status(400).send({ success: false, message: 'Error retrieving the linked products', error: error.message });
}
});
// TODO: use solo se admin
router.get('/updateProducts', (req, res, next) => {
if (utility.isAdmin(req)) {
next();
} else {
return res.status(401).send({ success: false, message: 'Not authorized', error: error.message });
}
}, async (req, res) => {
try {
console.log('update all');
const productList = await productQuery.updateAll();
return res.status(200).json({ success: true, data: productList });
} catch (error) {
console.log(error);
return res.status(400).send({ success: false, message: 'Error retrieving the linked products', error: error.message });
}
});
module.exports = router;