Your IP : 216.73.216.220


Current Path : /home/deltalab/PMS/partner-manager-backend/rest/routes/
Upload File :
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;