2cf60250558d784f7967fce3310b4c40566942da
[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 _0x8278=['jsforce','desk.js','querystring','html-to-text','juice','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','localhost','socket.io-emitter','./mailInteraction.socket','sendStatus','status','offset','undefined','limit','count','set','Content-Range','json','reject','save','update','then','destroy','end','error','stack','name','send','render','merge','body','contact','message','agent','interaction','Users','map','fullname','TagIds','Tags','split','forEach','push','MailMessage','findOne','out','plainBody','-id','lastMsgText','trimStart','catch','index','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','hasOwnProperty','nolimit','sort','where','field','from','tools_tags','u.id','u.fullname','user_has_mail_interactions','users','u.id\x20=\x20ui.UserId','select','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','mail_interaction_has_tags','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','length','find','unreadMessages','value','`\x20=\x200','`\x20>\x200','Contact','$substring','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','start','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','operator','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','text','keys','some','compact','isEmpty','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','QueryTypes','SELECT','clone','order','DESC','i.MailAccountId\x20IS\x20NOT\x20NULL','role','user','getMailAccounts','i.MailAccountId\x20IS\x20NULL','MailAccountId','sequelize','toString','keyBy','MailInteraction','a.mandatoryDisposition','contactName','i.createdAt','i.updatedAt','i.closedAt','i.attach','i.lastMsgAt','i.lastMsgDirection','i.subject','i.disposition','i.substatus','i.to','i.ContactId','i.UserId','c.firstName','Contact.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','c.mobile','Contact.mobile','Contact.fax','Owner.fullname','o.internal','Owner.internal','ui.MailInteractionId\x20IN\x20?','groupBy','Setting','enableEmailPreview','all','rows','show','params','includeAll','options','create','describe','addMessage','ids','getMessages','pick','YYYY-MM-DD\x20HH:mm:ss','inlineCss','true','addTags','setTags','omit','spread','Tag','color','emit','mailInteractionTags:save','removeTags','download','join','root','server','files','Attachment','Attachments','Messages','subject','each','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','bcc','basename','existsSync','attachments','readFileSync','build','writeFileSync','format','message%d.eml','log','err','unlinkSync','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash'];(function(_0x32ae54,_0x27a394){var _0x1c01f2=function(_0x111f92){while(--_0x111f92){_0x32ae54['push'](_0x32ae54['shift']());}};_0x1c01f2(++_0x27a394);}(_0x8278,0xef));var _0x8827=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x8278[_0x3dd15e];return _0x231fd0;};'use strict';var emlformat=require(_0x8827('0x0'));var rimraf=require(_0x8827('0x1'));var zipdir=require(_0x8827('0x2'));var jsonpatch=require(_0x8827('0x3'));var rp=require(_0x8827('0x4'));var moment=require(_0x8827('0x5'));var BPromise=require(_0x8827('0x6'));var Mustache=require(_0x8827('0x7'));var util=require(_0x8827('0x8'));var path=require(_0x8827('0x9'));var sox=require(_0x8827('0xa'));var csv=require(_0x8827('0xb'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x8827('0xc'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x8827('0xd'));var deskjs=require(_0x8827('0xe'));var toCsv=require('to-csv');var querystring=require(_0x8827('0xf'));var Papa=require('papaparse');var htmlToText=require(_0x8827('0x10'));var juice=require(_0x8827('0x11'));var Redis=require(_0x8827('0x12'));var authService=require('../../components/auth/service');var qs=require(_0x8827('0x13'));var as=require(_0x8827('0x14'));var hardwareService=require(_0x8827('0x15'));var logger=require(_0x8827('0x16'))(_0x8827('0x17'));var utils=require(_0x8827('0x18'));var config=require(_0x8827('0x19'));var licenseUtil=require(_0x8827('0x1a'));var db=require(_0x8827('0x1b'))['db'];config[_0x8827('0x1c')]=_['defaults'](config[_0x8827('0x1c')],{'host':_0x8827('0x1d'),'port':0x18eb});var socket=require(_0x8827('0x1e'))(new Redis(config[_0x8827('0x1c')]));require(_0x8827('0x1f'))['register'](socket);function respondWithStatusCode(_0x56b236,_0x52c435){_0x52c435=_0x52c435||0xcc;return function(_0x4a6473){if(_0x4a6473){return _0x56b236[_0x8827('0x20')](_0x52c435);}return _0x56b236[_0x8827('0x21')](_0x52c435)['end']();};}function respondWithResult(_0x59d07f,_0x571267){_0x571267=_0x571267||0xc8;return function(_0x51219a){if(_0x51219a){return _0x59d07f[_0x8827('0x21')](_0x571267)['json'](_0x51219a);}};}function respondWithFilteredResult(_0x27476f,_0x5f08ad){return function(_0x55b313){if(_0x55b313){var _0x13fdd9=typeof _0x5f08ad[_0x8827('0x22')]===_0x8827('0x23')&&typeof _0x5f08ad[_0x8827('0x24')]===_0x8827('0x23');var _0x333ce5=_0x55b313[_0x8827('0x25')];var _0x500be7=_0x13fdd9?0x0:_0x5f08ad[_0x8827('0x22')];var _0x577fed=_0x13fdd9?_0x55b313[_0x8827('0x25')]:_0x5f08ad[_0x8827('0x22')]+_0x5f08ad[_0x8827('0x24')];var _0x5bb102;if(_0x577fed>=_0x333ce5){_0x577fed=_0x333ce5;_0x5bb102=0xc8;}else{_0x5bb102=0xce;}_0x27476f['status'](_0x5bb102);return _0x27476f[_0x8827('0x26')](_0x8827('0x27'),_0x500be7+'-'+_0x577fed+'/'+_0x333ce5)[_0x8827('0x28')](_0x55b313);}return null;};}function patchUpdates(_0x134e38){return function(_0x2d9512){try{jsonpatch['apply'](_0x2d9512,_0x134e38,!![]);}catch(_0x1775bc){return BPromise[_0x8827('0x29')](_0x1775bc);}return _0x2d9512[_0x8827('0x2a')]();};}function saveUpdates(_0x412e87,_0x22ea4e){return function(_0x19b8d7){if(_0x19b8d7){return _0x19b8d7[_0x8827('0x2b')](_0x412e87)[_0x8827('0x2c')](function(_0x3ed9da){return _0x3ed9da;});}return null;};}function removeEntity(_0x15e06f,_0x292daa){return function(_0x423780){if(_0x423780){return _0x423780[_0x8827('0x2d')]()[_0x8827('0x2c')](function(){_0x15e06f[_0x8827('0x21')](0xcc)[_0x8827('0x2e')]();});}};}function handleEntityNotFound(_0x140e55,_0x10cdbc){return function(_0x1ae679){if(!_0x1ae679){_0x140e55[_0x8827('0x20')](0x194);}return _0x1ae679;};}function handleError(_0xeb0bb9,_0x3e9520){_0x3e9520=_0x3e9520||0x1f4;return function(_0x13931d){logger[_0x8827('0x2f')](_0x13931d[_0x8827('0x30')]);if(_0x13931d[_0x8827('0x31')]){delete _0x13931d[_0x8827('0x31')];}_0xeb0bb9[_0x8827('0x21')](_0x3e9520)[_0x8827('0x32')](_0x13931d);};}function getMustacheRender(_0x56210e,_0x74786a){return Mustache[_0x8827('0x33')](_0x56210e,_[_0x8827('0x34')](_0x74786a[_0x8827('0x35')],{'contact':_0x74786a[_0x8827('0x36')],'message':_0x74786a[_0x8827('0x37')],'agent':_0x74786a[_0x8827('0x38')],'interaction':_0x74786a[_0x8827('0x39')],'account':_0x74786a['account']}))||'';}function getInteractionUsers(_0x2eb86f,_0x36e259){return new BPromise(function(_0x373208,_0x2b2805){try{if(_0x36e259[_0x2eb86f['id']]){_0x2eb86f[_0x8827('0x3a')]=_[_0x8827('0x3b')](_0x36e259[_0x2eb86f['id']],function(_0x2bb28c){return{'id':_0x2bb28c['id'],'fullname':_0x2bb28c[_0x8827('0x3c')]};});}}catch(_0x395a53){_0x2b2805(_0x395a53);}_0x373208(_0x2eb86f);});}function getInteractionTags(_0x333a7a,_0x83add4){return new BPromise(function(_0x177308,_0x25241a){try{if(_0x333a7a[_0x8827('0x3d')]){_0x333a7a[_0x8827('0x3e')]=[];_0x333a7a[_0x8827('0x3d')][_0x8827('0x3f')](',')[_0x8827('0x40')](function(_0x5bd5c7){_0x333a7a[_0x8827('0x3e')][_0x8827('0x41')](_0x83add4[_0x5bd5c7]);});}delete _0x333a7a[_0x8827('0x3d')];}catch(_0x1ee6d8){_0x25241a(_0x1ee6d8);}_0x177308(_0x333a7a);});}function getLastMessageText(_0x25c6d2){return new BPromise(function(_0x45d925,_0x47d638){return db[_0x8827('0x42')][_0x8827('0x43')]({'where':{'$and':[{'MailInteractionId':_0x25c6d2['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':_0x8827('0x44')},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':[_0x8827('0x45')],'order':_0x8827('0x46'),'raw':!![]})['then'](function(_0x5914f4){if(_0x5914f4&&_0x5914f4['plainBody']){_0x25c6d2[_0x8827('0x47')]=_[_0x8827('0x48')](_0x5914f4[_0x8827('0x45')]);}_0x45d925(_0x25c6d2);})[_0x8827('0x49')](function(_0x258131){_0x47d638(_0x258131);});});}function updateMailInteraction(_0x432382,_0x1796b7,_0x244471,_0x1970af){return new BPromise(function(_0x2bd992,_0x468377){return getInteractionUsers(_0x432382,_0x244471)[_0x8827('0x2c')](function(_0x2ad55a){return getInteractionTags(_0x2ad55a,_0x1796b7);})[_0x8827('0x2c')](function(_0x2f0e58){if(_0x1970af){_0x2bd992(getLastMessageText(_0x2f0e58));}else{_0x2bd992(_0x2f0e58);}})[_0x8827('0x49')](function(_0x119983){_0x468377(_0x119983);});});}exports[_0x8827('0x4a')]=function(_0x21b116,_0x406126){var _0x164c93={},_0x5f1e25={},_0xf2cc8a={'count':0x0,'rows':[]};var _0x32e682=_[_0x8827('0x3b')](db['MailInteraction'][_0x8827('0x4b')],function(_0x18e5a7){return{'name':_0x18e5a7[_0x8827('0x4c')],'type':_0x18e5a7[_0x8827('0x4d')][_0x8827('0x4e')]};});_0x5f1e25[_0x8827('0x4f')]=_['map'](_0x32e682,_0x8827('0x31'));_0x5f1e25[_0x8827('0x50')]=_['keys'](_0x21b116[_0x8827('0x50')]);_0x5f1e25[_0x8827('0x51')]=_[_0x8827('0x52')](_0x5f1e25[_0x8827('0x4f')],_0x5f1e25[_0x8827('0x50')]);_0x164c93[_0x8827('0x53')]=_['intersection'](_0x5f1e25[_0x8827('0x4f')],qs[_0x8827('0x54')](_0x21b116[_0x8827('0x50')][_0x8827('0x54')]));_0x164c93[_0x8827('0x53')]=_0x164c93['attributes']['length']?_0x164c93[_0x8827('0x53')]:_0x5f1e25[_0x8827('0x4f')];if(!_0x21b116[_0x8827('0x50')][_0x8827('0x55')](_0x8827('0x56'))){_0x164c93[_0x8827('0x24')]=qs['limit'](_0x21b116[_0x8827('0x50')]['limit']);_0x164c93[_0x8827('0x22')]=qs[_0x8827('0x22')](_0x21b116['query'][_0x8827('0x22')]);}_0x164c93['order']=qs['sort'](_0x21b116[_0x8827('0x50')][_0x8827('0x57')]);_0x164c93[_0x8827('0x58')]=qs[_0x8827('0x51')](_['pick'](_0x21b116[_0x8827('0x50')],_0x5f1e25[_0x8827('0x51')]),_0x32e682);var _0x1d7f46=[];var _0x203b3f=squel['select']()[_0x8827('0x59')]('id')[_0x8827('0x59')](_0x8827('0x31'))[_0x8827('0x59')]('color')[_0x8827('0x5a')](_0x8827('0x5b'));var _0x3d9286=squel['select']()[_0x8827('0x59')](_0x8827('0x5c'))[_0x8827('0x59')](_0x8827('0x5d'))[_0x8827('0x59')]('ui.MailInteractionId')[_0x8827('0x5a')](_0x8827('0x5e'),'ui')['left_join'](_0x8827('0x5f'),'u',_0x8827('0x60'));var _0x415f8c=squel[_0x8827('0x61')]()[_0x8827('0x5a')](_0x8827('0x62'),'i')[_0x8827('0x63')](_0x8827('0x64'),'c',_0x8827('0x65'))[_0x8827('0x63')](_0x8827('0x5f'),'o',_0x8827('0x66'))[_0x8827('0x63')]('mail_accounts','a','a.id\x20=\x20i.MailAccountId')[_0x8827('0x63')]('mail_messages','me',_0x8827('0x67'))['left_join'](_0x8827('0x68'),'it','it.MailInteractionId\x20=\x20i.id')[_0x8827('0x63')](_0x8827('0x5b'),'t',_0x8827('0x69'));var _0x4864d3=squel[_0x8827('0x6a')]();var _0x390cd7=[];var _0x2f50bd=squel['expr']();var _0x1ac306;if(_0x21b116[_0x8827('0x50')][_0x8827('0x6b')]){_0x1ac306=as[_0x8827('0x6c')](_0x21b116[_0x8827('0x50')]['search']);var _0x5aa1f0=_0x1ac306[_0x8827('0x6d')];for(var _0x551fee=0x0;_0x551fee<_0x1ac306[_0x8827('0x6e')][_0x8827('0x6f')];_0x551fee++){var _0x57a5f8=_0x1ac306[_0x8827('0x6e')][_0x551fee];var _0x113eb3='i';var _0x1d8ce=_[_0x8827('0x70')](_0x32e682,[_0x8827('0x31'),_0x57a5f8[_0x8827('0x59')]]);if(!_0x1d8ce){switch(_0x57a5f8['field']){case _0x8827('0x71'):if(_0x57a5f8[_0x8827('0x72')]==0x1){_0x415f8c['having']('`'+_0x57a5f8[_0x8827('0x59')]+_0x8827('0x73'));}else{_0x415f8c['having']('`'+_0x57a5f8[_0x8827('0x59')]+_0x8827('0x74'));}break;case _0x8827('0x75'):if(_0x57a5f8['operator']===_0x8827('0x76')){if(_0x57a5f8[_0x8827('0x72')][_0x8827('0x3f')]('\x20')[_0x8827('0x6f')]>0x1){_0x4864d3[_0x5aa1f0]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x8827('0x77')](_0x57a5f8[_0x8827('0x72')]),null);}else{var _0x1e9ad7='%'+_0x57a5f8['value']+'%';_0x4864d3[_0x5aa1f0](_0x8827('0x78'),_0x1e9ad7,_0x1e9ad7,_0x1e9ad7);}}else{_0x1d8ce=_[_0x8827('0x70')](_0x32e682,[_0x8827('0x31'),'ContactId']);_0x57a5f8[_0x8827('0x59')]=_0x8827('0x79');_0x205999=as[_0x8827('0x7a')](_0x113eb3,_0x1d8ce[_0x8827('0x4d')],_0x57a5f8);_0x4864d3[_0x5aa1f0](_0x205999['text'],_0x205999[_0x8827('0x72')][_0x8827('0x7b')],_0x205999[_0x8827('0x72')][_0x8827('0x2e')]);}break;case'Tag':var _0x548207=_0x57a5f8[_0x8827('0x72')]['split'](',')[_0x8827('0x3b')](function(_0x46089a){return Number(_0x46089a);});_0x548207['forEach'](function(_0x45fbfd){_0x2f50bd['or'](_0x8827('0x7c'),'%,'+_0x45fbfd+',%');});_0x390cd7=_[_0x8827('0x7d')](_0x390cd7,_0x548207);break;case'User':if(_0x57a5f8[_0x8827('0x7e')]===_0x8827('0x76')){_0x4864d3[_0x5aa1f0](_0x8827('0x7f'),'%'+_0x57a5f8[_0x8827('0x72')]+'%',null);}else{_0x1d8ce=_[_0x8827('0x70')](_0x32e682,[_0x8827('0x31'),_0x8827('0x80')]);_0x57a5f8[_0x8827('0x59')]=_0x8827('0x80');_0x205999=as[_0x8827('0x7a')](_0x113eb3,_0x1d8ce[_0x8827('0x4d')],_0x57a5f8);_0x4864d3[_0x5aa1f0](_0x205999[_0x8827('0x81')],_0x205999[_0x8827('0x72')][_0x8827('0x7b')],_0x205999[_0x8827('0x72')][_0x8827('0x2e')]);}break;case _0x8827('0x45'):_0x205999=as['buildExpression']('me',null,_0x57a5f8);_0x4864d3[_0x5aa1f0](_0x205999[_0x8827('0x81')],_0x205999[_0x8827('0x72')]['start'],_0x205999[_0x8827('0x72')]['end']);break;}}else{var _0x205999=as[_0x8827('0x7a')](_0x113eb3,_0x1d8ce['type'],_0x57a5f8);_0x4864d3[_0x5aa1f0](_0x205999[_0x8827('0x81')],_0x205999['value']['start'],_0x205999[_0x8827('0x72')][_0x8827('0x2e')]);}}}else{var _0x44f100=_(_0x21b116[_0x8827('0x50')])[_0x8827('0x82')]()[_0x8827('0x3b')](function(_0x5b2e13){return _[_0x8827('0x83')](_0x32e682,[_0x8827('0x31'),_0x5b2e13])?_0x5b2e13:undefined;})[_0x8827('0x84')]()[_0x8827('0x72')]();if(!_[_0x8827('0x85')](_0x44f100)){_0x44f100['forEach'](function(_0x54269b){if(_0x54269b==='MailAccountId'){_0x415f8c[_0x8827('0x58')](_0x8827('0x86'),[]['concat'](_0x21b116['query'][_0x54269b]));}else if(_0x54269b===_0x8827('0x87')){var _0x486d79=JSON[_0x8827('0x88')](_0x21b116[_0x8827('0x50')][_0x54269b])[_0x8827('0x89')];var _0x28a899=JSON[_0x8827('0x88')](_0x21b116[_0x8827('0x50')][_0x54269b])[_0x8827('0x8a')];_0x415f8c[_0x8827('0x58')](_0x8827('0x8b'),_0x486d79,_0x28a899);}else{if(_0x21b116['query'][_0x54269b]===_0x8827('0x8c')){_0x415f8c[_0x8827('0x58')]('i.'+_0x54269b+_0x8827('0x8d'));}else{_0x415f8c[_0x8827('0x58')]('i.'+_0x54269b+_0x8827('0x8e'),_0x21b116['query'][_0x54269b]);}}});}if(_0x21b116[_0x8827('0x50')][_0x8827('0x8f')]){if(_0x21b116[_0x8827('0x50')][_0x8827('0x8f')]==0x1){_0x415f8c[_0x8827('0x90')]('`unreadMessages`\x20=\x200');}else{_0x415f8c[_0x8827('0x90')](_0x8827('0x91'));}}if(_0x21b116['query'][_0x8827('0x92')]){_0x390cd7=_[_0x8827('0x93')](_0x21b116[_0x8827('0x50')][_0x8827('0x92')])?_0x21b116[_0x8827('0x50')][_0x8827('0x92')]:new Array(_0x21b116[_0x8827('0x50')]['tag']);_0x390cd7[_0x8827('0x40')](function(_0x12fe0a){_0x2f50bd['or'](_0x8827('0x7c'),'%,'+_0x12fe0a+',%');});}if(_0x21b116[_0x8827('0x50')][_0x8827('0x94')]){var _0x28a0c6=_0x21b116['query']['filter']['replace']('\x5c','\x5c\x5c')[_0x8827('0x95')](/'/g,'\x27\x27');if(qs[_0x8827('0x96')](_0x28a0c6)){_0x4864d3['or'](_0x8827('0x97'),_0x28a0c6+'%');}else if(qs['isEmail'](_0x28a0c6)){_0x4864d3['or'](_0x8827('0x98'),_0x28a0c6+'%');}else{_0x4864d3['or'](_0x8827('0x99'),qs[_0x8827('0x77')](_0x28a0c6))['or'](_0x8827('0x9a'),qs[_0x8827('0x77')](_0x28a0c6));}}}_0x415f8c['where'](_0x4864d3);_0x415f8c[_0x8827('0x9b')](_0x8827('0x9c'));var _0x514e57={'type':db['Sequelize'][_0x8827('0x9d')][_0x8827('0x9e')],'raw':!![]};var _0x3580f1=_0x415f8c[_0x8827('0x9f')]();_0x3580f1[_0x8827('0x59')](_0x8827('0x9c'));_0x3580f1[_0x8827('0x59')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x8827('0x71'));if(_0x164c93[_0x8827('0xa0')]){_0x164c93['order'][_0x8827('0x40')](function(_0x1be7cd){var _0x481d9d=_0x1be7cd[0x0]==='contactName'?_0x1be7cd[0x0]:'i.'+_0x1be7cd[0x0];_0x415f8c[_0x8827('0xa0')](_0x481d9d,_0x1be7cd[0x1]===_0x8827('0xa1')?![]:!![]);});}if(!_[_0x8827('0x85')](_0x390cd7)){_0x415f8c[_0x8827('0x90')](_0x2f50bd);_0x3580f1[_0x8827('0x58')]('t.id\x20IN\x20?',_0x390cd7);}BPromise['resolve']()['then'](function(){if(!_0x1ac306){if(_0x21b116[_0x8827('0x50')]['MailAccountId'])return;_0x3580f1[_0x8827('0x58')](_0x8827('0xa2'));_0x415f8c[_0x8827('0x58')]('i.MailAccountId\x20IS\x20NOT\x20NULL');return;}if(_0x21b116['user'][_0x8827('0xa3')]!==_0x8827('0x38'))return;return _0x21b116[_0x8827('0xa4')][_0x8827('0xa5')]({'attributes':['id'],'raw':!![]})[_0x8827('0x2c')](function(_0x18968b){if(_['isEmpty'](_0x18968b)){_0x3580f1[_0x8827('0x58')](_0x8827('0xa6'));_0x415f8c[_0x8827('0x58')](_0x8827('0xa6'));}else{_0x3580f1[_0x8827('0x58')](_0x8827('0x86'),_['map'](_0x18968b,'id'));_0x415f8c[_0x8827('0x58')](_0x8827('0x86'),_[_0x8827('0x3b')](_0x18968b,'id'));}});})[_0x8827('0x2c')](function(){if(_0x21b116['user']['role']===_0x8827('0x38')&&!_0x1ac306&&!_0x21b116[_0x8827('0x50')][_0x8827('0xa7')])return[];return db[_0x8827('0xa8')]['query'](_0x3580f1[_0x8827('0xa9')](),_0x514e57);})[_0x8827('0x2c')](function(_0x6763c){_0xf2cc8a[_0x8827('0x25')]=_0x6763c[_0x8827('0x6f')];if(_0xf2cc8a['count']===0x0)return[];return db[_0x8827('0xa8')][_0x8827('0x50')](_0x203b3f['toString'](),_0x514e57)['then'](function(_0x1b9137){_0x1d7f46=_[_0x8827('0xaa')](_0x1b9137,'id');_0x514e57=_[_0x8827('0x34')](_0x514e57,{'model':db[_0x8827('0xab')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x21b116['query'][_0x8827('0x54')]){_0x164c93[_0x8827('0x53')][_0x8827('0x40')](function(_0x16f3e5){_0x415f8c[_0x8827('0x59')]('i.'+_0x16f3e5);});}else{_0x415f8c[_0x8827('0x59')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x8827('0x71'));_0x415f8c[_0x8827('0x59')]('a.key','Account.key');_0x415f8c[_0x8827('0x59')](_0x8827('0xac'),'Account.mandatoryDisposition');_0x415f8c[_0x8827('0x59')]('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',_0x8827('0xad'));_0x415f8c[_0x8827('0x59')](_0x8827('0x9c'));_0x415f8c[_0x8827('0x59')](_0x8827('0xae'));_0x415f8c[_0x8827('0x59')](_0x8827('0xaf'));_0x415f8c[_0x8827('0x59')]('i.closed');_0x415f8c[_0x8827('0x59')](_0x8827('0xb0'));_0x415f8c[_0x8827('0x59')](_0x8827('0xb1'));_0x415f8c[_0x8827('0x59')](_0x8827('0xb2'));_0x415f8c[_0x8827('0x59')](_0x8827('0xb3'));_0x415f8c[_0x8827('0x59')](_0x8827('0xb4'));_0x415f8c[_0x8827('0x59')](_0x8827('0xb5'));_0x415f8c[_0x8827('0x59')]('i.secondDisposition');_0x415f8c[_0x8827('0x59')]('i.thirdDisposition');_0x415f8c[_0x8827('0x59')](_0x8827('0xb6'));_0x415f8c[_0x8827('0x59')](_0x8827('0xb7'));_0x415f8c[_0x8827('0x59')](_0x8827('0xb8'));_0x415f8c[_0x8827('0x59')]('i.MailAccountId');_0x415f8c[_0x8827('0x59')](_0x8827('0xb9'));_0x415f8c[_0x8827('0x59')](_0x8827('0xba'),_0x8827('0xbb'));_0x415f8c['field'](_0x8827('0xbc'),_0x8827('0xbd'));_0x415f8c[_0x8827('0x59')](_0x8827('0xbe'),_0x8827('0xbf'));_0x415f8c[_0x8827('0x59')](_0x8827('0xc0'),_0x8827('0xc1'));_0x415f8c['field'](_0x8827('0xc2'),_0x8827('0xc3'));_0x415f8c[_0x8827('0x59')]('c.fax',_0x8827('0xc4'));_0x415f8c[_0x8827('0x59')]('o.fullname',_0x8827('0xc5'));_0x415f8c[_0x8827('0x59')](_0x8827('0xc6'),_0x8827('0xc7'));_0x415f8c[_0x8827('0x59')]('GROUP_CONCAT(DISTINCT\x20t.id)',_0x8827('0x3d'));}if(_0x164c93[_0x8827('0x24')])_0x415f8c[_0x8827('0x24')](_0x164c93[_0x8827('0x24')]);if(_0x164c93['offset'])_0x415f8c['offset'](_0x164c93[_0x8827('0x22')]);return db[_0x8827('0xa8')]['query'](_0x415f8c[_0x8827('0xa9')](),_0x514e57);})['then'](function(_0x3bd34c){if(_0x3bd34c[_0x8827('0x6f')]>0x0)_0x3d9286['where'](_0x8827('0xc8'),_['map'](_0x3bd34c,'id'));return db[_0x8827('0xa8')][_0x8827('0x50')](_0x3d9286[_0x8827('0xa9')](),_0x514e57)[_0x8827('0x2c')](function(_0xef9c57){var _0x1b05c1=_[_0x8827('0xc9')](_0xef9c57,'MailInteractionId');var _0x19b353=[];return db[_0x8827('0xca')]['findOne']({'attributes':[_0x8827('0xcb')],'raw':!![]})[_0x8827('0x2c')](function(_0x20f9cc){var _0x4fc303=_0x20f9cc[_0x8827('0xcb')];_0x3bd34c[_0x8827('0x40')](function(_0x3b3e3f){_0x19b353[_0x8827('0x41')](updateMailInteraction(_0x3b3e3f,_0x1d7f46,_0x1b05c1,_0x4fc303));});return BPromise[_0x8827('0xcc')](_0x19b353);});});});})[_0x8827('0x2c')](function(_0x513ccf){_0xf2cc8a[_0x8827('0xcd')]=_0x513ccf;return _0xf2cc8a;})[_0x8827('0x2c')](respondWithFilteredResult(_0x406126,_0x164c93))['catch'](handleError(_0x406126,null));};exports[_0x8827('0xce')]=function(_0x26ea20,_0x5eb11a){var _0x72bab0={'raw':![],'where':{'id':_0x26ea20[_0x8827('0xcf')]['id']}},_0x3b1552={};_0x3b1552['model']=_[_0x8827('0x82')](db[_0x8827('0xab')]['rawAttributes']);_0x3b1552[_0x8827('0x50')]=_['keys'](_0x26ea20[_0x8827('0x50')]);_0x3b1552[_0x8827('0x51')]=_[_0x8827('0x52')](_0x3b1552['model'],_0x3b1552[_0x8827('0x50')]);_0x72bab0[_0x8827('0x53')]=_['intersection'](_0x3b1552[_0x8827('0x4f')],qs['fields'](_0x26ea20[_0x8827('0x50')][_0x8827('0x54')]));_0x72bab0['attributes']=_0x72bab0[_0x8827('0x53')][_0x8827('0x6f')]?_0x72bab0[_0x8827('0x53')]:_0x3b1552['model'];if(_0x26ea20['query'][_0x8827('0xd0')]){_0x72bab0['include']=[{'all':!![]}];}_0x72bab0=_['merge']({},_0x72bab0,_0x26ea20[_0x8827('0xd1')]);return db[_0x8827('0xab')][_0x8827('0x70')](_0x72bab0)[_0x8827('0x2c')](handleEntityNotFound(_0x5eb11a,null))[_0x8827('0x2c')](respondWithResult(_0x5eb11a,null))['catch'](handleError(_0x5eb11a,null));};exports[_0x8827('0xd2')]=function(_0x5f2e9d,_0xdc5918){return db[_0x8827('0xab')][_0x8827('0xd2')](_0x5f2e9d[_0x8827('0x35')],{})['then'](respondWithResult(_0xdc5918,0xc9))[_0x8827('0x49')](handleError(_0xdc5918,null));};exports[_0x8827('0x2b')]=function(_0x42565a,_0x1c3b09){if(_0x42565a[_0x8827('0x35')]['id']){delete _0x42565a[_0x8827('0x35')]['id'];}return db[_0x8827('0xab')]['find']({'where':{'id':_0x42565a['params']['id']}})['then'](handleEntityNotFound(_0x1c3b09,null))[_0x8827('0x2c')](saveUpdates(_0x42565a[_0x8827('0x35')],null))[_0x8827('0x2c')](respondWithResult(_0x1c3b09,null))[_0x8827('0x49')](handleError(_0x1c3b09,null));};exports[_0x8827('0x2d')]=function(_0x13353f,_0xd618b){return db['MailInteraction'][_0x8827('0x70')]({'where':{'id':_0x13353f[_0x8827('0xcf')]['id']}})[_0x8827('0x2c')](handleEntityNotFound(_0xd618b,null))[_0x8827('0x2c')](removeEntity(_0xd618b,null))[_0x8827('0x49')](handleError(_0xd618b,null));};exports['describe']=function(_0x31d43e,_0x21a2bc){return db[_0x8827('0xab')][_0x8827('0xd3')]()[_0x8827('0x2c')](respondWithResult(_0x21a2bc,null))[_0x8827('0x49')](handleError(_0x21a2bc,null));};exports[_0x8827('0xd4')]=function(_0x3a811d,_0x4c63bc,_0x263317){return db[_0x8827('0x42')][_0x8827('0x70')]({'where':{'id':_0x3a811d[_0x8827('0xcf')]['id']}})[_0x8827('0x2c')](handleEntityNotFound(_0x4c63bc,null))[_0x8827('0x2c')](function(_0x22d996){if(_0x22d996){return _0x22d996['addMessage'](_0x3a811d[_0x8827('0x35')][_0x8827('0xd5')],_['omit'](_0x3a811d[_0x8827('0x35')],[_0x8827('0xd5'),'id'])||{});}})[_0x8827('0x2c')](respondWithResult(_0x4c63bc,null))[_0x8827('0x49')](handleError(_0x4c63bc,null));};exports[_0x8827('0xd6')]=function(_0x3b65c0,_0x503493,_0x1bdeef){var _0x24ad3a={'raw':![],'where':{}};var _0x57c257={};var _0x122923={'count':0x0,'rows':[]};return db[_0x8827('0xab')][_0x8827('0x43')]({'where':{'id':_0x3b65c0[_0x8827('0xcf')]['id']}})[_0x8827('0x2c')](handleEntityNotFound(_0x503493,null))[_0x8827('0x2c')](function(_0x51a14a){if(_0x51a14a){_0x57c257[_0x8827('0x4f')]=_[_0x8827('0x82')](db['MailMessage']['rawAttributes']);_0x57c257[_0x8827('0x50')]=_[_0x8827('0x82')](_0x3b65c0[_0x8827('0x50')]);_0x57c257[_0x8827('0x51')]=_['intersection'](_0x57c257[_0x8827('0x4f')],_0x57c257['query']);_0x24ad3a[_0x8827('0x53')]=_[_0x8827('0x52')](_0x57c257[_0x8827('0x4f')],qs[_0x8827('0x54')](_0x3b65c0[_0x8827('0x50')][_0x8827('0x54')]));_0x24ad3a[_0x8827('0x53')]=_0x24ad3a[_0x8827('0x53')]['length']?_0x24ad3a['attributes']:_0x57c257['model'];if(!_0x3b65c0[_0x8827('0x50')][_0x8827('0x55')](_0x8827('0x56'))){_0x24ad3a['limit']=qs['limit'](_0x3b65c0[_0x8827('0x50')][_0x8827('0x24')]);_0x24ad3a[_0x8827('0x22')]=qs[_0x8827('0x22')](_0x3b65c0[_0x8827('0x50')][_0x8827('0x22')]);}_0x24ad3a[_0x8827('0xa0')]=qs[_0x8827('0x57')](_0x3b65c0['query']['sort']);_0x24ad3a[_0x8827('0x58')]=qs[_0x8827('0x51')](_[_0x8827('0xd7')](_0x3b65c0[_0x8827('0x50')],_0x57c257[_0x8827('0x51')]));_0x24ad3a['where']['MailInteractionId']=_0x51a14a['id'];if(_0x3b65c0[_0x8827('0x50')]['filter']){_0x24ad3a['where']=_[_0x8827('0x34')](_0x24ad3a[_0x8827('0x58')],{'$or':_[_0x8827('0x3b')](_0x24ad3a['attributes'],function(_0x581afa){var _0x40a229={};_0x40a229[_0x581afa]={'$like':'%'+_0x3b65c0[_0x8827('0x50')][_0x8827('0x94')]+'%'};return _0x40a229;})});}if(_0x3b65c0['query'][_0x8827('0x89')]){var _0x4fb787=_0x3b65c0[_0x8827('0x50')][_0x8827('0x89')][_0x8827('0x3f')](',');var _0x5d3471={};_0x5d3471[_0x4fb787[0x0]]={'$gte':moment(_0x4fb787[0x1])['format'](_0x8827('0xd8'))};_0x24ad3a['where']=_[_0x8827('0x34')](_0x24ad3a[_0x8827('0x58')],_0x5d3471);}_0x24ad3a=_[_0x8827('0x34')]({},_0x24ad3a,_0x3b65c0[_0x8827('0xd1')]);return db[_0x8827('0x42')]['count']({'where':_0x24ad3a['where']})[_0x8827('0x2c')](function(_0x565603){_0x122923['count']=_0x565603;if(_0x3b65c0[_0x8827('0x50')][_0x8827('0xd0')]){_0x24ad3a['include']=[{'all':!![]}];}return db[_0x8827('0x42')]['findAll'](_0x24ad3a);})[_0x8827('0x2c')](function(_0x4ae6cb){if(_0x3b65c0['query'][_0x8827('0xd9')]===_0x8827('0xda')){for(var _0x2882a9=0x0;_0x2882a9<_0x4ae6cb[_0x8827('0x6f')];_0x2882a9++){_0x4ae6cb[_0x2882a9]['body']=juice(_0x4ae6cb[_0x2882a9][_0x8827('0x35')]);}}_0x122923['rows']=_0x4ae6cb;return _0x122923;});}})[_0x8827('0x2c')](respondWithFilteredResult(_0x503493,_0x24ad3a))[_0x8827('0x49')](handleError(_0x503493,null));};exports[_0x8827('0xdb')]=function(_0x2ee0e1,_0x4c1394,_0x2a4f5d){return db[_0x8827('0xab')][_0x8827('0x70')]({'where':{'id':_0x2ee0e1[_0x8827('0xcf')]['id']}})[_0x8827('0x2c')](handleEntityNotFound(_0x4c1394,null))[_0x8827('0x2c')](function(_0x117ef1){if(_0x117ef1){return _0x117ef1[_0x8827('0xdc')](_0x2ee0e1[_0x8827('0x35')][_0x8827('0xd5')],_[_0x8827('0xdd')](_0x2ee0e1[_0x8827('0x35')],['ids','id'])||{})[_0x8827('0xde')](function(){return db[_0x8827('0xdf')]['findAll']({'attributes':['id','name',_0x8827('0xe0')],'where':{'id':_0x2ee0e1[_0x8827('0x35')]['ids']}});})['then'](function(_0x5601a3){socket[_0x8827('0xe1')](_0x8827('0xe2'),{'id':Number(_0x2ee0e1['params']['id']),'tags':_0x5601a3||[]});return{'id':Number(_0x2ee0e1[_0x8827('0xcf')]['id']),'tags':_0x5601a3||[]};});}})[_0x8827('0x2c')](respondWithResult(_0x4c1394,null))[_0x8827('0x49')](handleError(_0x4c1394,null));};exports[_0x8827('0xe3')]=function(_0x54ff95,_0x4cda84,_0x4df2b9){return db[_0x8827('0xab')][_0x8827('0x70')]({'where':{'id':_0x54ff95[_0x8827('0xcf')]['id']}})[_0x8827('0x2c')](handleEntityNotFound(_0x4cda84,null))['then'](function(_0x4b46a6){if(_0x4b46a6){return _0x4b46a6[_0x8827('0xe3')](_0x54ff95[_0x8827('0x50')]['ids']);}})[_0x8827('0x2c')](respondWithStatusCode(_0x4cda84,null))['catch'](handleError(_0x4cda84,null));};exports[_0x8827('0xe4')]=function(_0x5ef32d,_0x2a0d38){var _0x20fc71=moment()['unix']()[_0x8827('0xa9')]();var _0x3d7b8e=path[_0x8827('0xe5')](config[_0x8827('0xe6')],_0x8827('0xe7'),_0x8827('0xe8'),'tmp');var _0xf3081a=path['join'](config['root'],'server',_0x8827('0xe8'),'attachments');var _0x1b89ad=path[_0x8827('0xe5')](_0x3d7b8e,_0x20fc71);var _0x32c61b=util['format']('transcript-%d-%s.zip',_0x5ef32d[_0x8827('0xcf')]['id'],_0x20fc71);var _0x74cf0b=path['join'](_0x3d7b8e,_0x32c61b);var _0x461593=[];if(_0x5ef32d[_0x8827('0x50')]['attachments']){_0x461593[_0x8827('0x41')]({'model':db[_0x8827('0xe9')],'as':_0x8827('0xea'),'raw':!![]});}var _0x328010=[{'model':db[_0x8827('0x42')],'as':_0x8827('0xeb'),'attributes':['id',_0x8827('0x35'),_0x8827('0x5a'),'to','cc','bcc',_0x8827('0xec'),_0x8827('0x87')],'where':{'secret':![]},'order':qs[_0x8827('0x57')]('id'),'include':_0x461593}];return db[_0x8827('0xab')]['find']({'where':{'id':_0x5ef32d[_0x8827('0xcf')]['id']},'include':_0x328010})[_0x8827('0x2c')](handleEntityNotFound(_0x2a0d38,null))[_0x8827('0x2c')](function(_0x2631d9){if(_0x2631d9&&_0x2631d9[_0x8827('0xeb')]){var _0x17ea26=_0x2631d9['get']({'plain':!![]});fs['mkdirSync'](_0x1b89ad);return BPromise[_0x8827('0xed')](_0x17ea26[_0x8827('0xeb')],function(_0x1c1c68,_0x2853d3){var _0x572b11={'from':_0x1c1c68[_0x8827('0x5a')],'to':_0x1c1c68['to'],'subject':_0x1c1c68[_0x8827('0xec')],'html':_0x1c1c68[_0x8827('0x35')],'headers':{'Date':moment(_0x1c1c68[_0x8827('0x87')])['format'](_0x8827('0xee'))},'attachments':[]};if(_0x1c1c68['cc']){_0x572b11[_0x8827('0xef')]['Cc']=_0x1c1c68['cc'];}if(_0x1c1c68[_0x8827('0xf0')]){_0x572b11[_0x8827('0xef')]['Bcc']=_0x1c1c68[_0x8827('0xf0')];}return new BPromise(function(_0x3664dc,_0x4307bf){if(_0x1c1c68[_0x8827('0xea')]){for(var _0x49d3cd=0x0;_0x49d3cd<_0x1c1c68[_0x8827('0xea')]['length'];_0x49d3cd++){var _0x43399d=_0x1c1c68[_0x8827('0xea')][_0x49d3cd];var _0x32ee11=path['join'](_0xf3081a,_0x43399d[_0x8827('0xf1')]);if(fs[_0x8827('0xf2')](_0x32ee11)){_0x572b11[_0x8827('0xf3')]['push']({'name':_0x43399d[_0x8827('0x31')],'contentType':_0x43399d[_0x8827('0x4d')],'data':fs[_0x8827('0xf4')](_0x32ee11)});}}}emlformat[_0x8827('0xf5')](_0x572b11,function(_0x30673b,_0x49f7ba){if(_0x30673b)return _0x4307bf(_0x30673b);fs[_0x8827('0xf6')](path[_0x8827('0xe5')](_0x1b89ad,util[_0x8827('0xf7')](_0x8827('0xf8'),_0x2853d3)),_0x49f7ba);return _0x3664dc(_0x49f7ba);});});})[_0x8827('0x2c')](function(){return new BPromise(function(_0x2e98ec,_0x16494d){zipdir(_0x1b89ad,{'saveTo':_0x74cf0b},function(_0x2d5cb4,_0x3b318b){if(_0x2d5cb4)return _0x16494d(_0x2d5cb4);return _0x2e98ec(_0x3b318b);});})[_0x8827('0x2c')](function(){return new BPromise(function(_0x39d531,_0x413bee){rimraf(_0x1b89ad,function(_0x5e4112){if(_0x5e4112)_0x413bee(_0x5e4112);return _0x39d531();});});})[_0x8827('0x2c')](function(){return _0x2a0d38['download'](_0x74cf0b,_0x32c61b,function(_0x3713b8){if(_0x3713b8){console[_0x8827('0xf9')](_0x8827('0xfa'),_0x3713b8);}else{fs[_0x8827('0xfb')](_0x74cf0b);}});});});}else{return _0x2a0d38['sendStatus'](0xc8);}})['catch'](handleError(_0x2a0d38,null));};