Built motion from commit (unavailable).|2.5.23
[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 _0x753c=['channel','event','acceptmessage','[WHATSAPPMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','RejectMessage','rejectMessage','EventManager','WhatsappAccountId','received\x20delivery\x20report\x20from','inspect','twilio','MessageSid','messageId','MessageStatus','WhatsappAccount,\x20%s,\x20%s,\x20%s','eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util','redis','defaults','socket.io-emitter','./whatsappMessage.socket','jayson/promise','client','http','request','then','info','WhatsappMessage,\x20%s,\x20%s','request\x20sent','debug','WhatsappMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','status','end','json','count','offset','limit','set','Content-Range','apply','reject','update','destroy','sendStatus','stack','name','send','map','WhatsappMessage','rawAttributes','fieldName','model','keys','filters','intersection','query','fields','attributes','length','hasOwnProperty','order','sort','pick','filter','where','merge','type','VIRTUAL','includeAll','include','findAll','show','options','find','create','body','params','describe','../../config/logger','whatsapp-interactions','accept','whatsapp','read','readAt','UserId','user','agent','Contact','WhatsappInteraction','WhatsappInteractionId','isNil','read1stAt','format','YYYY-MM-DD\x20HH:mm:ss','interaction','get','[WHATSAPPMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','acceptMessage','interface','SIP/%s'];(function(_0x2ec461,_0x5f588a){var _0x28603d=function(_0x21114b){while(--_0x21114b){_0x2ec461['push'](_0x2ec461['shift']());}};_0x28603d(++_0x5f588a);}(_0x753c,0x96));var _0xc753=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0x753c[_0x501510];return _0x1e6ee5;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xc753('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xc753('0x1'));var jsonpatch=require(_0xc753('0x2'));var rp=require(_0xc753('0x3'));var moment=require(_0xc753('0x4'));var BPromise=require(_0xc753('0x5'));var Mustache=require(_0xc753('0x6'));var util=require(_0xc753('0x7'));var path=require(_0xc753('0x8'));var sox=require(_0xc753('0x9'));var csv=require(_0xc753('0xa'));var ejs=require(_0xc753('0xb'));var fs=require('fs');var _=require(_0xc753('0xc'));var squel=require(_0xc753('0xd'));var crypto=require(_0xc753('0xe'));var jsforce=require(_0xc753('0xf'));var deskjs=require(_0xc753('0x10'));var toCsv=require(_0xc753('0xa'));var querystring=require(_0xc753('0x11'));var Papa=require(_0xc753('0x12'));var Redis=require(_0xc753('0x13'));var authService=require(_0xc753('0x14'));var qs=require(_0xc753('0x15'));var as=require(_0xc753('0x16'));var hardwareService=require(_0xc753('0x17'));var logger=require('../../config/logger')(_0xc753('0x18'));var utils=require(_0xc753('0x19'));var config=require('../../config/environment');var licenseUtil=require(_0xc753('0x1a'));var db=require('../../mysqldb')['db'];config[_0xc753('0x1b')]=_[_0xc753('0x1c')](config[_0xc753('0x1b')],{'host':'localhost','port':0x18eb});var socket=require(_0xc753('0x1d'))(new Redis(config['redis']));require(_0xc753('0x1e'))['register'](socket);var jayson=require(_0xc753('0x1f'));var client=jayson[_0xc753('0x20')][_0xc753('0x21')]({'port':0x232c});var client9002=jayson[_0xc753('0x20')][_0xc753('0x21')]({'port':0x232a});function respondWithRpcPromise(_0x4fae9f,_0x1d4558,_0x33c647,_0x1f94f9){return new BPromise(function(_0x2e056c,_0x3a93eb){var _0x2757cc=_0x1f94f9||client;return _0x2757cc[_0xc753('0x22')](_0x4fae9f,_0x33c647)[_0xc753('0x23')](function(_0x5a3ea7){logger[_0xc753('0x24')](_0xc753('0x25'),_0x1d4558,_0xc753('0x26'));logger[_0xc753('0x27')](_0xc753('0x28'),_0x1d4558,_0xc753('0x26'),JSON[_0xc753('0x29')](_0x5a3ea7));if(_0x5a3ea7[_0xc753('0x2a')]){if(_0x5a3ea7[_0xc753('0x2a')][_0xc753('0x2b')]===0x1f4){logger[_0xc753('0x2a')](_0xc753('0x25'),_0x1d4558,_0x5a3ea7[_0xc753('0x2a')][_0xc753('0x2c')]);return _0x3a93eb(_0x5a3ea7[_0xc753('0x2a')][_0xc753('0x2c')]);}logger['error'](_0xc753('0x25'),_0x1d4558,_0x5a3ea7[_0xc753('0x2a')]['message']);return _0x2e056c(_0x5a3ea7['error'][_0xc753('0x2c')]);}else{logger[_0xc753('0x24')](_0xc753('0x25'),_0x1d4558,_0xc753('0x26'));_0x2e056c(_0x5a3ea7[_0xc753('0x2d')]['message']);}})[_0xc753('0x2e')](function(_0x254687){logger[_0xc753('0x2a')](_0xc753('0x25'),_0x1d4558,_0x254687);_0x3a93eb(_0x254687);});});}function respondWithStatusCode(_0x1ede62,_0x4d6cf4){_0x4d6cf4=_0x4d6cf4||0xcc;return function(_0xbacda1){if(_0xbacda1){return _0x1ede62['sendStatus'](_0x4d6cf4);}return _0x1ede62[_0xc753('0x2f')](_0x4d6cf4)[_0xc753('0x30')]();};}function respondWithResult(_0x1bffff,_0x2f5c9f){_0x2f5c9f=_0x2f5c9f||0xc8;return function(_0x51b460){if(_0x51b460){return _0x1bffff[_0xc753('0x2f')](_0x2f5c9f)[_0xc753('0x31')](_0x51b460);}};}function respondWithFilteredResult(_0x5d03bb,_0x20bf00){return function(_0x5b487e){if(_0x5b487e){var _0xed387e=_0x5b487e[_0xc753('0x32')],_0x5a39e2=_0x20bf00['offset'],_0x5ec317=_0x20bf00[_0xc753('0x33')]+_0x20bf00[_0xc753('0x34')],_0x32c188;if(_0x5ec317>=_0xed387e){_0x5ec317=_0xed387e;_0x32c188=0xc8;}else{_0x32c188=0xce;}_0x5d03bb[_0xc753('0x2f')](_0x32c188);return _0x5d03bb[_0xc753('0x35')](_0xc753('0x36'),_0x5a39e2+'-'+_0x5ec317+'/'+_0xed387e)['json'](_0x5b487e);}return null;};}function patchUpdates(_0x16e153){return function(_0x5159f4){try{jsonpatch[_0xc753('0x37')](_0x5159f4,_0x16e153,!![]);}catch(_0x315a1e){return BPromise[_0xc753('0x38')](_0x315a1e);}return _0x5159f4['save']();};}function saveUpdates(_0x13132c,_0x7c4a9e){return function(_0x17e44d){if(_0x17e44d){return _0x17e44d[_0xc753('0x39')](_0x13132c)[_0xc753('0x23')](function(_0x2d25ce){return _0x2d25ce;});}return null;};}function removeEntity(_0x14d64d,_0x2306ce){return function(_0x4f546f){if(_0x4f546f){return _0x4f546f[_0xc753('0x3a')]()[_0xc753('0x23')](function(){_0x14d64d[_0xc753('0x2f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x20afa5,_0x58f034){return function(_0x197224){if(!_0x197224){_0x20afa5[_0xc753('0x3b')](0x194);}return _0x197224;};}function handleError(_0x32397e,_0x213dc4){_0x213dc4=_0x213dc4||0x1f4;return function(_0x1f4c7c){logger[_0xc753('0x2a')](_0x1f4c7c[_0xc753('0x3c')]);if(_0x1f4c7c[_0xc753('0x3d')]){delete _0x1f4c7c[_0xc753('0x3d')];}_0x32397e['status'](_0x213dc4)[_0xc753('0x3e')](_0x1f4c7c);};}exports['index']=function(_0x5b91c2,_0x1c5925){var _0x3515ee={},_0x5e32e4={},_0x376cb9={'count':0x0,'rows':[]};var _0x344d49=_[_0xc753('0x3f')](db[_0xc753('0x40')][_0xc753('0x41')],function(_0x1b164d){return{'name':_0x1b164d[_0xc753('0x42')],'type':_0x1b164d['type']['key']};});_0x5e32e4[_0xc753('0x43')]=_[_0xc753('0x3f')](_0x344d49,_0xc753('0x3d'));_0x5e32e4['query']=_[_0xc753('0x44')](_0x5b91c2['query']);_0x5e32e4[_0xc753('0x45')]=_[_0xc753('0x46')](_0x5e32e4[_0xc753('0x43')],_0x5e32e4[_0xc753('0x47')]);_0x3515ee['attributes']=_[_0xc753('0x46')](_0x5e32e4[_0xc753('0x43')],qs[_0xc753('0x48')](_0x5b91c2['query']['fields']));_0x3515ee[_0xc753('0x49')]=_0x3515ee[_0xc753('0x49')][_0xc753('0x4a')]?_0x3515ee[_0xc753('0x49')]:_0x5e32e4['model'];if(!_0x5b91c2[_0xc753('0x47')][_0xc753('0x4b')]('nolimit')){_0x3515ee[_0xc753('0x34')]=qs[_0xc753('0x34')](_0x5b91c2[_0xc753('0x47')][_0xc753('0x34')]);_0x3515ee[_0xc753('0x33')]=qs['offset'](_0x5b91c2[_0xc753('0x47')][_0xc753('0x33')]);}_0x3515ee[_0xc753('0x4c')]=qs[_0xc753('0x4d')](_0x5b91c2[_0xc753('0x47')][_0xc753('0x4d')]);_0x3515ee['where']=qs[_0xc753('0x45')](_[_0xc753('0x4e')](_0x5b91c2[_0xc753('0x47')],_0x5e32e4[_0xc753('0x45')]),_0x344d49);if(_0x5b91c2[_0xc753('0x47')][_0xc753('0x4f')]){_0x3515ee[_0xc753('0x50')]=_[_0xc753('0x51')](_0x3515ee['where'],{'$or':_[_0xc753('0x3f')](_0x344d49,function(_0x2870fe){if(_0x2870fe[_0xc753('0x52')]!==_0xc753('0x53')){var _0x5542eb={};_0x5542eb[_0x2870fe[_0xc753('0x3d')]]={'$like':'%'+_0x5b91c2[_0xc753('0x47')][_0xc753('0x4f')]+'%'};return _0x5542eb;}})});}_0x3515ee=_[_0xc753('0x51')]({},_0x3515ee,_0x5b91c2['options']);var _0xa67543={'where':_0x3515ee['where']};return db[_0xc753('0x40')]['count'](_0xa67543)['then'](function(_0x5e8d56){_0x376cb9[_0xc753('0x32')]=_0x5e8d56;if(_0x5b91c2[_0xc753('0x47')][_0xc753('0x54')]){_0x3515ee[_0xc753('0x55')]=[{'all':!![]}];}return db[_0xc753('0x40')][_0xc753('0x56')](_0x3515ee);})[_0xc753('0x23')](function(_0x3cbbdc){_0x376cb9['rows']=_0x3cbbdc;return _0x376cb9;})[_0xc753('0x23')](respondWithFilteredResult(_0x1c5925,_0x3515ee))[_0xc753('0x2e')](handleError(_0x1c5925,null));};exports[_0xc753('0x57')]=function(_0x1458c7,_0x258388){var _0x3435bf={'raw':!![],'where':{'id':_0x1458c7['params']['id']}},_0x52e92f={};_0x52e92f[_0xc753('0x43')]=_[_0xc753('0x44')](db[_0xc753('0x40')]['rawAttributes']);_0x52e92f[_0xc753('0x47')]=_[_0xc753('0x44')](_0x1458c7[_0xc753('0x47')]);_0x52e92f[_0xc753('0x45')]=_['intersection'](_0x52e92f[_0xc753('0x43')],_0x52e92f[_0xc753('0x47')]);_0x3435bf['attributes']=_[_0xc753('0x46')](_0x52e92f[_0xc753('0x43')],qs['fields'](_0x1458c7[_0xc753('0x47')]['fields']));_0x3435bf[_0xc753('0x49')]=_0x3435bf[_0xc753('0x49')][_0xc753('0x4a')]?_0x3435bf['attributes']:_0x52e92f[_0xc753('0x43')];if(_0x1458c7[_0xc753('0x47')][_0xc753('0x54')]){_0x3435bf[_0xc753('0x55')]=[{'all':!![]}];}_0x3435bf=_['merge']({},_0x3435bf,_0x1458c7[_0xc753('0x58')]);return db[_0xc753('0x40')][_0xc753('0x59')](_0x3435bf)[_0xc753('0x23')](handleEntityNotFound(_0x258388,null))[_0xc753('0x23')](respondWithResult(_0x258388,null))[_0xc753('0x2e')](handleError(_0x258388,null));};exports[_0xc753('0x5a')]=function(_0x2cdcf8,_0x1b6c9d){return db['WhatsappMessage'][_0xc753('0x5a')](_0x2cdcf8['body'],{})[_0xc753('0x23')](respondWithResult(_0x1b6c9d,0xc9))['catch'](handleError(_0x1b6c9d,null));};exports[_0xc753('0x39')]=function(_0x5f1101,_0x34885a){if(_0x5f1101['body']['id']){delete _0x5f1101[_0xc753('0x5b')]['id'];}return db[_0xc753('0x40')][_0xc753('0x59')]({'where':{'id':_0x5f1101[_0xc753('0x5c')]['id']}})[_0xc753('0x23')](handleEntityNotFound(_0x34885a,null))[_0xc753('0x23')](saveUpdates(_0x5f1101[_0xc753('0x5b')],null))[_0xc753('0x23')](respondWithResult(_0x34885a,null))['catch'](handleError(_0x34885a,null));};exports['destroy']=function(_0x429e98,_0x197cc0){return db[_0xc753('0x40')][_0xc753('0x59')]({'where':{'id':_0x429e98[_0xc753('0x5c')]['id']}})['then'](handleEntityNotFound(_0x197cc0,null))[_0xc753('0x23')](removeEntity(_0x197cc0,null))[_0xc753('0x2e')](handleError(_0x197cc0,null));};exports[_0xc753('0x5d')]=function(_0x517318,_0x15733a){return db[_0xc753('0x40')][_0xc753('0x5d')]()['then'](respondWithResult(_0x15733a,null))[_0xc753('0x2e')](handleError(_0x15733a,null));};var interaction_log=require(_0xc753('0x5e'))(_0xc753('0x5f'));exports[_0xc753('0x60')]=function(_0x43975a,_0x5cb969,_0x593945){var _0xc2cd80={'agent':{},'channel':_0xc753('0x61')};if(_0x43975a['body']['id']){delete _0x43975a[_0xc753('0x5b')]['id'];}_0x43975a['body'][_0xc753('0x62')]=!![];_0x43975a[_0xc753('0x5b')][_0xc753('0x63')]=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');_0x43975a[_0xc753('0x5b')][_0xc753('0x64')]=_0x43975a[_0xc753('0x5b')]['UserId']||_0x43975a[_0xc753('0x65')]['id'];_0xc2cd80[_0xc753('0x66')]['id']=_0x43975a[_0xc753('0x5b')][_0xc753('0x64')];return db[_0xc753('0x40')][_0xc753('0x59')]({'where':{'id':_0x43975a[_0xc753('0x5c')]['id'],'UserId':null},'include':[{'model':db['CmContact'],'as':_0xc753('0x67')}]})[_0xc753('0x23')](handleEntityNotFound(_0x5cb969,null))[_0xc753('0x23')](saveUpdates(_0x43975a[_0xc753('0x5b')],null))['then'](function(_0x21a842){if(_0x21a842){_0xc2cd80['message']=_0x21a842['get']({'plain':!![]});return db[_0xc753('0x68')][_0xc753('0x59')]({'where':{'id':_0x21a842[_0xc753('0x69')]}});}return null;})[_0xc753('0x23')](handleEntityNotFound(_0x5cb969,null))['then'](function(_0x3cf7b2){if(_0x3cf7b2){return _0x3cf7b2[_0xc753('0x39')]({'UserId':_0x43975a['body'][_0xc753('0x64')],'read1stAt':_[_0xc753('0x6a')](_0x3cf7b2[_0xc753('0x6b')])?moment()[_0xc753('0x6c')](_0xc753('0x6d')):undefined});}return null;})[_0xc753('0x23')](function(_0x5189d6){if(_0x5189d6){_0xc2cd80[_0xc753('0x6e')]=_0x5189d6[_0xc753('0x6f')]({'plain':!![]});interaction_log[_0xc753('0x24')](_0xc753('0x70'),_0x43975a[_0xc753('0x65')]['id'],_0x43975a[_0xc753('0x65')][_0xc753('0x3d')],_0x43975a[_0xc753('0x65')]['role'],_0xc2cd80['interaction']['id'],_0x43975a[_0xc753('0x5b')]?JSON['stringify'](_0x43975a[_0xc753('0x5b')]):'null');return respondWithRpcPromise('AcceptMessage',_0xc753('0x71'),_0xc2cd80);}return null;})[_0xc753('0x23')](function(_0x4a90ee){if(_0x4a90ee){if(_0x43975a[_0xc753('0x5b')]['manual']){_0xc2cd80[_0xc753('0x2c')][_0xc753('0x72')]=util['format'](_0xc753('0x73'),_0x43975a[_0xc753('0x65')][_0xc753('0x3d')]);_0xc2cd80[_0xc753('0x2c')][_0xc753('0x74')]=_0xc2cd80[_0xc753('0x74')];_0xc2cd80[_0xc753('0x2c')][_0xc753('0x75')]=_0xc753('0x60');return respondWithRpcPromise('EventManager','EventManager',{'event':_0xc753('0x76'),'message':_0xc2cd80['message']},client9002)[_0xc753('0x23')](function(){return _0xc2cd80;});}return _0xc2cd80;}return null;})['then'](respondWithResult(_0x5cb969,null))['catch'](handleError(_0x5cb969,null));};var interaction_log=require('../../config/logger')('whatsapp-interactions');exports[_0xc753('0x38')]=function(_0x58598b,_0x4807e7,_0x47e27a){var _0x5d116b={'agent':{},'channel':'whatsapp'};if(_0x58598b[_0xc753('0x5b')]['id']){delete _0x58598b[_0xc753('0x5b')]['id'];}_0x58598b[_0xc753('0x5b')][_0xc753('0x64')]=_0x58598b['body'][_0xc753('0x64')]||_0x58598b['user']['id'];_0x5d116b[_0xc753('0x66')]['id']=_0x58598b['body'][_0xc753('0x64')];return db[_0xc753('0x40')]['find']({'where':{'id':_0x58598b['params']['id'],'UserId':null}})[_0xc753('0x23')](handleEntityNotFound(_0x4807e7,null))[_0xc753('0x23')](function(_0x3cbea1){if(_0x3cbea1){_0x5d116b[_0xc753('0x2c')]=_0x3cbea1[_0xc753('0x6f')]({'plain':!![]});return db[_0xc753('0x68')][_0xc753('0x59')]({'where':{'id':_0x3cbea1['WhatsappInteractionId']}});}return null;})['then'](handleEntityNotFound(_0x4807e7,null))[_0xc753('0x23')](function(_0x73efa1){if(_0x73efa1){_0x5d116b['interaction']=_0x73efa1[_0xc753('0x6f')]({'plain':!![]});interaction_log[_0xc753('0x24')](_0xc753('0x77'),_0x58598b[_0xc753('0x65')]['id'],_0x58598b['user'][_0xc753('0x3d')],_0x58598b[_0xc753('0x65')][_0xc753('0x78')],_0x5d116b[_0xc753('0x6e')]['id'],_0x58598b[_0xc753('0x5b')]?JSON[_0xc753('0x29')](_0x58598b[_0xc753('0x5b')]):_0xc753('0x79'));return respondWithRpcPromise(_0xc753('0x7a'),_0xc753('0x7b'),_0x5d116b);}return null;})[_0xc753('0x23')](function(_0x40c7de){if(_0x40c7de){_0x40c7de['message']['interface']=util['format'](_0xc753('0x73'),_0x58598b[_0xc753('0x65')][_0xc753('0x3d')]);_0x40c7de['message'][_0xc753('0x74')]=_0x5d116b[_0xc753('0x74')];_0x40c7de[_0xc753('0x2c')][_0xc753('0x75')]=_0xc753('0x38');respondWithRpcPromise(_0xc753('0x7c'),_0xc753('0x7c'),{'event':'rejectmessage','message':_0x40c7de[_0xc753('0x2c')]},client9002);return _0x5d116b;}return null;})[_0xc753('0x23')](respondWithResult(_0x4807e7,null))[_0xc753('0x2e')](handleError(_0x4807e7,null));};exports['status']=function(_0x25abd4,_0x437e76,_0x7091c0){if(_0x25abd4[_0xc753('0x5b')]['id']){delete _0x25abd4[_0xc753('0x5b')]['id'];}var _0x522c14;return db[_0xc753('0x40')]['find']({'where':{'id':_0x25abd4['params']['id']}})['then'](handleEntityNotFound(_0x437e76,null))['then'](function(_0x4d361a){if(_0x4d361a){_0x522c14=_0x4d361a;return db['WhatsappAccount'][_0xc753('0x59')]({'where':{'id':_0x4d361a[_0xc753('0x7d')]}});}})[_0xc753('0x23')](handleEntityNotFound(_0x437e76,null))[_0xc753('0x23')](function(_0x2293f8){if(_0x2293f8){logger[_0xc753('0x27')]('WhatsppMessage,\x20%s,\x20%s,\x20%s',_0xc753('0x2f'),_0xc753('0x7e'),_0x2293f8[_0xc753('0x52')],util[_0xc753('0x7f')](_0x25abd4[_0xc753('0x5b')],{'showHidden':![],'depth':null}));switch(_0x2293f8[_0xc753('0x52')]){case _0xc753('0x80'):if(_0x25abd4[_0xc753('0x5b')][_0xc753('0x81')]&&_0x25abd4[_0xc753('0x5b')][_0xc753('0x81')]===_0x522c14[_0xc753('0x82')]&&_0x25abd4['body']['MessageStatus']&&_0x25abd4['body'][_0xc753('0x83')]===_0xc753('0x62')){return _0x522c14[_0xc753('0x39')]({'read':!![]});}else{logger[_0xc753('0x2a')](_0xc753('0x84'),_0xc753('0x2f'),'twilio',util[_0xc753('0x7f')](_0x25abd4[_0xc753('0x5b')],{'showHidden':![],'depth':null}));}break;}return _0x522c14;}})[_0xc753('0x23')](respondWithResult(_0x437e76,null))[_0xc753('0x2e')](handleError(_0x437e76,null));};