| Current Path : /var/www/recommendations/www/routes/ |
| Current File : /var/www/recommendations/www/routes/selectRecommendations.js |
const express = require('express');
const router = express.Router();
const crypto = require('crypto');
const pkcs7 = require('pkcs7-padding');
const { Op } = require('sequelize');
const Related = require('../model/Related');
const RelatedTitle = require('../model/RelatedTitle');
//const { sequelize } = require('sequelize');
function decryptEmail(encryptedEmail, secretKey) {
const ciphertext = Buffer.from(encryptedEmail, 'base64');
const iv = ciphertext.slice(0, 16);
const hmac = ciphertext.slice(16, 48);
const data = ciphertext.slice(48);
const paddedData = pkcs7.pad(data, 16);
const decipher = crypto.createDecipheriv('aes-128-cbc', secretKey, iv);
let decryptedEmail = decipher.update(paddedData, null, 'utf8');
decryptedEmail += decipher.final('utf8');
const calcmac = crypto.createHmac('sha256', secretKey).update(data).digest();
if (hmac.equals(calcmac)) {
return decryptedEmail;
}
return null;
}
function sha256Hash(data) {
return crypto.createHash('sha256').update(data).digest('hex');
}
router.get('/', async (req, res) => {
try {
const sku = req.query.sku;
const encryptvalue = req.query.encryptedvalue;
/* const secretKey = 'aabbccddeeff00112233445566778899';
console.log(encryptvalue)
const user = decryptEmail(encryptvalue, secretKey);
*/
// const secretKey = 'la_tua_chiave_segreta';
// const userHash = sha256Hash(encryptvalue);
const user = Buffer.from(encryptvalue, "base64").toString("utf8");
// if (user !== null) {
const resultRelated = await Related.findAll({
where: {
sku,
user,
},
attributes: ['position', 'related']
});
const resultRelatedTitle = await RelatedTitle.findAll({
where: {
sku,
user,
},
attributes: ['title'],
});
/*
const resultRelated = await Related.findAll({
where: {
sku,
user: sequelize.where(sequelize.fn('SHA2', sequelize.col('user'), 256), user),
},
attributes: ['position', 'related']
});
*/
const response = {
title: resultRelatedTitle.length > 0 ? resultRelatedTitle[0].title : '',
recommendations: resultRelated,
};
return res.json(response);
// }
return '{}';
} catch (error) {
console.error('Error fetching data: ' + error.stack);
return res.status(500).json({ message: 'Server error' });
}
});
module.exports = router;