b558504f085eb4c8ac17e885ede996fc564b14ba
[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 _0xab0e=['attachments','format','transcript-%d-%s.zip','Attachment','Attachments','Messages','subject','get','mkdirSync','each','decode','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','bcc','Bcc','basename','existsSync','readFileSync','build','writeFileSync','unlinkSync','eml-format','zip-dir','moment','bluebird','util','path','lodash','squel','juice','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','html-entities','redis','defaults','localhost','socket.io-emitter','./mailInteraction.socket','register','sendStatus','end','status','json','undefined','limit','count','offset','set','Content-Range','update','then','name','fullname','Tags','TagIds','split','forEach','push','MailMessage','out','plainBody','-id','trimStart','catch','map','key','model','query','filters','attributes','intersection','fields','length','hasOwnProperty','sort','where','pick','select','field','color','from','tools_tags','u.id','ui.MailInteractionId','user_has_mail_interactions','users','u.id\x20=\x20ui.UserId','mail_interactions','left_join','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','me.MailInteractionId\x20=\x20i.id','it.MailInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','find','unreadMessages','value','`\x20>\x200','Contact','operator','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','type','text','start','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','keys','some','compact','isEmpty','MailAccountId','i.MailAccountId\x20IN\x20?','createdAt','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','having','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','isNumeric','i.id\x20LIKE\x20?','c.email\x20LIKE\x20?','MATCH\x20(i.to,\x20i.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','MATCH\x20(me.plainBody,\x20me.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','group','i.id','Sequelize','QueryTypes','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','contactName','DESC','t.id\x20IN\x20?','resolve','i.MailAccountId\x20IS\x20NOT\x20NULL','role','agent','user','getMailAccounts','i.MailAccountId\x20IS\x20NULL','sequelize','toString','merge','MailInteraction','a.key','a.mandatoryDisposition','Account.mandatoryDisposition','i.createdAt','i.updatedAt','i.closed','i.closedAt','i.attach','i.lastMsgDirection','i.subject','i.disposition','i.secondDisposition','i.thirdDisposition','i.substatus','i.to','i.ContactId','c.firstName','Contact.firstName','c.lastName','c.email','Contact.email','c.phone','Contact.phone','Contact.mobile','Contact.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','ui.MailInteractionId\x20IN\x20?','MailInteractionId','Setting','enableEmailPreview','all','rows','show','rawAttributes','includeAll','include','options','create','body','params','describe','addMessage','ids','omit','getMessages','nolimit','findAll','inlineCss','true','addTags','spread','Tag','emit','removeTags','unix','join','root','server','files','tmp'];(function(_0x50dd66,_0x47add2){var _0x197f56=function(_0x57dcef){while(--_0x57dcef){_0x50dd66['push'](_0x50dd66['shift']());}};_0x197f56(++_0x47add2);}(_0xab0e,0x1e9));var _0xeab0=function(_0x42cae2,_0x284ef8){_0x42cae2=_0x42cae2-0x0;var _0x5f256f=_0xab0e[_0x42cae2];return _0x5f256f;};'use strict';var emlformat=require(_0xeab0('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xeab0('0x1'));var moment=require(_0xeab0('0x2'));var BPromise=require(_0xeab0('0x3'));var util=require(_0xeab0('0x4'));var path=require(_0xeab0('0x5'));var fs=require('fs');var _=require(_0xeab0('0x6'));var squel=require(_0xeab0('0x7'));var juice=require(_0xeab0('0x8'));var Redis=require(_0xeab0('0x9'));var qs=require(_0xeab0('0xa'));var as=require(_0xeab0('0xb'));var logger=require(_0xeab0('0xc'))(_0xeab0('0xd'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];var htmlEntities=require(_0xeab0('0xe'));config[_0xeab0('0xf')]=_[_0xeab0('0x10')](config[_0xeab0('0xf')],{'host':_0xeab0('0x11'),'port':0x18eb});var socket=require(_0xeab0('0x12'))(new Redis(config[_0xeab0('0xf')]));require(_0xeab0('0x13'))[_0xeab0('0x14')](socket);function respondWithStatusCode(_0x13d1d5,_0x273950){_0x273950=_0x273950||0xcc;return function(_0x19f965){if(_0x19f965){return _0x13d1d5[_0xeab0('0x15')](_0x273950);}return _0x13d1d5['status'](_0x273950)[_0xeab0('0x16')]();};}function respondWithResult(_0x224dc1,_0x53de6a){_0x53de6a=_0x53de6a||0xc8;return function(_0x1a646d){if(_0x1a646d){return _0x224dc1[_0xeab0('0x17')](_0x53de6a)[_0xeab0('0x18')](_0x1a646d);}};}function respondWithFilteredResult(_0x2a9eb3,_0x45a5b9){return function(_0x1bed13){if(_0x1bed13){var _0x31bcf4=typeof _0x45a5b9['offset']===_0xeab0('0x19')&&typeof _0x45a5b9[_0xeab0('0x1a')]===_0xeab0('0x19');var _0x261e75=_0x1bed13[_0xeab0('0x1b')];var _0x3a090f=_0x31bcf4?0x0:_0x45a5b9[_0xeab0('0x1c')];var _0x4aea4d=_0x31bcf4?_0x1bed13['count']:_0x45a5b9[_0xeab0('0x1c')]+_0x45a5b9['limit'];var _0xf1cbb1;if(_0x4aea4d>=_0x261e75){_0x4aea4d=_0x261e75;_0xf1cbb1=0xc8;}else{_0xf1cbb1=0xce;}_0x2a9eb3[_0xeab0('0x17')](_0xf1cbb1);return _0x2a9eb3[_0xeab0('0x1d')](_0xeab0('0x1e'),_0x3a090f+'-'+_0x4aea4d+'/'+_0x261e75)[_0xeab0('0x18')](_0x1bed13);}return null;};}function saveUpdates(_0x512730){return function(_0x1ce5ea){if(_0x1ce5ea){return _0x1ce5ea[_0xeab0('0x1f')](_0x512730)[_0xeab0('0x20')](function(_0x2e7c46){return _0x2e7c46;});}return null;};}function removeEntity(_0x1a6566){return function(_0x3abac1){if(_0x3abac1){return _0x3abac1['destroy']()['then'](function(){_0x1a6566['status'](0xcc)[_0xeab0('0x16')]();});}};}function handleEntityNotFound(_0x51c7dc){return function(_0x3eda2b){if(!_0x3eda2b){_0x51c7dc[_0xeab0('0x15')](0x194);}return _0x3eda2b;};}function handleError(_0x3102e1,_0x5e954f){_0x5e954f=_0x5e954f||0x1f4;return function(_0x1b9b43){logger['error'](_0x1b9b43['stack']);if(_0x1b9b43[_0xeab0('0x21')]){delete _0x1b9b43['name'];}_0x3102e1[_0xeab0('0x17')](_0x5e954f)['send'](_0x1b9b43);};}function getInteractionUsers(_0x4d21aa,_0x23efa6){return new BPromise(function(_0xe811d7,_0x426aea){try{if(_0x23efa6[_0x4d21aa['id']]){_0x4d21aa['Users']=_['map'](_0x23efa6[_0x4d21aa['id']],function(_0x3634b3){return{'id':_0x3634b3['id'],'fullname':_0x3634b3[_0xeab0('0x22')]};});}}catch(_0x3e3e0c){_0x426aea(_0x3e3e0c);}_0xe811d7(_0x4d21aa);});}function getInteractionTags(_0x205c52,_0xb5fc75){return new BPromise(function(_0x2a6371,_0x14389a){try{if(_0x205c52['TagIds']){_0x205c52[_0xeab0('0x23')]=[];_0x205c52[_0xeab0('0x24')][_0xeab0('0x25')](',')[_0xeab0('0x26')](function(_0x3b173c){_0x205c52[_0xeab0('0x23')][_0xeab0('0x27')](_0xb5fc75[_0x3b173c]);});}delete _0x205c52[_0xeab0('0x24')];}catch(_0x54536a){_0x14389a(_0x54536a);}_0x2a6371(_0x205c52);});}function getLastMessageText(_0x41a9da){return new BPromise(function(_0x1d3f62,_0x2d4cc3){return db[_0xeab0('0x28')]['findOne']({'where':{'$and':[{'MailInteractionId':_0x41a9da['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':_0xeab0('0x29')},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':[_0xeab0('0x2a')],'order':_0xeab0('0x2b'),'raw':!![]})[_0xeab0('0x20')](function(_0x25946d){if(_0x25946d&&_0x25946d[_0xeab0('0x2a')]){_0x41a9da['lastMsgText']=_[_0xeab0('0x2c')](_0x25946d['plainBody']);}_0x1d3f62(_0x41a9da);})[_0xeab0('0x2d')](function(_0x42cab2){_0x2d4cc3(_0x42cab2);});});}function updateMailInteraction(_0x3e82e9,_0x248bab,_0x560a26,_0x5139e2){return new BPromise(function(_0x570bcb,_0x35f1f2){return getInteractionUsers(_0x3e82e9,_0x560a26)['then'](function(_0x5e349d){return getInteractionTags(_0x5e349d,_0x248bab);})['then'](function(_0x5eb800){if(_0x5139e2){_0x570bcb(getLastMessageText(_0x5eb800));}else{_0x570bcb(_0x5eb800);}})[_0xeab0('0x2d')](function(_0x26a994){_0x35f1f2(_0x26a994);});});}exports['index']=function(_0xba0661,_0xb81afa){var _0x51ed8f={},_0x23039a={},_0x5692f5={'count':0x0,'rows':[]};var _0x25dfa6=_[_0xeab0('0x2e')](db['MailInteraction']['rawAttributes'],function(_0x4efb52){return{'name':_0x4efb52['fieldName'],'type':_0x4efb52['type'][_0xeab0('0x2f')]};});_0x23039a[_0xeab0('0x30')]=_[_0xeab0('0x2e')](_0x25dfa6,_0xeab0('0x21'));_0x23039a[_0xeab0('0x31')]=_['keys'](_0xba0661['query']);_0x23039a[_0xeab0('0x32')]=_['intersection'](_0x23039a[_0xeab0('0x30')],_0x23039a['query']);_0x51ed8f[_0xeab0('0x33')]=_[_0xeab0('0x34')](_0x23039a[_0xeab0('0x30')],qs[_0xeab0('0x35')](_0xba0661[_0xeab0('0x31')]['fields']));_0x51ed8f[_0xeab0('0x33')]=_0x51ed8f['attributes'][_0xeab0('0x36')]?_0x51ed8f[_0xeab0('0x33')]:_0x23039a[_0xeab0('0x30')];if(!_0xba0661[_0xeab0('0x31')][_0xeab0('0x37')]('nolimit')){_0x51ed8f[_0xeab0('0x1a')]=qs['limit'](_0xba0661['query'][_0xeab0('0x1a')]);_0x51ed8f[_0xeab0('0x1c')]=qs[_0xeab0('0x1c')](_0xba0661[_0xeab0('0x31')]['offset']);}_0x51ed8f['order']=qs[_0xeab0('0x38')](_0xba0661[_0xeab0('0x31')][_0xeab0('0x38')]);_0x51ed8f[_0xeab0('0x39')]=qs[_0xeab0('0x32')](_[_0xeab0('0x3a')](_0xba0661[_0xeab0('0x31')],_0x23039a['filters']),_0x25dfa6);var _0x50bc12=[];var _0x2aaab8=squel[_0xeab0('0x3b')]()[_0xeab0('0x3c')]('id')['field'](_0xeab0('0x21'))[_0xeab0('0x3c')](_0xeab0('0x3d'))[_0xeab0('0x3e')](_0xeab0('0x3f'));var _0x33a315=squel[_0xeab0('0x3b')]()[_0xeab0('0x3c')](_0xeab0('0x40'))[_0xeab0('0x3c')]('u.fullname')[_0xeab0('0x3c')](_0xeab0('0x41'))['from'](_0xeab0('0x42'),'ui')['left_join'](_0xeab0('0x43'),'u',_0xeab0('0x44'));var _0x24ea24=squel['select']()[_0xeab0('0x3e')](_0xeab0('0x45'),'i')[_0xeab0('0x46')](_0xeab0('0x47'),'c',_0xeab0('0x48'))['left_join'](_0xeab0('0x43'),'o',_0xeab0('0x49'))['left_join']('mail_accounts','a','a.id\x20=\x20i.MailAccountId')[_0xeab0('0x46')]('mail_messages','me',_0xeab0('0x4a'))['left_join']('mail_interaction_has_tags','it',_0xeab0('0x4b'))[_0xeab0('0x46')](_0xeab0('0x3f'),'t',_0xeab0('0x4c'));var _0x1ed1f9=squel[_0xeab0('0x4d')]();var _0x3e9d06=[];var _0x3b3fe6=squel[_0xeab0('0x4d')]();var _0x8e31e2;if(_0xba0661['query'][_0xeab0('0x4e')]){_0x8e31e2=as[_0xeab0('0x4f')](_0xba0661[_0xeab0('0x31')][_0xeab0('0x4e')]);var _0x5cfdfa=_0x8e31e2[_0xeab0('0x50')];for(var _0x26fd14=0x0;_0x26fd14<_0x8e31e2['conditions']['length'];_0x26fd14++){var _0x58e342=_0x8e31e2[_0xeab0('0x51')][_0x26fd14];var _0x578231='i';var _0x3fbbf9=_[_0xeab0('0x52')](_0x25dfa6,['name',_0x58e342[_0xeab0('0x3c')]]);if(!_0x3fbbf9){switch(_0x58e342[_0xeab0('0x3c')]){case _0xeab0('0x53'):if(_0x58e342[_0xeab0('0x54')]==0x1){_0x24ea24['having']('`'+_0x58e342[_0xeab0('0x3c')]+'`\x20=\x200');}else{_0x24ea24['having']('`'+_0x58e342['field']+_0xeab0('0x55'));}break;case _0xeab0('0x56'):if(_0x58e342[_0xeab0('0x57')]===_0xeab0('0x58')){if(_0x58e342[_0xeab0('0x54')][_0xeab0('0x25')]('\x20')[_0xeab0('0x36')]>0x1){_0x1ed1f9[_0x5cfdfa](_0xeab0('0x59'),qs[_0xeab0('0x5a')](_0x58e342['value']),null);}else{var _0x50eccf='%'+_0x58e342[_0xeab0('0x54')]+'%';_0x1ed1f9[_0x5cfdfa](_0xeab0('0x5b'),_0x50eccf,_0x50eccf,_0x50eccf);}}else{_0x3fbbf9=_[_0xeab0('0x52')](_0x25dfa6,[_0xeab0('0x21'),_0xeab0('0x5c')]);_0x58e342[_0xeab0('0x3c')]=_0xeab0('0x5c');_0x2d9f86=as[_0xeab0('0x5d')](_0x578231,_0x3fbbf9[_0xeab0('0x5e')],_0x58e342);_0x1ed1f9[_0x5cfdfa](_0x2d9f86[_0xeab0('0x5f')],_0x2d9f86[_0xeab0('0x54')][_0xeab0('0x60')],_0x2d9f86[_0xeab0('0x54')][_0xeab0('0x16')]);}break;case'Tag':var _0x51cd76=_0x58e342['value'][_0xeab0('0x25')](',')[_0xeab0('0x2e')](function(_0x4045a7){return Number(_0x4045a7);});_0x51cd76[_0xeab0('0x26')](function(_0x5c3342){_0x3b3fe6['or'](_0xeab0('0x61'),'%,'+_0x5c3342+',%');});_0x3e9d06=_[_0xeab0('0x62')](_0x3e9d06,_0x51cd76);break;case _0xeab0('0x63'):if(_0x58e342[_0xeab0('0x57')]===_0xeab0('0x58')){_0x1ed1f9[_0x5cfdfa](_0xeab0('0x64'),'%'+_0x58e342['value']+'%',null);}else{_0x3fbbf9=_[_0xeab0('0x52')](_0x25dfa6,[_0xeab0('0x21'),_0xeab0('0x65')]);_0x58e342[_0xeab0('0x3c')]='UserId';_0x2d9f86=as[_0xeab0('0x5d')](_0x578231,_0x3fbbf9[_0xeab0('0x5e')],_0x58e342);_0x1ed1f9[_0x5cfdfa](_0x2d9f86[_0xeab0('0x5f')],_0x2d9f86[_0xeab0('0x54')][_0xeab0('0x60')],_0x2d9f86[_0xeab0('0x54')][_0xeab0('0x16')]);}break;case _0xeab0('0x2a'):_0x2d9f86=as[_0xeab0('0x5d')]('me',null,_0x58e342);_0x1ed1f9[_0x5cfdfa](_0x2d9f86[_0xeab0('0x5f')],_0x2d9f86[_0xeab0('0x54')]['start'],_0x2d9f86['value']['end']);break;}}else{var _0x2d9f86=as[_0xeab0('0x5d')](_0x578231,_0x3fbbf9[_0xeab0('0x5e')],_0x58e342);_0x1ed1f9[_0x5cfdfa](_0x2d9f86[_0xeab0('0x5f')],_0x2d9f86[_0xeab0('0x54')][_0xeab0('0x60')],_0x2d9f86[_0xeab0('0x54')][_0xeab0('0x16')]);}}}else{var _0x199bd5=_(_0xba0661[_0xeab0('0x31')])[_0xeab0('0x66')]()[_0xeab0('0x2e')](function(_0x37a5c4){return _[_0xeab0('0x67')](_0x25dfa6,[_0xeab0('0x21'),_0x37a5c4])?_0x37a5c4:undefined;})[_0xeab0('0x68')]()['value']();if(!_[_0xeab0('0x69')](_0x199bd5)){_0x199bd5[_0xeab0('0x26')](function(_0x302ba9){if(_0x302ba9===_0xeab0('0x6a')){_0x24ea24['where'](_0xeab0('0x6b'),[]['concat'](_0xba0661['query'][_0x302ba9]));}else if(_0x302ba9===_0xeab0('0x6c')){var _0xcabb80=JSON[_0xeab0('0x6d')](_0xba0661['query'][_0x302ba9])[_0xeab0('0x6e')];var _0x4821b3=JSON[_0xeab0('0x6d')](_0xba0661[_0xeab0('0x31')][_0x302ba9])[_0xeab0('0x6f')];_0x24ea24[_0xeab0('0x39')](_0xeab0('0x70'),_0xcabb80,_0x4821b3);}else{if(_0xba0661[_0xeab0('0x31')][_0x302ba9]===_0xeab0('0x71')){_0x24ea24[_0xeab0('0x39')]('i.'+_0x302ba9+_0xeab0('0x72'));}else{_0x24ea24[_0xeab0('0x39')]('i.'+_0x302ba9+_0xeab0('0x73'),_0xba0661[_0xeab0('0x31')][_0x302ba9]);}}});}if(_0xba0661['query']['read']){if(_0xba0661[_0xeab0('0x31')][_0xeab0('0x74')]==0x1){_0x24ea24[_0xeab0('0x75')]('`unreadMessages`\x20=\x200');}else{_0x24ea24[_0xeab0('0x75')](_0xeab0('0x76'));}}if(_0xba0661[_0xeab0('0x31')][_0xeab0('0x77')]){_0x3e9d06=_[_0xeab0('0x78')](_0xba0661[_0xeab0('0x31')][_0xeab0('0x77')])?_0xba0661['query'][_0xeab0('0x77')]:new Array(_0xba0661['query'][_0xeab0('0x77')]);_0x3e9d06[_0xeab0('0x26')](function(_0x4bbb97){_0x3b3fe6['or'](_0xeab0('0x61'),'%,'+_0x4bbb97+',%');});}if(_0xba0661['query'][_0xeab0('0x79')]){var _0x56fb0e=_0xba0661[_0xeab0('0x31')][_0xeab0('0x79')][_0xeab0('0x7a')]('\x5c','\x5c\x5c')[_0xeab0('0x7a')](/'/g,'\x27\x27');if(qs[_0xeab0('0x7b')](_0x56fb0e)){_0x1ed1f9['or'](_0xeab0('0x7c'),_0x56fb0e+'%');}else if(qs['isEmail'](_0x56fb0e)){_0x1ed1f9['or'](_0xeab0('0x7d'),_0x56fb0e+'%');}else{_0x1ed1f9['or'](_0xeab0('0x7e'),qs[_0xeab0('0x5a')](_0x56fb0e))['or'](_0xeab0('0x7f'),qs[_0xeab0('0x5a')](_0x56fb0e));}}}_0x24ea24[_0xeab0('0x39')](_0x1ed1f9);_0x24ea24[_0xeab0('0x80')](_0xeab0('0x81'));var _0x1491d5={'type':db[_0xeab0('0x82')][_0xeab0('0x83')][_0xeab0('0x84')],'raw':!![]};var _0x5c0c79=_0x24ea24[_0xeab0('0x85')]();_0x5c0c79[_0xeab0('0x3c')](_0xeab0('0x81'));_0x5c0c79[_0xeab0('0x3c')](_0xeab0('0x86'),_0xeab0('0x53'));if(_0x51ed8f['order']){_0x51ed8f[_0xeab0('0x87')][_0xeab0('0x26')](function(_0xe36160){var _0x470064=_0xe36160[0x0]===_0xeab0('0x88')?_0xe36160[0x0]:'i.'+_0xe36160[0x0];_0x24ea24['order'](_0x470064,_0xe36160[0x1]===_0xeab0('0x89')?![]:!![]);});}if(!_[_0xeab0('0x69')](_0x3e9d06)){_0x24ea24[_0xeab0('0x75')](_0x3b3fe6);_0x5c0c79[_0xeab0('0x39')](_0xeab0('0x8a'),_0x3e9d06);}BPromise[_0xeab0('0x8b')]()[_0xeab0('0x20')](function(){if(!_0x8e31e2){if(_0xba0661[_0xeab0('0x31')][_0xeab0('0x6a')])return;_0x5c0c79[_0xeab0('0x39')](_0xeab0('0x8c'));_0x24ea24[_0xeab0('0x39')]('i.MailAccountId\x20IS\x20NOT\x20NULL');return;}if(_0xba0661['user'][_0xeab0('0x8d')]!==_0xeab0('0x8e'))return;return _0xba0661[_0xeab0('0x8f')][_0xeab0('0x90')]({'attributes':['id'],'raw':!![]})['then'](function(_0x55e2d8){if(_[_0xeab0('0x69')](_0x55e2d8)){_0x5c0c79[_0xeab0('0x39')]('i.MailAccountId\x20IS\x20NULL');_0x24ea24['where'](_0xeab0('0x91'));}else{_0x5c0c79['where'](_0xeab0('0x6b'),_[_0xeab0('0x2e')](_0x55e2d8,'id'));_0x24ea24[_0xeab0('0x39')](_0xeab0('0x6b'),_[_0xeab0('0x2e')](_0x55e2d8,'id'));}});})[_0xeab0('0x20')](function(){if(_0xba0661[_0xeab0('0x8f')][_0xeab0('0x8d')]===_0xeab0('0x8e')&&!_0x8e31e2&&!_0xba0661['query'][_0xeab0('0x6a')])return[];return db[_0xeab0('0x92')][_0xeab0('0x31')](_0x5c0c79['toString'](),_0x1491d5);})[_0xeab0('0x20')](function(_0x34ff31){_0x5692f5[_0xeab0('0x1b')]=_0x34ff31[_0xeab0('0x36')];if(_0x5692f5[_0xeab0('0x1b')]===0x0)return[];return db[_0xeab0('0x92')][_0xeab0('0x31')](_0x2aaab8[_0xeab0('0x93')](),_0x1491d5)[_0xeab0('0x20')](function(_0x3166ab){_0x50bc12=_['keyBy'](_0x3166ab,'id');_0x1491d5=_[_0xeab0('0x94')](_0x1491d5,{'model':db[_0xeab0('0x95')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0xba0661[_0xeab0('0x31')][_0xeab0('0x35')]){_0x51ed8f[_0xeab0('0x33')]['forEach'](function(_0x2f2f60){_0x24ea24['field']('i.'+_0x2f2f60);});}else{_0x24ea24['field'](_0xeab0('0x86'),'unreadMessages');_0x24ea24[_0xeab0('0x3c')](_0xeab0('0x96'),'Account.key');_0x24ea24[_0xeab0('0x3c')](_0xeab0('0x97'),_0xeab0('0x98'));_0x24ea24[_0xeab0('0x3c')]('CASE\x20WHEN\x20i.to\x20IS\x20NOT\x20NULL\x20AND\x20i.to\x20<>\x20\x27\x27\x20AND\x20i.to\x20NOT\x20LIKE\x20(\x27%\x27\x20+\x20a.email\x20+\x20\x27%\x27)\x20THEN\x20SUBSTRING_INDEX(i.to,\x20\x27<\x27,\x201)\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','contactName');_0x24ea24[_0xeab0('0x3c')](_0xeab0('0x81'));_0x24ea24[_0xeab0('0x3c')](_0xeab0('0x99'));_0x24ea24['field'](_0xeab0('0x9a'));_0x24ea24[_0xeab0('0x3c')](_0xeab0('0x9b'));_0x24ea24['field'](_0xeab0('0x9c'));_0x24ea24[_0xeab0('0x3c')](_0xeab0('0x9d'));_0x24ea24[_0xeab0('0x3c')]('i.lastMsgAt');_0x24ea24[_0xeab0('0x3c')](_0xeab0('0x9e'));_0x24ea24[_0xeab0('0x3c')](_0xeab0('0x9f'));_0x24ea24[_0xeab0('0x3c')](_0xeab0('0xa0'));_0x24ea24[_0xeab0('0x3c')](_0xeab0('0xa1'));_0x24ea24[_0xeab0('0x3c')](_0xeab0('0xa2'));_0x24ea24[_0xeab0('0x3c')](_0xeab0('0xa3'));_0x24ea24[_0xeab0('0x3c')](_0xeab0('0xa4'));_0x24ea24[_0xeab0('0x3c')](_0xeab0('0xa5'));_0x24ea24[_0xeab0('0x3c')]('i.MailAccountId');_0x24ea24[_0xeab0('0x3c')]('i.UserId');_0x24ea24[_0xeab0('0x3c')](_0xeab0('0xa6'),_0xeab0('0xa7'));_0x24ea24[_0xeab0('0x3c')](_0xeab0('0xa8'),'Contact.lastName');_0x24ea24[_0xeab0('0x3c')](_0xeab0('0xa9'),_0xeab0('0xaa'));_0x24ea24[_0xeab0('0x3c')](_0xeab0('0xab'),_0xeab0('0xac'));_0x24ea24['field']('c.mobile',_0xeab0('0xad'));_0x24ea24['field']('c.fax',_0xeab0('0xae'));_0x24ea24['field'](_0xeab0('0xaf'),_0xeab0('0xb0'));_0x24ea24['field'](_0xeab0('0xb1'),_0xeab0('0xb2'));_0x24ea24['field']('GROUP_CONCAT(DISTINCT\x20t.id)',_0xeab0('0x24'));}if(_0x51ed8f[_0xeab0('0x1a')])_0x24ea24['limit'](_0x51ed8f[_0xeab0('0x1a')]);if(_0x51ed8f[_0xeab0('0x1c')])_0x24ea24[_0xeab0('0x1c')](_0x51ed8f[_0xeab0('0x1c')]);return db[_0xeab0('0x92')][_0xeab0('0x31')](_0x24ea24[_0xeab0('0x93')](),_0x1491d5);})[_0xeab0('0x20')](function(_0x3572cf){if(_0x3572cf['length']>0x0)_0x33a315[_0xeab0('0x39')](_0xeab0('0xb3'),_['map'](_0x3572cf,'id'));return db['sequelize'][_0xeab0('0x31')](_0x33a315[_0xeab0('0x93')](),_0x1491d5)[_0xeab0('0x20')](function(_0x5c5414){var _0x22e2da=_['groupBy'](_0x5c5414,_0xeab0('0xb4'));var _0x121ab0=[];return db[_0xeab0('0xb5')]['findOne']({'attributes':[_0xeab0('0xb6')],'raw':!![]})[_0xeab0('0x20')](function(_0x356473){var _0x469417=_0x356473['enableEmailPreview'];_0x3572cf[_0xeab0('0x26')](function(_0x4d67e9){_0x121ab0['push'](updateMailInteraction(_0x4d67e9,_0x50bc12,_0x22e2da,_0x469417));});return BPromise[_0xeab0('0xb7')](_0x121ab0);});});});})['then'](function(_0x966c9f){_0x5692f5[_0xeab0('0xb8')]=_0x966c9f;return _0x5692f5;})['then'](respondWithFilteredResult(_0xb81afa,_0x51ed8f))['catch'](handleError(_0xb81afa,null));};exports[_0xeab0('0xb9')]=function(_0x432370,_0x48ee88){var _0x353af8={'raw':![],'where':{'id':_0x432370['params']['id']}},_0x34cddb={};_0x34cddb['model']=_['keys'](db['MailInteraction'][_0xeab0('0xba')]);_0x34cddb[_0xeab0('0x31')]=_[_0xeab0('0x66')](_0x432370[_0xeab0('0x31')]);_0x34cddb[_0xeab0('0x32')]=_[_0xeab0('0x34')](_0x34cddb[_0xeab0('0x30')],_0x34cddb[_0xeab0('0x31')]);_0x353af8[_0xeab0('0x33')]=_[_0xeab0('0x34')](_0x34cddb['model'],qs['fields'](_0x432370[_0xeab0('0x31')]['fields']));_0x353af8['attributes']=_0x353af8['attributes'][_0xeab0('0x36')]?_0x353af8['attributes']:_0x34cddb['model'];if(_0x432370['query'][_0xeab0('0xbb')]){_0x353af8[_0xeab0('0xbc')]=[{'all':!![]}];}_0x353af8=_[_0xeab0('0x94')]({},_0x353af8,_0x432370[_0xeab0('0xbd')]);return db[_0xeab0('0x95')]['find'](_0x353af8)[_0xeab0('0x20')](handleEntityNotFound(_0x48ee88,null))[_0xeab0('0x20')](respondWithResult(_0x48ee88,null))[_0xeab0('0x2d')](handleError(_0x48ee88,null));};exports['create']=function(_0x4872fe,_0xa688df){return db['MailInteraction'][_0xeab0('0xbe')](_0x4872fe[_0xeab0('0xbf')],{})[_0xeab0('0x20')](respondWithResult(_0xa688df,0xc9))[_0xeab0('0x2d')](handleError(_0xa688df,null));};exports['update']=function(_0x1bf338,_0x19c5bb){if(_0x1bf338[_0xeab0('0xbf')]['id']){delete _0x1bf338[_0xeab0('0xbf')]['id'];}return db['MailInteraction']['find']({'where':{'id':_0x1bf338[_0xeab0('0xc0')]['id']}})[_0xeab0('0x20')](handleEntityNotFound(_0x19c5bb,null))['then'](saveUpdates(_0x1bf338['body'],null))['then'](respondWithResult(_0x19c5bb,null))['catch'](handleError(_0x19c5bb,null));};exports['destroy']=function(_0xb70231,_0x5e56c1){return db[_0xeab0('0x95')][_0xeab0('0x52')]({'where':{'id':_0xb70231[_0xeab0('0xc0')]['id']}})[_0xeab0('0x20')](handleEntityNotFound(_0x5e56c1,null))[_0xeab0('0x20')](removeEntity(_0x5e56c1,null))[_0xeab0('0x2d')](handleError(_0x5e56c1,null));};exports[_0xeab0('0xc1')]=function(_0x458d41,_0x1b7bb9){return db[_0xeab0('0x95')][_0xeab0('0xc1')]()[_0xeab0('0x20')](respondWithResult(_0x1b7bb9,null))[_0xeab0('0x2d')](handleError(_0x1b7bb9,null));};exports[_0xeab0('0xc2')]=function(_0x3cc906,_0x1801e8){return db[_0xeab0('0x28')]['find']({'where':{'id':_0x3cc906[_0xeab0('0xc0')]['id']}})[_0xeab0('0x20')](handleEntityNotFound(_0x1801e8,null))['then'](function(_0x46bde6){if(_0x46bde6){return _0x46bde6[_0xeab0('0xc2')](_0x3cc906[_0xeab0('0xbf')][_0xeab0('0xc3')],_[_0xeab0('0xc4')](_0x3cc906[_0xeab0('0xbf')],[_0xeab0('0xc3'),'id'])||{});}})[_0xeab0('0x20')](respondWithResult(_0x1801e8,null))[_0xeab0('0x2d')](handleError(_0x1801e8,null));};exports[_0xeab0('0xc5')]=function(_0x31e6ed,_0x45b0de){var _0x459b4c={'raw':![],'where':{}};var _0x58ad7a={};var _0x3e9ec6={'count':0x0,'rows':[]};return db[_0xeab0('0x95')]['findOne']({'where':{'id':_0x31e6ed[_0xeab0('0xc0')]['id']}})[_0xeab0('0x20')](handleEntityNotFound(_0x45b0de,null))[_0xeab0('0x20')](function(_0x4e61e1){if(_0x4e61e1){_0x58ad7a[_0xeab0('0x30')]=_['keys'](db[_0xeab0('0x28')]['rawAttributes']);_0x58ad7a['query']=_[_0xeab0('0x66')](_0x31e6ed['query']);_0x58ad7a['filters']=_[_0xeab0('0x34')](_0x58ad7a[_0xeab0('0x30')],_0x58ad7a['query']);_0x459b4c[_0xeab0('0x33')]=_['intersection'](_0x58ad7a[_0xeab0('0x30')],qs[_0xeab0('0x35')](_0x31e6ed[_0xeab0('0x31')][_0xeab0('0x35')]));_0x459b4c[_0xeab0('0x33')]=_0x459b4c[_0xeab0('0x33')][_0xeab0('0x36')]?_0x459b4c[_0xeab0('0x33')]:_0x58ad7a[_0xeab0('0x30')];if(!_0x31e6ed[_0xeab0('0x31')]['hasOwnProperty'](_0xeab0('0xc6'))){_0x459b4c[_0xeab0('0x1a')]=qs[_0xeab0('0x1a')](_0x31e6ed[_0xeab0('0x31')][_0xeab0('0x1a')]);_0x459b4c[_0xeab0('0x1c')]=qs[_0xeab0('0x1c')](_0x31e6ed[_0xeab0('0x31')][_0xeab0('0x1c')]);}_0x459b4c[_0xeab0('0x87')]=qs[_0xeab0('0x38')](_0x31e6ed['query']['sort']);_0x459b4c[_0xeab0('0x39')]=qs['filters'](_[_0xeab0('0x3a')](_0x31e6ed[_0xeab0('0x31')],_0x58ad7a[_0xeab0('0x32')]));_0x459b4c[_0xeab0('0x39')][_0xeab0('0xb4')]=_0x4e61e1['id'];if(_0x31e6ed[_0xeab0('0x31')][_0xeab0('0x79')]){_0x459b4c[_0xeab0('0x39')]=_[_0xeab0('0x94')](_0x459b4c[_0xeab0('0x39')],{'$or':_[_0xeab0('0x2e')](_0x459b4c['attributes'],function(_0x54ce6f){var _0x124ee9={};_0x124ee9[_0x54ce6f]={'$like':'%'+_0x31e6ed[_0xeab0('0x31')][_0xeab0('0x79')]+'%'};return _0x124ee9;})});}if(_0x31e6ed[_0xeab0('0x31')]['$gte']){var _0x16f279=_0x31e6ed[_0xeab0('0x31')]['$gte'][_0xeab0('0x25')](',');var _0x197a28={};_0x197a28[_0x16f279[0x0]]={'$gte':moment(_0x16f279[0x1])['format']('YYYY-MM-DD\x20HH:mm:ss')};_0x459b4c[_0xeab0('0x39')]=_[_0xeab0('0x94')](_0x459b4c['where'],_0x197a28);}_0x459b4c=_[_0xeab0('0x94')]({},_0x459b4c,_0x31e6ed[_0xeab0('0xbd')]);return db[_0xeab0('0x28')][_0xeab0('0x1b')]({'where':_0x459b4c[_0xeab0('0x39')]})[_0xeab0('0x20')](function(_0x56c5af){_0x3e9ec6[_0xeab0('0x1b')]=_0x56c5af;if(_0x31e6ed[_0xeab0('0x31')][_0xeab0('0xbb')]){_0x459b4c[_0xeab0('0xbc')]=[{'all':!![]}];}return db[_0xeab0('0x28')][_0xeab0('0xc7')](_0x459b4c);})[_0xeab0('0x20')](function(_0x109ba4){if(_0x31e6ed['query'][_0xeab0('0xc8')]===_0xeab0('0xc9')){for(var _0x371779=0x0;_0x371779<_0x109ba4['length'];_0x371779++){_0x109ba4[_0x371779][_0xeab0('0xbf')]=juice(_0x109ba4[_0x371779][_0xeab0('0xbf')]);}}_0x3e9ec6[_0xeab0('0xb8')]=_0x109ba4;return _0x3e9ec6;});}})['then'](respondWithFilteredResult(_0x45b0de,_0x459b4c))['catch'](handleError(_0x45b0de,null));};exports[_0xeab0('0xca')]=function(_0x3264a0,_0x2e80de){return db[_0xeab0('0x95')][_0xeab0('0x52')]({'where':{'id':_0x3264a0[_0xeab0('0xc0')]['id']}})[_0xeab0('0x20')](handleEntityNotFound(_0x2e80de,null))['then'](function(_0x602ad8){if(_0x602ad8){return _0x602ad8['setTags'](_0x3264a0['body'][_0xeab0('0xc3')],_[_0xeab0('0xc4')](_0x3264a0[_0xeab0('0xbf')],[_0xeab0('0xc3'),'id'])||{})[_0xeab0('0xcb')](function(){return db[_0xeab0('0xcc')][_0xeab0('0xc7')]({'attributes':['id',_0xeab0('0x21'),_0xeab0('0x3d')],'where':{'id':_0x3264a0['body']['ids']}});})[_0xeab0('0x20')](function(_0x1a0c6b){socket[_0xeab0('0xcd')]('mailInteractionTags:save',{'id':Number(_0x3264a0[_0xeab0('0xc0')]['id']),'tags':_0x1a0c6b||[]});return{'id':Number(_0x3264a0['params']['id']),'tags':_0x1a0c6b||[]};});}})[_0xeab0('0x20')](respondWithResult(_0x2e80de,null))[_0xeab0('0x2d')](handleError(_0x2e80de,null));};exports['removeTags']=function(_0xb938c7,_0x3102f3){return db[_0xeab0('0x95')][_0xeab0('0x52')]({'where':{'id':_0xb938c7['params']['id']}})[_0xeab0('0x20')](handleEntityNotFound(_0x3102f3,null))[_0xeab0('0x20')](function(_0x3d3e96){if(_0x3d3e96){return _0x3d3e96[_0xeab0('0xce')](_0xb938c7[_0xeab0('0x31')]['ids']);}})[_0xeab0('0x20')](respondWithStatusCode(_0x3102f3,null))[_0xeab0('0x2d')](handleError(_0x3102f3,null));};exports['download']=function(_0x58b9c3,_0x446d3a){var _0x287705=moment()[_0xeab0('0xcf')]()[_0xeab0('0x93')]();var _0x3146ce=path[_0xeab0('0xd0')](config[_0xeab0('0xd1')],_0xeab0('0xd2'),_0xeab0('0xd3'),_0xeab0('0xd4'));var _0x140415=path[_0xeab0('0xd0')](config['root'],_0xeab0('0xd2'),_0xeab0('0xd3'),_0xeab0('0xd5'));var _0x47d32f=path[_0xeab0('0xd0')](_0x3146ce,_0x287705);var _0x5c46d3=util[_0xeab0('0xd6')](_0xeab0('0xd7'),_0x58b9c3[_0xeab0('0xc0')]['id'],_0x287705);var _0x200e0a=path[_0xeab0('0xd0')](_0x3146ce,_0x5c46d3);var _0x46e5e8=[];if(_0x58b9c3['query'][_0xeab0('0xd5')]){_0x46e5e8[_0xeab0('0x27')]({'model':db[_0xeab0('0xd8')],'as':_0xeab0('0xd9'),'raw':!![]});}var _0x5f2e65=[{'model':db[_0xeab0('0x28')],'as':_0xeab0('0xda'),'attributes':['id','body','from','to','cc','bcc',_0xeab0('0xdb'),_0xeab0('0x6c')],'where':{'secret':![]},'order':qs['sort']('id'),'include':_0x46e5e8}];return db[_0xeab0('0x95')][_0xeab0('0x52')]({'where':{'id':_0x58b9c3[_0xeab0('0xc0')]['id']},'include':_0x5f2e65})[_0xeab0('0x20')](handleEntityNotFound(_0x446d3a,null))[_0xeab0('0x20')](function(_0x3215c1){if(_0x3215c1&&_0x3215c1['Messages']){var _0x2ebbf8=_0x3215c1[_0xeab0('0xdc')]({'plain':!![]});fs[_0xeab0('0xdd')](_0x47d32f);return BPromise[_0xeab0('0xde')](_0x2ebbf8['Messages'],function(_0x9bd7ca,_0x9306e3){var _0x2f2bdd={'from':_0x9bd7ca[_0xeab0('0x3e')],'to':_0x9bd7ca['to'],'subject':_0x9bd7ca[_0xeab0('0xdb')],'html':htmlEntities[_0xeab0('0xdf')](_0x9bd7ca[_0xeab0('0xbf')]),'headers':{'Date':moment(_0x9bd7ca[_0xeab0('0x6c')])['format'](_0xeab0('0xe0'))},'attachments':[]};if(_0x9bd7ca['cc']){_0x2f2bdd[_0xeab0('0xe1')]['Cc']=_0x9bd7ca['cc'];}if(_0x9bd7ca[_0xeab0('0xe2')]){_0x2f2bdd[_0xeab0('0xe1')][_0xeab0('0xe3')]=_0x9bd7ca[_0xeab0('0xe2')];}return new BPromise(function(_0x28aa67,_0x3eb9fa){if(_0x9bd7ca[_0xeab0('0xd9')]){for(var _0x577155=0x0;_0x577155<_0x9bd7ca['Attachments']['length'];_0x577155++){var _0x1b257a=_0x9bd7ca[_0xeab0('0xd9')][_0x577155];var _0x1e3d41=path['join'](_0x140415,_0x1b257a[_0xeab0('0xe4')]);if(fs[_0xeab0('0xe5')](_0x1e3d41)){_0x2f2bdd[_0xeab0('0xd5')][_0xeab0('0x27')]({'name':_0x1b257a[_0xeab0('0x21')],'contentType':_0x1b257a[_0xeab0('0x5e')],'data':fs[_0xeab0('0xe6')](_0x1e3d41)});}}}emlformat[_0xeab0('0xe7')](_0x2f2bdd,function(_0x445795,_0x254b4e){if(_0x445795)return _0x3eb9fa(_0x445795);fs[_0xeab0('0xe8')](path[_0xeab0('0xd0')](_0x47d32f,util['format']('message%d.eml',_0x9306e3)),_0x254b4e);return _0x28aa67(_0x254b4e);});});})['then'](function(){return new BPromise(function(_0xa2a448,_0x202f9b){zipdir(_0x47d32f,{'saveTo':_0x200e0a},function(_0x2fa56d,_0x156e59){if(_0x2fa56d)return _0x202f9b(_0x2fa56d);return _0xa2a448(_0x156e59);});})[_0xeab0('0x20')](function(){return new BPromise(function(_0x262a05,_0x398713){rimraf(_0x47d32f,function(_0x2e0652){if(_0x2e0652)_0x398713(_0x2e0652);return _0x262a05();});});})[_0xeab0('0x20')](function(){return _0x446d3a['download'](_0x200e0a,_0x5c46d3,function(_0x1fdb3a){if(!_0x1fdb3a)fs[_0xeab0('0xe9')](_0x200e0a);});});});}else{return _0x446d3a['sendStatus'](0xc8);}})[_0xeab0('0x2d')](handleError(_0x446d3a,null));};