Built motion from commit 3c2ce842.|2.6.31
[motion2.git] / server / api / whatsappMessage / whatsappMessage.controller.js
1 // *************************************************************************
2 // *                                                                       *
3 // * xCALLY Motion -  The Omnichannel Contact Center                       *
4 // * Copyright (c) Xenialab s.r.l. All Rights Reserved                     *
5 // *                                                                       *
6 // *************************************************************************
7 // *                                                                       *
8 // * Email: info@xcally.com                                                *
9 // * Website: https://www.xcally.com                                       *
10 // *                                                                       *
11 // *************************************************************************
12 // *                                                                       *
13 // * The SOFTWARE PRODUCT is protected by copyright laws and international *
14 // * copyright treaties, as well as other intellectual property laws and   *
15 // * treaties. The SOFTWARE PRODUCT is licensed, not sold.                         *
16 // *                                                                       *
17 // *************************************************************************
18 var _0x2c55=['messageId','MessageStatus','read','WhatsappAccount,\x20%s,\x20%s,\x20%s','util','lodash','ioredis','../../config/logger','api','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./whatsappMessage.socket','register','jayson/promise','client','http','whatsapp-interactions','then','WhatsappMessage,\x20%s,\x20%s','request\x20sent','debug','WhatsappMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','status','offset','undefined','limit','Content-Range','json','update','end','stack','name','send','index','WhatsappMessage','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','pick','VIRTUAL','merge','options','count','includeAll','include','findAll','params','length','find','create','body','destroy','describe','accept','acceptMessage','UserId','user','agent','get','WhatsappInteraction','WhatsappInteractionId','interaction','role','null','rejectMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','Sequelize','QueryTypes','SELECT','contact','User','fullname','email','internal','interface','format','SIP/%s','channel','motionChannel','reject','rejectmessage','WhatsappAccount','WhatsappAccountId','WhatsppMessage,\x20%s,\x20%s,\x20%s','received\x20delivery\x20report\x20from','inspect','twilio','MessageSid'];(function(_0x1bb812,_0x23eacc){var _0x372adb=function(_0x5ad456){while(--_0x5ad456){_0x1bb812['push'](_0x1bb812['shift']());}};_0x372adb(++_0x23eacc);}(_0x2c55,0x72));var _0x52c5=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x2c55[_0x3dd15e];return _0x231fd0;};'use strict';var util=require(_0x52c5('0x0'));var _=require(_0x52c5('0x1'));var Redis=require(_0x52c5('0x2'));var interactionService=require('../../components/interaction/service');var qs=require('../../components/parsers/qs');var logger=require(_0x52c5('0x3'))(_0x52c5('0x4'));var config=require('../../config/environment');var db=require(_0x52c5('0x5'))['db'];config['redis']=_[_0x52c5('0x6')](config[_0x52c5('0x7')],{'host':_0x52c5('0x8'),'port':0x18eb});var socket=require(_0x52c5('0x9'))(new Redis(config[_0x52c5('0x7')]));require(_0x52c5('0xa'))[_0x52c5('0xb')](socket);var jayson=require(_0x52c5('0xc'));var client=jayson[_0x52c5('0xd')][_0x52c5('0xe')]({'port':0x232c});var client9002=jayson['client'][_0x52c5('0xe')]({'port':0x232a});var interaction_log=require(_0x52c5('0x3'))(_0x52c5('0xf'));function respondWithRpcPromise(_0x3dc0a0,_0x98471c,_0xbbd7c9,_0xf86310){return new Promise(function(_0x2106f4,_0x1feb89){var _0x38399d=_0xf86310||client;return _0x38399d['request'](_0x3dc0a0,_0xbbd7c9)[_0x52c5('0x10')](function(_0x12a2ca){logger['info'](_0x52c5('0x11'),_0x98471c,_0x52c5('0x12'));logger[_0x52c5('0x13')](_0x52c5('0x14'),_0x98471c,_0x52c5('0x12'),JSON[_0x52c5('0x15')](_0x12a2ca));if(_0x12a2ca['error']){if(_0x12a2ca[_0x52c5('0x16')][_0x52c5('0x17')]===0x1f4){logger[_0x52c5('0x16')](_0x52c5('0x11'),_0x98471c,_0x12a2ca[_0x52c5('0x16')][_0x52c5('0x18')]);return _0x1feb89(_0x12a2ca[_0x52c5('0x16')][_0x52c5('0x18')]);}logger['error'](_0x52c5('0x11'),_0x98471c,_0x12a2ca[_0x52c5('0x16')][_0x52c5('0x18')]);return _0x2106f4(_0x12a2ca[_0x52c5('0x16')][_0x52c5('0x18')]);}else{logger[_0x52c5('0x19')](_0x52c5('0x11'),_0x98471c,'request\x20sent');_0x2106f4(_0x12a2ca[_0x52c5('0x1a')][_0x52c5('0x18')]);}})[_0x52c5('0x1b')](function(_0xe4cf54){logger[_0x52c5('0x16')](_0x52c5('0x11'),_0x98471c,_0xe4cf54);_0x1feb89(_0xe4cf54);});});}function respondWithResult(_0x1956b3,_0x5bbfec){_0x5bbfec=_0x5bbfec||0xc8;return function(_0xce5ffc){if(_0xce5ffc){return _0x1956b3[_0x52c5('0x1c')](_0x5bbfec)['json'](_0xce5ffc);}};}function respondWithFilteredResult(_0x240666,_0x448604){return function(_0x1f9b2b){if(_0x1f9b2b){var _0x471404=typeof _0x448604[_0x52c5('0x1d')]===_0x52c5('0x1e')&&typeof _0x448604[_0x52c5('0x1f')]===_0x52c5('0x1e');var _0x5a3b35=_0x1f9b2b['count'];var _0x3ccacc=_0x471404?0x0:_0x448604[_0x52c5('0x1d')];var _0x41d314=_0x471404?_0x1f9b2b['count']:_0x448604[_0x52c5('0x1d')]+_0x448604[_0x52c5('0x1f')];var _0x2711a8;if(_0x41d314>=_0x5a3b35){_0x41d314=_0x5a3b35;_0x2711a8=0xc8;}else{_0x2711a8=0xce;}_0x240666[_0x52c5('0x1c')](_0x2711a8);return _0x240666['set'](_0x52c5('0x20'),_0x3ccacc+'-'+_0x41d314+'/'+_0x5a3b35)[_0x52c5('0x21')](_0x1f9b2b);}return null;};}function saveUpdates(_0x27a622){return function(_0x25551e){if(_0x25551e){return _0x25551e[_0x52c5('0x22')](_0x27a622)[_0x52c5('0x10')](function(_0x2b2f41){return _0x2b2f41;});}return null;};}function removeEntity(_0x115f00){return function(_0x4b1794){if(_0x4b1794){return _0x4b1794['destroy']()[_0x52c5('0x10')](function(){_0x115f00[_0x52c5('0x1c')](0xcc)[_0x52c5('0x23')]();});}};}function handleEntityNotFound(_0x34b74d){return function(_0x5932c3){if(!_0x5932c3){_0x34b74d['sendStatus'](0x194);}return _0x5932c3;};}function handleError(_0x24916b,_0x43d905){_0x43d905=_0x43d905||0x1f4;return function(_0x1bb612){logger[_0x52c5('0x16')](_0x1bb612[_0x52c5('0x24')]);if(_0x1bb612[_0x52c5('0x25')]){delete _0x1bb612[_0x52c5('0x25')];}_0x24916b['status'](_0x43d905)[_0x52c5('0x26')](_0x1bb612);};}exports[_0x52c5('0x27')]=function(_0x392c47,_0x1aaad1){var _0x31eb99={},_0x2340cd={},_0x264d14={'count':0x0,'rows':[]};var _0xb2276d=_['map'](db[_0x52c5('0x28')]['rawAttributes'],function(_0xc53eb4){return{'name':_0xc53eb4[_0x52c5('0x29')],'type':_0xc53eb4[_0x52c5('0x2a')][_0x52c5('0x2b')]};});_0x2340cd[_0x52c5('0x2c')]=_[_0x52c5('0x2d')](_0xb2276d,_0x52c5('0x25'));_0x2340cd[_0x52c5('0x2e')]=_[_0x52c5('0x2f')](_0x392c47[_0x52c5('0x2e')]);_0x2340cd[_0x52c5('0x30')]=_[_0x52c5('0x31')](_0x2340cd[_0x52c5('0x2c')],_0x2340cd[_0x52c5('0x2e')]);_0x31eb99[_0x52c5('0x32')]=_['intersection'](_0x2340cd[_0x52c5('0x2c')],qs[_0x52c5('0x33')](_0x392c47[_0x52c5('0x2e')]['fields']));_0x31eb99[_0x52c5('0x32')]=_0x31eb99['attributes']['length']?_0x31eb99['attributes']:_0x2340cd[_0x52c5('0x2c')];if(!_0x392c47['query'][_0x52c5('0x34')](_0x52c5('0x35'))){_0x31eb99[_0x52c5('0x1f')]=qs[_0x52c5('0x1f')](_0x392c47['query'][_0x52c5('0x1f')]);_0x31eb99[_0x52c5('0x1d')]=qs['offset'](_0x392c47[_0x52c5('0x2e')]['offset']);}_0x31eb99['order']=qs[_0x52c5('0x36')](_0x392c47[_0x52c5('0x2e')]['sort']);_0x31eb99[_0x52c5('0x37')]=qs['filters'](_[_0x52c5('0x38')](_0x392c47[_0x52c5('0x2e')],_0x2340cd['filters']),_0xb2276d);if(_0x392c47[_0x52c5('0x2e')]['filter']){_0x31eb99[_0x52c5('0x37')]=_['merge'](_0x31eb99[_0x52c5('0x37')],{'$or':_['map'](_0xb2276d,function(_0x403b22){if(_0x403b22[_0x52c5('0x2a')]!==_0x52c5('0x39')){var _0x1688d2={};_0x1688d2[_0x403b22['name']]={'$like':'%'+_0x392c47[_0x52c5('0x2e')]['filter']+'%'};return _0x1688d2;}})});}_0x31eb99=_[_0x52c5('0x3a')]({},_0x31eb99,_0x392c47[_0x52c5('0x3b')]);var _0x36484b={'where':_0x31eb99[_0x52c5('0x37')]};return db[_0x52c5('0x28')][_0x52c5('0x3c')](_0x36484b)[_0x52c5('0x10')](function(_0xb16f85){_0x264d14['count']=_0xb16f85;if(_0x392c47[_0x52c5('0x2e')][_0x52c5('0x3d')]){_0x31eb99[_0x52c5('0x3e')]=[{'all':!![]}];}return db[_0x52c5('0x28')][_0x52c5('0x3f')](_0x31eb99);})[_0x52c5('0x10')](function(_0x541334){_0x264d14['rows']=_0x541334;return _0x264d14;})['then'](respondWithFilteredResult(_0x1aaad1,_0x31eb99))[_0x52c5('0x1b')](handleError(_0x1aaad1,null));};exports['show']=function(_0x225bee,_0x56b329){var _0x376d51={'raw':!![],'where':{'id':_0x225bee[_0x52c5('0x40')]['id']}},_0x46b503={};_0x46b503[_0x52c5('0x2c')]=_[_0x52c5('0x2f')](db[_0x52c5('0x28')]['rawAttributes']);_0x46b503[_0x52c5('0x2e')]=_[_0x52c5('0x2f')](_0x225bee[_0x52c5('0x2e')]);_0x46b503[_0x52c5('0x30')]=_[_0x52c5('0x31')](_0x46b503[_0x52c5('0x2c')],_0x46b503[_0x52c5('0x2e')]);_0x376d51[_0x52c5('0x32')]=_[_0x52c5('0x31')](_0x46b503['model'],qs[_0x52c5('0x33')](_0x225bee['query'][_0x52c5('0x33')]));_0x376d51[_0x52c5('0x32')]=_0x376d51[_0x52c5('0x32')][_0x52c5('0x41')]?_0x376d51[_0x52c5('0x32')]:_0x46b503[_0x52c5('0x2c')];if(_0x225bee[_0x52c5('0x2e')]['includeAll']){_0x376d51[_0x52c5('0x3e')]=[{'all':!![]}];}_0x376d51=_[_0x52c5('0x3a')]({},_0x376d51,_0x225bee[_0x52c5('0x3b')]);return db[_0x52c5('0x28')][_0x52c5('0x42')](_0x376d51)[_0x52c5('0x10')](handleEntityNotFound(_0x56b329,null))[_0x52c5('0x10')](respondWithResult(_0x56b329,null))[_0x52c5('0x1b')](handleError(_0x56b329,null));};exports['create']=function(_0x433681,_0x4e2b1f){return db['WhatsappMessage'][_0x52c5('0x43')](_0x433681[_0x52c5('0x44')],{})['then'](respondWithResult(_0x4e2b1f,0xc9))[_0x52c5('0x1b')](handleError(_0x4e2b1f,null));};exports[_0x52c5('0x22')]=function(_0x15d53f,_0x21375d){if(_0x15d53f[_0x52c5('0x44')]['id']){delete _0x15d53f[_0x52c5('0x44')]['id'];}return db[_0x52c5('0x28')][_0x52c5('0x42')]({'where':{'id':_0x15d53f[_0x52c5('0x40')]['id']}})[_0x52c5('0x10')](handleEntityNotFound(_0x21375d,null))[_0x52c5('0x10')](saveUpdates(_0x15d53f[_0x52c5('0x44')],null))[_0x52c5('0x10')](respondWithResult(_0x21375d,null))[_0x52c5('0x1b')](handleError(_0x21375d,null));};exports[_0x52c5('0x45')]=function(_0x161c63,_0x348f13){return db['WhatsappMessage'][_0x52c5('0x42')]({'where':{'id':_0x161c63[_0x52c5('0x40')]['id']}})['then'](handleEntityNotFound(_0x348f13,null))[_0x52c5('0x10')](removeEntity(_0x348f13,null))[_0x52c5('0x1b')](handleError(_0x348f13,null));};exports['describe']=function(_0x945502,_0x4801c3){return db[_0x52c5('0x28')][_0x52c5('0x46')]()['then'](respondWithResult(_0x4801c3,null))['catch'](handleError(_0x4801c3,null));};exports[_0x52c5('0x47')]=function(_0x21fc88,_0x1df444){var _0x46f6cf='whatsapp';return interactionService[_0x52c5('0x48')](_0x21fc88,_0x46f6cf)['then'](respondWithResult(_0x1df444,null))[_0x52c5('0x1b')](handleError(_0x1df444,null));};exports['reject']=function(_0x5116a2,_0xb0a56c){var _0x299b88={'agent':{},'channel':'whatsapp'};if(_0x5116a2[_0x52c5('0x44')]['id']){delete _0x5116a2[_0x52c5('0x44')]['id'];}_0x5116a2[_0x52c5('0x44')][_0x52c5('0x49')]=_0x5116a2['body'][_0x52c5('0x49')]||_0x5116a2[_0x52c5('0x4a')]['id'];_0x299b88[_0x52c5('0x4b')]['id']=_0x5116a2[_0x52c5('0x44')]['UserId'];return db[_0x52c5('0x28')][_0x52c5('0x42')]({'where':{'id':_0x5116a2[_0x52c5('0x40')]['id'],'UserId':null}})[_0x52c5('0x10')](handleEntityNotFound(_0xb0a56c,null))[_0x52c5('0x10')](function(_0x377bbc){if(_0x377bbc){_0x299b88['message']=_0x377bbc[_0x52c5('0x4c')]({'plain':!![]});return db[_0x52c5('0x4d')][_0x52c5('0x42')]({'where':{'id':_0x377bbc[_0x52c5('0x4e')]}});}return null;})[_0x52c5('0x10')](handleEntityNotFound(_0xb0a56c,null))['then'](function(_0x57c477){if(_0x57c477){_0x299b88[_0x52c5('0x4f')]=_0x57c477[_0x52c5('0x4c')]({'plain':!![]});interaction_log[_0x52c5('0x19')]('[WHATSAPPMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x5116a2[_0x52c5('0x4a')]['id'],_0x5116a2[_0x52c5('0x4a')]['name'],_0x5116a2[_0x52c5('0x4a')][_0x52c5('0x50')],_0x299b88[_0x52c5('0x4f')]['id'],_0x5116a2['body']?JSON[_0x52c5('0x15')](_0x5116a2[_0x52c5('0x44')]):_0x52c5('0x51'));return respondWithRpcPromise('RejectMessage',_0x52c5('0x52'),_0x299b88);}return null;})[_0x52c5('0x10')](function(_0x5c3d92){var _0x15e1ed=_0x52c5('0x53')+_0x5c3d92[_0x52c5('0x18')]['ContactId'];return db['sequelize']['query'](_0x15e1ed,{'type':db[_0x52c5('0x54')][_0x52c5('0x55')][_0x52c5('0x56')],'raw':!![]})[_0x52c5('0x10')](function(_0x509fb1){return _0x509fb1;});})[_0x52c5('0x10')](function(_0x192dc9){if(_0x192dc9){_0x299b88[_0x52c5('0x18')][_0x52c5('0x57')]=_0x192dc9[0x0];if(!_0x5116a2[_0x52c5('0x44')][_0x52c5('0x49')])return;return db[_0x52c5('0x58')][_0x52c5('0x42')]({'where':{'id':_0x5116a2[_0x52c5('0x44')][_0x52c5('0x49')],'role':'agent'},'attributes':['id',_0x52c5('0x25'),_0x52c5('0x59'),_0x52c5('0x5a'),_0x52c5('0x5b')],'raw':!![]});}return null;})[_0x52c5('0x10')](function(_0x1dfa55){if(!_0x1dfa55)return null;_0x299b88[_0x52c5('0x18')][_0x52c5('0x4b')]=_0x1dfa55;return _0x299b88;})['then'](function(_0x5c7d92){if(_0x5c7d92){_0x5c7d92[_0x52c5('0x18')][_0x52c5('0x5c')]=util[_0x52c5('0x5d')](_0x52c5('0x5e'),_0x5116a2['user']['name']);_0x5c7d92['message'][_0x52c5('0x5f')]=_0x299b88[_0x52c5('0x5f')];_0x5c7d92['message'][_0x52c5('0x60')]=_0x299b88[_0x52c5('0x5f')];_0x5c7d92[_0x52c5('0x18')]['event']=_0x52c5('0x61');respondWithRpcPromise('EventManager','EventManager',{'event':_0x52c5('0x62'),'message':_0x5c7d92[_0x52c5('0x18')]},client9002);return _0x299b88;}return null;})[_0x52c5('0x10')](respondWithResult(_0xb0a56c,null))['catch'](handleError(_0xb0a56c,null));};exports['status']=function(_0x2435f1,_0x230b66){if(_0x2435f1['body']['id']){delete _0x2435f1[_0x52c5('0x44')]['id'];}var _0x891a37;return db[_0x52c5('0x28')][_0x52c5('0x42')]({'where':{'id':_0x2435f1[_0x52c5('0x40')]['id']}})[_0x52c5('0x10')](handleEntityNotFound(_0x230b66,null))[_0x52c5('0x10')](function(_0x12e942){if(_0x12e942){_0x891a37=_0x12e942;return db[_0x52c5('0x63')][_0x52c5('0x42')]({'where':{'id':_0x12e942[_0x52c5('0x64')]}});}})[_0x52c5('0x10')](handleEntityNotFound(_0x230b66,null))[_0x52c5('0x10')](function(_0x15a73c){if(_0x15a73c){logger['debug'](_0x52c5('0x65'),_0x52c5('0x1c'),_0x52c5('0x66'),_0x15a73c['type'],util[_0x52c5('0x67')](_0x2435f1[_0x52c5('0x44')],{'showHidden':![],'depth':null}));switch(_0x15a73c[_0x52c5('0x2a')]){case _0x52c5('0x68'):if(_0x2435f1['body']['MessageSid']&&_0x2435f1[_0x52c5('0x44')][_0x52c5('0x69')]===_0x891a37[_0x52c5('0x6a')]&&_0x2435f1[_0x52c5('0x44')][_0x52c5('0x6b')]&&_0x2435f1['body'][_0x52c5('0x6b')]===_0x52c5('0x6c')){return _0x891a37[_0x52c5('0x22')]({'read':!![]});}else{logger['error'](_0x52c5('0x6d'),_0x52c5('0x1c'),_0x52c5('0x68'),util[_0x52c5('0x67')](_0x2435f1['body'],{'showHidden':![],'depth':null}));}break;}return _0x891a37;}})[_0x52c5('0x10')](respondWithResult(_0x230b66,null))[_0x52c5('0x1b')](handleError(_0x230b66,null));};