Commit 0374ce84 by Dhamodharan S

add retriving

parent a75dc717
Pipeline #35166 passed with stages
in 3 minutes 16 seconds
const { ApiLogs } = require('../config/db.config');
var request = require('request');
async function getAttachment(req, res) {
try {
console.log(req.body)
if (req.body.identifier) {
let identifier = req.body.identifier;
let message_id = req.body.message_id;
let media_id = req.body.media_id;
let dataString = '{"uri":"unified://'+identifier+'?messageId=​ '+message_id+' &mediaId=​ '+media_id+'"}';
let options = {
url: 'https://apiv2.unificationengine.com/v2/message/retrieve',
method: 'POST',
body: dataString,
auth: {
'user': 'a913b40f-aa55-49ef-ae23-bbd4d1baec94',
'pass': '025fd444-62b4-4c44-b097-28ef2bde4f6e'
}
};
request(options, function (error, response, body) {
let respo = JSON.parse(body);
if (respo.Status) {
ApiLogs.create({identifier: identifier, request: JSON.parse(dataString), response: respo, message_id: message_id, media_id:media_id, type:"retrive"})
.then(user => res.json({status: 200,info: 'OK'}))
.catch(function (err) {
console.log(err);
res.status(500).send({msg:"something went wrong!"});
});
} else res.status(500).send({error: true, message:respo});
});
} else throw "bad request";
} catch (err) {
console.log(err);
res.status(500).send({error: true, message:err});
}
}
module.exports = {
getAttachment
};
\ No newline at end of file
...@@ -17,15 +17,13 @@ async function sentFiles(req, res) { ...@@ -17,15 +17,13 @@ async function sentFiles(req, res) {
let dataString; let dataString;
let type; let type;
if (link) { if (link) {
dataString = '{"message": {"receivers":[{"name":"name","address":"​'+mobile_number+'","Connector":"​'+identifier+'", "type":"individual"}],"parts":[{"id":"1","contentType":"text/plain","data":"​'+link+'" ,"size": '+link.length+' ,"type":"link","sort":0}]}}'; dataString = '{"message": {"receivers": [{"name":"name","address":"'+mobile_number+'" ,"Connector":"'+identifier+'", "type":"individual"}],"parts": [{"id":"1","contentType":"text/plain","data":"'+link+'" ,"size": 50,"type":"link","sort":0}]}}';
type = 'link'; type = 'link';
} else if(location_name) { } else if(location_name) {
dataString = '{"message": {"receivers":[{"name":"name","address":"​'+mobile_number+'","Connector":"​'+identifier+'", "type":"individual"}],"parts":[{"id":"1","contentType":"application/json","data":{ \"longitude\":'+req.body.longitude+', \"latitude\":'+req.body.latitude+', \"name\": \"​'+req.body.location_name+'\", \"address\": \"​'+req.body.address+' \"} ,"size":"'+req.body.address.length+'" ,"type":"location","sort":0}]}}' dataString = '{"message": {"receivers": [{"name":"name","address":"'+mobile_number+'" ,"Connector":"'+identifier+'", "type":"individual"}],"parts": [{"id":"1","contentType":"application/json","data":"{ \\"longitude\\": '+req.body.longitude+', \\"latitude\\": '+req.body.latitude+', \\"name\\": \\"'+req.body.location_name+'\\", \\"address\\": \\"'+req.body.address+'\\"}" ,"size": '+req.body.address.length+',"type":"location","sort":0}]}}';
type = 'location'; type = 'location';
} else { } else {
let mimetype = req.file.mimetype; let mimetype = req.file.mimetype;
console.log(mimetype);
console.log(audio.includes(mimetype));
let base_path = `local/whatsapp_api/files/${req.file.filename}.${ mimetype.split("/")[1] }`; let base_path = `local/whatsapp_api/files/${req.file.filename}.${ mimetype.split("/")[1] }`;
const fileContent = fs.readFileSync(req.file.path); const fileContent = fs.readFileSync(req.file.path);
let result = await S3Upload.s3Upload(fileContent, base_path, req.file.path); let result = await S3Upload.s3Upload(fileContent, base_path, req.file.path);
...@@ -35,7 +33,7 @@ async function sentFiles(req, res) { ...@@ -35,7 +33,7 @@ async function sentFiles(req, res) {
let img_caption; let img_caption;
req.body.img_caption ? (img_caption = req.body.img_caption) : ""; req.body.img_caption ? (img_caption = req.body.img_caption) : "";
if (img_caption) { if (img_caption) {
dataString = '{"message": {"receivers":[{"name":"name","address":"​'+mobile_number+'","Connector":"'+identifier+'", "type":"individual"}],"parts":[{"id":"1","contentType":"text/plain","data":"​'+img_caption+'" ,"size":'+img_caption.length+',"type":"body","sort":0},{"id": "0", "contentType": "​'+mimetype+'" ,"size":'+result.path.length+',"type": "image_link","name":"​'+req.file.filename+'.'+mimetype.split("/")[1]+'","data":"​'+result.path+'","sort":1}]}}'; dataString = '{"message": {"receivers":[{"name":"name","address":"'+mobile_number+'","Connector":"'+identifier+'", "type":"individual"}],"parts":[{"id":"1","contentType":"text/plain","data":"'+img_caption+'" ,"size":'+img_caption.length+',"type":"body","sort":0},{"id": "0", "contentType": "​'+mimetype+'" ,"size":'+result.path.length+',"type": "image_link","name":"​'+req.file.filename+'.'+mimetype.split("/")[1]+'","data":"'+result.path+'","sort":1}]}}';
} else { } else {
dataString = '{"message": {"receivers":[{"name":"name","address":"'+mobile_number+'","Connector":"'+identifier+'", "type":"individual"}],"parts": [{"id": "0","contentType": "'+mimetype+'" ,"size":'+result.path.length+',"type": "'+type+'","name":"'+req.file.filename+'.'+mimetype.split("/")[1]+'","data":"'+result.path+'","sort":1}]}}'; dataString = '{"message": {"receivers":[{"name":"name","address":"'+mobile_number+'","Connector":"'+identifier+'", "type":"individual"}],"parts": [{"id": "0","contentType": "'+mimetype+'" ,"size":'+result.path.length+',"type": "'+type+'","name":"'+req.file.filename+'.'+mimetype.split("/")[1]+'","data":"'+result.path+'","sort":1}]}}';
} }
......
...@@ -3,16 +3,25 @@ const { ApiLogs } = require('../config/db.config'); ...@@ -3,16 +3,25 @@ const { ApiLogs } = require('../config/db.config');
async function saveResponse(req, res) { async function saveResponse(req, res) {
try { try {
let response = req.body; let response = req.body;
let media_id = "";
let message_id = "";
console.log(response); console.log(response);
if (response.data && response.data.connectionname && response.data.receiveraddress) { if (response.data && response.data.connectionname && response.data.receiveraddress) {
ApiLogs.create({response: response.data, type: "webhook", identifier:response.data.connectionname, let orgevnt = "";
mobile_number: response.data.receiveraddress }) (response.data.parts[0] && response.data.parts[0].originalEvent) ? (orgevnt = JSON.parse(response.data.parts[0].originalEvent)) : "";
console.log(orgevnt);
(response.data.parts[0] && response.data.parts[0].data) ? (media_id = response.data.parts[0].data) : "";
(orgevnt && orgevnt.id) ? (message_id = orgevnt.id) : "";
console.log(message_id);
console.log(media_id);
ApiLogs.create({response: response, type: "webhook", identifier:response.data.connectionname,
mobile_number: response.data.receiveraddress, message_id: message_id, media_id: media_id})
.then(user => res.send({status: 200,info: 'OK'}) ) .then(user => res.send({status: 200,info: 'OK'}) )
.catch(function (err) { .catch(function (err) {
console.log(err); console.log(err);
res.status(500).send({msg:"something went wrong!"}); res.status(500).send({msg:"something went wrong!"});
}); });
} } else res.status(500).send({msg:"something went wrong!"});
} catch (err) { } catch (err) {
console.log(err); console.log(err);
// res.status(400).send({error: true, message:err}); // res.status(400).send({error: true, message:err});
......
...@@ -10,6 +10,8 @@ module.exports = (sequelize, type) => { ...@@ -10,6 +10,8 @@ module.exports = (sequelize, type) => {
mobile_number: type.STRING, mobile_number: type.STRING,
type: type.STRING, type: type.STRING,
status: type.STRING, status: type.STRING,
message_id: type.STRING,
media_id: type.STRING,
identifier: type.STRING, identifier: type.STRING,
created_at: { created_at: {
type: 'TIMESTAMP', type: 'TIMESTAMP',
......
...@@ -15,9 +15,11 @@ ...@@ -15,9 +15,11 @@
"dotenv": "^8.2.0", "dotenv": "^8.2.0",
"express": "^4.16.4", "express": "^4.16.4",
"http-errors": "~1.6.3", "http-errors": "~1.6.3",
"kill": "0.0.2",
"kill-port": "^1.6.0",
"multer": "^1.4.2", "multer": "^1.4.2",
"mysql2": "^2.1.0", "mysql2": "^2.1.0",
"nodemon": "^2.0.3", "nodemon": "2.0.0",
"precache": "0.0.0", "precache": "0.0.0",
"request": "^2.88.2", "request": "^2.88.2",
"sequelize": "^5.21.6" "sequelize": "^5.21.6"
......
...@@ -3,6 +3,7 @@ const webhookCtrl = require("../controllers/webhook.controller"); ...@@ -3,6 +3,7 @@ const webhookCtrl = require("../controllers/webhook.controller");
const connectionCtrl = require("../controllers/connection.controller"); const connectionCtrl = require("../controllers/connection.controller");
const messageCtrl = require("../controllers/message.controller"); const messageCtrl = require("../controllers/message.controller");
const sentFileCtrl = require("../controllers/sentfile.controller"); const sentFileCtrl = require("../controllers/sentfile.controller");
const retriveCtrl = require("../controllers/retrive.controller");
var router = express.Router(); var router = express.Router();
var multer = require('multer'); var multer = require('multer');
...@@ -27,5 +28,6 @@ router.post('/webhook', webhookCtrl.saveResponse); ...@@ -27,5 +28,6 @@ router.post('/webhook', webhookCtrl.saveResponse);
router.get('/create-connection/:mobile_number', connectionCtrl.createConnection); router.get('/create-connection/:mobile_number', connectionCtrl.createConnection);
router.post('/sent-message', messageCtrl.sentMessage); router.post('/sent-message', messageCtrl.sentMessage);
router.post('/sent-files', upload.single('file'), sentFileCtrl.sentFiles); router.post('/sent-files', upload.single('file'), sentFileCtrl.sentFiles);
router.post('/retrive', retriveCtrl.getAttachment);
module.exports = router; module.exports = router;
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment