bff8b2ec4ef652867cf58f52e94de84392540e3f
[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 _0x634b=['filter','replace','isNumeric','i.id\x20LIKE\x20?','isEmail','group','i.id','Sequelize','QueryTypes','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','DESC','t.id\x20IN\x20?','resolve','MailAccountId','journey','i.MailAccountId\x20IS\x20NOT\x20NULL','user','role','getMailAccounts','i.MailAccountId\x20IS\x20NULL','agent','sequelize','toString','merge','a.key','a.mandatoryDisposition','Account.mandatoryDisposition','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','i.updatedAt','i.attach','i.subject','i.thirdDisposition','i.substatus','i.to','i.ContactId','i.MailAccountId','i.UserId','c.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','c.mobile','Contact.mobile','o.fullname','Owner.fullname','o.internal','Owner.internal','ui.MailInteractionId\x20IN\x20?','groupBy','MailInteractionId','enableEmailPreview','rows','show','includeAll','include','options','find','create','body','params','describe','MailMessage','addMessage','ids','omit','getMessages','format','YYYY-MM-DD\x20HH:mm:ss','findAll','addTags','spread','emit','mailInteractionTags:save','removeTags','unix','join','root','server','files','attachments','Attachments','Messages','bcc','createdAt','get','mkdirSync','each','subject','headers','Bcc','existsSync','build','writeFileSync','message%d.eml','download','log','unlinkSync','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','jsforce','desk.js','html-to-text','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../mysqldb','redis','socket.io-emitter','sendStatus','status','end','count','offset','limit','json','apply','save','update','then','destroy','error','name','send','Users','map','fullname','TagIds','Tags','split','forEach','push','findOne','lastMsgBody','lastMsgText','fromString','catch','index','MailInteraction','rawAttributes','fieldName','type','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','sort','where','pick','select','field','color','from','u.fullname','ui.MailInteractionId','user_has_mail_interactions','left_join','users','mail_interactions','cm_contacts','o.id\x20=\x20i.UserId','mail_accounts','mail_messages','me.MailInteractionId\x20=\x20i.id','mail_interaction_has_tags','tools_tags','expr','search','conditions','unreadMessages','having','Contact','operator','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','value','ContactId','buildExpression','start','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','text','plainBody','some','compact','isEmpty','i.MailAccountId\x20IN\x20?','concat','$gte','parse','null','\x20IS\x20NULL','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray'];(function(_0xd19694,_0x307428){var _0x47e07f=function(_0x39ad16){while(--_0x39ad16){_0xd19694['push'](_0xd19694['shift']());}};_0x47e07f(++_0x307428);}(_0x634b,0x66));var _0xb634=function(_0x50c6ea,_0x5e8fe1){_0x50c6ea=_0x50c6ea-0x0;var _0x3e1b76=_0x634b[_0x50c6ea];return _0x3e1b76;};'use strict';var pdf=require(_0xb634('0x0'));var emlformat=require(_0xb634('0x1'));var rimraf=require(_0xb634('0x2'));var zipdir=require(_0xb634('0x3'));var jsonpatch=require(_0xb634('0x4'));var rp=require('request-promise');var moment=require(_0xb634('0x5'));var BPromise=require(_0xb634('0x6'));var Mustache=require(_0xb634('0x7'));var util=require(_0xb634('0x8'));var path=require(_0xb634('0x9'));var sox=require(_0xb634('0xa'));var csv=require(_0xb634('0xb'));var ejs=require(_0xb634('0xc'));var fs=require('fs');var _=require(_0xb634('0xd'));var squel=require(_0xb634('0xe'));var crypto=require('crypto');var jsforce=require(_0xb634('0xf'));var deskjs=require(_0xb634('0x10'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require('papaparse');var htmlToText=require(_0xb634('0x11'));var Redis=require(_0xb634('0x12'));var authService=require(_0xb634('0x13'));var qs=require('../../components/parsers/qs');var as=require(_0xb634('0x14'));var hardwareService=require(_0xb634('0x15'));var logger=require('../../config/logger')(_0xb634('0x16'));var utils=require(_0xb634('0x17'));var config=require(_0xb634('0x18'));var licenseUtil=require('../../config/license/util');var db=require(_0xb634('0x19'))['db'];config[_0xb634('0x1a')]=_['defaults'](config[_0xb634('0x1a')],{'host':'localhost','port':0x18eb});var socket=require(_0xb634('0x1b'))(new Redis(config[_0xb634('0x1a')]));require('./mailInteraction.socket')['register'](socket);function respondWithStatusCode(_0x38d017,_0x1e176e){_0x1e176e=_0x1e176e||0xcc;return function(_0x4ce4e4){if(_0x4ce4e4){return _0x38d017[_0xb634('0x1c')](_0x1e176e);}return _0x38d017[_0xb634('0x1d')](_0x1e176e)[_0xb634('0x1e')]();};}function respondWithResult(_0x51b0e9,_0x5b6d32){_0x5b6d32=_0x5b6d32||0xc8;return function(_0x246056){if(_0x246056){return _0x51b0e9['status'](_0x5b6d32)['json'](_0x246056);}};}function respondWithFilteredResult(_0x10db58,_0x9543c1){return function(_0x496d11){if(_0x496d11){var _0x3f729c=_0x496d11[_0xb634('0x1f')],_0x4e21f5=_0x9543c1[_0xb634('0x20')],_0x5d3990=_0x9543c1[_0xb634('0x20')]+_0x9543c1[_0xb634('0x21')],_0x1d4c84;if(_0x5d3990>=_0x3f729c){_0x5d3990=_0x3f729c;_0x1d4c84=0xc8;}else{_0x1d4c84=0xce;}_0x10db58[_0xb634('0x1d')](_0x1d4c84);return _0x10db58['set']('Content-Range',_0x4e21f5+'-'+_0x5d3990+'/'+_0x3f729c)[_0xb634('0x22')](_0x496d11);}return null;};}function patchUpdates(_0x5e61ae){return function(_0x465252){try{jsonpatch[_0xb634('0x23')](_0x465252,_0x5e61ae,!![]);}catch(_0x1e58d5){return BPromise['reject'](_0x1e58d5);}return _0x465252[_0xb634('0x24')]();};}function saveUpdates(_0x8c66eb,_0x5ac5ab){return function(_0x13a9fb){if(_0x13a9fb){return _0x13a9fb[_0xb634('0x25')](_0x8c66eb)[_0xb634('0x26')](function(_0x55b9eb){return _0x55b9eb;});}return null;};}function removeEntity(_0x2efad5,_0x5ce1ff){return function(_0x448ae4){if(_0x448ae4){return _0x448ae4[_0xb634('0x27')]()[_0xb634('0x26')](function(){_0x2efad5[_0xb634('0x1d')](0xcc)[_0xb634('0x1e')]();});}};}function handleEntityNotFound(_0x413d8d,_0x5d81dc){return function(_0x176d23){if(!_0x176d23){_0x413d8d[_0xb634('0x1c')](0x194);}return _0x176d23;};}function handleError(_0xdc038a,_0x314835){_0x314835=_0x314835||0x1f4;return function(_0x17ba95){logger[_0xb634('0x28')](_0x17ba95['stack']);if(_0x17ba95[_0xb634('0x29')]){delete _0x17ba95[_0xb634('0x29')];}_0xdc038a['status'](_0x314835)[_0xb634('0x2a')](_0x17ba95);};}function getInteractionUsers(_0x2ad658,_0x128796){return new BPromise(function(_0x45fd72,_0x2a90f7){try{if(_0x128796[_0x2ad658['id']]){_0x2ad658[_0xb634('0x2b')]=_[_0xb634('0x2c')](_0x128796[_0x2ad658['id']],function(_0x54044d){return{'id':_0x54044d['id'],'fullname':_0x54044d[_0xb634('0x2d')]};});}}catch(_0x433ed5){_0x2a90f7(_0x433ed5);}_0x45fd72(_0x2ad658);});}function getInteractionTags(_0x142207,_0x935bdb){return new BPromise(function(_0x3a115b,_0x34de52){try{if(_0x142207[_0xb634('0x2e')]){_0x142207[_0xb634('0x2f')]=[];_0x142207['TagIds'][_0xb634('0x30')](',')[_0xb634('0x31')](function(_0x220e57){_0x142207[_0xb634('0x2f')][_0xb634('0x32')](_0x935bdb[_0x220e57]);});}delete _0x142207[_0xb634('0x2e')];}catch(_0x404d5b){_0x34de52(_0x404d5b);}_0x3a115b(_0x142207);});}function getLastMessageText(_0x2e602a){return new BPromise(function(_0x50ae76,_0x18ed18){return db['MailInteraction'][_0xb634('0x33')]({'where':{'id':_0x2e602a['id']},'attributes':[_0xb634('0x34'),_0xb634('0x35')],'raw':!![]})[_0xb634('0x26')](function(_0x1cb5f5){if(!_0x1cb5f5['lastMsgText']){_0x2e602a[_0xb634('0x35')]=_['trimStart'](htmlToText[_0xb634('0x36')](_0x1cb5f5[_0xb634('0x34')],{'preserveNewlines':!![],'singleNewLineParagraphs':!![],'uppercaseHeadings':![],'noLinkBrackets':!![],'ignoreImage':!![]}));}else{_0x2e602a['lastMsgText']=_0x1cb5f5['lastMsgText'];}_0x50ae76(_0x2e602a);})[_0xb634('0x37')](function(_0x4b55b3){_0x18ed18(_0x4b55b3);});});}function updateMailInteraction(_0x55c5f0,_0x507064,_0x736769,_0x55d16a){return new BPromise(function(_0x4c6956,_0xca1b48){return getInteractionUsers(_0x55c5f0,_0x736769)['then'](function(_0x466934){return getInteractionTags(_0x466934,_0x507064);})[_0xb634('0x26')](function(_0x1b3f0c){if(_0x55d16a){_0x4c6956(getLastMessageText(_0x1b3f0c));}else{_0x4c6956(_0x1b3f0c);}})[_0xb634('0x37')](function(_0x4a758a){_0xca1b48(_0x4a758a);});});}exports[_0xb634('0x38')]=function(_0x2a8529,_0x34ad49){var _0x301ecd={},_0x2f04c7={},_0x3dede3={'count':0x0,'rows':[]};var _0x3c53d6=_['map'](db[_0xb634('0x39')][_0xb634('0x3a')],function(_0x4abfdc){return{'name':_0x4abfdc[_0xb634('0x3b')],'type':_0x4abfdc[_0xb634('0x3c')]['key']};});_0x2f04c7[_0xb634('0x3d')]=_[_0xb634('0x2c')](_0x3c53d6,_0xb634('0x29'));_0x2f04c7[_0xb634('0x3e')]=_[_0xb634('0x3f')](_0x2a8529[_0xb634('0x3e')]);_0x2f04c7[_0xb634('0x40')]=_[_0xb634('0x41')](_0x2f04c7[_0xb634('0x3d')],_0x2f04c7[_0xb634('0x3e')]);_0x301ecd[_0xb634('0x42')]=_[_0xb634('0x41')](_0x2f04c7[_0xb634('0x3d')],qs[_0xb634('0x43')](_0x2a8529['query'][_0xb634('0x43')]));_0x301ecd['attributes']=_0x301ecd[_0xb634('0x42')][_0xb634('0x44')]?_0x301ecd[_0xb634('0x42')]:_0x2f04c7[_0xb634('0x3d')];if(!_0x2a8529[_0xb634('0x3e')][_0xb634('0x45')](_0xb634('0x46'))){_0x301ecd[_0xb634('0x21')]=qs[_0xb634('0x21')](_0x2a8529[_0xb634('0x3e')][_0xb634('0x21')]);_0x301ecd[_0xb634('0x20')]=qs['offset'](_0x2a8529['query']['offset']);}_0x301ecd['order']=qs[_0xb634('0x47')](_0x2a8529[_0xb634('0x3e')]['sort']);_0x301ecd[_0xb634('0x48')]=qs[_0xb634('0x40')](_[_0xb634('0x49')](_0x2a8529[_0xb634('0x3e')],_0x2f04c7[_0xb634('0x40')]),_0x3c53d6);var _0x251e71=[];var _0xa9e4ed=squel[_0xb634('0x4a')]()[_0xb634('0x4b')]('id')[_0xb634('0x4b')](_0xb634('0x29'))[_0xb634('0x4b')](_0xb634('0x4c'))[_0xb634('0x4d')]('tools_tags');var _0x126cd1=squel[_0xb634('0x4a')]()[_0xb634('0x4b')]('u.id')[_0xb634('0x4b')](_0xb634('0x4e'))[_0xb634('0x4b')](_0xb634('0x4f'))['from'](_0xb634('0x50'),'ui')[_0xb634('0x51')](_0xb634('0x52'),'u','u.id\x20=\x20ui.UserId');var _0xda0caf=squel[_0xb634('0x4a')]()['from'](_0xb634('0x53'),'i')['left_join'](_0xb634('0x54'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')['left_join'](_0xb634('0x52'),'o',_0xb634('0x55'))[_0xb634('0x51')](_0xb634('0x56'),'a','a.id\x20=\x20i.MailAccountId')[_0xb634('0x51')](_0xb634('0x57'),'me',_0xb634('0x58'))[_0xb634('0x51')](_0xb634('0x59'),'it','it.MailInteractionId\x20=\x20i.id')[_0xb634('0x51')](_0xb634('0x5a'),'t','t.id\x20=\x20it.TagId');var _0x32c263=squel[_0xb634('0x5b')]();var _0x198952=[];var _0x543bbb=squel[_0xb634('0x5b')]();var _0x333b8f;if(_0x2a8529[_0xb634('0x3e')][_0xb634('0x5c')]){_0x333b8f=as['parseSearch'](_0x2a8529[_0xb634('0x3e')][_0xb634('0x5c')]);var _0x1cd990=_0x333b8f['sqlOperator'];for(var _0x54ed4f=0x0;_0x54ed4f<_0x333b8f['conditions'][_0xb634('0x44')];_0x54ed4f++){var _0x3015ca=_0x333b8f[_0xb634('0x5d')][_0x54ed4f];var _0x2151f4='i';var _0xf957bc=_['find'](_0x3c53d6,[_0xb634('0x29'),_0x3015ca[_0xb634('0x4b')]]);if(!_0xf957bc){switch(_0x3015ca['field']){case _0xb634('0x5e'):if(_0x3015ca['value']==0x1){_0xda0caf[_0xb634('0x5f')]('`'+_0x3015ca[_0xb634('0x4b')]+'`\x20=\x200');}else{_0xda0caf['having']('`'+_0x3015ca[_0xb634('0x4b')]+'`\x20>\x200');}break;case _0xb634('0x60'):if(_0x3015ca[_0xb634('0x61')]===_0xb634('0x62')){if(_0x3015ca['value']['split']('\x20')[_0xb634('0x44')]>0x1){_0x32c263[_0x1cd990](_0xb634('0x63'),qs[_0xb634('0x64')](_0x3015ca[_0xb634('0x65')]),null);}else{var _0x211778='%'+_0x3015ca['value']+'%';_0x32c263[_0x1cd990]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x211778,_0x211778,_0x211778);}}else{_0xf957bc=_['find'](_0x3c53d6,['name',_0xb634('0x66')]);_0x3015ca[_0xb634('0x4b')]='ContactId';_0x30ab40=as[_0xb634('0x67')](_0x2151f4,_0xf957bc[_0xb634('0x3c')],_0x3015ca);_0x32c263[_0x1cd990](_0x30ab40['text'],_0x30ab40[_0xb634('0x65')][_0xb634('0x68')],_0x30ab40[_0xb634('0x65')][_0xb634('0x1e')]);}break;case _0xb634('0x69'):var _0x1c472d=_0x3015ca[_0xb634('0x65')][_0xb634('0x30')](',')[_0xb634('0x2c')](function(_0x3b7dd7){return Number(_0x3b7dd7);});_0x1c472d[_0xb634('0x31')](function(_0x1f8d10){_0x543bbb['or'](_0xb634('0x6a'),'%,'+_0x1f8d10+',%');});_0x198952=_[_0xb634('0x6b')](_0x198952,_0x1c472d);break;case _0xb634('0x6c'):if(_0x3015ca[_0xb634('0x61')]===_0xb634('0x62')){_0x32c263[_0x1cd990](_0xb634('0x6d'),'%'+_0x3015ca[_0xb634('0x65')]+'%',null);}else{_0xf957bc=_['find'](_0x3c53d6,['name',_0xb634('0x6e')]);_0x3015ca[_0xb634('0x4b')]=_0xb634('0x6e');_0x30ab40=as['buildExpression'](_0x2151f4,_0xf957bc[_0xb634('0x3c')],_0x3015ca);_0x32c263[_0x1cd990](_0x30ab40[_0xb634('0x6f')],_0x30ab40[_0xb634('0x65')][_0xb634('0x68')],_0x30ab40[_0xb634('0x65')][_0xb634('0x1e')]);}break;case _0xb634('0x70'):_0x30ab40=as[_0xb634('0x67')]('me',null,_0x3015ca);_0x32c263[_0x1cd990](_0x30ab40[_0xb634('0x6f')],_0x30ab40[_0xb634('0x65')][_0xb634('0x68')],_0x30ab40[_0xb634('0x65')][_0xb634('0x1e')]);break;}}else{var _0x30ab40=as[_0xb634('0x67')](_0x2151f4,_0xf957bc['type'],_0x3015ca);_0x32c263[_0x1cd990](_0x30ab40[_0xb634('0x6f')],_0x30ab40[_0xb634('0x65')][_0xb634('0x68')],_0x30ab40[_0xb634('0x65')][_0xb634('0x1e')]);}}}else{var _0x493c03=_(_0x2a8529[_0xb634('0x3e')])['keys']()[_0xb634('0x2c')](function(_0x26dbeb){return _[_0xb634('0x71')](_0x3c53d6,['name',_0x26dbeb])?_0x26dbeb:undefined;})[_0xb634('0x72')]()['value']();if(!_[_0xb634('0x73')](_0x493c03)){_0x493c03[_0xb634('0x31')](function(_0x8f4877){if(_0x8f4877==='MailAccountId'){_0xda0caf[_0xb634('0x48')](_0xb634('0x74'),[][_0xb634('0x75')](_0x2a8529[_0xb634('0x3e')][_0x8f4877]));}else if(_0x8f4877==='createdAt'){var _0x51d814=JSON['parse'](_0x2a8529[_0xb634('0x3e')][_0x8f4877])[_0xb634('0x76')];var _0x5b4d75=JSON[_0xb634('0x77')](_0x2a8529['query'][_0x8f4877])['$lte'];_0xda0caf[_0xb634('0x48')]('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x51d814,_0x5b4d75);}else{if(_0x2a8529[_0xb634('0x3e')][_0x8f4877]===_0xb634('0x78')){_0xda0caf['where']('i.'+_0x8f4877+_0xb634('0x79'));}else{_0xda0caf[_0xb634('0x48')]('i.'+_0x8f4877+'\x20=\x20?',_0x2a8529[_0xb634('0x3e')][_0x8f4877]);}}});}if(_0x2a8529[_0xb634('0x3e')][_0xb634('0x7a')]){if(_0x2a8529[_0xb634('0x3e')]['read']==0x1){_0xda0caf[_0xb634('0x5f')](_0xb634('0x7b'));}else{_0xda0caf[_0xb634('0x5f')](_0xb634('0x7c'));}}if(_0x2a8529['query'][_0xb634('0x7d')]){_0x198952=_[_0xb634('0x7e')](_0x2a8529['query'][_0xb634('0x7d')])?_0x2a8529[_0xb634('0x3e')][_0xb634('0x7d')]:new Array(_0x2a8529['query'][_0xb634('0x7d')]);_0x198952[_0xb634('0x31')](function(_0x156ed7){_0x543bbb['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x156ed7+',%');});}if(_0x2a8529['query'][_0xb634('0x7f')]){var _0x3b2a44=_0x2a8529[_0xb634('0x3e')][_0xb634('0x7f')][_0xb634('0x80')]('\x5c','\x5c\x5c')[_0xb634('0x80')](/'/g,'\x27\x27');if(qs[_0xb634('0x81')](_0x3b2a44)){_0x32c263['or'](_0xb634('0x82'),_0x3b2a44+'%');}else if(qs[_0xb634('0x83')](_0x3b2a44)){_0x32c263['or']('c.email\x20LIKE\x20?',_0x3b2a44+'%');}else{_0x32c263['or']('MATCH\x20(i.to,\x20i.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0xb634('0x64')](_0x3b2a44))['or']('MATCH\x20(me.plainBody,\x20me.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0xb634('0x64')](_0x3b2a44));}}}_0xda0caf['where'](_0x32c263);_0xda0caf[_0xb634('0x84')](_0xb634('0x85'));var _0x596c8c={'type':db[_0xb634('0x86')][_0xb634('0x87')]['SELECT'],'raw':!![]};var _0x28bb27=_0xda0caf[_0xb634('0x88')]();_0x28bb27[_0xb634('0x4b')]('i.id');_0x28bb27[_0xb634('0x4b')](_0xb634('0x89'),_0xb634('0x5e'));if(_0x301ecd['order']){_0x301ecd[_0xb634('0x8a')][_0xb634('0x31')](function(_0x1da5a3){var _0x1ab4b7=_0x1da5a3[0x0]==='contactName'?_0x1da5a3[0x0]:'i.'+_0x1da5a3[0x0];_0xda0caf[_0xb634('0x8a')](_0x1ab4b7,_0x1da5a3[0x1]===_0xb634('0x8b')?![]:!![]);});}if(!_[_0xb634('0x73')](_0x198952)){_0xda0caf[_0xb634('0x5f')](_0x543bbb);_0x28bb27['where'](_0xb634('0x8c'),_0x198952);}BPromise[_0xb634('0x8d')]()['then'](function(){if(!_0x333b8f){if(_0x2a8529['query'][_0xb634('0x8e')]||_0x2a8529['query'][_0xb634('0x8f')])return;_0x28bb27[_0xb634('0x48')](_0xb634('0x90'));_0xda0caf[_0xb634('0x48')](_0xb634('0x90'));return;}if(_0x2a8529[_0xb634('0x91')][_0xb634('0x92')]!=='agent')return;return _0x2a8529[_0xb634('0x91')][_0xb634('0x93')]({'attributes':['id'],'raw':!![]})[_0xb634('0x26')](function(_0x782af3){if(_['isEmpty'](_0x782af3)){_0x28bb27[_0xb634('0x48')](_0xb634('0x94'));_0xda0caf['where'](_0xb634('0x94'));}else{_0x28bb27[_0xb634('0x48')](_0xb634('0x74'),_[_0xb634('0x2c')](_0x782af3,'id'));_0xda0caf[_0xb634('0x48')](_0xb634('0x74'),_[_0xb634('0x2c')](_0x782af3,'id'));}});})[_0xb634('0x26')](function(){if(_0x2a8529['user'][_0xb634('0x92')]===_0xb634('0x95')&&!_0x333b8f&&!_0x2a8529[_0xb634('0x3e')][_0xb634('0x8e')])return[];return db[_0xb634('0x96')]['query'](_0x28bb27[_0xb634('0x97')](),_0x596c8c);})[_0xb634('0x26')](function(_0x38e455){_0x3dede3[_0xb634('0x1f')]=_0x38e455[_0xb634('0x44')];if(_0x3dede3[_0xb634('0x1f')]===0x0)return[];return db[_0xb634('0x96')][_0xb634('0x3e')](_0xa9e4ed[_0xb634('0x97')](),_0x596c8c)['then'](function(_0x2c4255){_0x251e71=_['keyBy'](_0x2c4255,'id');_0x596c8c=_[_0xb634('0x98')](_0x596c8c,{'model':db['MailInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x2a8529[_0xb634('0x3e')][_0xb634('0x43')]){_0x301ecd[_0xb634('0x42')][_0xb634('0x31')](function(_0x112e7b){_0xda0caf[_0xb634('0x4b')]('i.'+_0x112e7b);});}else{_0xda0caf[_0xb634('0x4b')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0xb634('0x5e'));_0xda0caf[_0xb634('0x4b')](_0xb634('0x99'),'Account.key');_0xda0caf[_0xb634('0x4b')](_0xb634('0x9a'),_0xb634('0x9b'));_0xda0caf[_0xb634('0x4b')](_0xb634('0x9c'),_0xb634('0x9d'));_0xda0caf[_0xb634('0x4b')]('i.id');_0xda0caf['field']('i.createdAt');_0xda0caf['field'](_0xb634('0x9e'));_0xda0caf[_0xb634('0x4b')]('i.closed');_0xda0caf[_0xb634('0x4b')]('i.closedAt');_0xda0caf[_0xb634('0x4b')](_0xb634('0x9f'));_0xda0caf[_0xb634('0x4b')]('i.lastMsgAt');_0xda0caf[_0xb634('0x4b')]('i.lastMsgDirection');_0xda0caf[_0xb634('0x4b')](_0xb634('0xa0'));_0xda0caf[_0xb634('0x4b')]('i.disposition');_0xda0caf['field']('i.secondDisposition');_0xda0caf[_0xb634('0x4b')](_0xb634('0xa1'));_0xda0caf['field'](_0xb634('0xa2'));_0xda0caf[_0xb634('0x4b')](_0xb634('0xa3'));_0xda0caf[_0xb634('0x4b')](_0xb634('0xa4'));_0xda0caf[_0xb634('0x4b')](_0xb634('0xa5'));_0xda0caf['field'](_0xb634('0xa6'));_0xda0caf[_0xb634('0x4b')](_0xb634('0xa7'),'Contact.firstName');_0xda0caf[_0xb634('0x4b')](_0xb634('0xa8'),_0xb634('0xa9'));_0xda0caf[_0xb634('0x4b')](_0xb634('0xaa'),_0xb634('0xab'));_0xda0caf['field'](_0xb634('0xac'),'Contact.phone');_0xda0caf['field'](_0xb634('0xad'),_0xb634('0xae'));_0xda0caf['field']('c.fax','Contact.fax');_0xda0caf[_0xb634('0x4b')](_0xb634('0xaf'),_0xb634('0xb0'));_0xda0caf[_0xb634('0x4b')](_0xb634('0xb1'),_0xb634('0xb2'));_0xda0caf['field']('GROUP_CONCAT(DISTINCT\x20t.id)',_0xb634('0x2e'));}if(_0x301ecd[_0xb634('0x21')])_0xda0caf['limit'](_0x301ecd[_0xb634('0x21')]);if(_0x301ecd[_0xb634('0x20')])_0xda0caf[_0xb634('0x20')](_0x301ecd['offset']);return db[_0xb634('0x96')][_0xb634('0x3e')](_0xda0caf['toString'](),_0x596c8c);})[_0xb634('0x26')](function(_0x957440){_0x126cd1[_0xb634('0x48')](_0xb634('0xb3'),_[_0xb634('0x2c')](_0x957440,'id'));return db[_0xb634('0x96')]['query'](_0x126cd1[_0xb634('0x97')](),_0x596c8c)[_0xb634('0x26')](function(_0x5d1629){var _0x10e337=_[_0xb634('0xb4')](_0x5d1629,_0xb634('0xb5'));var _0x3bf49b=[];return db['Setting'][_0xb634('0x33')]({'attributes':[_0xb634('0xb6')],'raw':!![]})['then'](function(_0x188d4b){var _0x51b524=_0x188d4b[_0xb634('0xb6')];_0x957440[_0xb634('0x31')](function(_0xdb597f){_0x3bf49b['push'](updateMailInteraction(_0xdb597f,_0x251e71,_0x10e337,_0x51b524));});return BPromise['all'](_0x3bf49b);});});});})['then'](function(_0x241d68){_0x3dede3[_0xb634('0xb7')]=_0x241d68;return _0x3dede3;})['then'](respondWithFilteredResult(_0x34ad49,_0x301ecd))[_0xb634('0x37')](handleError(_0x34ad49,null));};exports[_0xb634('0xb8')]=function(_0x40b35d,_0x20607f){var _0xb026ea={'raw':![],'where':{'id':_0x40b35d['params']['id']}},_0xcfd367={};_0xcfd367['model']=_['keys'](db[_0xb634('0x39')][_0xb634('0x3a')]);_0xcfd367[_0xb634('0x3e')]=_[_0xb634('0x3f')](_0x40b35d[_0xb634('0x3e')]);_0xcfd367[_0xb634('0x40')]=_[_0xb634('0x41')](_0xcfd367[_0xb634('0x3d')],_0xcfd367[_0xb634('0x3e')]);_0xb026ea[_0xb634('0x42')]=_[_0xb634('0x41')](_0xcfd367[_0xb634('0x3d')],qs[_0xb634('0x43')](_0x40b35d[_0xb634('0x3e')]['fields']));_0xb026ea[_0xb634('0x42')]=_0xb026ea[_0xb634('0x42')]['length']?_0xb026ea[_0xb634('0x42')]:_0xcfd367['model'];if(_0x40b35d[_0xb634('0x3e')][_0xb634('0xb9')]){_0xb026ea[_0xb634('0xba')]=[{'all':!![]}];}_0xb026ea=_[_0xb634('0x98')]({},_0xb026ea,_0x40b35d[_0xb634('0xbb')]);return db[_0xb634('0x39')][_0xb634('0xbc')](_0xb026ea)[_0xb634('0x26')](handleEntityNotFound(_0x20607f,null))['then'](respondWithResult(_0x20607f,null))[_0xb634('0x37')](handleError(_0x20607f,null));};exports[_0xb634('0xbd')]=function(_0xf7f433,_0x52c206){return db[_0xb634('0x39')][_0xb634('0xbd')](_0xf7f433['body'],{})[_0xb634('0x26')](respondWithResult(_0x52c206,0xc9))[_0xb634('0x37')](handleError(_0x52c206,null));};exports[_0xb634('0x25')]=function(_0xaf9d34,_0x4ba529){if(_0xaf9d34[_0xb634('0xbe')]['id']){delete _0xaf9d34['body']['id'];}return db[_0xb634('0x39')][_0xb634('0xbc')]({'where':{'id':_0xaf9d34[_0xb634('0xbf')]['id']}})[_0xb634('0x26')](handleEntityNotFound(_0x4ba529,null))[_0xb634('0x26')](saveUpdates(_0xaf9d34[_0xb634('0xbe')],null))['then'](respondWithResult(_0x4ba529,null))[_0xb634('0x37')](handleError(_0x4ba529,null));};exports[_0xb634('0x27')]=function(_0x1681c3,_0x134f53){return db['MailInteraction'][_0xb634('0xbc')]({'where':{'id':_0x1681c3[_0xb634('0xbf')]['id']}})[_0xb634('0x26')](handleEntityNotFound(_0x134f53,null))[_0xb634('0x26')](removeEntity(_0x134f53,null))[_0xb634('0x37')](handleError(_0x134f53,null));};exports[_0xb634('0xc0')]=function(_0x418f12,_0x2f030a){return db[_0xb634('0x39')][_0xb634('0xc0')]()['then'](respondWithResult(_0x2f030a,null))[_0xb634('0x37')](handleError(_0x2f030a,null));};exports['addMessage']=function(_0x1dfcbf,_0x3b7c10,_0x2c4b0b){return db[_0xb634('0xc1')][_0xb634('0xbc')]({'where':{'id':_0x1dfcbf['params']['id']}})[_0xb634('0x26')](handleEntityNotFound(_0x3b7c10,null))[_0xb634('0x26')](function(_0x5eb6ee){if(_0x5eb6ee){return _0x5eb6ee[_0xb634('0xc2')](_0x1dfcbf['body'][_0xb634('0xc3')],_[_0xb634('0xc4')](_0x1dfcbf[_0xb634('0xbe')],[_0xb634('0xc3'),'id'])||{});}})[_0xb634('0x26')](respondWithResult(_0x3b7c10,null))['catch'](handleError(_0x3b7c10,null));};exports[_0xb634('0xc5')]=function(_0x182ada,_0x2513ff,_0x4b7161){var _0x2d859b={'raw':![],'where':{}};var _0x4dbc06={};var _0x3c1691={'count':0x0,'rows':[]};return db[_0xb634('0x39')][_0xb634('0x33')]({'where':{'id':_0x182ada[_0xb634('0xbf')]['id']}})[_0xb634('0x26')](handleEntityNotFound(_0x2513ff,null))[_0xb634('0x26')](function(_0x3331c8){if(_0x3331c8){_0x4dbc06[_0xb634('0x3d')]=_[_0xb634('0x3f')](db[_0xb634('0xc1')][_0xb634('0x3a')]);_0x4dbc06['query']=_[_0xb634('0x3f')](_0x182ada[_0xb634('0x3e')]);_0x4dbc06[_0xb634('0x40')]=_['intersection'](_0x4dbc06[_0xb634('0x3d')],_0x4dbc06[_0xb634('0x3e')]);_0x2d859b['attributes']=_[_0xb634('0x41')](_0x4dbc06[_0xb634('0x3d')],qs[_0xb634('0x43')](_0x182ada[_0xb634('0x3e')]['fields']));_0x2d859b['attributes']=_0x2d859b[_0xb634('0x42')][_0xb634('0x44')]?_0x2d859b[_0xb634('0x42')]:_0x4dbc06[_0xb634('0x3d')];if(!_0x182ada[_0xb634('0x3e')][_0xb634('0x45')](_0xb634('0x46'))){_0x2d859b[_0xb634('0x21')]=qs[_0xb634('0x21')](_0x182ada[_0xb634('0x3e')][_0xb634('0x21')]);_0x2d859b[_0xb634('0x20')]=qs[_0xb634('0x20')](_0x182ada[_0xb634('0x3e')]['offset']);}_0x2d859b[_0xb634('0x8a')]=qs[_0xb634('0x47')](_0x182ada[_0xb634('0x3e')][_0xb634('0x47')]);_0x2d859b['where']=qs[_0xb634('0x40')](_[_0xb634('0x49')](_0x182ada[_0xb634('0x3e')],_0x4dbc06[_0xb634('0x40')]));_0x2d859b['where'][_0xb634('0xb5')]=_0x3331c8['id'];if(_0x182ada[_0xb634('0x3e')][_0xb634('0x7f')]){_0x2d859b[_0xb634('0x48')]=_[_0xb634('0x98')](_0x2d859b[_0xb634('0x48')],{'$or':_[_0xb634('0x2c')](_0x2d859b[_0xb634('0x42')],function(_0x53d858){var _0x1a4095={};_0x1a4095[_0x53d858]={'$like':'%'+_0x182ada[_0xb634('0x3e')][_0xb634('0x7f')]+'%'};return _0x1a4095;})});}if(_0x182ada[_0xb634('0x3e')][_0xb634('0x76')]){var _0x5f181c=_0x182ada['query'][_0xb634('0x76')]['split'](',');var _0x1b6712={};_0x1b6712[_0x5f181c[0x0]]={'$gte':moment(_0x5f181c[0x1])[_0xb634('0xc6')](_0xb634('0xc7'))};_0x2d859b[_0xb634('0x48')]=_[_0xb634('0x98')](_0x2d859b[_0xb634('0x48')],_0x1b6712);}_0x2d859b=_[_0xb634('0x98')]({},_0x2d859b,_0x182ada[_0xb634('0xbb')]);return db[_0xb634('0xc1')]['count']({'where':_0x2d859b[_0xb634('0x48')]})[_0xb634('0x26')](function(_0x341292){_0x3c1691[_0xb634('0x1f')]=_0x341292;if(_0x182ada[_0xb634('0x3e')][_0xb634('0xb9')]){_0x2d859b['include']=[{'all':!![]}];}return db[_0xb634('0xc1')][_0xb634('0xc8')](_0x2d859b);})[_0xb634('0x26')](function(_0x5ce404){_0x3c1691['rows']=_0x5ce404;return _0x3c1691;});}})[_0xb634('0x26')](respondWithFilteredResult(_0x2513ff,_0x2d859b))[_0xb634('0x37')](handleError(_0x2513ff,null));};exports[_0xb634('0xc9')]=function(_0x1bdee5,_0x4e700d,_0x5a0eb4){return db[_0xb634('0x39')]['find']({'where':{'id':_0x1bdee5[_0xb634('0xbf')]['id']}})[_0xb634('0x26')](handleEntityNotFound(_0x4e700d,null))[_0xb634('0x26')](function(_0x5a8377){if(_0x5a8377){return _0x5a8377['setTags'](_0x1bdee5[_0xb634('0xbe')][_0xb634('0xc3')],_['omit'](_0x1bdee5[_0xb634('0xbe')],[_0xb634('0xc3'),'id'])||{})[_0xb634('0xca')](function(){return db[_0xb634('0x69')][_0xb634('0xc8')]({'attributes':['id',_0xb634('0x29'),_0xb634('0x4c')],'where':{'id':_0x1bdee5['body'][_0xb634('0xc3')]}});})['then'](function(_0xb86654){socket[_0xb634('0xcb')](_0xb634('0xcc'),{'id':Number(_0x1bdee5['params']['id']),'tags':_0xb86654||[]});return{'id':Number(_0x1bdee5[_0xb634('0xbf')]['id']),'tags':_0xb86654||[]};});}})[_0xb634('0x26')](respondWithResult(_0x4e700d,null))[_0xb634('0x37')](handleError(_0x4e700d,null));};exports[_0xb634('0xcd')]=function(_0x428210,_0x1171d2,_0xab8149){return db[_0xb634('0x39')][_0xb634('0xbc')]({'where':{'id':_0x428210['params']['id']}})[_0xb634('0x26')](handleEntityNotFound(_0x1171d2,null))[_0xb634('0x26')](function(_0x125740){if(_0x125740){return _0x125740[_0xb634('0xcd')](_0x428210[_0xb634('0x3e')][_0xb634('0xc3')]);}})[_0xb634('0x26')](respondWithStatusCode(_0x1171d2,null))[_0xb634('0x37')](handleError(_0x1171d2,null));};exports['download']=function(_0x4fc1e8,_0x5e90b9){var _0x4b05b3=moment()[_0xb634('0xce')]()['toString']();var _0x5915b0=path[_0xb634('0xcf')](config[_0xb634('0xd0')],_0xb634('0xd1'),'files','tmp');var _0xe5ebf5=path['join'](config[_0xb634('0xd0')],_0xb634('0xd1'),_0xb634('0xd2'),'attachments');var _0x4204ff=path[_0xb634('0xcf')](_0x5915b0,_0x4b05b3);var _0x1d6982=util[_0xb634('0xc6')]('transcript-%d-%s.zip',_0x4fc1e8[_0xb634('0xbf')]['id'],_0x4b05b3);var _0x306b35=path[_0xb634('0xcf')](_0x5915b0,_0x1d6982);var _0x618033=[];if(_0x4fc1e8['query'][_0xb634('0xd3')]){_0x618033['push']({'model':db['Attachment'],'as':_0xb634('0xd4'),'raw':!![]});}var _0x304452=[{'model':db[_0xb634('0xc1')],'as':_0xb634('0xd5'),'attributes':['id','body',_0xb634('0x4d'),'to','cc',_0xb634('0xd6'),'subject',_0xb634('0xd7')],'where':{'secret':![]},'order':qs['sort']('id'),'include':_0x618033}];return db['MailInteraction'][_0xb634('0xbc')]({'where':{'id':_0x4fc1e8[_0xb634('0xbf')]['id']},'include':_0x304452})[_0xb634('0x26')](handleEntityNotFound(_0x5e90b9,null))['then'](function(_0x27758e){if(_0x27758e&&_0x27758e[_0xb634('0xd5')]){var _0x5cd8a7=_0x27758e[_0xb634('0xd8')]({'plain':!![]});fs[_0xb634('0xd9')](_0x4204ff);return BPromise[_0xb634('0xda')](_0x5cd8a7[_0xb634('0xd5')],function(_0x2ba7d5,_0xbcfb7a){var _0x14e9f8={'from':_0x2ba7d5[_0xb634('0x4d')],'to':_0x2ba7d5['to'],'subject':_0x2ba7d5[_0xb634('0xdb')],'html':_0x2ba7d5[_0xb634('0xbe')],'headers':{'Date':moment(_0x2ba7d5['createdAt'])[_0xb634('0xc6')]('ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ')},'attachments':[]};if(_0x2ba7d5['cc']){_0x14e9f8[_0xb634('0xdc')]['Cc']=_0x2ba7d5['cc'];}if(_0x2ba7d5[_0xb634('0xd6')]){_0x14e9f8[_0xb634('0xdc')][_0xb634('0xdd')]=_0x2ba7d5[_0xb634('0xd6')];}return new BPromise(function(_0x261ec4,_0x2224df){if(_0x2ba7d5[_0xb634('0xd4')]){for(var _0x216dc9=0x0;_0x216dc9<_0x2ba7d5[_0xb634('0xd4')][_0xb634('0x44')];_0x216dc9++){var _0x48a5ad=_0x2ba7d5[_0xb634('0xd4')][_0x216dc9];var _0x217042=path[_0xb634('0xcf')](_0xe5ebf5,_0x48a5ad['basename']);if(fs[_0xb634('0xde')](_0x217042)){_0x14e9f8[_0xb634('0xd3')][_0xb634('0x32')]({'name':_0x48a5ad['name'],'contentType':_0x48a5ad[_0xb634('0x3c')],'data':fs['readFileSync'](_0x217042)});}}}emlformat[_0xb634('0xdf')](_0x14e9f8,function(_0x28ac56,_0x1948cf){if(_0x28ac56)return _0x2224df(_0x28ac56);fs[_0xb634('0xe0')](path[_0xb634('0xcf')](_0x4204ff,util[_0xb634('0xc6')](_0xb634('0xe1'),_0xbcfb7a)),_0x1948cf);return _0x261ec4(_0x1948cf);});});})[_0xb634('0x26')](function(){return new BPromise(function(_0x4cd76d,_0x3b435d){zipdir(_0x4204ff,{'saveTo':_0x306b35},function(_0x1e692c,_0x5cb7eb){if(_0x1e692c)return _0x3b435d(_0x1e692c);return _0x4cd76d(_0x5cb7eb);});})[_0xb634('0x26')](function(){return new BPromise(function(_0x470c12,_0x33485d){rimraf(_0x4204ff,function(_0x27588f){if(_0x27588f)_0x33485d(_0x27588f);return _0x470c12();});});})[_0xb634('0x26')](function(){return _0x5e90b9[_0xb634('0xe2')](_0x306b35,_0x1d6982,function(_0x258a9d){if(_0x258a9d){console[_0xb634('0xe3')]('err',_0x258a9d);}else{fs[_0xb634('0xe4')](_0x306b35);}});});});}else{return _0x5e90b9[_0xb634('0x1c')](0xc8);}})[_0xb634('0x37')](handleError(_0x5e90b9,null));};