db7dd832f455b5beb4e933ba5310ed8761854a62
[motion2.git] / server / api / mailInteraction / mailInteraction.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 _0x9586=['fromString','index','MailInteraction','rawAttributes','model','keys','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','select','field','color','from','COUNT(*)','mail_messages','me.MailInteractionId\x20=\x20i.id','me.direction\x20=\x20\x27in\x27','me.read\x20=\x20false','u.id','ui.MailInteractionId','users','u.id\x20=\x20ui.UserId','mail_interactions','left_join','cm_contacts','o.id\x20=\x20i.UserId','mail_accounts','a.id\x20=\x20i.MailAccountId','me.MailInteractionId\x20=\x20i.id\x20AND\x20me.direction\x20=\x20\x27in\x27\x20AND\x20me.read\x20=\x20false','advancedFilter','parse','createdAt','value','dateStart','startOf','day','utc','format','endOf','and','condition','TagId','isArray','length','tableAlias','\x20IN\x20?','\x20=\x20?','LIKE','ContactId','c.firstName','c.lastName','\x20LIKE\x20?','c.email','\x20>\x20?','\x20<\x20?','unreadMessages','filter','isNil','isEmpty','MailAccountId','i.MailAccountId\x20IN\x20?','concat','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','replace','isNumeric','i.id\x20LIKE\x20?','isEmail','join','MATCH\x20(i.to,\x20i.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','DESC','group','Sequelize','QueryTypes','SELECT','clone','read','having','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','expr','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','mail_interaction_has_tags','it.MailInteractionId\x20=\x20i.id','tools_tags','t.id\x20=\x20it.TagId','t.id\x20IN\x20?','sequelize','toString','keyBy','COUNT(me.id)','a.key','Account.key','i.id','i.createdAt','i.closed','i.closedAt','i.attach','i.lastMsgDirection','i.subject','i.substatus','i.ContactId','i.MailAccountId','i.UserId','Contact.firstName','Contact.email','c.phone','Contact.phone','c.mobile','c.fax','Contact.fax','ui.MailInteractionId\x20IN\x20?','groupBy','MailInteractionId','Setting','findOne','enableEmailPreview','all','rows','catch','show','includeAll','include','merge','options','find','create','body','describe','addMessage','MailMessage','params','omit','ids','getMessages','findAll','addTags','setTags','Tag','emit','mailInteractionTags:save','removeTags','unix','root','server','attachments','files','interaction-%s.zip','bcc','subject','Attachment','Attachments','mkdirSync','each','headers','Bcc','existsSync','type','readFileSync','writeFileSync','message%d.eml','download','err','html-pdf','fast-json-patch','request-promise','moment','mustache','path','sox','to-csv','squel','jsforce','desk.js','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../mysqldb','defaults','localhost','socket.io-emitter','redis','./mailInteraction.socket','register','sendStatus','end','status','json','count','offset','limit','set','reject','update','then','destroy','error','name','Users','map','TagIds','Tags','split','forEach','push','lastMsgBody','lastMsgText','trimStart'];(function(_0x453261,_0x55d642){var _0x54fb3b=function(_0x20c7fb){while(--_0x20c7fb){_0x453261['push'](_0x453261['shift']());}};_0x54fb3b(++_0x55d642);}(_0x9586,0xae));var _0x6958=function(_0x20cb34,_0x2eca0e){_0x20cb34=_0x20cb34-0x0;var _0x4e6495=_0x9586[_0x20cb34];return _0x4e6495;};'use strict';var pdf=require(_0x6958('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x6958('0x1'));var rp=require(_0x6958('0x2'));var moment=require(_0x6958('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x6958('0x4'));var util=require('util');var path=require(_0x6958('0x5'));var sox=require(_0x6958('0x6'));var csv=require(_0x6958('0x7'));var ejs=require('ejs');var fs=require('fs');var _=require('lodash');var squel=require(_0x6958('0x8'));var crypto=require('crypto');var jsforce=require(_0x6958('0x9'));var deskjs=require(_0x6958('0xa'));var toCsv=require(_0x6958('0x7'));var querystring=require(_0x6958('0xb'));var Papa=require(_0x6958('0xc'));var htmlToText=require('html-to-text');var Redis=require('ioredis');var authService=require(_0x6958('0xd'));var qs=require(_0x6958('0xe'));var hardwareService=require(_0x6958('0xf'));var logger=require(_0x6958('0x10'))(_0x6958('0x11'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require(_0x6958('0x12'))['db'];config['redis']=_[_0x6958('0x13')](config['redis'],{'host':_0x6958('0x14'),'port':0x18eb});var socket=require(_0x6958('0x15'))(new Redis(config[_0x6958('0x16')]));require(_0x6958('0x17'))[_0x6958('0x18')](socket);function respondWithStatusCode(_0x2627b1,_0x19335a){_0x19335a=_0x19335a||0xcc;return function(_0x33686c){if(_0x33686c){return _0x2627b1[_0x6958('0x19')](_0x19335a);}return _0x2627b1['status'](_0x19335a)[_0x6958('0x1a')]();};}function respondWithResult(_0x1ceefb,_0x5f14d8){_0x5f14d8=_0x5f14d8||0xc8;return function(_0x38ab5a){if(_0x38ab5a){return _0x1ceefb[_0x6958('0x1b')](_0x5f14d8)[_0x6958('0x1c')](_0x38ab5a);}};}function respondWithFilteredResult(_0x1e2177,_0x528432){return function(_0x21c423){if(_0x21c423){var _0x8edd81=_0x21c423[_0x6958('0x1d')],_0x3e44fb=_0x528432['offset'],_0x4b46e7=_0x528432[_0x6958('0x1e')]+_0x528432[_0x6958('0x1f')],_0x371613;if(_0x4b46e7>=_0x8edd81){_0x4b46e7=_0x8edd81;_0x371613=0xc8;}else{_0x371613=0xce;}_0x1e2177[_0x6958('0x1b')](_0x371613);return _0x1e2177[_0x6958('0x20')]('Content-Range',_0x3e44fb+'-'+_0x4b46e7+'/'+_0x8edd81)[_0x6958('0x1c')](_0x21c423);}return null;};}function patchUpdates(_0x161601){return function(_0x449354){try{jsonpatch['apply'](_0x449354,_0x161601,!![]);}catch(_0x15058b){return BPromise[_0x6958('0x21')](_0x15058b);}return _0x449354['save']();};}function saveUpdates(_0x1ef736,_0x36c312){return function(_0x367a48){if(_0x367a48){return _0x367a48[_0x6958('0x22')](_0x1ef736)[_0x6958('0x23')](function(_0x5e79a0){return _0x5e79a0;});}return null;};}function removeEntity(_0x3b4735,_0x1182e2){return function(_0x4f3647){if(_0x4f3647){return _0x4f3647[_0x6958('0x24')]()[_0x6958('0x23')](function(){_0x3b4735['status'](0xcc)[_0x6958('0x1a')]();});}};}function handleEntityNotFound(_0x484e66,_0xa7f18a){return function(_0x33c169){if(!_0x33c169){_0x484e66['sendStatus'](0x194);}return _0x33c169;};}function handleError(_0xb6877c,_0x5e9175){_0x5e9175=_0x5e9175||0x1f4;return function(_0x13af5c){logger[_0x6958('0x25')](_0x13af5c['stack']);if(_0x13af5c[_0x6958('0x26')]){delete _0x13af5c[_0x6958('0x26')];}_0xb6877c[_0x6958('0x1b')](_0x5e9175)['send'](_0x13af5c);};}function getInteractionUsers(_0x2148d9,_0x11a07a){return new BPromise(function(_0x32cea5,_0x160094){try{if(_0x11a07a[_0x2148d9['id']]){_0x2148d9[_0x6958('0x27')]=_[_0x6958('0x28')](_0x11a07a[_0x2148d9['id']],function(_0x1dd7cc){return{'id':_0x1dd7cc['id']};});}}catch(_0x3a5b1f){_0x160094(_0x3a5b1f);}_0x32cea5(_0x2148d9);});}function getInteractionTags(_0x4c6de4,_0x55fbac){return new BPromise(function(_0x2e44de,_0x3e1a19){try{if(_0x4c6de4[_0x6958('0x29')]){_0x4c6de4[_0x6958('0x2a')]=[];_0x4c6de4['TagIds'][_0x6958('0x2b')](',')[_0x6958('0x2c')](function(_0x52f99b){_0x4c6de4['Tags'][_0x6958('0x2d')](_0x55fbac[_0x52f99b]);});}delete _0x4c6de4[_0x6958('0x29')];}catch(_0x573e55){_0x3e1a19(_0x573e55);}_0x2e44de(_0x4c6de4);});}function getLastMessageText(_0x483de0){return new BPromise(function(_0x16cd66,_0x2299f5){return db['MailInteraction']['findOne']({'where':{'id':_0x483de0['id']},'attributes':[_0x6958('0x2e'),_0x6958('0x2f')],'raw':!![]})['then'](function(_0x516f06){if(!_0x516f06[_0x6958('0x2f')]){_0x483de0[_0x6958('0x2f')]=_[_0x6958('0x30')](htmlToText[_0x6958('0x31')](_0x516f06[_0x6958('0x2e')],{'preserveNewlines':!![],'singleNewLineParagraphs':!![],'uppercaseHeadings':![],'noLinkBrackets':!![],'ignoreImage':!![]}));}else{_0x483de0[_0x6958('0x2f')]=_0x516f06['lastMsgText'];}_0x16cd66(_0x483de0);})['catch'](function(_0x46e142){_0x2299f5(_0x46e142);});});}function updateMailInteraction(_0x2dbac0,_0x30438d,_0x30da02,_0x4e60f2){return new BPromise(function(_0x1871e2,_0x15de17){return getInteractionUsers(_0x2dbac0,_0x30da02)[_0x6958('0x23')](function(_0x34f83d){return getInteractionTags(_0x34f83d,_0x30438d);})['then'](function(_0x1fd87a){if(_0x4e60f2){_0x1871e2(getLastMessageText(_0x1fd87a));}else{_0x1871e2(_0x1fd87a);}})['catch'](function(_0x5cfefa){_0x15de17(_0x5cfefa);});});}exports[_0x6958('0x32')]=function(_0x4cf002,_0x284a02){var _0x2a8c25={},_0x54b9b0={},_0x337145={'count':0x0,'rows':[]};var _0x3317c3=db[_0x6958('0x33')][_0x6958('0x34')];_0x54b9b0[_0x6958('0x35')]=_[_0x6958('0x36')](_0x3317c3);_0x54b9b0[_0x6958('0x37')]=_[_0x6958('0x36')](_0x4cf002[_0x6958('0x37')]);_0x54b9b0[_0x6958('0x38')]=_[_0x6958('0x39')](_0x54b9b0[_0x6958('0x35')],_0x54b9b0[_0x6958('0x37')]);_0x2a8c25[_0x6958('0x3a')]=_['intersection'](_0x54b9b0[_0x6958('0x35')],qs[_0x6958('0x3b')](_0x4cf002[_0x6958('0x37')][_0x6958('0x3b')]));_0x2a8c25[_0x6958('0x3a')]=_0x2a8c25[_0x6958('0x3a')]['length']?_0x2a8c25[_0x6958('0x3a')]:_0x54b9b0[_0x6958('0x35')];if(!_0x4cf002[_0x6958('0x37')][_0x6958('0x3c')](_0x6958('0x3d'))){_0x2a8c25[_0x6958('0x1f')]=qs['limit'](_0x4cf002[_0x6958('0x37')][_0x6958('0x1f')]);_0x2a8c25[_0x6958('0x1e')]=qs[_0x6958('0x1e')](_0x4cf002['query']['offset']);}_0x2a8c25[_0x6958('0x3e')]=qs[_0x6958('0x3f')](_0x4cf002['query']['sort']);_0x2a8c25[_0x6958('0x40')]=qs['filters'](_[_0x6958('0x41')](_0x4cf002[_0x6958('0x37')],_0x54b9b0[_0x6958('0x38')]));var _0xb575a=[];var _0x39caf9=squel[_0x6958('0x42')]()[_0x6958('0x43')]('id')[_0x6958('0x43')](_0x6958('0x26'))['field'](_0x6958('0x44'))[_0x6958('0x45')]('tools_tags');var _0x1e48fb=squel[_0x6958('0x42')]()[_0x6958('0x43')](_0x6958('0x46'))[_0x6958('0x45')](_0x6958('0x47'),'me')['where'](_0x6958('0x48'))[_0x6958('0x40')](_0x6958('0x49'))['where'](_0x6958('0x4a'));var _0x359857=squel[_0x6958('0x42')]()[_0x6958('0x43')](_0x6958('0x4b'))[_0x6958('0x43')](_0x6958('0x4c'))[_0x6958('0x45')]('user_has_mail_interactions','ui')['left_join'](_0x6958('0x4d'),'u',_0x6958('0x4e'));var _0x54c1a7=squel[_0x6958('0x42')]()[_0x6958('0x45')](_0x6958('0x4f'),'i')[_0x6958('0x50')](_0x6958('0x51'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')[_0x6958('0x50')](_0x6958('0x4d'),'o',_0x6958('0x52'))[_0x6958('0x50')](_0x6958('0x53'),'a',_0x6958('0x54'))[_0x6958('0x50')](_0x6958('0x47'),'me',_0x6958('0x55'));var _0x713e36=squel['expr']();if(_0x4cf002['query'][_0x6958('0x56')]){var _0x152494=JSON[_0x6958('0x57')](_0x4cf002['query'][_0x6958('0x56')]);_[_0x6958('0x36')](_0x152494)[_0x6958('0x2c')](function(_0x51a400){var _0x397912=_0x152494[_0x51a400];if(_0x51a400===_0x6958('0x58')){var _0x538d25=moment(_0x397912[_0x6958('0x59')][_0x6958('0x5a')])[_0x6958('0x5b')](_0x6958('0x5c'))[_0x6958('0x5d')]()[_0x6958('0x5e')]();var _0x47f38b=moment(_0x47f38b)[_0x6958('0x5d')]()[_0x6958('0x5f')](_0x6958('0x5c'))[_0x6958('0x5e')]();_0x713e36[_0x6958('0x60')]('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x538d25,_0x47f38b);}else{if(_['isArray'](_0x397912[_0x6958('0x61')])){_0x397912[_0x6958('0x61')][_0x6958('0x2c')](function(_0x12301c){switch(_0x397912[_0x6958('0x61')][_0x6958('0x59')]){case'IS':if(_0x51a400!==_0x6958('0x62')&&_0x51a400!=='unreadMessages'){if(_[_0x6958('0x63')](_0x397912['value'])&&_0x397912['value'][_0x6958('0x64')]>0x1){_0x713e36['and'](_0x397912[_0x6958('0x65')]+'.'+_0x51a400+_0x6958('0x66'),_0x397912[_0x6958('0x59')]);}else{_0x713e36['and'](_0x397912['tableAlias']+'.'+_0x51a400+_0x6958('0x67'),_0x397912[_0x6958('0x59')][0x0]);}}break;case'=':_0x713e36[_0x6958('0x60')](_0x397912[_0x6958('0x65')]+'.'+_0x51a400+_0x6958('0x67'),_0x397912[_0x6958('0x59')]);break;case _0x6958('0x68'):if(_0x51a400===_0x6958('0x69')){_0x713e36['and'](_0x6958('0x6a')+'\x20LIKE\x20?','%'+_0x397912['value']+'%');_0x713e36['or'](_0x6958('0x6b')+_0x6958('0x6c'),'%'+_0x397912['value']+'%');_0x713e36['or'](_0x6958('0x6d')+_0x6958('0x6c'),'%'+_0x397912['value']+'%');}else{_0x713e36[_0x6958('0x60')](_0x397912[_0x6958('0x65')]+'.'+_0x51a400+_0x6958('0x6c'),'%'+_0x397912[_0x6958('0x59')]+'%');}break;case'>':_0x713e36[_0x6958('0x60')](_0x397912[_0x6958('0x65')]+'.'+_0x51a400+_0x6958('0x6e'),_0x397912[_0x6958('0x59')]);break;case'<':_0x713e36['and'](_0x397912['tableAlias']+'.'+_0x51a400+_0x6958('0x6f'),_0x397912[_0x6958('0x59')]);break;}});}else{switch(_0x397912[_0x6958('0x61')]['value']){case'IS':if(_0x51a400!==_0x6958('0x62')&&_0x51a400!==_0x6958('0x70')){if(_[_0x6958('0x63')](_0x397912[_0x6958('0x59')])&&_0x397912[_0x6958('0x59')][_0x6958('0x64')]>0x1){_0x713e36['and'](_0x397912['tableAlias']+'.'+_0x51a400+_0x6958('0x66'),_0x397912['value']);}else{_0x713e36[_0x6958('0x60')](_0x397912[_0x6958('0x65')]+'.'+_0x51a400+_0x6958('0x67'),_0x397912['value'][0x0]);}}break;case'=':_0x713e36[_0x6958('0x60')](_0x397912[_0x6958('0x65')]+'.'+_0x51a400+_0x6958('0x67'),_0x397912[_0x6958('0x59')]);break;case _0x6958('0x68'):if(_0x51a400===_0x6958('0x69')){_0x713e36[_0x6958('0x60')]('c.firstName'+'\x20LIKE\x20?','%'+_0x397912[_0x6958('0x59')]+'%');_0x713e36['or'](_0x6958('0x6b')+_0x6958('0x6c'),'%'+_0x397912[_0x6958('0x59')]+'%');_0x713e36['or'](_0x6958('0x6d')+_0x6958('0x6c'),'%'+_0x397912[_0x6958('0x59')]+'%');}else{_0x713e36[_0x6958('0x60')](_0x397912[_0x6958('0x65')]+'.'+_0x51a400+_0x6958('0x6c'),'%'+_0x397912[_0x6958('0x59')]+'%');}break;case'>':_0x713e36[_0x6958('0x60')](_0x397912[_0x6958('0x65')]+'.'+_0x51a400+_0x6958('0x6e'),_0x397912[_0x6958('0x59')]);break;case'<':_0x713e36['and'](_0x397912[_0x6958('0x65')]+'.'+_0x51a400+_0x6958('0x6f'),_0x397912[_0x6958('0x59')]);break;}}}});}else{var _0x58b0fc=_(Object[_0x6958('0x36')](_0x4cf002['query']))[_0x6958('0x28')](function(_0x262186){return _0x3317c3['hasOwnProperty'](_0x262186)?_0x262186:undefined;})[_0x6958('0x71')](function(_0x87099a){return!_[_0x6958('0x72')](_0x87099a);})['value']();if(!_[_0x6958('0x73')](_0x58b0fc)){_0x58b0fc[_0x6958('0x2c')](function(_0x3338de){if(_0x3338de===_0x6958('0x74')){_0x54c1a7[_0x6958('0x40')](_0x6958('0x75'),[][_0x6958('0x76')](_0x4cf002[_0x6958('0x37')][_0x3338de]));}else if(_0x3338de===_0x6958('0x58')){var _0x361581=JSON[_0x6958('0x57')](_0x4cf002['query'][_0x3338de])[_0x6958('0x77')];var _0x192f86=JSON[_0x6958('0x57')](_0x4cf002[_0x6958('0x37')][_0x3338de])[_0x6958('0x78')];_0x54c1a7[_0x6958('0x40')](_0x6958('0x79'),_0x361581,_0x192f86);}else{if(_0x4cf002[_0x6958('0x37')][_0x3338de]===_0x6958('0x7a')){_0x54c1a7['where']('i.'+_0x3338de+'\x20IS\x20NULL');}else{_0x54c1a7['where']('i.'+_0x3338de+_0x6958('0x67'),_0x4cf002['query'][_0x3338de]);}}});}if(_0x4cf002[_0x6958('0x37')][_0x6958('0x71')]){var _0x4b581b=_0x4cf002['query'][_0x6958('0x71')][_0x6958('0x7b')]('\x5c','\x5c\x5c')['replace']('\x27\x27','\x27\x27\x27\x27');if(qs[_0x6958('0x7c')](_0x4b581b)){_0x713e36['or'](_0x6958('0x7d'),_0x4b581b+'%');}else if(qs[_0x6958('0x7e')](_0x4b581b)){_0x713e36['or']('c.email\x20LIKE\x20?',_0x4b581b+'%');}else{var _0x5ef29e=[];_0x4b581b[_0x6958('0x2b')]('\x20')[_0x6958('0x2c')](function(_0x454e48){_0x5ef29e[_0x6958('0x2d')]('+'+_0x454e48['toString']());});var _0x502edf=_0x5ef29e[_0x6958('0x7f')]('\x20');_0x713e36['or'](_0x6958('0x80'),_0x502edf)['or']('MATCH\x20(me.plainBody,\x20me.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',_0x502edf);}}}_0x54c1a7[_0x6958('0x40')](_0x713e36);if(_0x2a8c25[_0x6958('0x3e')]){_0x2a8c25[_0x6958('0x3e')]['forEach'](function(_0x4e7f45){_0x54c1a7[_0x6958('0x3e')]('i.'+_0x4e7f45[0x0],_0x4e7f45[0x1]===_0x6958('0x81')?![]:!![]);});}_0x54c1a7[_0x6958('0x82')]('i.id');var _0x37cb6c={'type':db[_0x6958('0x83')][_0x6958('0x84')][_0x6958('0x85')],'raw':!![]};var _0x2d4d6d=_0x54c1a7[_0x6958('0x86')]()[_0x6958('0x43')](_0x6958('0x46'))[_0x6958('0x43')]('COUNT(me.id)','unreadMessages');if(!_0x4cf002[_0x6958('0x37')][_0x6958('0x56')]){if(_0x4cf002[_0x6958('0x37')][_0x6958('0x87')]){if(_0x4cf002[_0x6958('0x37')][_0x6958('0x87')]==0x1){_0x2d4d6d[_0x6958('0x88')](_0x6958('0x89'));_0x54c1a7[_0x6958('0x88')](_0x6958('0x89'));}else{_0x2d4d6d['having']('`unreadMessages`\x20>\x200');_0x54c1a7[_0x6958('0x88')](_0x6958('0x8a'));}}if(_0x4cf002['query'][_0x6958('0x8b')]){var _0x18e6cd=_[_0x6958('0x63')](_0x4cf002[_0x6958('0x37')][_0x6958('0x8b')])?_0x4cf002[_0x6958('0x37')][_0x6958('0x8b')]:new Array(_0x4cf002[_0x6958('0x37')][_0x6958('0x8b')]);var _0x34561b=squel[_0x6958('0x8c')]();_0x18e6cd[_0x6958('0x2c')](function(_0x38016d){_0x34561b['or'](_0x6958('0x8d'),'%,'+_0x38016d+',%');});_0x54c1a7[_0x6958('0x88')](_0x34561b);_0x2d4d6d[_0x6958('0x50')](_0x6958('0x8e'),'it',_0x6958('0x8f'));_0x2d4d6d[_0x6958('0x50')](_0x6958('0x90'),'t',_0x6958('0x91'));_0x2d4d6d['where']('t.id\x20IN\x20?',_0x18e6cd);}}else{var _0x152494=JSON[_0x6958('0x57')](_0x4cf002[_0x6958('0x37')][_0x6958('0x56')]);_[_0x6958('0x36')](_0x152494)[_0x6958('0x2c')](function(_0x2a3398){var _0x3f895e=_0x152494[_0x2a3398];if(_0x2a3398===_0x6958('0x62')){var _0x57f80a=_0x3f895e[_0x6958('0x59')];var _0x25ed12=squel[_0x6958('0x8c')]();_0x57f80a[_0x6958('0x2c')](function(_0x558a00){_0x25ed12['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x558a00+',%');});_0x54c1a7[_0x6958('0x88')](_0x25ed12);_0x2d4d6d['left_join'](_0x6958('0x8e'),'it',_0x6958('0x8f'));_0x2d4d6d[_0x6958('0x50')](_0x6958('0x90'),'t',_0x6958('0x91'));_0x2d4d6d['where'](_0x6958('0x92'),_0x57f80a);}else if(_0x2a3398===_0x6958('0x70')){if(_0x3f895e[_0x6958('0x59')][_0x6958('0x64')]===0x1){if(_0x3f895e[_0x6958('0x59')][0x0]===0x1){_0x2d4d6d[_0x6958('0x88')](_0x6958('0x89'));_0x54c1a7[_0x6958('0x88')]('`unreadMessages`\x20=\x200');}else{_0x2d4d6d['having'](_0x6958('0x8a'));_0x54c1a7[_0x6958('0x88')]('`unreadMessages`\x20>\x200');}}}});}db[_0x6958('0x93')][_0x6958('0x37')](_0x2d4d6d[_0x6958('0x94')](),_0x37cb6c)[_0x6958('0x23')](function(_0x380dab){_0x337145[_0x6958('0x1d')]=_0x380dab[_0x6958('0x64')];if(_0x337145['count']===0x0)return[];return db[_0x6958('0x93')][_0x6958('0x37')](_0x39caf9['toString'](),_0x37cb6c)['then'](function(_0x497aba){_0xb575a=_[_0x6958('0x95')](_0x497aba,'id');_0x37cb6c=_['merge'](_0x37cb6c,{'model':db[_0x6958('0x33')],'mapToModel':!![],'raw':!![],'nest':!![]});_0x54c1a7['field'](_0x6958('0x96'),_0x6958('0x70'));_0x54c1a7['field'](_0x6958('0x97'),_0x6958('0x98'));_0x54c1a7[_0x6958('0x43')](_0x6958('0x99'));_0x54c1a7[_0x6958('0x43')](_0x6958('0x9a'));_0x54c1a7[_0x6958('0x43')]('i.updatedAt');_0x54c1a7[_0x6958('0x43')](_0x6958('0x9b'));_0x54c1a7[_0x6958('0x43')](_0x6958('0x9c'));_0x54c1a7['field'](_0x6958('0x9d'));_0x54c1a7[_0x6958('0x43')]('i.lastMsgAt');_0x54c1a7[_0x6958('0x43')](_0x6958('0x9e'));_0x54c1a7['field'](_0x6958('0x9f'));_0x54c1a7[_0x6958('0x43')]('i.disposition');_0x54c1a7[_0x6958('0x43')](_0x6958('0xa0'));_0x54c1a7[_0x6958('0x43')]('i.to');_0x54c1a7['field'](_0x6958('0xa1'));_0x54c1a7[_0x6958('0x43')](_0x6958('0xa2'));_0x54c1a7[_0x6958('0x43')](_0x6958('0xa3'));_0x54c1a7['field'](_0x6958('0x6a'),_0x6958('0xa4'));_0x54c1a7[_0x6958('0x43')](_0x6958('0x6b'),'Contact.lastName');_0x54c1a7['field'](_0x6958('0x6d'),_0x6958('0xa5'));_0x54c1a7[_0x6958('0x43')](_0x6958('0xa6'),_0x6958('0xa7'));_0x54c1a7[_0x6958('0x43')](_0x6958('0xa8'),'Contact.mobile');_0x54c1a7[_0x6958('0x43')](_0x6958('0xa9'),_0x6958('0xaa'));_0x54c1a7['field']('GROUP_CONCAT(DISTINCT\x20t.id)',_0x6958('0x29'));_0x54c1a7['left_join'](_0x6958('0x8e'),'it',_0x6958('0x8f'));_0x54c1a7[_0x6958('0x50')](_0x6958('0x90'),'t','t.id\x20=\x20it.TagId');_0x54c1a7[_0x6958('0x1f')](_0x2a8c25[_0x6958('0x1f')]);_0x54c1a7[_0x6958('0x1e')](_0x2a8c25[_0x6958('0x1e')]);return db['sequelize'][_0x6958('0x37')](_0x54c1a7[_0x6958('0x94')](),_0x37cb6c);})['then'](function(_0xb3c038){_0x359857[_0x6958('0x40')](_0x6958('0xab'),_['map'](_0xb3c038,'id'));return db[_0x6958('0x93')]['query'](_0x359857['toString'](),_0x37cb6c)[_0x6958('0x23')](function(_0x424871){var _0x80e140=_[_0x6958('0xac')](_0x424871,_0x6958('0xad'));var _0x1d9a8a=[];return db[_0x6958('0xae')][_0x6958('0xaf')]({'attributes':['enableEmailPreview'],'raw':!![]})[_0x6958('0x23')](function(_0x4870d7){var _0x517b80=_0x4870d7[_0x6958('0xb0')];_0xb3c038[_0x6958('0x2c')](function(_0x3bfdd7){_0x1d9a8a[_0x6958('0x2d')](updateMailInteraction(_0x3bfdd7,_0xb575a,_0x80e140,_0x517b80));});return BPromise[_0x6958('0xb1')](_0x1d9a8a);});});});})['then'](function(_0x235bcd){_0x337145[_0x6958('0xb2')]=_0x235bcd;return _0x337145;})['then'](respondWithFilteredResult(_0x284a02,_0x2a8c25))[_0x6958('0xb3')](handleError(_0x284a02,null));};exports[_0x6958('0xb4')]=function(_0x42c098,_0x165222){var _0x4698fe={'raw':![],'where':{'id':_0x42c098['params']['id']}},_0x94de83={};_0x94de83[_0x6958('0x35')]=_[_0x6958('0x36')](db['MailInteraction'][_0x6958('0x34')]);_0x94de83[_0x6958('0x37')]=_['keys'](_0x42c098[_0x6958('0x37')]);_0x94de83[_0x6958('0x38')]=_[_0x6958('0x39')](_0x94de83[_0x6958('0x35')],_0x94de83['query']);_0x4698fe[_0x6958('0x3a')]=_[_0x6958('0x39')](_0x94de83[_0x6958('0x35')],qs[_0x6958('0x3b')](_0x42c098[_0x6958('0x37')][_0x6958('0x3b')]));_0x4698fe['attributes']=_0x4698fe['attributes'][_0x6958('0x64')]?_0x4698fe[_0x6958('0x3a')]:_0x94de83['model'];if(_0x42c098[_0x6958('0x37')][_0x6958('0xb5')]){_0x4698fe[_0x6958('0xb6')]=[{'all':!![]}];}_0x4698fe=_[_0x6958('0xb7')]({},_0x4698fe,_0x42c098[_0x6958('0xb8')]);return db[_0x6958('0x33')][_0x6958('0xb9')](_0x4698fe)[_0x6958('0x23')](handleEntityNotFound(_0x165222,null))[_0x6958('0x23')](respondWithResult(_0x165222,null))[_0x6958('0xb3')](handleError(_0x165222,null));};exports[_0x6958('0xba')]=function(_0x3099b0,_0x1d38c0){return db['MailInteraction'][_0x6958('0xba')](_0x3099b0[_0x6958('0xbb')],{})[_0x6958('0x23')](respondWithResult(_0x1d38c0,0xc9))[_0x6958('0xb3')](handleError(_0x1d38c0,null));};exports['update']=function(_0xaef61b,_0x3677ca){if(_0xaef61b[_0x6958('0xbb')]['id']){delete _0xaef61b['body']['id'];}return db[_0x6958('0x33')]['find']({'where':{'id':_0xaef61b['params']['id']}})[_0x6958('0x23')](handleEntityNotFound(_0x3677ca,null))[_0x6958('0x23')](saveUpdates(_0xaef61b[_0x6958('0xbb')],null))['then'](respondWithResult(_0x3677ca,null))[_0x6958('0xb3')](handleError(_0x3677ca,null));};exports[_0x6958('0x24')]=function(_0x4296af,_0xe81bd7){return db[_0x6958('0x33')][_0x6958('0xb9')]({'where':{'id':_0x4296af['params']['id']}})[_0x6958('0x23')](handleEntityNotFound(_0xe81bd7,null))['then'](removeEntity(_0xe81bd7,null))[_0x6958('0xb3')](handleError(_0xe81bd7,null));};exports[_0x6958('0xbc')]=function(_0x5b868c,_0x4f929e){return db[_0x6958('0x33')]['describe']()[_0x6958('0x23')](respondWithResult(_0x4f929e,null))[_0x6958('0xb3')](handleError(_0x4f929e,null));};exports[_0x6958('0xbd')]=function(_0x5b9c20,_0x31ef4f,_0x3e943d){return db[_0x6958('0xbe')][_0x6958('0xb9')]({'where':{'id':_0x5b9c20[_0x6958('0xbf')]['id']}})[_0x6958('0x23')](handleEntityNotFound(_0x31ef4f,null))[_0x6958('0x23')](function(_0x4bbb65){if(_0x4bbb65){return _0x4bbb65[_0x6958('0xbd')](_0x5b9c20[_0x6958('0xbb')]['ids'],_[_0x6958('0xc0')](_0x5b9c20[_0x6958('0xbb')],[_0x6958('0xc1'),'id'])||{});}})[_0x6958('0x23')](respondWithResult(_0x31ef4f,null))[_0x6958('0xb3')](handleError(_0x31ef4f,null));};exports[_0x6958('0xc2')]=function(_0x416ef2,_0x4a0df5,_0x17f65f){var _0x495e84={'raw':![],'where':{}};var _0x7bde64={};var _0x237210={'count':0x0,'rows':[]};return db[_0x6958('0x33')]['findOne']({'where':{'id':_0x416ef2[_0x6958('0xbf')]['id']}})[_0x6958('0x23')](handleEntityNotFound(_0x4a0df5,null))[_0x6958('0x23')](function(_0x385314){if(_0x385314){_0x7bde64[_0x6958('0x35')]=_[_0x6958('0x36')](db[_0x6958('0xbe')]['rawAttributes']);_0x7bde64[_0x6958('0x37')]=_['keys'](_0x416ef2[_0x6958('0x37')]);_0x7bde64[_0x6958('0x38')]=_[_0x6958('0x39')](_0x7bde64[_0x6958('0x35')],_0x7bde64[_0x6958('0x37')]);_0x495e84[_0x6958('0x3a')]=_[_0x6958('0x39')](_0x7bde64[_0x6958('0x35')],qs['fields'](_0x416ef2[_0x6958('0x37')][_0x6958('0x3b')]));_0x495e84[_0x6958('0x3a')]=_0x495e84[_0x6958('0x3a')]['length']?_0x495e84[_0x6958('0x3a')]:_0x7bde64[_0x6958('0x35')];if(!_0x416ef2[_0x6958('0x37')]['hasOwnProperty'](_0x6958('0x3d'))){_0x495e84['limit']=qs[_0x6958('0x1f')](_0x416ef2['query'][_0x6958('0x1f')]);_0x495e84[_0x6958('0x1e')]=qs[_0x6958('0x1e')](_0x416ef2[_0x6958('0x37')][_0x6958('0x1e')]);}_0x495e84[_0x6958('0x3e')]=qs[_0x6958('0x3f')](_0x416ef2[_0x6958('0x37')][_0x6958('0x3f')]);_0x495e84['where']=qs[_0x6958('0x38')](_[_0x6958('0x41')](_0x416ef2[_0x6958('0x37')],_0x7bde64[_0x6958('0x38')]));_0x495e84[_0x6958('0x40')][_0x6958('0xad')]=_0x385314['id'];if(_0x416ef2[_0x6958('0x37')][_0x6958('0x71')]){_0x495e84['where']=_[_0x6958('0xb7')](_0x495e84[_0x6958('0x40')],{'$or':_[_0x6958('0x28')](_0x495e84['attributes'],function(_0x38bf54){var _0x1e670c={};_0x1e670c[_0x38bf54]={'$like':'%'+_0x416ef2[_0x6958('0x37')]['filter']+'%'};return _0x1e670c;})});}if(_0x416ef2[_0x6958('0x37')]['$gte']){var _0x1c5f78=_0x416ef2['query'][_0x6958('0x77')]['split'](',');var _0x5a3015={};_0x5a3015[_0x1c5f78[0x0]]={'$gte':moment(_0x1c5f78[0x1])[_0x6958('0x5e')]('YYYY-MM-DD\x20HH:mm:ss')};_0x495e84[_0x6958('0x40')]=_[_0x6958('0xb7')](_0x495e84['where'],_0x5a3015);}_0x495e84=_[_0x6958('0xb7')]({},_0x495e84,_0x416ef2['options']);return db[_0x6958('0xbe')]['count']({'where':_0x495e84[_0x6958('0x40')]})[_0x6958('0x23')](function(_0x2f2bc1){_0x237210[_0x6958('0x1d')]=_0x2f2bc1;if(_0x416ef2[_0x6958('0x37')][_0x6958('0xb5')]){_0x495e84[_0x6958('0xb6')]=[{'all':!![]}];}return db[_0x6958('0xbe')][_0x6958('0xc3')](_0x495e84);})[_0x6958('0x23')](function(_0xd3a40b){_0x237210['rows']=_0xd3a40b;return _0x237210;});}})[_0x6958('0x23')](respondWithFilteredResult(_0x4a0df5,_0x495e84))[_0x6958('0xb3')](handleError(_0x4a0df5,null));};exports[_0x6958('0xc4')]=function(_0x12d9ab,_0x147bd8,_0x538276){return db['MailInteraction'][_0x6958('0xb9')]({'where':{'id':_0x12d9ab['params']['id']}})[_0x6958('0x23')](handleEntityNotFound(_0x147bd8,null))[_0x6958('0x23')](function(_0x510713){if(_0x510713){return _0x510713[_0x6958('0xc5')](_0x12d9ab[_0x6958('0xbb')][_0x6958('0xc1')],_[_0x6958('0xc0')](_0x12d9ab[_0x6958('0xbb')],[_0x6958('0xc1'),'id'])||{})['spread'](function(){return db[_0x6958('0xc6')][_0x6958('0xc3')]({'attributes':['id',_0x6958('0x26'),_0x6958('0x44')],'where':{'id':_0x12d9ab['body']['ids']}});})[_0x6958('0x23')](function(_0x784318){socket[_0x6958('0xc7')](_0x6958('0xc8'),{'id':Number(_0x12d9ab[_0x6958('0xbf')]['id']),'tags':_0x784318||[]});return{'id':Number(_0x12d9ab[_0x6958('0xbf')]['id']),'tags':_0x784318||[]};});}})[_0x6958('0x23')](respondWithResult(_0x147bd8,null))[_0x6958('0xb3')](handleError(_0x147bd8,null));};exports[_0x6958('0xc9')]=function(_0x4343a9,_0x6847cb,_0x3aac58){return db['MailInteraction'][_0x6958('0xb9')]({'where':{'id':_0x4343a9[_0x6958('0xbf')]['id']}})[_0x6958('0x23')](handleEntityNotFound(_0x6847cb,null))[_0x6958('0x23')](function(_0x1f201d){if(_0x1f201d){return _0x1f201d[_0x6958('0xc9')](_0x4343a9[_0x6958('0x37')][_0x6958('0xc1')]);}})[_0x6958('0x23')](respondWithStatusCode(_0x6847cb,null))[_0x6958('0xb3')](handleError(_0x6847cb,null));};exports['download']=function(_0x1dc0fc,_0x2d5e4a){var _0x1503e4=moment()[_0x6958('0xca')]()[_0x6958('0x94')]();var _0x391832=path[_0x6958('0x7f')](config[_0x6958('0xcb')],_0x6958('0xcc'),'files',_0x6958('0xcd'));var _0x5387ef=path[_0x6958('0x7f')](config[_0x6958('0xcb')],_0x6958('0xcc'),_0x6958('0xce'),'tmp');var _0x51b209=path['join'](_0x5387ef,_0x1503e4);var _0x2f7181=util[_0x6958('0x5e')](_0x6958('0xcf'),_0x1503e4);var _0x3061b3=path[_0x6958('0x7f')](_0x5387ef,_0x2f7181);var _0x2e4dda=![];return db[_0x6958('0x33')][_0x6958('0xb9')]({'where':{'id':_0x1dc0fc[_0x6958('0xbf')]['id']}})[_0x6958('0x23')](handleEntityNotFound(_0x2d5e4a,null))['then'](function(_0x4b990e){if(_0x4b990e){return _0x4b990e[_0x6958('0xc2')]({'attributes':['id',_0x6958('0xbb'),_0x6958('0x45'),'to','cc',_0x6958('0xd0'),_0x6958('0xd1'),_0x6958('0x58')],'where':{'secret':![]},'include':_0x1dc0fc['query'][_0x6958('0xcd')]?[{'model':db[_0x6958('0xd2')],'as':_0x6958('0xd3')}]:undefined,'order':qs[_0x6958('0x3f')]('id')});}return[];})[_0x6958('0x23')](function(_0x167f0c){_0x2e4dda=_0x167f0c[_0x6958('0x64')];if(_0x167f0c['length']){fs[_0x6958('0xd4')](_0x51b209);return BPromise[_0x6958('0xd5')](_0x167f0c,function(_0x3264c6,_0x2145a4){var _0x56549b=_0x3264c6;var _0x4fbfa4={'from':_0x56549b[_0x6958('0x45')],'to':_0x56549b['to'],'subject':_0x56549b['subject'],'html':_0x56549b[_0x6958('0xbb')],'headers':{'Date':moment(_0x56549b[_0x6958('0x58')])[_0x6958('0x5e')]('ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ')},'attachments':[]};if(_0x3264c6['cc']){_0x4fbfa4['headers']['Cc']=_0x3264c6['cc'];}if(_0x3264c6[_0x6958('0xd0')]){_0x4fbfa4[_0x6958('0xd6')][_0x6958('0xd7')]=_0x3264c6['bcc'];}return new BPromise(function(_0x3b3277,_0x370272){if(_0x3264c6[_0x6958('0xd3')]){for(var _0x4431d6=0x0;_0x4431d6<_0x3264c6[_0x6958('0xd3')]['length'];_0x4431d6++){var _0x1c96c=_0x3264c6[_0x6958('0xd3')][_0x4431d6];var _0x20eca1=path[_0x6958('0x7f')](_0x391832,_0x1c96c['basename']);if(fs[_0x6958('0xd8')](_0x20eca1)){_0x4fbfa4['attachments']['push']({'name':_0x1c96c[_0x6958('0x26')],'contentType':_0x1c96c[_0x6958('0xd9')],'data':fs[_0x6958('0xda')](_0x20eca1)});}}}emlformat['build'](_0x4fbfa4,function(_0x1c59ff,_0x4fecec){if(_0x1c59ff)return _0x370272(_0x1c59ff);fs[_0x6958('0xdb')](path['join'](_0x51b209,util[_0x6958('0x5e')](_0x6958('0xdc'),_0x2145a4)),_0x4fecec);return _0x3b3277(_0x4fecec);});});});}})[_0x6958('0x23')](function(){if(_0x2e4dda){return new BPromise(function(_0x5b513a,_0x47f3ad){zipdir(_0x51b209,{'saveTo':_0x3061b3},function(_0x16454a,_0x470a5f){if(_0x16454a)return _0x47f3ad(_0x16454a);return _0x5b513a(_0x470a5f);});});}})[_0x6958('0x23')](function(){if(_0x2e4dda){return new BPromise(function(_0x506fca,_0xc38af7){rimraf(_0x51b209,function(_0x339e0e){if(_0x339e0e)_0xc38af7(_0x339e0e);return _0x506fca();});});}})['then'](function(){if(_0x2e4dda){return _0x2d5e4a[_0x6958('0xdd')](_0x3061b3,_0x2f7181,function(_0x17d52c){if(_0x17d52c){console['log'](_0x6958('0xde'),_0x17d52c);}else{fs['unlinkSync'](_0x3061b3);}});}else{return _0x2d5e4a['sendStatus'](0xc8);}})[_0x6958('0xb3')](handleError(_0x2d5e4a,null));};