Built motion from commit 5b761a7b.|2.5.36
[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 _0xc171=['rows','setTags','spread','findAll','color','emit','mailInteractionTags:save','removeTags','download','join','root','server','tmp','files','attachments','transcript-%d-%s.zip','Attachment','Messages','bcc','subject','mkdirSync','each','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','Attachments','basename','existsSync','readFileSync','writeFileSync','unlinkSync','rimraf','zip-dir','moment','util','path','lodash','squel','juice','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/environment','../../mysqldb','redis','defaults','localhost','./mailInteraction.socket','register','sendStatus','status','end','json','limit','count','offset','set','Content-Range','update','then','destroy','error','stack','name','send','Users','map','TagIds','Tags','split','forEach','MailMessage','out','-id','plainBody','trimStart','catch','index','MailInteraction','rawAttributes','fieldName','model','query','intersection','attributes','fields','length','order','sort','where','filters','pick','select','field','from','tools_tags','u.id','u.fullname','ui.MailInteractionId','user_has_mail_interactions','left_join','users','mail_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','mail_accounts','mail_messages','me.MailInteractionId\x20=\x20i.id','mail_interaction_has_tags','it.MailInteractionId\x20=\x20i.id','expr','search','sqlOperator','unreadMessages','value','having','`\x20>\x200','$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?','find','ContactId','buildExpression','type','start','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','operator','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','text','some','compact','MailAccountId','concat','createdAt','$gte','parse','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','isArray','tag','filter','replace','isNumeric','i.id\x20LIKE\x20?','isEmail','group','i.id','Sequelize','QueryTypes','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','DESC','isEmpty','t.id\x20IN\x20?','resolve','i.MailAccountId\x20IS\x20NOT\x20NULL','user','role','getMailAccounts','i.MailAccountId\x20IS\x20NULL','i.MailAccountId\x20IN\x20?','agent','toString','sequelize','keyBy','merge','a.key','Account.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','i.createdAt','i.updatedAt','i.closedAt','i.attach','i.lastMsgDirection','i.subject','i.disposition','i.thirdDisposition','i.substatus','i.MailAccountId','i.UserId','Contact.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','c.mobile','Contact.mobile','c.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','ui.MailInteractionId\x20IN\x20?','groupBy','MailInteractionId','Setting','enableEmailPreview','push','show','keys','includeAll','include','options','create','body','params','describe','ids','omit','hasOwnProperty','nolimit','format','inlineCss','true'];(function(_0x23972a,_0xd1f3d9){var _0x89f9f2=function(_0x570b41){while(--_0x570b41){_0x23972a['push'](_0x23972a['shift']());}};_0x89f9f2(++_0xd1f3d9);}(_0xc171,0x105));var _0x1c17=function(_0x3849ff,_0x4ae25e){_0x3849ff=_0x3849ff-0x0;var _0x3ab676=_0xc171[_0x3849ff];return _0x3ab676;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0x1c17('0x0'));var zipdir=require(_0x1c17('0x1'));var moment=require(_0x1c17('0x2'));var BPromise=require('bluebird');var util=require(_0x1c17('0x3'));var path=require(_0x1c17('0x4'));var fs=require('fs');var _=require(_0x1c17('0x5'));var squel=require(_0x1c17('0x6'));var juice=require(_0x1c17('0x7'));var Redis=require(_0x1c17('0x8'));var qs=require(_0x1c17('0x9'));var as=require(_0x1c17('0xa'));var logger=require('../../config/logger')('api');var config=require(_0x1c17('0xb'));var db=require(_0x1c17('0xc'))['db'];var htmlEntities=require('html-entities');config[_0x1c17('0xd')]=_[_0x1c17('0xe')](config[_0x1c17('0xd')],{'host':_0x1c17('0xf'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x1c17('0x10'))[_0x1c17('0x11')](socket);function respondWithStatusCode(_0x94927b,_0x52791b){_0x52791b=_0x52791b||0xcc;return function(_0x2a7f95){if(_0x2a7f95){return _0x94927b[_0x1c17('0x12')](_0x52791b);}return _0x94927b[_0x1c17('0x13')](_0x52791b)[_0x1c17('0x14')]();};}function respondWithResult(_0x5a24ce,_0x389421){_0x389421=_0x389421||0xc8;return function(_0x309315){if(_0x309315){return _0x5a24ce['status'](_0x389421)[_0x1c17('0x15')](_0x309315);}};}function respondWithFilteredResult(_0x3c15af,_0x4ee32b){return function(_0x36fada){if(_0x36fada){var _0x2af802=typeof _0x4ee32b['offset']==='undefined'&&typeof _0x4ee32b[_0x1c17('0x16')]==='undefined';var _0x3fa4ef=_0x36fada[_0x1c17('0x17')];var _0x459914=_0x2af802?0x0:_0x4ee32b[_0x1c17('0x18')];var _0x588c4c=_0x2af802?_0x36fada[_0x1c17('0x17')]:_0x4ee32b[_0x1c17('0x18')]+_0x4ee32b[_0x1c17('0x16')];var _0x539d70;if(_0x588c4c>=_0x3fa4ef){_0x588c4c=_0x3fa4ef;_0x539d70=0xc8;}else{_0x539d70=0xce;}_0x3c15af[_0x1c17('0x13')](_0x539d70);return _0x3c15af[_0x1c17('0x19')](_0x1c17('0x1a'),_0x459914+'-'+_0x588c4c+'/'+_0x3fa4ef)[_0x1c17('0x15')](_0x36fada);}return null;};}function saveUpdates(_0xb4a203){return function(_0x4d1aba){if(_0x4d1aba){return _0x4d1aba[_0x1c17('0x1b')](_0xb4a203)[_0x1c17('0x1c')](function(_0x3ba320){return _0x3ba320;});}return null;};}function removeEntity(_0x3e89f9){return function(_0x25870d){if(_0x25870d){return _0x25870d[_0x1c17('0x1d')]()[_0x1c17('0x1c')](function(){_0x3e89f9[_0x1c17('0x13')](0xcc)[_0x1c17('0x14')]();});}};}function handleEntityNotFound(_0x45e715){return function(_0x3a5e03){if(!_0x3a5e03){_0x45e715[_0x1c17('0x12')](0x194);}return _0x3a5e03;};}function handleError(_0x5d4cfb,_0x3980a0){_0x3980a0=_0x3980a0||0x1f4;return function(_0x1e3b06){logger[_0x1c17('0x1e')](_0x1e3b06[_0x1c17('0x1f')]);if(_0x1e3b06[_0x1c17('0x20')]){delete _0x1e3b06[_0x1c17('0x20')];}_0x5d4cfb[_0x1c17('0x13')](_0x3980a0)[_0x1c17('0x21')](_0x1e3b06);};}function getInteractionUsers(_0x248505,_0x2a5087){return new BPromise(function(_0x307ef9,_0x26d711){try{if(_0x2a5087[_0x248505['id']]){_0x248505[_0x1c17('0x22')]=_[_0x1c17('0x23')](_0x2a5087[_0x248505['id']],function(_0x269879){return{'id':_0x269879['id'],'fullname':_0x269879['fullname']};});}}catch(_0x49cf2d){_0x26d711(_0x49cf2d);}_0x307ef9(_0x248505);});}function getInteractionTags(_0x38c907,_0x2d9463){return new BPromise(function(_0x5a9c6b,_0x10b147){try{if(_0x38c907[_0x1c17('0x24')]){_0x38c907[_0x1c17('0x25')]=[];_0x38c907['TagIds'][_0x1c17('0x26')](',')[_0x1c17('0x27')](function(_0x547eba){_0x38c907[_0x1c17('0x25')]['push'](_0x2d9463[_0x547eba]);});}delete _0x38c907['TagIds'];}catch(_0x4fcb91){_0x10b147(_0x4fcb91);}_0x5a9c6b(_0x38c907);});}function getLastMessageText(_0x7803ca){return new BPromise(function(_0x42f9b7,_0x14ca08){return db[_0x1c17('0x28')]['findOne']({'where':{'$and':[{'MailInteractionId':_0x7803ca['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':_0x1c17('0x29')},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':['plainBody'],'order':_0x1c17('0x2a'),'raw':!![]})[_0x1c17('0x1c')](function(_0x162f60){if(_0x162f60&&_0x162f60[_0x1c17('0x2b')]){_0x7803ca['lastMsgText']=_[_0x1c17('0x2c')](_0x162f60[_0x1c17('0x2b')]);}_0x42f9b7(_0x7803ca);})[_0x1c17('0x2d')](function(_0x26270b){_0x14ca08(_0x26270b);});});}function updateMailInteraction(_0x4c7bd7,_0x4a3ab8,_0x3a85a3,_0x468397){return new BPromise(function(_0x4995a0,_0x173048){return getInteractionUsers(_0x4c7bd7,_0x3a85a3)[_0x1c17('0x1c')](function(_0x26c05b){return getInteractionTags(_0x26c05b,_0x4a3ab8);})[_0x1c17('0x1c')](function(_0x15fbf4){if(_0x468397){_0x4995a0(getLastMessageText(_0x15fbf4));}else{_0x4995a0(_0x15fbf4);}})['catch'](function(_0x27faf4){_0x173048(_0x27faf4);});});}exports[_0x1c17('0x2e')]=function(_0x4c8705,_0x111275){var _0x469f1e={},_0x1abbd1={},_0x584b5f={'count':0x0,'rows':[]};var _0x490e31=_[_0x1c17('0x23')](db[_0x1c17('0x2f')][_0x1c17('0x30')],function(_0x364c95){return{'name':_0x364c95[_0x1c17('0x31')],'type':_0x364c95['type']['key']};});_0x1abbd1[_0x1c17('0x32')]=_[_0x1c17('0x23')](_0x490e31,_0x1c17('0x20'));_0x1abbd1[_0x1c17('0x33')]=_['keys'](_0x4c8705['query']);_0x1abbd1['filters']=_[_0x1c17('0x34')](_0x1abbd1[_0x1c17('0x32')],_0x1abbd1['query']);_0x469f1e[_0x1c17('0x35')]=_[_0x1c17('0x34')](_0x1abbd1[_0x1c17('0x32')],qs[_0x1c17('0x36')](_0x4c8705[_0x1c17('0x33')][_0x1c17('0x36')]));_0x469f1e[_0x1c17('0x35')]=_0x469f1e[_0x1c17('0x35')][_0x1c17('0x37')]?_0x469f1e[_0x1c17('0x35')]:_0x1abbd1[_0x1c17('0x32')];if(!_0x4c8705[_0x1c17('0x33')]['hasOwnProperty']('nolimit')){_0x469f1e[_0x1c17('0x16')]=qs['limit'](_0x4c8705['query'][_0x1c17('0x16')]);_0x469f1e[_0x1c17('0x18')]=qs[_0x1c17('0x18')](_0x4c8705[_0x1c17('0x33')][_0x1c17('0x18')]);}_0x469f1e[_0x1c17('0x38')]=qs[_0x1c17('0x39')](_0x4c8705[_0x1c17('0x33')][_0x1c17('0x39')]);_0x469f1e[_0x1c17('0x3a')]=qs[_0x1c17('0x3b')](_[_0x1c17('0x3c')](_0x4c8705[_0x1c17('0x33')],_0x1abbd1[_0x1c17('0x3b')]),_0x490e31);var _0x199f3f=[];var _0x76e4fe=squel[_0x1c17('0x3d')]()['field']('id')[_0x1c17('0x3e')](_0x1c17('0x20'))[_0x1c17('0x3e')]('color')[_0x1c17('0x3f')](_0x1c17('0x40'));var _0x589c35=squel[_0x1c17('0x3d')]()[_0x1c17('0x3e')](_0x1c17('0x41'))[_0x1c17('0x3e')](_0x1c17('0x42'))[_0x1c17('0x3e')](_0x1c17('0x43'))[_0x1c17('0x3f')](_0x1c17('0x44'),'ui')[_0x1c17('0x45')](_0x1c17('0x46'),'u','u.id\x20=\x20ui.UserId');var _0x26a622=squel[_0x1c17('0x3d')]()[_0x1c17('0x3f')](_0x1c17('0x47'),'i')[_0x1c17('0x45')](_0x1c17('0x48'),'c',_0x1c17('0x49'))[_0x1c17('0x45')](_0x1c17('0x46'),'o',_0x1c17('0x4a'))['left_join'](_0x1c17('0x4b'),'a','a.id\x20=\x20i.MailAccountId')[_0x1c17('0x45')](_0x1c17('0x4c'),'me',_0x1c17('0x4d'))[_0x1c17('0x45')](_0x1c17('0x4e'),'it',_0x1c17('0x4f'))[_0x1c17('0x45')](_0x1c17('0x40'),'t','t.id\x20=\x20it.TagId');var _0x6ac68a=squel['expr']();var _0x578694=[];var _0x490a29=squel[_0x1c17('0x50')]();var _0x1b97ea;if(_0x4c8705[_0x1c17('0x33')][_0x1c17('0x51')]){_0x1b97ea=as['parseSearch'](_0x4c8705[_0x1c17('0x33')][_0x1c17('0x51')]);var _0x6f986c=_0x1b97ea[_0x1c17('0x52')];for(var _0x291b5f=0x0;_0x291b5f<_0x1b97ea['conditions'][_0x1c17('0x37')];_0x291b5f++){var _0x373d96=_0x1b97ea['conditions'][_0x291b5f];var _0x42ca39='i';var _0x562a0a=_['find'](_0x490e31,[_0x1c17('0x20'),_0x373d96[_0x1c17('0x3e')]]);if(!_0x562a0a){switch(_0x373d96['field']){case _0x1c17('0x53'):if(_0x373d96[_0x1c17('0x54')]==0x1){_0x26a622[_0x1c17('0x55')]('`'+_0x373d96['field']+'`\x20=\x200');}else{_0x26a622[_0x1c17('0x55')]('`'+_0x373d96['field']+_0x1c17('0x56'));}break;case'Contact':if(_0x373d96['operator']===_0x1c17('0x57')){if(_0x373d96[_0x1c17('0x54')][_0x1c17('0x26')]('\x20')[_0x1c17('0x37')]>0x1){_0x6ac68a[_0x6f986c](_0x1c17('0x58'),qs[_0x1c17('0x59')](_0x373d96[_0x1c17('0x54')]),null);}else{var _0x208041='%'+_0x373d96['value']+'%';_0x6ac68a[_0x6f986c](_0x1c17('0x5a'),_0x208041,_0x208041,_0x208041);}}else{_0x562a0a=_[_0x1c17('0x5b')](_0x490e31,[_0x1c17('0x20'),_0x1c17('0x5c')]);_0x373d96[_0x1c17('0x3e')]=_0x1c17('0x5c');_0x43f1ff=as[_0x1c17('0x5d')](_0x42ca39,_0x562a0a[_0x1c17('0x5e')],_0x373d96);_0x6ac68a[_0x6f986c](_0x43f1ff['text'],_0x43f1ff[_0x1c17('0x54')][_0x1c17('0x5f')],_0x43f1ff[_0x1c17('0x54')][_0x1c17('0x14')]);}break;case _0x1c17('0x60'):var _0x2cf8fa=_0x373d96[_0x1c17('0x54')][_0x1c17('0x26')](',')[_0x1c17('0x23')](function(_0x38d631){return Number(_0x38d631);});_0x2cf8fa[_0x1c17('0x27')](function(_0x5e499b){_0x490a29['or'](_0x1c17('0x61'),'%,'+_0x5e499b+',%');});_0x578694=_[_0x1c17('0x62')](_0x578694,_0x2cf8fa);break;case _0x1c17('0x63'):if(_0x373d96[_0x1c17('0x64')]===_0x1c17('0x57')){_0x6ac68a[_0x6f986c](_0x1c17('0x65'),'%'+_0x373d96[_0x1c17('0x54')]+'%',null);}else{_0x562a0a=_[_0x1c17('0x5b')](_0x490e31,[_0x1c17('0x20'),_0x1c17('0x66')]);_0x373d96[_0x1c17('0x3e')]=_0x1c17('0x66');_0x43f1ff=as[_0x1c17('0x5d')](_0x42ca39,_0x562a0a['type'],_0x373d96);_0x6ac68a[_0x6f986c](_0x43f1ff[_0x1c17('0x67')],_0x43f1ff[_0x1c17('0x54')][_0x1c17('0x5f')],_0x43f1ff[_0x1c17('0x54')][_0x1c17('0x14')]);}break;case _0x1c17('0x2b'):_0x43f1ff=as[_0x1c17('0x5d')]('me',null,_0x373d96);_0x6ac68a[_0x6f986c](_0x43f1ff['text'],_0x43f1ff[_0x1c17('0x54')][_0x1c17('0x5f')],_0x43f1ff[_0x1c17('0x54')][_0x1c17('0x14')]);break;}}else{var _0x43f1ff=as[_0x1c17('0x5d')](_0x42ca39,_0x562a0a[_0x1c17('0x5e')],_0x373d96);_0x6ac68a[_0x6f986c](_0x43f1ff[_0x1c17('0x67')],_0x43f1ff[_0x1c17('0x54')][_0x1c17('0x5f')],_0x43f1ff[_0x1c17('0x54')][_0x1c17('0x14')]);}}}else{var _0x4b97f5=_(_0x4c8705[_0x1c17('0x33')])['keys']()[_0x1c17('0x23')](function(_0x2331e1){return _[_0x1c17('0x68')](_0x490e31,[_0x1c17('0x20'),_0x2331e1])?_0x2331e1:undefined;})[_0x1c17('0x69')]()['value']();if(!_['isEmpty'](_0x4b97f5)){_0x4b97f5[_0x1c17('0x27')](function(_0x163274){if(_0x163274===_0x1c17('0x6a')){_0x26a622['where']('i.MailAccountId\x20IN\x20?',[][_0x1c17('0x6b')](_0x4c8705[_0x1c17('0x33')][_0x163274]));}else if(_0x163274===_0x1c17('0x6c')){var _0x5bc547=JSON['parse'](_0x4c8705[_0x1c17('0x33')][_0x163274])[_0x1c17('0x6d')];var _0x50915f=JSON[_0x1c17('0x6e')](_0x4c8705[_0x1c17('0x33')][_0x163274])[_0x1c17('0x6f')];_0x26a622[_0x1c17('0x3a')](_0x1c17('0x70'),_0x5bc547,_0x50915f);}else{if(_0x4c8705['query'][_0x163274]===_0x1c17('0x71')){_0x26a622['where']('i.'+_0x163274+_0x1c17('0x72'));}else{_0x26a622[_0x1c17('0x3a')]('i.'+_0x163274+_0x1c17('0x73'),_0x4c8705[_0x1c17('0x33')][_0x163274]);}}});}if(_0x4c8705[_0x1c17('0x33')]['read']){if(_0x4c8705[_0x1c17('0x33')][_0x1c17('0x74')]==0x1){_0x26a622['having'](_0x1c17('0x75'));}else{_0x26a622[_0x1c17('0x55')](_0x1c17('0x76'));}}if(_0x4c8705[_0x1c17('0x33')]['tag']){_0x578694=_[_0x1c17('0x77')](_0x4c8705[_0x1c17('0x33')][_0x1c17('0x78')])?_0x4c8705['query']['tag']:new Array(_0x4c8705[_0x1c17('0x33')][_0x1c17('0x78')]);_0x578694[_0x1c17('0x27')](function(_0x4ea6e6){_0x490a29['or'](_0x1c17('0x61'),'%,'+_0x4ea6e6+',%');});}if(_0x4c8705[_0x1c17('0x33')][_0x1c17('0x79')]){var _0x4dd7b0=_0x4c8705[_0x1c17('0x33')][_0x1c17('0x79')][_0x1c17('0x7a')]('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(qs[_0x1c17('0x7b')](_0x4dd7b0)){_0x6ac68a['or'](_0x1c17('0x7c'),_0x4dd7b0+'%');}else if(qs[_0x1c17('0x7d')](_0x4dd7b0)){_0x6ac68a['or']('c.email\x20LIKE\x20?',_0x4dd7b0+'%');}else{_0x6ac68a['or']('MATCH\x20(i.to,\x20i.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x1c17('0x59')](_0x4dd7b0))['or']('MATCH\x20(me.plainBody,\x20me.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x1c17('0x59')](_0x4dd7b0));}}}_0x26a622[_0x1c17('0x3a')](_0x6ac68a);_0x26a622[_0x1c17('0x7e')](_0x1c17('0x7f'));var _0x3b9be2={'type':db[_0x1c17('0x80')][_0x1c17('0x81')]['SELECT'],'raw':!![]};var _0x1dcc17=_0x26a622['clone']();_0x1dcc17[_0x1c17('0x3e')]('i.id');_0x1dcc17[_0x1c17('0x3e')](_0x1c17('0x82'),_0x1c17('0x53'));if(_0x469f1e[_0x1c17('0x38')]){_0x469f1e[_0x1c17('0x38')][_0x1c17('0x27')](function(_0x683687){var _0x4bba1b=_0x683687[0x0]===_0x1c17('0x83')?_0x683687[0x0]:'i.'+_0x683687[0x0];_0x26a622[_0x1c17('0x38')](_0x4bba1b,_0x683687[0x1]===_0x1c17('0x84')?![]:!![]);});}if(!_[_0x1c17('0x85')](_0x578694)){_0x26a622['having'](_0x490a29);_0x1dcc17[_0x1c17('0x3a')](_0x1c17('0x86'),_0x578694);}BPromise[_0x1c17('0x87')]()[_0x1c17('0x1c')](function(){if(!_0x1b97ea){if(_0x4c8705[_0x1c17('0x33')]['MailAccountId'])return;_0x1dcc17[_0x1c17('0x3a')](_0x1c17('0x88'));_0x26a622[_0x1c17('0x3a')](_0x1c17('0x88'));return;}if(_0x4c8705[_0x1c17('0x89')][_0x1c17('0x8a')]!=='agent')return;return _0x4c8705['user'][_0x1c17('0x8b')]({'attributes':['id'],'raw':!![]})[_0x1c17('0x1c')](function(_0x27f7af){if(_['isEmpty'](_0x27f7af)){_0x1dcc17[_0x1c17('0x3a')](_0x1c17('0x8c'));_0x26a622['where']('i.MailAccountId\x20IS\x20NULL');}else{_0x1dcc17['where'](_0x1c17('0x8d'),_[_0x1c17('0x23')](_0x27f7af,'id'));_0x26a622['where'](_0x1c17('0x8d'),_['map'](_0x27f7af,'id'));}});})[_0x1c17('0x1c')](function(){if(_0x4c8705[_0x1c17('0x89')]['role']===_0x1c17('0x8e')&&!_0x1b97ea&&!_0x4c8705[_0x1c17('0x33')][_0x1c17('0x6a')])return[];return db['sequelize'][_0x1c17('0x33')](_0x1dcc17[_0x1c17('0x8f')](),_0x3b9be2);})[_0x1c17('0x1c')](function(_0x562ec1){_0x584b5f[_0x1c17('0x17')]=_0x562ec1[_0x1c17('0x37')];if(_0x584b5f[_0x1c17('0x17')]===0x0)return[];return db[_0x1c17('0x90')][_0x1c17('0x33')](_0x76e4fe[_0x1c17('0x8f')](),_0x3b9be2)[_0x1c17('0x1c')](function(_0x38ff9e){_0x199f3f=_[_0x1c17('0x91')](_0x38ff9e,'id');_0x3b9be2=_[_0x1c17('0x92')](_0x3b9be2,{'model':db[_0x1c17('0x2f')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x4c8705[_0x1c17('0x33')]['fields']){_0x469f1e[_0x1c17('0x35')][_0x1c17('0x27')](function(_0x49f6e2){_0x26a622['field']('i.'+_0x49f6e2);});}else{_0x26a622[_0x1c17('0x3e')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x1c17('0x53'));_0x26a622[_0x1c17('0x3e')](_0x1c17('0x93'),_0x1c17('0x94'));_0x26a622['field'](_0x1c17('0x95'),_0x1c17('0x96'));_0x26a622[_0x1c17('0x3e')](_0x1c17('0x97'),_0x1c17('0x83'));_0x26a622[_0x1c17('0x3e')](_0x1c17('0x7f'));_0x26a622[_0x1c17('0x3e')](_0x1c17('0x98'));_0x26a622[_0x1c17('0x3e')](_0x1c17('0x99'));_0x26a622[_0x1c17('0x3e')]('i.closed');_0x26a622[_0x1c17('0x3e')](_0x1c17('0x9a'));_0x26a622[_0x1c17('0x3e')](_0x1c17('0x9b'));_0x26a622[_0x1c17('0x3e')]('i.lastMsgAt');_0x26a622[_0x1c17('0x3e')](_0x1c17('0x9c'));_0x26a622[_0x1c17('0x3e')](_0x1c17('0x9d'));_0x26a622[_0x1c17('0x3e')](_0x1c17('0x9e'));_0x26a622[_0x1c17('0x3e')]('i.secondDisposition');_0x26a622[_0x1c17('0x3e')](_0x1c17('0x9f'));_0x26a622['field'](_0x1c17('0xa0'));_0x26a622['field']('i.to');_0x26a622['field']('i.ContactId');_0x26a622[_0x1c17('0x3e')](_0x1c17('0xa1'));_0x26a622['field'](_0x1c17('0xa2'));_0x26a622['field']('c.firstName',_0x1c17('0xa3'));_0x26a622[_0x1c17('0x3e')](_0x1c17('0xa4'),_0x1c17('0xa5'));_0x26a622[_0x1c17('0x3e')](_0x1c17('0xa6'),_0x1c17('0xa7'));_0x26a622['field'](_0x1c17('0xa8'),_0x1c17('0xa9'));_0x26a622[_0x1c17('0x3e')](_0x1c17('0xaa'),_0x1c17('0xab'));_0x26a622[_0x1c17('0x3e')](_0x1c17('0xac'),'Contact.fax');_0x26a622[_0x1c17('0x3e')](_0x1c17('0xad'),_0x1c17('0xae'));_0x26a622[_0x1c17('0x3e')](_0x1c17('0xaf'),_0x1c17('0xb0'));_0x26a622['field']('GROUP_CONCAT(DISTINCT\x20t.id)',_0x1c17('0x24'));}if(_0x469f1e['limit'])_0x26a622[_0x1c17('0x16')](_0x469f1e[_0x1c17('0x16')]);if(_0x469f1e[_0x1c17('0x18')])_0x26a622['offset'](_0x469f1e['offset']);return db[_0x1c17('0x90')][_0x1c17('0x33')](_0x26a622[_0x1c17('0x8f')](),_0x3b9be2);})[_0x1c17('0x1c')](function(_0x4a9bc2){if(_0x4a9bc2[_0x1c17('0x37')]>0x0)_0x589c35[_0x1c17('0x3a')](_0x1c17('0xb1'),_['map'](_0x4a9bc2,'id'));return db[_0x1c17('0x90')][_0x1c17('0x33')](_0x589c35['toString'](),_0x3b9be2)[_0x1c17('0x1c')](function(_0x496199){var _0x448bb5=_[_0x1c17('0xb2')](_0x496199,_0x1c17('0xb3'));var _0x42a746=[];return db[_0x1c17('0xb4')]['findOne']({'attributes':[_0x1c17('0xb5')],'raw':!![]})[_0x1c17('0x1c')](function(_0xdfa730){var _0x2511cb=_0xdfa730[_0x1c17('0xb5')];_0x4a9bc2[_0x1c17('0x27')](function(_0x2965c1){_0x42a746[_0x1c17('0xb6')](updateMailInteraction(_0x2965c1,_0x199f3f,_0x448bb5,_0x2511cb));});return BPromise['all'](_0x42a746);});});});})[_0x1c17('0x1c')](function(_0x40673d){_0x584b5f['rows']=_0x40673d;return _0x584b5f;})[_0x1c17('0x1c')](respondWithFilteredResult(_0x111275,_0x469f1e))[_0x1c17('0x2d')](handleError(_0x111275,null));};exports[_0x1c17('0xb7')]=function(_0x57a6bc,_0x2e73aa){var _0x32aea8={'raw':![],'where':{'id':_0x57a6bc['params']['id']}},_0x1b83eb={};_0x1b83eb['model']=_[_0x1c17('0xb8')](db[_0x1c17('0x2f')][_0x1c17('0x30')]);_0x1b83eb[_0x1c17('0x33')]=_[_0x1c17('0xb8')](_0x57a6bc[_0x1c17('0x33')]);_0x1b83eb['filters']=_[_0x1c17('0x34')](_0x1b83eb[_0x1c17('0x32')],_0x1b83eb[_0x1c17('0x33')]);_0x32aea8['attributes']=_['intersection'](_0x1b83eb[_0x1c17('0x32')],qs[_0x1c17('0x36')](_0x57a6bc[_0x1c17('0x33')][_0x1c17('0x36')]));_0x32aea8[_0x1c17('0x35')]=_0x32aea8[_0x1c17('0x35')][_0x1c17('0x37')]?_0x32aea8[_0x1c17('0x35')]:_0x1b83eb[_0x1c17('0x32')];if(_0x57a6bc[_0x1c17('0x33')][_0x1c17('0xb9')]){_0x32aea8[_0x1c17('0xba')]=[{'all':!![]}];}_0x32aea8=_[_0x1c17('0x92')]({},_0x32aea8,_0x57a6bc[_0x1c17('0xbb')]);return db[_0x1c17('0x2f')][_0x1c17('0x5b')](_0x32aea8)[_0x1c17('0x1c')](handleEntityNotFound(_0x2e73aa,null))[_0x1c17('0x1c')](respondWithResult(_0x2e73aa,null))[_0x1c17('0x2d')](handleError(_0x2e73aa,null));};exports[_0x1c17('0xbc')]=function(_0x117c03,_0x752915){return db[_0x1c17('0x2f')]['create'](_0x117c03[_0x1c17('0xbd')],{})['then'](respondWithResult(_0x752915,0xc9))[_0x1c17('0x2d')](handleError(_0x752915,null));};exports[_0x1c17('0x1b')]=function(_0x1b0f28,_0xea5d4){if(_0x1b0f28[_0x1c17('0xbd')]['id']){delete _0x1b0f28[_0x1c17('0xbd')]['id'];}return db[_0x1c17('0x2f')][_0x1c17('0x5b')]({'where':{'id':_0x1b0f28[_0x1c17('0xbe')]['id']}})[_0x1c17('0x1c')](handleEntityNotFound(_0xea5d4,null))['then'](saveUpdates(_0x1b0f28[_0x1c17('0xbd')],null))[_0x1c17('0x1c')](respondWithResult(_0xea5d4,null))[_0x1c17('0x2d')](handleError(_0xea5d4,null));};exports[_0x1c17('0x1d')]=function(_0x59ee59,_0xb8eb24){return db[_0x1c17('0x2f')]['find']({'where':{'id':_0x59ee59[_0x1c17('0xbe')]['id']}})[_0x1c17('0x1c')](handleEntityNotFound(_0xb8eb24,null))[_0x1c17('0x1c')](removeEntity(_0xb8eb24,null))[_0x1c17('0x2d')](handleError(_0xb8eb24,null));};exports[_0x1c17('0xbf')]=function(_0x3cce7d,_0x5598ea){return db[_0x1c17('0x2f')]['describe']()[_0x1c17('0x1c')](respondWithResult(_0x5598ea,null))['catch'](handleError(_0x5598ea,null));};exports['addMessage']=function(_0x14e48a,_0x50698a){return db['MailMessage'][_0x1c17('0x5b')]({'where':{'id':_0x14e48a['params']['id']}})[_0x1c17('0x1c')](handleEntityNotFound(_0x50698a,null))['then'](function(_0x35d547){if(_0x35d547){return _0x35d547['addMessage'](_0x14e48a[_0x1c17('0xbd')][_0x1c17('0xc0')],_[_0x1c17('0xc1')](_0x14e48a[_0x1c17('0xbd')],['ids','id'])||{});}})[_0x1c17('0x1c')](respondWithResult(_0x50698a,null))[_0x1c17('0x2d')](handleError(_0x50698a,null));};exports['getMessages']=function(_0xfbf5e3,_0x5daf9e){var _0x3ef35a={'raw':![],'where':{}};var _0x49b460={};var _0x22f435={'count':0x0,'rows':[]};return db[_0x1c17('0x2f')]['findOne']({'where':{'id':_0xfbf5e3[_0x1c17('0xbe')]['id']}})[_0x1c17('0x1c')](handleEntityNotFound(_0x5daf9e,null))[_0x1c17('0x1c')](function(_0x409de4){if(_0x409de4){_0x49b460[_0x1c17('0x32')]=_['keys'](db[_0x1c17('0x28')]['rawAttributes']);_0x49b460[_0x1c17('0x33')]=_[_0x1c17('0xb8')](_0xfbf5e3[_0x1c17('0x33')]);_0x49b460[_0x1c17('0x3b')]=_['intersection'](_0x49b460[_0x1c17('0x32')],_0x49b460[_0x1c17('0x33')]);_0x3ef35a[_0x1c17('0x35')]=_[_0x1c17('0x34')](_0x49b460[_0x1c17('0x32')],qs[_0x1c17('0x36')](_0xfbf5e3[_0x1c17('0x33')][_0x1c17('0x36')]));_0x3ef35a[_0x1c17('0x35')]=_0x3ef35a[_0x1c17('0x35')][_0x1c17('0x37')]?_0x3ef35a[_0x1c17('0x35')]:_0x49b460[_0x1c17('0x32')];if(!_0xfbf5e3[_0x1c17('0x33')][_0x1c17('0xc2')](_0x1c17('0xc3'))){_0x3ef35a[_0x1c17('0x16')]=qs['limit'](_0xfbf5e3[_0x1c17('0x33')][_0x1c17('0x16')]);_0x3ef35a['offset']=qs[_0x1c17('0x18')](_0xfbf5e3['query'][_0x1c17('0x18')]);}_0x3ef35a[_0x1c17('0x38')]=qs[_0x1c17('0x39')](_0xfbf5e3[_0x1c17('0x33')]['sort']);_0x3ef35a[_0x1c17('0x3a')]=qs[_0x1c17('0x3b')](_[_0x1c17('0x3c')](_0xfbf5e3[_0x1c17('0x33')],_0x49b460['filters']));_0x3ef35a[_0x1c17('0x3a')][_0x1c17('0xb3')]=_0x409de4['id'];if(_0xfbf5e3['query'][_0x1c17('0x79')]){_0x3ef35a['where']=_[_0x1c17('0x92')](_0x3ef35a[_0x1c17('0x3a')],{'$or':_[_0x1c17('0x23')](_0x3ef35a['attributes'],function(_0x3489a5){var _0x44f377={};_0x44f377[_0x3489a5]={'$like':'%'+_0xfbf5e3[_0x1c17('0x33')]['filter']+'%'};return _0x44f377;})});}if(_0xfbf5e3['query'][_0x1c17('0x6d')]){var _0x33ee7d=_0xfbf5e3['query'][_0x1c17('0x6d')]['split'](',');var _0x1a2cc8={};_0x1a2cc8[_0x33ee7d[0x0]]={'$gte':moment(_0x33ee7d[0x1])[_0x1c17('0xc4')]('YYYY-MM-DD\x20HH:mm:ss')};_0x3ef35a['where']=_[_0x1c17('0x92')](_0x3ef35a[_0x1c17('0x3a')],_0x1a2cc8);}_0x3ef35a=_['merge']({},_0x3ef35a,_0xfbf5e3['options']);return db[_0x1c17('0x28')][_0x1c17('0x17')]({'where':_0x3ef35a[_0x1c17('0x3a')]})['then'](function(_0x5226c3){_0x22f435['count']=_0x5226c3;if(_0xfbf5e3[_0x1c17('0x33')]['includeAll']){_0x3ef35a[_0x1c17('0xba')]=[{'all':!![]}];}return db[_0x1c17('0x28')]['findAll'](_0x3ef35a);})['then'](function(_0x534f15){if(_0xfbf5e3['query'][_0x1c17('0xc5')]===_0x1c17('0xc6')){for(var _0x90ae73=0x0;_0x90ae73<_0x534f15[_0x1c17('0x37')];_0x90ae73++){_0x534f15[_0x90ae73][_0x1c17('0xbd')]=juice(_0x534f15[_0x90ae73]['body']);}}_0x22f435[_0x1c17('0xc7')]=_0x534f15;return _0x22f435;});}})[_0x1c17('0x1c')](respondWithFilteredResult(_0x5daf9e,_0x3ef35a))[_0x1c17('0x2d')](handleError(_0x5daf9e,null));};exports['addTags']=function(_0x2d0b5d,_0x3c46dd){return db[_0x1c17('0x2f')][_0x1c17('0x5b')]({'where':{'id':_0x2d0b5d[_0x1c17('0xbe')]['id']}})['then'](handleEntityNotFound(_0x3c46dd,null))[_0x1c17('0x1c')](function(_0x7e8ac2){if(_0x7e8ac2){return _0x7e8ac2[_0x1c17('0xc8')](_0x2d0b5d[_0x1c17('0xbd')][_0x1c17('0xc0')],_[_0x1c17('0xc1')](_0x2d0b5d['body'],['ids','id'])||{})[_0x1c17('0xc9')](function(){return db[_0x1c17('0x60')][_0x1c17('0xca')]({'attributes':['id',_0x1c17('0x20'),_0x1c17('0xcb')],'where':{'id':_0x2d0b5d[_0x1c17('0xbd')][_0x1c17('0xc0')]}});})[_0x1c17('0x1c')](function(_0x34c272){socket[_0x1c17('0xcc')](_0x1c17('0xcd'),{'id':Number(_0x2d0b5d[_0x1c17('0xbe')]['id']),'tags':_0x34c272||[]});return{'id':Number(_0x2d0b5d['params']['id']),'tags':_0x34c272||[]};});}})['then'](respondWithResult(_0x3c46dd,null))[_0x1c17('0x2d')](handleError(_0x3c46dd,null));};exports['removeTags']=function(_0x2008c9,_0x560d5a){return db[_0x1c17('0x2f')][_0x1c17('0x5b')]({'where':{'id':_0x2008c9[_0x1c17('0xbe')]['id']}})['then'](handleEntityNotFound(_0x560d5a,null))[_0x1c17('0x1c')](function(_0x479658){if(_0x479658){return _0x479658[_0x1c17('0xce')](_0x2008c9[_0x1c17('0x33')]['ids']);}})[_0x1c17('0x1c')](respondWithStatusCode(_0x560d5a,null))[_0x1c17('0x2d')](handleError(_0x560d5a,null));};exports[_0x1c17('0xcf')]=function(_0x28ced3,_0x2028d6){var _0x2aeccd=moment()['unix']()[_0x1c17('0x8f')]();var _0x7acf54=path[_0x1c17('0xd0')](config[_0x1c17('0xd1')],_0x1c17('0xd2'),'files',_0x1c17('0xd3'));var _0x3cc562=path['join'](config[_0x1c17('0xd1')],_0x1c17('0xd2'),_0x1c17('0xd4'),_0x1c17('0xd5'));var _0x32a604=path[_0x1c17('0xd0')](_0x7acf54,_0x2aeccd);var _0x26dde6=util[_0x1c17('0xc4')](_0x1c17('0xd6'),_0x28ced3['params']['id'],_0x2aeccd);var _0x3a80bd=path['join'](_0x7acf54,_0x26dde6);var _0x4c5168=[];if(_0x28ced3[_0x1c17('0x33')]['attachments']){_0x4c5168[_0x1c17('0xb6')]({'model':db[_0x1c17('0xd7')],'as':'Attachments','raw':!![]});}var _0x569483=[{'model':db['MailMessage'],'as':_0x1c17('0xd8'),'attributes':['id',_0x1c17('0xbd'),_0x1c17('0x3f'),'to','cc',_0x1c17('0xd9'),_0x1c17('0xda'),_0x1c17('0x6c')],'where':{'secret':![]},'order':qs[_0x1c17('0x39')]('id'),'include':_0x4c5168}];return db['MailInteraction'][_0x1c17('0x5b')]({'where':{'id':_0x28ced3[_0x1c17('0xbe')]['id']},'include':_0x569483})[_0x1c17('0x1c')](handleEntityNotFound(_0x2028d6,null))[_0x1c17('0x1c')](function(_0x27264b){if(_0x27264b&&_0x27264b[_0x1c17('0xd8')]){var _0x213188=_0x27264b['get']({'plain':!![]});fs[_0x1c17('0xdb')](_0x32a604);return BPromise[_0x1c17('0xdc')](_0x213188[_0x1c17('0xd8')],function(_0xc29c65,_0x208a54){var _0x50aa9f={'from':_0xc29c65[_0x1c17('0x3f')],'to':_0xc29c65['to'],'subject':_0xc29c65[_0x1c17('0xda')],'html':htmlEntities['decode'](_0xc29c65[_0x1c17('0xbd')]),'headers':{'Date':moment(_0xc29c65['createdAt'])[_0x1c17('0xc4')](_0x1c17('0xdd'))},'attachments':[]};if(_0xc29c65['cc']){_0x50aa9f[_0x1c17('0xde')]['Cc']=_0xc29c65['cc'];}if(_0xc29c65[_0x1c17('0xd9')]){_0x50aa9f[_0x1c17('0xde')][_0x1c17('0xdf')]=_0xc29c65[_0x1c17('0xd9')];}return new BPromise(function(_0xd2c910,_0x2ecb88){if(_0xc29c65['Attachments']){for(var _0x29e040=0x0;_0x29e040<_0xc29c65[_0x1c17('0xe0')][_0x1c17('0x37')];_0x29e040++){var _0x2222e8=_0xc29c65[_0x1c17('0xe0')][_0x29e040];var _0xf7a41b=path['join'](_0x3cc562,_0x2222e8[_0x1c17('0xe1')]);if(fs[_0x1c17('0xe2')](_0xf7a41b)){_0x50aa9f[_0x1c17('0xd5')][_0x1c17('0xb6')]({'name':_0x2222e8[_0x1c17('0x20')],'contentType':_0x2222e8[_0x1c17('0x5e')],'data':fs[_0x1c17('0xe3')](_0xf7a41b)});}}}emlformat['build'](_0x50aa9f,function(_0x4befa1,_0x2f7f5c){if(_0x4befa1)return _0x2ecb88(_0x4befa1);fs[_0x1c17('0xe4')](path['join'](_0x32a604,util[_0x1c17('0xc4')]('message%d.eml',_0x208a54)),_0x2f7f5c);return _0xd2c910(_0x2f7f5c);});});})[_0x1c17('0x1c')](function(){return new BPromise(function(_0x420455,_0x4ee683){zipdir(_0x32a604,{'saveTo':_0x3a80bd},function(_0x8e8d65,_0x2af85a){if(_0x8e8d65)return _0x4ee683(_0x8e8d65);return _0x420455(_0x2af85a);});})['then'](function(){return new BPromise(function(_0x16eeb7,_0x1a2335){rimraf(_0x32a604,function(_0x318a54){if(_0x318a54)_0x1a2335(_0x318a54);return _0x16eeb7();});});})[_0x1c17('0x1c')](function(){return _0x2028d6[_0x1c17('0xcf')](_0x3a80bd,_0x26dde6,function(_0x5e2089){if(!_0x5e2089)fs[_0x1c17('0xe5')](_0x3a80bd);});});});}else{return _0x2028d6[_0x1c17('0x12')](0xc8);}})['catch'](handleError(_0x2028d6,null));};