Built motion from commit (unavailable).|2.5.22
[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 _0xb91a=['redis','localhost','./whatsappMessage.socket','register','jayson/promise','client','http','request','then','WhatsappMessage,\x20%s,\x20%s','request\x20sent','debug','WhatsappMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','catch','sendStatus','end','json','count','offset','limit','status','set','Content-Range','reject','save','update','destroy','stack','send','WhatsappMessage','rawAttributes','fieldName','type','key','model','query','keys','intersection','fields','attributes','hasOwnProperty','order','sort','where','filters','pick','filter','merge','map','options','include','findAll','rows','show','params','find','create','body','describe','../../config/logger','whatsapp-interactions','accept','read','YYYY-MM-DD\x20HH:mm:ss','UserId','user','CmContact','Contact','get','WhatsappInteractionId','isNil','read1stAt','format','interaction','[WHATSAPPMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','name','role','null','AcceptMessage','manual','interface','channel','event','EventManager','acceptmessage','whatsapp','agent','WhatsappInteraction','[WHATSAPPMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','rejectMessage','SIP/%s','rejectmessage','WhatsappAccount','received\x20delivery\x20report\x20from','inspect','twilio','MessageSid','messageId','MessageStatus','WhatsappAccount,\x20%s,\x20%s,\x20%s','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','util','to-csv','ejs','squel','crypto','desk.js','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/license/util'];(function(_0x2dafbe,_0x5d04de){var _0x58a45a=function(_0x50ac96){while(--_0x50ac96){_0x2dafbe['push'](_0x2dafbe['shift']());}};_0x58a45a(++_0x5d04de);}(_0xb91a,0xe5));var _0xab91=function(_0x1d027a,_0x56171a){_0x1d027a=_0x1d027a-0x0;var _0x4a47e0=_0xb91a[_0x1d027a];return _0x4a47e0;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0xab91('0x0'));var rimraf=require(_0xab91('0x1'));var zipdir=require(_0xab91('0x2'));var jsonpatch=require(_0xab91('0x3'));var rp=require('request-promise');var moment=require(_0xab91('0x4'));var BPromise=require(_0xab91('0x5'));var Mustache=require('mustache');var util=require(_0xab91('0x6'));var path=require('path');var sox=require('sox');var csv=require(_0xab91('0x7'));var ejs=require(_0xab91('0x8'));var fs=require('fs');var _=require('lodash');var squel=require(_0xab91('0x9'));var crypto=require(_0xab91('0xa'));var jsforce=require('jsforce');var deskjs=require(_0xab91('0xb'));var toCsv=require(_0xab91('0x7'));var querystring=require('querystring');var Papa=require('papaparse');var Redis=require('ioredis');var authService=require(_0xab91('0xc'));var qs=require(_0xab91('0xd'));var as=require(_0xab91('0xe'));var hardwareService=require(_0xab91('0xf'));var logger=require('../../config/logger')(_0xab91('0x10'));var utils=require(_0xab91('0x11'));var config=require('../../config/environment');var licenseUtil=require(_0xab91('0x12'));var db=require('../../mysqldb')['db'];config[_0xab91('0x13')]=_['defaults'](config['redis'],{'host':_0xab91('0x14'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xab91('0x13')]));require(_0xab91('0x15'))[_0xab91('0x16')](socket);var jayson=require(_0xab91('0x17'));var client=jayson[_0xab91('0x18')][_0xab91('0x19')]({'port':0x232c});var client9002=jayson['client'][_0xab91('0x19')]({'port':0x232a});function respondWithRpcPromise(_0x52614f,_0x23c3d8,_0xbf0ed8,_0x312a4e){return new BPromise(function(_0x32df88,_0x4e464c){var _0x434dcd=_0x312a4e||client;return _0x434dcd[_0xab91('0x1a')](_0x52614f,_0xbf0ed8)[_0xab91('0x1b')](function(_0x5835e1){logger['info'](_0xab91('0x1c'),_0x23c3d8,_0xab91('0x1d'));logger[_0xab91('0x1e')](_0xab91('0x1f'),_0x23c3d8,_0xab91('0x1d'),JSON[_0xab91('0x20')](_0x5835e1));if(_0x5835e1[_0xab91('0x21')]){if(_0x5835e1[_0xab91('0x21')][_0xab91('0x22')]===0x1f4){logger[_0xab91('0x21')]('WhatsappMessage,\x20%s,\x20%s',_0x23c3d8,_0x5835e1[_0xab91('0x21')][_0xab91('0x23')]);return _0x4e464c(_0x5835e1[_0xab91('0x21')]['message']);}logger['error'](_0xab91('0x1c'),_0x23c3d8,_0x5835e1[_0xab91('0x21')][_0xab91('0x23')]);return _0x32df88(_0x5835e1['error']['message']);}else{logger[_0xab91('0x24')]('WhatsappMessage,\x20%s,\x20%s',_0x23c3d8,_0xab91('0x1d'));_0x32df88(_0x5835e1['result']['message']);}})[_0xab91('0x25')](function(_0x43f334){logger[_0xab91('0x21')](_0xab91('0x1c'),_0x23c3d8,_0x43f334);_0x4e464c(_0x43f334);});});}function respondWithStatusCode(_0x239542,_0x70e00e){_0x70e00e=_0x70e00e||0xcc;return function(_0x26c96f){if(_0x26c96f){return _0x239542[_0xab91('0x26')](_0x70e00e);}return _0x239542['status'](_0x70e00e)[_0xab91('0x27')]();};}function respondWithResult(_0x364b84,_0x1a3f68){_0x1a3f68=_0x1a3f68||0xc8;return function(_0x235713){if(_0x235713){return _0x364b84['status'](_0x1a3f68)[_0xab91('0x28')](_0x235713);}};}function respondWithFilteredResult(_0x284270,_0x5ec525){return function(_0x59e66a){if(_0x59e66a){var _0x3e3a94=_0x59e66a[_0xab91('0x29')],_0x2d45c8=_0x5ec525[_0xab91('0x2a')],_0x223df1=_0x5ec525[_0xab91('0x2a')]+_0x5ec525[_0xab91('0x2b')],_0x353040;if(_0x223df1>=_0x3e3a94){_0x223df1=_0x3e3a94;_0x353040=0xc8;}else{_0x353040=0xce;}_0x284270[_0xab91('0x2c')](_0x353040);return _0x284270[_0xab91('0x2d')](_0xab91('0x2e'),_0x2d45c8+'-'+_0x223df1+'/'+_0x3e3a94)['json'](_0x59e66a);}return null;};}function patchUpdates(_0x146c64){return function(_0x3db5c2){try{jsonpatch['apply'](_0x3db5c2,_0x146c64,!![]);}catch(_0x419de9){return BPromise[_0xab91('0x2f')](_0x419de9);}return _0x3db5c2[_0xab91('0x30')]();};}function saveUpdates(_0x564cda,_0x111d70){return function(_0x4f6818){if(_0x4f6818){return _0x4f6818[_0xab91('0x31')](_0x564cda)[_0xab91('0x1b')](function(_0x4a254a){return _0x4a254a;});}return null;};}function removeEntity(_0x189983,_0x27cfb7){return function(_0x5dca20){if(_0x5dca20){return _0x5dca20[_0xab91('0x32')]()[_0xab91('0x1b')](function(){_0x189983[_0xab91('0x2c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1c2394,_0x7b63a4){return function(_0x48481f){if(!_0x48481f){_0x1c2394[_0xab91('0x26')](0x194);}return _0x48481f;};}function handleError(_0x2c52e1,_0x6142c0){_0x6142c0=_0x6142c0||0x1f4;return function(_0x54fa99){logger['error'](_0x54fa99[_0xab91('0x33')]);if(_0x54fa99['name']){delete _0x54fa99['name'];}_0x2c52e1[_0xab91('0x2c')](_0x6142c0)[_0xab91('0x34')](_0x54fa99);};}exports['index']=function(_0x619730,_0x2a6b57){var _0x43833a={},_0x11615e={},_0x1f48dc={'count':0x0,'rows':[]};var _0x72c16d=_['map'](db[_0xab91('0x35')][_0xab91('0x36')],function(_0x3d1618){return{'name':_0x3d1618[_0xab91('0x37')],'type':_0x3d1618[_0xab91('0x38')][_0xab91('0x39')]};});_0x11615e[_0xab91('0x3a')]=_['map'](_0x72c16d,'name');_0x11615e[_0xab91('0x3b')]=_[_0xab91('0x3c')](_0x619730['query']);_0x11615e['filters']=_[_0xab91('0x3d')](_0x11615e['model'],_0x11615e[_0xab91('0x3b')]);_0x43833a['attributes']=_[_0xab91('0x3d')](_0x11615e[_0xab91('0x3a')],qs['fields'](_0x619730['query'][_0xab91('0x3e')]));_0x43833a[_0xab91('0x3f')]=_0x43833a['attributes']['length']?_0x43833a['attributes']:_0x11615e[_0xab91('0x3a')];if(!_0x619730[_0xab91('0x3b')][_0xab91('0x40')]('nolimit')){_0x43833a[_0xab91('0x2b')]=qs[_0xab91('0x2b')](_0x619730[_0xab91('0x3b')][_0xab91('0x2b')]);_0x43833a[_0xab91('0x2a')]=qs[_0xab91('0x2a')](_0x619730[_0xab91('0x3b')][_0xab91('0x2a')]);}_0x43833a[_0xab91('0x41')]=qs[_0xab91('0x42')](_0x619730[_0xab91('0x3b')]['sort']);_0x43833a[_0xab91('0x43')]=qs[_0xab91('0x44')](_[_0xab91('0x45')](_0x619730[_0xab91('0x3b')],_0x11615e[_0xab91('0x44')]),_0x72c16d);if(_0x619730[_0xab91('0x3b')][_0xab91('0x46')]){_0x43833a[_0xab91('0x43')]=_[_0xab91('0x47')](_0x43833a[_0xab91('0x43')],{'$or':_[_0xab91('0x48')](_0x72c16d,function(_0x41be98){if(_0x41be98[_0xab91('0x38')]!=='VIRTUAL'){var _0x38aadb={};_0x38aadb[_0x41be98['name']]={'$like':'%'+_0x619730['query'][_0xab91('0x46')]+'%'};return _0x38aadb;}})});}_0x43833a=_['merge']({},_0x43833a,_0x619730[_0xab91('0x49')]);var _0xd63fb4={'where':_0x43833a[_0xab91('0x43')]};return db[_0xab91('0x35')][_0xab91('0x29')](_0xd63fb4)[_0xab91('0x1b')](function(_0x575266){_0x1f48dc[_0xab91('0x29')]=_0x575266;if(_0x619730[_0xab91('0x3b')]['includeAll']){_0x43833a[_0xab91('0x4a')]=[{'all':!![]}];}return db[_0xab91('0x35')][_0xab91('0x4b')](_0x43833a);})[_0xab91('0x1b')](function(_0x4feb03){_0x1f48dc[_0xab91('0x4c')]=_0x4feb03;return _0x1f48dc;})['then'](respondWithFilteredResult(_0x2a6b57,_0x43833a))['catch'](handleError(_0x2a6b57,null));};exports[_0xab91('0x4d')]=function(_0x2f0619,_0x540a72){var _0x2393e4={'raw':!![],'where':{'id':_0x2f0619[_0xab91('0x4e')]['id']}},_0x5b2e15={};_0x5b2e15['model']=_[_0xab91('0x3c')](db[_0xab91('0x35')][_0xab91('0x36')]);_0x5b2e15[_0xab91('0x3b')]=_[_0xab91('0x3c')](_0x2f0619[_0xab91('0x3b')]);_0x5b2e15[_0xab91('0x44')]=_[_0xab91('0x3d')](_0x5b2e15['model'],_0x5b2e15[_0xab91('0x3b')]);_0x2393e4[_0xab91('0x3f')]=_[_0xab91('0x3d')](_0x5b2e15['model'],qs[_0xab91('0x3e')](_0x2f0619[_0xab91('0x3b')][_0xab91('0x3e')]));_0x2393e4[_0xab91('0x3f')]=_0x2393e4[_0xab91('0x3f')]['length']?_0x2393e4['attributes']:_0x5b2e15[_0xab91('0x3a')];if(_0x2f0619[_0xab91('0x3b')]['includeAll']){_0x2393e4[_0xab91('0x4a')]=[{'all':!![]}];}_0x2393e4=_[_0xab91('0x47')]({},_0x2393e4,_0x2f0619[_0xab91('0x49')]);return db[_0xab91('0x35')][_0xab91('0x4f')](_0x2393e4)[_0xab91('0x1b')](handleEntityNotFound(_0x540a72,null))['then'](respondWithResult(_0x540a72,null))[_0xab91('0x25')](handleError(_0x540a72,null));};exports[_0xab91('0x50')]=function(_0x4cafb3,_0x404b66){return db[_0xab91('0x35')][_0xab91('0x50')](_0x4cafb3[_0xab91('0x51')],{})[_0xab91('0x1b')](respondWithResult(_0x404b66,0xc9))[_0xab91('0x25')](handleError(_0x404b66,null));};exports[_0xab91('0x31')]=function(_0x52e3c9,_0x4aaeb9){if(_0x52e3c9[_0xab91('0x51')]['id']){delete _0x52e3c9[_0xab91('0x51')]['id'];}return db['WhatsappMessage'][_0xab91('0x4f')]({'where':{'id':_0x52e3c9[_0xab91('0x4e')]['id']}})['then'](handleEntityNotFound(_0x4aaeb9,null))[_0xab91('0x1b')](saveUpdates(_0x52e3c9['body'],null))['then'](respondWithResult(_0x4aaeb9,null))[_0xab91('0x25')](handleError(_0x4aaeb9,null));};exports[_0xab91('0x32')]=function(_0x4aa7e5,_0x550159){return db[_0xab91('0x35')][_0xab91('0x4f')]({'where':{'id':_0x4aa7e5[_0xab91('0x4e')]['id']}})['then'](handleEntityNotFound(_0x550159,null))[_0xab91('0x1b')](removeEntity(_0x550159,null))[_0xab91('0x25')](handleError(_0x550159,null));};exports[_0xab91('0x52')]=function(_0x1628f8,_0x3b0276){return db[_0xab91('0x35')]['describe']()[_0xab91('0x1b')](respondWithResult(_0x3b0276,null))['catch'](handleError(_0x3b0276,null));};var interaction_log=require(_0xab91('0x53'))(_0xab91('0x54'));exports[_0xab91('0x55')]=function(_0xc90d7b,_0x2c5c4c,_0x40f172){var _0x2049b9={'agent':{},'channel':'whatsapp'};if(_0xc90d7b[_0xab91('0x51')]['id']){delete _0xc90d7b['body']['id'];}_0xc90d7b[_0xab91('0x51')][_0xab91('0x56')]=!![];_0xc90d7b[_0xab91('0x51')]['readAt']=moment()['format'](_0xab91('0x57'));_0xc90d7b[_0xab91('0x51')][_0xab91('0x58')]=_0xc90d7b[_0xab91('0x51')]['UserId']||_0xc90d7b[_0xab91('0x59')]['id'];_0x2049b9['agent']['id']=_0xc90d7b[_0xab91('0x51')][_0xab91('0x58')];return db['WhatsappMessage'][_0xab91('0x4f')]({'where':{'id':_0xc90d7b[_0xab91('0x4e')]['id'],'UserId':null},'include':[{'model':db[_0xab91('0x5a')],'as':_0xab91('0x5b')}]})[_0xab91('0x1b')](handleEntityNotFound(_0x2c5c4c,null))[_0xab91('0x1b')](saveUpdates(_0xc90d7b[_0xab91('0x51')],null))[_0xab91('0x1b')](function(_0xc5ae9){if(_0xc5ae9){_0x2049b9[_0xab91('0x23')]=_0xc5ae9[_0xab91('0x5c')]({'plain':!![]});return db['WhatsappInteraction'][_0xab91('0x4f')]({'where':{'id':_0xc5ae9[_0xab91('0x5d')]}});}return null;})[_0xab91('0x1b')](handleEntityNotFound(_0x2c5c4c,null))[_0xab91('0x1b')](function(_0x5eb7b7){if(_0x5eb7b7){return _0x5eb7b7[_0xab91('0x31')]({'UserId':_0xc90d7b[_0xab91('0x51')]['UserId'],'read1stAt':_[_0xab91('0x5e')](_0x5eb7b7[_0xab91('0x5f')])?moment()[_0xab91('0x60')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0xab91('0x1b')](function(_0x9eab34){if(_0x9eab34){_0x2049b9[_0xab91('0x61')]=_0x9eab34[_0xab91('0x5c')]({'plain':!![]});interaction_log[_0xab91('0x24')](_0xab91('0x62'),_0xc90d7b[_0xab91('0x59')]['id'],_0xc90d7b['user'][_0xab91('0x63')],_0xc90d7b['user'][_0xab91('0x64')],_0x2049b9['interaction']['id'],_0xc90d7b[_0xab91('0x51')]?JSON['stringify'](_0xc90d7b[_0xab91('0x51')]):_0xab91('0x65'));return respondWithRpcPromise(_0xab91('0x66'),'acceptMessage',_0x2049b9);}return null;})['then'](function(_0x295aaa){if(_0x295aaa){if(_0xc90d7b[_0xab91('0x51')][_0xab91('0x67')]){_0x2049b9[_0xab91('0x23')][_0xab91('0x68')]=util[_0xab91('0x60')]('SIP/%s',_0xc90d7b['user'][_0xab91('0x63')]);_0x2049b9[_0xab91('0x23')][_0xab91('0x69')]=_0x2049b9['channel'];_0x2049b9[_0xab91('0x23')][_0xab91('0x6a')]=_0xab91('0x55');return respondWithRpcPromise(_0xab91('0x6b'),_0xab91('0x6b'),{'event':_0xab91('0x6c'),'message':_0x2049b9['message']},client9002)['then'](function(){return _0x2049b9;});}return _0x2049b9;}return null;})[_0xab91('0x1b')](respondWithResult(_0x2c5c4c,null))['catch'](handleError(_0x2c5c4c,null));};var interaction_log=require(_0xab91('0x53'))(_0xab91('0x54'));exports[_0xab91('0x2f')]=function(_0x426af6,_0x5b360f,_0x59fe78){var _0x5a81c5={'agent':{},'channel':_0xab91('0x6d')};if(_0x426af6[_0xab91('0x51')]['id']){delete _0x426af6[_0xab91('0x51')]['id'];}_0x426af6[_0xab91('0x51')][_0xab91('0x58')]=_0x426af6['body'][_0xab91('0x58')]||_0x426af6[_0xab91('0x59')]['id'];_0x5a81c5[_0xab91('0x6e')]['id']=_0x426af6[_0xab91('0x51')][_0xab91('0x58')];return db[_0xab91('0x35')][_0xab91('0x4f')]({'where':{'id':_0x426af6['params']['id'],'UserId':null}})['then'](handleEntityNotFound(_0x5b360f,null))[_0xab91('0x1b')](function(_0xa5ec3f){if(_0xa5ec3f){_0x5a81c5[_0xab91('0x23')]=_0xa5ec3f['get']({'plain':!![]});return db[_0xab91('0x6f')][_0xab91('0x4f')]({'where':{'id':_0xa5ec3f[_0xab91('0x5d')]}});}return null;})[_0xab91('0x1b')](handleEntityNotFound(_0x5b360f,null))[_0xab91('0x1b')](function(_0x48edc7){if(_0x48edc7){_0x5a81c5[_0xab91('0x61')]=_0x48edc7[_0xab91('0x5c')]({'plain':!![]});interaction_log['info'](_0xab91('0x70'),_0x426af6[_0xab91('0x59')]['id'],_0x426af6[_0xab91('0x59')][_0xab91('0x63')],_0x426af6['user']['role'],_0x5a81c5[_0xab91('0x61')]['id'],_0x426af6[_0xab91('0x51')]?JSON['stringify'](_0x426af6[_0xab91('0x51')]):_0xab91('0x65'));return respondWithRpcPromise('RejectMessage',_0xab91('0x71'),_0x5a81c5);}return null;})['then'](function(_0x11760f){if(_0x11760f){_0x11760f[_0xab91('0x23')][_0xab91('0x68')]=util[_0xab91('0x60')](_0xab91('0x72'),_0x426af6['user'][_0xab91('0x63')]);_0x11760f[_0xab91('0x23')][_0xab91('0x69')]=_0x5a81c5[_0xab91('0x69')];_0x11760f[_0xab91('0x23')][_0xab91('0x6a')]='reject';respondWithRpcPromise(_0xab91('0x6b'),'EventManager',{'event':_0xab91('0x73'),'message':_0x11760f[_0xab91('0x23')]},client9002);return _0x5a81c5;}return null;})['then'](respondWithResult(_0x5b360f,null))['catch'](handleError(_0x5b360f,null));};exports[_0xab91('0x2c')]=function(_0xa91efd,_0x13cbfc,_0x1f8102){if(_0xa91efd['body']['id']){delete _0xa91efd[_0xab91('0x51')]['id'];}var _0x15601b;return db[_0xab91('0x35')][_0xab91('0x4f')]({'where':{'id':_0xa91efd[_0xab91('0x4e')]['id']}})[_0xab91('0x1b')](handleEntityNotFound(_0x13cbfc,null))[_0xab91('0x1b')](function(_0x50f27a){if(_0x50f27a){_0x15601b=_0x50f27a;return db[_0xab91('0x74')]['find']({'where':{'id':_0x50f27a['WhatsappAccountId']}});}})[_0xab91('0x1b')](handleEntityNotFound(_0x13cbfc,null))['then'](function(_0x3f849b){if(_0x3f849b){logger[_0xab91('0x1e')]('WhatsppMessage,\x20%s,\x20%s,\x20%s',_0xab91('0x2c'),_0xab91('0x75'),_0x3f849b[_0xab91('0x38')],util[_0xab91('0x76')](_0xa91efd[_0xab91('0x51')],{'showHidden':![],'depth':null}));switch(_0x3f849b[_0xab91('0x38')]){case _0xab91('0x77'):if(_0xa91efd[_0xab91('0x51')][_0xab91('0x78')]&&_0xa91efd['body']['MessageSid']===_0x15601b[_0xab91('0x79')]&&_0xa91efd[_0xab91('0x51')][_0xab91('0x7a')]&&_0xa91efd[_0xab91('0x51')][_0xab91('0x7a')]===_0xab91('0x56')){return _0x15601b['update']({'read':!![]});}else{logger[_0xab91('0x21')](_0xab91('0x7b'),_0xab91('0x2c'),_0xab91('0x77'),util['inspect'](_0xa91efd[_0xab91('0x51')],{'showHidden':![],'depth':null}));}break;}return _0x15601b;}})['then'](respondWithResult(_0x13cbfc,null))['catch'](handleError(_0x13cbfc,null));};