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) {
let dataString;
let type;
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';
} 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';
} else {
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] }`;
const fileContent = fs.readFileSync(req.file.path);
let result = await S3Upload.s3Upload(fileContent, base_path, req.file.path);
......@@ -35,7 +33,7 @@ async function sentFiles(req, res) {
let img_caption;
req.body.img_caption ? (img_caption = req.body.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 {
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');
async function saveResponse(req, res) {
try {
let response = req.body;
let media_id = "";
let message_id = "";
console.log(response);
if (response.data && response.data.connectionname && response.data.receiveraddress) {
ApiLogs.create({response: response.data, type: "webhook", identifier:response.data.connectionname,
mobile_number: response.data.receiveraddress })
let orgevnt = "";
(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'}) )
.catch(function (err) {
console.log(err);
res.status(500).send({msg:"something went wrong!"});
});
}
} else res.status(500).send({msg:"something went wrong!"});
} catch (err) {
console.log(err);
// res.status(400).send({error: true, message:err});
......
......@@ -10,6 +10,8 @@ module.exports = (sequelize, type) => {
mobile_number: type.STRING,
type: type.STRING,
status: type.STRING,
message_id: type.STRING,
media_id: type.STRING,
identifier: type.STRING,
created_at: {
type: 'TIMESTAMP',
......
......@@ -15,9 +15,11 @@
"dotenv": "^8.2.0",
"express": "^4.16.4",
"http-errors": "~1.6.3",
"kill": "0.0.2",
"kill-port": "^1.6.0",
"multer": "^1.4.2",
"mysql2": "^2.1.0",
"nodemon": "^2.0.3",
"nodemon": "2.0.0",
"precache": "0.0.0",
"request": "^2.88.2",
"sequelize": "^5.21.6"
......
......@@ -3,6 +3,7 @@ const webhookCtrl = require("../controllers/webhook.controller");
const connectionCtrl = require("../controllers/connection.controller");
const messageCtrl = require("../controllers/message.controller");
const sentFileCtrl = require("../controllers/sentfile.controller");
const retriveCtrl = require("../controllers/retrive.controller");
var router = express.Router();
var multer = require('multer');
......@@ -27,5 +28,6 @@ router.post('/webhook', webhookCtrl.saveResponse);
router.get('/create-connection/:mobile_number', connectionCtrl.createConnection);
router.post('/sent-message', messageCtrl.sentMessage);
router.post('/sent-files', upload.single('file'), sentFileCtrl.sentFiles);
router.post('/retrive', retriveCtrl.getAttachment);
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