347e9886d14b687219838a838ed3834f875d50db
[motion2.git] / server / api / whatsappInteraction / whatsappInteraction.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 _0x4137=['closed','basename','existsSync','pipe','createWriteStream','direction','out','System','renderFile','transcript-','err','unlinkSync','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','crypto','desk.js','to-csv','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/environment','../../config/license/util','redis','defaults','./whatsappInteraction.socket','register','status','count','offset','limit','set','Content-Range','json','apply','reject','update','then','destroy','sendStatus','error','stack','name','send','Users','map','fullname','TagIds','Tags','split','push','catch','type','key','model','keys','query','filters','intersection','attributes','fields','nolimit','order','sort','pick','select','field','color','from','u.id','u.fullname','ui.WhatsappInteractionId','user_has_whatsapp_interactions','left_join','u.id\x20=\x20ui.UserId','whatsapp_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','users','o.id\x20=\x20i.UserId','whatsapp_interaction_has_tags','expr','search','parseSearch','conditions','find','value','`\x20>\x200','Contact','operator','$substring','length','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','ContactId','buildExpression','text','start','end','forEach','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','body','some','compact','isEmpty','WhatsappAccountId','i.WhatsappAccountId\x20IN\x20?','concat','createdAt','parse','$gte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','where','\x20IS\x20NULL','\x20=\x20?','read','having','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','filter','replace','isNumeric','i.phone\x20LIKE\x20?','MATCH\x20(me.body)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','CONCAT(c.firstName,\x20\x27\x20\x27,\x20c.lastName)\x20LIKE\x20?','group','Sequelize','QueryTypes','clone','i.id','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','unreadMessages','contactName','DESC','i.WhatsappAccountId\x20IS\x20NOT\x20NULL','user','role','agent','i.WhatsappAccountId\x20IS\x20NULL','toString','sequelize','merge','WhatsappInteraction','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','CASE\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.*','c.firstName','Contact.lastName','c.email','Contact.email','c.phone','c.mobile','Contact.mobile','c.fax','o.fullname','Owner.fullname','o.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.WhatsappInteractionId\x20IN\x20?','WhatsappInteractionId','all','rows','show','rawAttributes','includeAll','include','options','create','params','describe','addMessage','WhatsappMessage','ids','omit','getMessages','findOne','hasOwnProperty','format','findAll','setTags','emit','whatsappInteractionTags:save','removeTags','download','unix','join','root','server','tmp','files','transcript-%d-%s.zip','firstName','lastName','attachments','Attachment','Messages','secret','WhatsappAccount','Owner','mkdirSync','40px','<div\x20class=\x22header\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h5>Interaction\x20Transcript</h5>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>','30px','<hr\x20class=\x22separator\x22/>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22footer\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22left\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>%s</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22center\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>{{page}}/{{pages}}</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20class=\x22right\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<span>%s</span>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>','%s\x20#%d','Whatsapp','YYYY-MM-DD','Account','N.A.','YYYY-MM-DD\x20HH:mm:ss'];(function(_0x40284f,_0x5ad18b){var _0x40258c=function(_0x178c1b){while(--_0x178c1b){_0x40284f['push'](_0x40284f['shift']());}};_0x40258c(++_0x5ad18b);}(_0x4137,0xf8));var _0x7413=function(_0x4a9fb1,_0x273043){_0x4a9fb1=_0x4a9fb1-0x0;var _0x348672=_0x4137[_0x4a9fb1];return _0x348672;};'use strict';var pdf=require(_0x7413('0x0'));var emlformat=require(_0x7413('0x1'));var rimraf=require(_0x7413('0x2'));var zipdir=require(_0x7413('0x3'));var jsonpatch=require(_0x7413('0x4'));var rp=require(_0x7413('0x5'));var moment=require(_0x7413('0x6'));var BPromise=require(_0x7413('0x7'));var Mustache=require(_0x7413('0x8'));var util=require(_0x7413('0x9'));var path=require(_0x7413('0xa'));var sox=require(_0x7413('0xb'));var csv=require('to-csv');var ejs=require(_0x7413('0xc'));var fs=require('fs');var _=require(_0x7413('0xd'));var squel=require(_0x7413('0xe'));var crypto=require(_0x7413('0xf'));var jsforce=require('jsforce');var deskjs=require(_0x7413('0x10'));var toCsv=require(_0x7413('0x11'));var querystring=require('querystring');var Papa=require(_0x7413('0x12'));var Redis=require(_0x7413('0x13'));var authService=require('../../components/auth/service');var qs=require(_0x7413('0x14'));var as=require(_0x7413('0x15'));var hardwareService=require(_0x7413('0x16'));var logger=require(_0x7413('0x17'))(_0x7413('0x18'));var utils=require('../../config/utils');var config=require(_0x7413('0x19'));var licenseUtil=require(_0x7413('0x1a'));var db=require('../../mysqldb')['db'];config[_0x7413('0x1b')]=_[_0x7413('0x1c')](config[_0x7413('0x1b')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x7413('0x1d'))[_0x7413('0x1e')](socket);function respondWithStatusCode(_0x49f0f6,_0x1a42aa){_0x1a42aa=_0x1a42aa||0xcc;return function(_0x45bef0){if(_0x45bef0){return _0x49f0f6['sendStatus'](_0x1a42aa);}return _0x49f0f6[_0x7413('0x1f')](_0x1a42aa)['end']();};}function respondWithResult(_0x4b9a5b,_0x26501b){_0x26501b=_0x26501b||0xc8;return function(_0x568d1f){if(_0x568d1f){return _0x4b9a5b[_0x7413('0x1f')](_0x26501b)['json'](_0x568d1f);}};}function respondWithFilteredResult(_0x2036b6,_0x3230d8){return function(_0x19157f){if(_0x19157f){var _0x12a01e=_0x19157f[_0x7413('0x20')],_0x2a3417=_0x3230d8[_0x7413('0x21')],_0x26dafe=_0x3230d8[_0x7413('0x21')]+_0x3230d8[_0x7413('0x22')],_0x51194e;if(_0x26dafe>=_0x12a01e){_0x26dafe=_0x12a01e;_0x51194e=0xc8;}else{_0x51194e=0xce;}_0x2036b6['status'](_0x51194e);return _0x2036b6[_0x7413('0x23')](_0x7413('0x24'),_0x2a3417+'-'+_0x26dafe+'/'+_0x12a01e)[_0x7413('0x25')](_0x19157f);}return null;};}function patchUpdates(_0x20d3d2){return function(_0x409392){try{jsonpatch[_0x7413('0x26')](_0x409392,_0x20d3d2,!![]);}catch(_0x4886e3){return BPromise[_0x7413('0x27')](_0x4886e3);}return _0x409392['save']();};}function saveUpdates(_0x5f12a2,_0x138508){return function(_0x599654){if(_0x599654){return _0x599654[_0x7413('0x28')](_0x5f12a2)[_0x7413('0x29')](function(_0x3b0c81){return _0x3b0c81;});}return null;};}function removeEntity(_0x2fc0f4,_0x1d46e9){return function(_0x346ce8){if(_0x346ce8){return _0x346ce8[_0x7413('0x2a')]()[_0x7413('0x29')](function(){_0x2fc0f4[_0x7413('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x5cb15f,_0x11b210){return function(_0x48c2dc){if(!_0x48c2dc){_0x5cb15f[_0x7413('0x2b')](0x194);}return _0x48c2dc;};}function handleError(_0x71cbb4,_0x463b21){_0x463b21=_0x463b21||0x1f4;return function(_0x4c2e90){logger[_0x7413('0x2c')](_0x4c2e90[_0x7413('0x2d')]);if(_0x4c2e90[_0x7413('0x2e')]){delete _0x4c2e90[_0x7413('0x2e')];}_0x71cbb4[_0x7413('0x1f')](_0x463b21)[_0x7413('0x2f')](_0x4c2e90);};}function getInteractionUsers(_0x5eb4d9,_0x24dce7){return new BPromise(function(_0x4ed662,_0x1d0bde){try{if(_0x24dce7[_0x5eb4d9['id']]){_0x5eb4d9[_0x7413('0x30')]=_[_0x7413('0x31')](_0x24dce7[_0x5eb4d9['id']],function(_0x13a836){return{'id':_0x13a836['id'],'fullname':_0x13a836[_0x7413('0x32')]};});}}catch(_0x2004ea){_0x1d0bde(_0x2004ea);}_0x4ed662(_0x5eb4d9);});}function getInteractionTags(_0x5bb3ea,_0x1ffb6f){return new BPromise(function(_0x17c342,_0x39db32){try{if(_0x5bb3ea[_0x7413('0x33')]){_0x5bb3ea[_0x7413('0x34')]=[];_0x5bb3ea[_0x7413('0x33')][_0x7413('0x35')](',')['forEach'](function(_0xd763f9){_0x5bb3ea[_0x7413('0x34')][_0x7413('0x36')](_0x1ffb6f[_0xd763f9]);});}delete _0x5bb3ea[_0x7413('0x33')];}catch(_0x14bf3b){_0x39db32(_0x14bf3b);}_0x17c342(_0x5bb3ea);});}function updateWhatsappInteraction(_0x51d676,_0x1c36f8,_0x537261){return new BPromise(function(_0x3cc6c8,_0x126d66){return getInteractionUsers(_0x51d676,_0x537261)[_0x7413('0x29')](function(_0x539d93){return getInteractionTags(_0x539d93,_0x1c36f8);})[_0x7413('0x29')](function(_0x487dc8){_0x3cc6c8(_0x487dc8);})[_0x7413('0x37')](function(_0x31c174){_0x126d66(_0x31c174);});});}exports['index']=function(_0x499cfa,_0x440bfe){var _0x26a8ad={},_0x14da59={},_0x513334={'count':0x0,'rows':[]};var _0x4dd1ce=_[_0x7413('0x31')](db['WhatsappInteraction']['rawAttributes'],function(_0xda3035){return{'name':_0xda3035['fieldName'],'type':_0xda3035[_0x7413('0x38')][_0x7413('0x39')]};});_0x14da59[_0x7413('0x3a')]=_[_0x7413('0x31')](_0x4dd1ce,_0x7413('0x2e'));_0x14da59['query']=_[_0x7413('0x3b')](_0x499cfa[_0x7413('0x3c')]);_0x14da59[_0x7413('0x3d')]=_[_0x7413('0x3e')](_0x14da59[_0x7413('0x3a')],_0x14da59[_0x7413('0x3c')]);_0x26a8ad[_0x7413('0x3f')]=_[_0x7413('0x3e')](_0x14da59[_0x7413('0x3a')],qs[_0x7413('0x40')](_0x499cfa[_0x7413('0x3c')][_0x7413('0x40')]));_0x26a8ad['attributes']=_0x26a8ad[_0x7413('0x3f')]['length']?_0x26a8ad['attributes']:_0x14da59['model'];if(!_0x499cfa['query']['hasOwnProperty'](_0x7413('0x41'))){_0x26a8ad['limit']=qs['limit'](_0x499cfa[_0x7413('0x3c')]['limit']);_0x26a8ad['offset']=qs[_0x7413('0x21')](_0x499cfa[_0x7413('0x3c')][_0x7413('0x21')]);}_0x26a8ad[_0x7413('0x42')]=qs[_0x7413('0x43')](_0x499cfa['query'][_0x7413('0x43')]);_0x26a8ad['where']=qs[_0x7413('0x3d')](_[_0x7413('0x44')](_0x499cfa[_0x7413('0x3c')],_0x14da59[_0x7413('0x3d')]),_0x4dd1ce);var _0x3f7da2=[];var _0x125466=squel[_0x7413('0x45')]()[_0x7413('0x46')]('id')[_0x7413('0x46')](_0x7413('0x2e'))[_0x7413('0x46')](_0x7413('0x47'))[_0x7413('0x48')]('tools_tags');var _0x2be0fa=squel[_0x7413('0x45')]()[_0x7413('0x46')](_0x7413('0x49'))[_0x7413('0x46')](_0x7413('0x4a'))[_0x7413('0x46')](_0x7413('0x4b'))[_0x7413('0x48')](_0x7413('0x4c'),'ui')[_0x7413('0x4d')]('users','u',_0x7413('0x4e'));var _0x52a088=squel[_0x7413('0x45')]()[_0x7413('0x48')](_0x7413('0x4f'),'i')[_0x7413('0x4d')](_0x7413('0x50'),'c',_0x7413('0x51'))[_0x7413('0x4d')](_0x7413('0x52'),'o',_0x7413('0x53'))[_0x7413('0x4d')]('whatsapp_accounts','a','a.id\x20=\x20i.WhatsappAccountId')[_0x7413('0x4d')]('whatsapp_messages','me','me.WhatsappInteractionId\x20=\x20i.id')[_0x7413('0x4d')](_0x7413('0x54'),'it','it.WhatsappInteractionId\x20=\x20i.id')[_0x7413('0x4d')]('tools_tags','t','t.id\x20=\x20it.TagId');var _0xe58860=squel['expr']();var _0x24f54e=[];var _0x24bfb7=squel[_0x7413('0x55')]();var _0x5fe361;if(_0x499cfa[_0x7413('0x3c')][_0x7413('0x56')]){_0x5fe361=as[_0x7413('0x57')](_0x499cfa[_0x7413('0x3c')][_0x7413('0x56')]);var _0x2031e3=_0x5fe361['sqlOperator'];for(var _0x369891=0x0;_0x369891<_0x5fe361['conditions']['length'];_0x369891++){var _0x482b29=_0x5fe361[_0x7413('0x58')][_0x369891];var _0x4299a3='i';var _0x453510=_[_0x7413('0x59')](_0x4dd1ce,['name',_0x482b29['field']]);if(!_0x453510){switch(_0x482b29[_0x7413('0x46')]){case'unreadMessages':if(_0x482b29[_0x7413('0x5a')]==0x1){_0x52a088['having']('`'+_0x482b29['field']+'`\x20=\x200');}else{_0x52a088['having']('`'+_0x482b29['field']+_0x7413('0x5b'));}break;case _0x7413('0x5c'):if(_0x482b29[_0x7413('0x5d')]===_0x7413('0x5e')){if(_0x482b29[_0x7413('0x5a')]['split']('\x20')[_0x7413('0x5f')]>0x1){_0xe58860[_0x2031e3](_0x7413('0x60'),qs[_0x7413('0x61')](_0x482b29['value']),null);}else{var _0x171fcc='%'+_0x482b29['value']+'%';_0xe58860[_0x2031e3]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x171fcc,_0x171fcc,_0x171fcc);}}else{_0x453510=_[_0x7413('0x59')](_0x4dd1ce,[_0x7413('0x2e'),_0x7413('0x62')]);_0x482b29[_0x7413('0x46')]=_0x7413('0x62');_0x5b5e42=as[_0x7413('0x63')](_0x4299a3,_0x453510['type'],_0x482b29);_0xe58860[_0x2031e3](_0x5b5e42[_0x7413('0x64')],_0x5b5e42['value'][_0x7413('0x65')],_0x5b5e42['value'][_0x7413('0x66')]);}break;case'Tag':var _0x400dfc=_0x482b29[_0x7413('0x5a')]['split'](',')[_0x7413('0x31')](function(_0x549623){return Number(_0x549623);});_0x400dfc[_0x7413('0x67')](function(_0x2a5db6){_0x24bfb7['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x2a5db6+',%');});_0x24f54e=_[_0x7413('0x68')](_0x24f54e,_0x400dfc);break;case _0x7413('0x69'):if(_0x482b29['operator']===_0x7413('0x5e')){_0xe58860[_0x2031e3](_0x7413('0x6a'),'%'+_0x482b29['value']+'%',null);}else{_0x453510=_[_0x7413('0x59')](_0x4dd1ce,[_0x7413('0x2e'),_0x7413('0x6b')]);_0x482b29[_0x7413('0x46')]=_0x7413('0x6b');_0x5b5e42=as[_0x7413('0x63')](_0x4299a3,_0x453510[_0x7413('0x38')],_0x482b29);_0xe58860[_0x2031e3](_0x5b5e42[_0x7413('0x64')],_0x5b5e42['value'][_0x7413('0x65')],_0x5b5e42['value'][_0x7413('0x66')]);}break;case _0x7413('0x6c'):_0x5b5e42=as[_0x7413('0x63')]('me',null,_0x482b29);_0xe58860[_0x2031e3](_0x5b5e42[_0x7413('0x64')],_0x5b5e42['value']['start'],_0x5b5e42['value']['end']);break;}}else{var _0x5b5e42=as[_0x7413('0x63')](_0x4299a3,_0x453510[_0x7413('0x38')],_0x482b29);_0xe58860[_0x2031e3](_0x5b5e42[_0x7413('0x64')],_0x5b5e42['value'][_0x7413('0x65')],_0x5b5e42[_0x7413('0x5a')][_0x7413('0x66')]);}}}else{var _0x36a3ff=_(_0x499cfa[_0x7413('0x3c')])[_0x7413('0x3b')]()[_0x7413('0x31')](function(_0x295a0a){return _[_0x7413('0x6d')](_0x4dd1ce,[_0x7413('0x2e'),_0x295a0a])?_0x295a0a:undefined;})[_0x7413('0x6e')]()[_0x7413('0x5a')]();if(!_[_0x7413('0x6f')](_0x36a3ff)){_0x36a3ff['forEach'](function(_0x25eafd){if(_0x25eafd===_0x7413('0x70')){_0x52a088['where'](_0x7413('0x71'),[][_0x7413('0x72')](_0x499cfa[_0x7413('0x3c')][_0x25eafd]));}else if(_0x25eafd===_0x7413('0x73')){var _0x102fd2=JSON[_0x7413('0x74')](_0x499cfa['query'][_0x25eafd])[_0x7413('0x75')];var _0x4563b0=JSON['parse'](_0x499cfa[_0x7413('0x3c')][_0x25eafd])['$lte'];_0x52a088['where'](_0x7413('0x76'),_0x102fd2,_0x4563b0);}else{if(_0x499cfa[_0x7413('0x3c')][_0x25eafd]===_0x7413('0x77')){_0x52a088[_0x7413('0x78')]('i.'+_0x25eafd+_0x7413('0x79'));}else{_0x52a088[_0x7413('0x78')]('i.'+_0x25eafd+_0x7413('0x7a'),_0x499cfa[_0x7413('0x3c')][_0x25eafd]);}}});}if(_0x499cfa['query'][_0x7413('0x7b')]){if(_0x499cfa['query'][_0x7413('0x7b')]==0x1){_0x52a088[_0x7413('0x7c')](_0x7413('0x7d'));}else{_0x52a088[_0x7413('0x7c')](_0x7413('0x7e'));}}if(_0x499cfa[_0x7413('0x3c')][_0x7413('0x7f')]){_0x24f54e=_[_0x7413('0x80')](_0x499cfa[_0x7413('0x3c')]['tag'])?_0x499cfa[_0x7413('0x3c')][_0x7413('0x7f')]:new Array(_0x499cfa['query'][_0x7413('0x7f')]);_0x24f54e[_0x7413('0x67')](function(_0x599a91){_0x24bfb7['or'](_0x7413('0x81'),'%,'+_0x599a91+',%');});}if(_0x499cfa['query'][_0x7413('0x82')]){var _0x3d4ce3=_0x499cfa['query']['filter'][_0x7413('0x83')]('\x5c','\x5c\x5c')[_0x7413('0x83')](/'/g,'\x27\x27');if(qs[_0x7413('0x84')](_0x3d4ce3)){_0xe58860['or']('i.id\x20LIKE\x20?',_0x3d4ce3+'%')['or'](_0x7413('0x85'),_0x3d4ce3+'%');}else{_0xe58860['or'](_0x7413('0x86'),qs[_0x7413('0x61')](_0x3d4ce3))['or'](_0x7413('0x87'),_0x3d4ce3+'%');}}}_0x52a088[_0x7413('0x78')](_0xe58860);_0x52a088[_0x7413('0x88')]('i.id');var _0x3b6975={'type':db[_0x7413('0x89')][_0x7413('0x8a')]['SELECT'],'raw':!![]};var _0x350b01=_0x52a088[_0x7413('0x8b')]();_0x350b01[_0x7413('0x46')](_0x7413('0x8c'));_0x350b01[_0x7413('0x46')](_0x7413('0x8d'),_0x7413('0x8e'));if(_0x26a8ad[_0x7413('0x42')]){_0x26a8ad[_0x7413('0x42')]['forEach'](function(_0x1edcba){var _0x3e1efb=_0x1edcba[0x0]===_0x7413('0x8f')?_0x1edcba[0x0]:'i.'+_0x1edcba[0x0];_0x52a088[_0x7413('0x42')](_0x3e1efb,_0x1edcba[0x1]===_0x7413('0x90')?![]:!![]);});}if(!_[_0x7413('0x6f')](_0x24f54e)){_0x52a088['having'](_0x24bfb7);_0x350b01[_0x7413('0x78')]('t.id\x20IN\x20?',_0x24f54e);}BPromise['resolve']()[_0x7413('0x29')](function(){if(!_0x5fe361){if(_0x499cfa[_0x7413('0x3c')]['WhatsappAccountId'])return;_0x350b01[_0x7413('0x78')](_0x7413('0x91'));_0x52a088[_0x7413('0x78')](_0x7413('0x91'));return;}if(_0x499cfa[_0x7413('0x92')][_0x7413('0x93')]!==_0x7413('0x94'))return;return _0x499cfa[_0x7413('0x92')]['getWhatsappAccounts']({'attributes':['id'],'raw':!![]})[_0x7413('0x29')](function(_0x528d19){if(_[_0x7413('0x6f')](_0x528d19)){_0x350b01[_0x7413('0x78')]('i.WhatsappAccountId\x20IS\x20NULL');_0x52a088[_0x7413('0x78')](_0x7413('0x95'));}else{_0x350b01[_0x7413('0x78')](_0x7413('0x71'),_[_0x7413('0x31')](_0x528d19,'id'));_0x52a088[_0x7413('0x78')](_0x7413('0x71'),_[_0x7413('0x31')](_0x528d19,'id'));}});})[_0x7413('0x29')](function(){if(_0x499cfa[_0x7413('0x92')]['role']===_0x7413('0x94')&&!_0x5fe361&&!_0x499cfa[_0x7413('0x3c')]['WhatsappAccountId'])return[];return db['sequelize']['query'](_0x350b01[_0x7413('0x96')](),_0x3b6975);})['then'](function(_0xf6faaa){_0x513334[_0x7413('0x20')]=_0xf6faaa[_0x7413('0x5f')];if(_0x513334[_0x7413('0x20')]===0x0)return[];return db[_0x7413('0x97')][_0x7413('0x3c')](_0x125466[_0x7413('0x96')](),_0x3b6975)[_0x7413('0x29')](function(_0x3efa75){_0x3f7da2=_['keyBy'](_0x3efa75,'id');_0x3b6975=_[_0x7413('0x98')](_0x3b6975,{'model':db[_0x7413('0x99')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x499cfa[_0x7413('0x3c')]['fields']){_0x26a8ad[_0x7413('0x3f')][_0x7413('0x67')](function(_0x337180){_0x52a088[_0x7413('0x46')]('i.'+_0x337180);});}else{_0x52a088[_0x7413('0x46')](_0x7413('0x8d'),_0x7413('0x8e'));_0x52a088[_0x7413('0x46')](_0x7413('0x9a'),_0x7413('0x9b'));_0x52a088['field'](_0x7413('0x9c'),_0x7413('0x9d'));_0x52a088['field'](_0x7413('0x9e'),_0x7413('0x8f'));_0x52a088['field'](_0x7413('0x9f'));_0x52a088[_0x7413('0x46')](_0x7413('0xa0'),'Contact.firstName');_0x52a088[_0x7413('0x46')]('c.lastName',_0x7413('0xa1'));_0x52a088[_0x7413('0x46')](_0x7413('0xa2'),_0x7413('0xa3'));_0x52a088[_0x7413('0x46')](_0x7413('0xa4'),'Contact.phone');_0x52a088[_0x7413('0x46')](_0x7413('0xa5'),_0x7413('0xa6'));_0x52a088[_0x7413('0x46')](_0x7413('0xa7'),'Contact.fax');_0x52a088[_0x7413('0x46')](_0x7413('0xa8'),_0x7413('0xa9'));_0x52a088[_0x7413('0x46')](_0x7413('0xaa'),'Owner.internal');_0x52a088['field'](_0x7413('0xab'),_0x7413('0x33'));}if(_0x26a8ad[_0x7413('0x22')])_0x52a088[_0x7413('0x22')](_0x26a8ad['limit']);if(_0x26a8ad['offset'])_0x52a088[_0x7413('0x21')](_0x26a8ad[_0x7413('0x21')]);return db[_0x7413('0x97')]['query'](_0x52a088['toString'](),_0x3b6975);})[_0x7413('0x29')](function(_0x2bb6bb){_0x2be0fa[_0x7413('0x78')](_0x7413('0xac'),_[_0x7413('0x31')](_0x2bb6bb,'id'));return db[_0x7413('0x97')][_0x7413('0x3c')](_0x2be0fa['toString'](),_0x3b6975)['then'](function(_0x396a6a){var _0x15de3d=_['groupBy'](_0x396a6a,_0x7413('0xad'));var _0x43f987=[];_0x2bb6bb[_0x7413('0x67')](function(_0x23173c){_0x43f987[_0x7413('0x36')](updateWhatsappInteraction(_0x23173c,_0x3f7da2,_0x15de3d));});return BPromise[_0x7413('0xae')](_0x43f987);});});})[_0x7413('0x29')](function(_0x2939b6){_0x513334[_0x7413('0xaf')]=_0x2939b6;return _0x513334;})['then'](respondWithFilteredResult(_0x440bfe,_0x26a8ad))[_0x7413('0x37')](handleError(_0x440bfe,null));};exports[_0x7413('0xb0')]=function(_0x59d665,_0x1f3e26){var _0xccd480={'raw':![],'where':{'id':_0x59d665['params']['id']}},_0x20ffaf={};_0x20ffaf['model']=_['keys'](db[_0x7413('0x99')][_0x7413('0xb1')]);_0x20ffaf[_0x7413('0x3c')]=_[_0x7413('0x3b')](_0x59d665[_0x7413('0x3c')]);_0x20ffaf[_0x7413('0x3d')]=_[_0x7413('0x3e')](_0x20ffaf[_0x7413('0x3a')],_0x20ffaf['query']);_0xccd480[_0x7413('0x3f')]=_['intersection'](_0x20ffaf[_0x7413('0x3a')],qs[_0x7413('0x40')](_0x59d665[_0x7413('0x3c')][_0x7413('0x40')]));_0xccd480[_0x7413('0x3f')]=_0xccd480['attributes'][_0x7413('0x5f')]?_0xccd480[_0x7413('0x3f')]:_0x20ffaf[_0x7413('0x3a')];if(_0x59d665[_0x7413('0x3c')][_0x7413('0xb2')]){_0xccd480[_0x7413('0xb3')]=[{'all':!![]}];}_0xccd480=_[_0x7413('0x98')]({},_0xccd480,_0x59d665[_0x7413('0xb4')]);return db[_0x7413('0x99')][_0x7413('0x59')](_0xccd480)[_0x7413('0x29')](handleEntityNotFound(_0x1f3e26,null))[_0x7413('0x29')](respondWithResult(_0x1f3e26,null))[_0x7413('0x37')](handleError(_0x1f3e26,null));};exports[_0x7413('0xb5')]=function(_0x9398e7,_0x4c4365){return db['WhatsappInteraction'][_0x7413('0xb5')](_0x9398e7[_0x7413('0x6c')],{})['then'](respondWithResult(_0x4c4365,0xc9))[_0x7413('0x37')](handleError(_0x4c4365,null));};exports['update']=function(_0x5e35ea,_0x26536c){if(_0x5e35ea[_0x7413('0x6c')]['id']){delete _0x5e35ea[_0x7413('0x6c')]['id'];}return db[_0x7413('0x99')][_0x7413('0x59')]({'where':{'id':_0x5e35ea[_0x7413('0xb6')]['id']}})[_0x7413('0x29')](handleEntityNotFound(_0x26536c,null))['then'](saveUpdates(_0x5e35ea[_0x7413('0x6c')],null))['then'](respondWithResult(_0x26536c,null))[_0x7413('0x37')](handleError(_0x26536c,null));};exports['destroy']=function(_0x1a36c6,_0x288f62){return db[_0x7413('0x99')]['find']({'where':{'id':_0x1a36c6[_0x7413('0xb6')]['id']}})[_0x7413('0x29')](handleEntityNotFound(_0x288f62,null))[_0x7413('0x29')](removeEntity(_0x288f62,null))[_0x7413('0x37')](handleError(_0x288f62,null));};exports[_0x7413('0xb7')]=function(_0x14023e,_0x56dea3){return db[_0x7413('0x99')]['describe']()['then'](respondWithResult(_0x56dea3,null))[_0x7413('0x37')](handleError(_0x56dea3,null));};exports[_0x7413('0xb8')]=function(_0x2076b3,_0x5e15b3,_0x7a4159){return db[_0x7413('0xb9')][_0x7413('0x59')]({'where':{'id':_0x2076b3[_0x7413('0xb6')]['id']}})[_0x7413('0x29')](handleEntityNotFound(_0x5e15b3,null))[_0x7413('0x29')](function(_0x4ac58c){if(_0x4ac58c){return _0x4ac58c['addMessage'](_0x2076b3['body'][_0x7413('0xba')],_[_0x7413('0xbb')](_0x2076b3['body'],[_0x7413('0xba'),'id'])||{});}})[_0x7413('0x29')](respondWithResult(_0x5e15b3,null))[_0x7413('0x37')](handleError(_0x5e15b3,null));};exports[_0x7413('0xbc')]=function(_0x4fb06d,_0x162453,_0x275c12){var _0x5aaa6f={'raw':![],'where':{}};var _0x3bb54f={};var _0xe4cdc3={'count':0x0,'rows':[]};return db[_0x7413('0x99')][_0x7413('0xbd')]({'where':{'id':_0x4fb06d['params']['id']}})[_0x7413('0x29')](handleEntityNotFound(_0x162453,null))[_0x7413('0x29')](function(_0x50393b){if(_0x50393b){_0x3bb54f[_0x7413('0x3a')]=_[_0x7413('0x3b')](db['WhatsappMessage'][_0x7413('0xb1')]);_0x3bb54f['query']=_[_0x7413('0x3b')](_0x4fb06d[_0x7413('0x3c')]);_0x3bb54f[_0x7413('0x3d')]=_[_0x7413('0x3e')](_0x3bb54f[_0x7413('0x3a')],_0x3bb54f[_0x7413('0x3c')]);_0x5aaa6f[_0x7413('0x3f')]=_[_0x7413('0x3e')](_0x3bb54f['model'],qs[_0x7413('0x40')](_0x4fb06d['query']['fields']));_0x5aaa6f[_0x7413('0x3f')]=_0x5aaa6f[_0x7413('0x3f')]['length']?_0x5aaa6f[_0x7413('0x3f')]:_0x3bb54f[_0x7413('0x3a')];if(!_0x4fb06d[_0x7413('0x3c')][_0x7413('0xbe')](_0x7413('0x41'))){_0x5aaa6f[_0x7413('0x22')]=qs['limit'](_0x4fb06d[_0x7413('0x3c')][_0x7413('0x22')]);_0x5aaa6f[_0x7413('0x21')]=qs[_0x7413('0x21')](_0x4fb06d['query'][_0x7413('0x21')]);}_0x5aaa6f[_0x7413('0x42')]=qs['sort'](_0x4fb06d[_0x7413('0x3c')][_0x7413('0x43')]);_0x5aaa6f[_0x7413('0x78')]=qs['filters'](_[_0x7413('0x44')](_0x4fb06d[_0x7413('0x3c')],_0x3bb54f[_0x7413('0x3d')]));_0x5aaa6f[_0x7413('0x78')][_0x7413('0xad')]=_0x50393b['id'];if(_0x4fb06d[_0x7413('0x3c')]['filter']){_0x5aaa6f['where']=_[_0x7413('0x98')](_0x5aaa6f[_0x7413('0x78')],{'$or':_[_0x7413('0x31')](_0x5aaa6f[_0x7413('0x3f')],function(_0x506fdd){var _0x233a1c={};_0x233a1c[_0x506fdd]={'$like':'%'+_0x4fb06d[_0x7413('0x3c')][_0x7413('0x82')]+'%'};return _0x233a1c;})});}if(_0x4fb06d[_0x7413('0x3c')]['$gte']){var _0x56422f=_0x4fb06d[_0x7413('0x3c')][_0x7413('0x75')]['split'](',');var _0x1eeb5c={};_0x1eeb5c[_0x56422f[0x0]]={'$gte':moment(_0x56422f[0x1])[_0x7413('0xbf')]('YYYY-MM-DD\x20HH:mm:ss')};_0x5aaa6f[_0x7413('0x78')]=_[_0x7413('0x98')](_0x5aaa6f[_0x7413('0x78')],_0x1eeb5c);}_0x5aaa6f=_[_0x7413('0x98')]({},_0x5aaa6f,_0x4fb06d['options']);return db['WhatsappMessage']['count']({'where':_0x5aaa6f['where']})[_0x7413('0x29')](function(_0x3c93b8){_0xe4cdc3[_0x7413('0x20')]=_0x3c93b8;if(_0x4fb06d[_0x7413('0x3c')][_0x7413('0xb2')]){_0x5aaa6f[_0x7413('0xb3')]=[{'all':!![]}];}return db[_0x7413('0xb9')][_0x7413('0xc0')](_0x5aaa6f);})[_0x7413('0x29')](function(_0x321ce){_0xe4cdc3[_0x7413('0xaf')]=_0x321ce;return _0xe4cdc3;});}})['then'](respondWithFilteredResult(_0x162453,_0x5aaa6f))['catch'](handleError(_0x162453,null));};exports['addTags']=function(_0x3fa1ef,_0x3eee03,_0x126a0d){return db['WhatsappInteraction']['find']({'where':{'id':_0x3fa1ef[_0x7413('0xb6')]['id']}})[_0x7413('0x29')](handleEntityNotFound(_0x3eee03,null))[_0x7413('0x29')](function(_0x57bd3e){if(_0x57bd3e){return _0x57bd3e[_0x7413('0xc1')](_0x3fa1ef['body'][_0x7413('0xba')],_[_0x7413('0xbb')](_0x3fa1ef[_0x7413('0x6c')],[_0x7413('0xba'),'id'])||{})['spread'](function(){return db['Tag']['findAll']({'attributes':['id','name','color'],'where':{'id':_0x3fa1ef['body'][_0x7413('0xba')]}});})[_0x7413('0x29')](function(_0x545a4f){socket[_0x7413('0xc2')](_0x7413('0xc3'),{'id':Number(_0x3fa1ef['params']['id']),'tags':_0x545a4f||[]});return{'id':Number(_0x3fa1ef[_0x7413('0xb6')]['id']),'tags':_0x545a4f||[]};});}})[_0x7413('0x29')](respondWithResult(_0x3eee03,null))[_0x7413('0x37')](handleError(_0x3eee03,null));};exports['removeTags']=function(_0x5b9661,_0x5c0ce5,_0x42bc61){return db[_0x7413('0x99')][_0x7413('0x59')]({'where':{'id':_0x5b9661[_0x7413('0xb6')]['id']}})[_0x7413('0x29')](handleEntityNotFound(_0x5c0ce5,null))['then'](function(_0x5bb2a2){if(_0x5bb2a2){return _0x5bb2a2[_0x7413('0xc4')](_0x5b9661[_0x7413('0x3c')][_0x7413('0xba')]);}})[_0x7413('0x29')](respondWithStatusCode(_0x5c0ce5,null))['catch'](handleError(_0x5c0ce5,null));};exports[_0x7413('0xc5')]=function(_0x41a563,_0x214a36){var _0x3cede4=moment()[_0x7413('0xc6')]()[_0x7413('0x96')]();var _0xd2683b=path[_0x7413('0xc7')](config[_0x7413('0xc8')],_0x7413('0xc9'),'files',_0x7413('0xca'));var _0x37efdb=path[_0x7413('0xc7')](config[_0x7413('0xc8')],_0x7413('0xc9'),_0x7413('0xcb'),'attachments');var _0x8ccb2c=path[_0x7413('0xc7')](_0xd2683b,_0x3cede4);var _0x4403bf=util[_0x7413('0xbf')](_0x7413('0xcc'),_0x41a563[_0x7413('0xb6')]['id'],_0x3cede4);var _0x5efa42=path['join'](_0xd2683b,_0x4403bf);var _0x39aac5=[];_0x39aac5[_0x7413('0x36')]({'model':db[_0x7413('0x69')],'as':_0x7413('0x69'),'attributes':['id',_0x7413('0x32')],'raw':!![]});_0x39aac5[_0x7413('0x36')]({'model':db['CmContact'],'as':'Contact','attributes':['id',_0x7413('0xcd'),_0x7413('0xce')],'raw':!![]});if(_0x41a563[_0x7413('0x3c')][_0x7413('0xcf')]){_0x39aac5['push']({'model':db[_0x7413('0xd0')],'as':_0x7413('0xd0'),'raw':!![]});}var _0x4c599a=[{'model':db[_0x7413('0xb9')],'as':_0x7413('0xd1'),'attributes':['id',_0x7413('0x6c'),_0x7413('0x73'),'direction',_0x7413('0xd2'),_0x7413('0x7b')],'include':_0x39aac5}];_0x4c599a[_0x7413('0x36')]({'model':db[_0x7413('0xd3')],'as':'Account','attributes':['id','name']});_0x4c599a[_0x7413('0x36')]({'model':db[_0x7413('0x69')],'as':_0x7413('0xd4'),'attributes':['id',_0x7413('0x32')]});return db[_0x7413('0x99')][_0x7413('0x59')]({'where':{'id':_0x41a563[_0x7413('0xb6')]['id']},'include':_0x4c599a})['then'](handleEntityNotFound(_0x214a36,null))[_0x7413('0x29')](function(_0x24c091){if(_0x24c091){var _0x558e82=_0x24c091['get']({'plain':!![]});fs[_0x7413('0xd5')](_0x8ccb2c);var _0x50ab17={'format':'A4','border':'10px','header':{'height':_0x7413('0xd6'),'contents':{'first':_0x7413('0xd7')}},'footer':{'height':_0x7413('0xd8'),'contents':{'default':util[_0x7413('0xbf')](_0x7413('0xd9'),util[_0x7413('0xbf')](_0x7413('0xda'),_0x7413('0xdb'),_0x558e82['id']),moment()['format'](_0x7413('0xdc'))[_0x7413('0x96')]())}}};var _0x5c8ab6={'channel':_0x7413('0xdb'),'account':_0x558e82[_0x7413('0xdd')][_0x7413('0x2e')],'agent':_0x558e82[_0x7413('0xd4')]?_0x558e82['Owner'][_0x7413('0x32')]:_0x7413('0xde'),'createdAt':moment(_0x558e82[_0x7413('0x73')])['format'](_0x7413('0xdf'))[_0x7413('0x96')](),'closedAt':_0x558e82[_0x7413('0xe0')]?moment(_0x558e82['closedAt'])[_0x7413('0xbf')]('YYYY-MM-DD\x20HH:mm:ss')[_0x7413('0x96')]():'','disposition':_0x558e82['disposition'],'messages':_(_0x558e82['Messages'])[_0x7413('0x82')]({'secret':![]})[_0x7413('0x31')](function(_0x26df69){if(_0x26df69[_0x7413('0xd0')]){var _0x5669f2=path[_0x7413('0xc7')](_0x37efdb,_0x26df69['Attachment'][_0x7413('0xe1')]);if(fs[_0x7413('0xe2')](_0x5669f2)){fs['createReadStream'](_0x5669f2)[_0x7413('0xe3')](fs[_0x7413('0xe4')](path[_0x7413('0xc7')](_0x8ccb2c,_0x26df69[_0x7413('0xd0')][_0x7413('0xe1')])));}}return{'date':moment(_0x26df69[_0x7413('0x73')])[_0x7413('0xbf')](_0x7413('0xdf'))[_0x7413('0x96')](),'sender':_0x26df69[_0x7413('0xe5')]===_0x7413('0xe6')?_0x26df69[_0x7413('0x69')]?_0x26df69[_0x7413('0x69')][_0x7413('0x32')]:_0x7413('0xe7'):_0x26df69[_0x7413('0x5c')]['firstName']+(_0x26df69['Contact'][_0x7413('0xce')]?'\x20'+_0x26df69[_0x7413('0x5c')]['lastName']:''),'body':_0x26df69[_0x7413('0xd0')]?_0x26df69['Attachment']['basename']:_0x26df69[_0x7413('0x6c')],'direction':_0x26df69['direction']===_0x7413('0xe6')?'A':'C','secret':_0x26df69[_0x7413('0xd2')],'read':_0x26df69[_0x7413('0x7b')],'attachment':_0x26df69[_0x7413('0xd0')]};})['value']()};return ejs[_0x7413('0xe8')](path[_0x7413('0xc7')](config[_0x7413('0xc8')],_0x7413('0xc9'),'views','downloadInteraction.html'),{'interaction':_0x5c8ab6})[_0x7413('0x29')](function(_0x13fb8e){return new BPromise(function(_0x57e254,_0x5c0ab9){pdf[_0x7413('0xb5')](_0x13fb8e,_0x50ab17)['toFile'](path[_0x7413('0xc7')](_0x8ccb2c,_0x7413('0xe9')+_0x558e82['id']+'-'+_0x3cede4+'.pdf'),function(_0xa592f,_0x30dc8b){if(_0xa592f)return _0x5c0ab9(_0xa592f);_0x57e254(_0x30dc8b);});});})['then'](function(){return new BPromise(function(_0x226844,_0xbbb10b){zipdir(_0x8ccb2c,{'saveTo':_0x5efa42},function(_0x3c9aeb,_0x4ef45c){if(_0x3c9aeb)return _0xbbb10b(_0x3c9aeb);return _0x226844(_0x4ef45c);});})[_0x7413('0x29')](function(){return new BPromise(function(_0x4dc103,_0x2e1ed0){rimraf(_0x8ccb2c,function(_0x4bcefe){if(_0x4bcefe)_0x2e1ed0(_0x4bcefe);return _0x4dc103();});});})[_0x7413('0x29')](function(){return _0x214a36[_0x7413('0xc5')](_0x5efa42,_0x4403bf,function(_0x18624d){if(_0x18624d){console['log'](_0x7413('0xea'),_0x18624d);}else{fs[_0x7413('0xeb')](_0x5efa42);}});});});}else{return _0x214a36[_0x7413('0x2b')](0xc8);}})[_0x7413('0x37')](handleError(_0x214a36,null));};