dffd57ad76b0af395e1e7ba28727a7f40a895f15
[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 _0x9354=['ui.MailInteractionId','from','user_has_mail_interactions','left_join','users','u.id\x20=\x20ui.UserId','mail_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','mail_accounts','a.id\x20=\x20i.MailAccountId','mail_messages','mail_interaction_has_tags','it.MailInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','unreadMessages','value','`\x20=\x200','having','Contact','operator','$substring','find','ContactId','buildExpression','text','start','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','plainBody','compact','isEmpty','i.MailAccountId\x20IN\x20?','concat','createdAt','parse','$gte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','\x20IS\x20NULL','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','filter','isNumeric','isEmail','MATCH\x20(i.to,\x20i.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','MATCH\x20(me.plainBody,\x20me.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','group','i.id','Sequelize','SELECT','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','DESC','t.id\x20IN\x20?','MailAccountId','i.MailAccountId\x20IS\x20NOT\x20NULL','user','agent','i.MailAccountId\x20IS\x20NULL','role','toString','sequelize','keyBy','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','i.updatedAt','i.closed','i.closedAt','i.attach','i.lastMsgAt','i.lastMsgDirection','i.subject','i.disposition','i.secondDisposition','i.thirdDisposition','i.to','i.ContactId','i.UserId','Contact.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','o.fullname','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.MailInteractionId\x20IN\x20?','MailInteractionId','Setting','enableEmailPreview','all','show','includeAll','create','body','update','params','describe','addMessage','MailMessage','ids','getMessages','format','YYYY-MM-DD\x20HH:mm:ss','options','include','findAll','inlineCss','true','addTags','omit','spread','Tag','emit','download','unix','join','files','server','transcript-%d-%s.zip','attachments','Attachment','Attachments','bcc','subject','get','mkdirSync','each','headers','Bcc','basename','readFileSync','writeFileSync','message%d.eml','unlinkSync','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','papaparse','html-to-text','juice','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/logger','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./mailInteraction.socket','register','sendStatus','status','json','count','limit','set','Content-Range','apply','reject','save','destroy','then','end','name','Users','map','fullname','TagIds','split','forEach','push','MailInteraction','findOne','trimStart','lastMsgBody','lastMsgText','catch','index','fieldName','type','key','model','query','keys','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','offset','order','sort','where','pick','select','field','color','tools_tags','u.fullname'];(function(_0x175866,_0x1e48a6){var _0x4a561b=function(_0x1ca6fe){while(--_0x1ca6fe){_0x175866['push'](_0x175866['shift']());}};_0x4a561b(++_0x1e48a6);}(_0x9354,0x96));var _0x4935=function(_0x122096,_0x60c295){_0x122096=_0x122096-0x0;var _0x3d1966=_0x9354[_0x122096];return _0x3d1966;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x4935('0x0'));var rimraf=require(_0x4935('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x4935('0x2'));var rp=require(_0x4935('0x3'));var moment=require(_0x4935('0x4'));var BPromise=require(_0x4935('0x5'));var Mustache=require('mustache');var util=require(_0x4935('0x6'));var path=require(_0x4935('0x7'));var sox=require(_0x4935('0x8'));var csv=require(_0x4935('0x9'));var ejs=require(_0x4935('0xa'));var fs=require('fs');var _=require(_0x4935('0xb'));var squel=require(_0x4935('0xc'));var crypto=require(_0x4935('0xd'));var jsforce=require(_0x4935('0xe'));var deskjs=require('desk.js');var toCsv=require(_0x4935('0x9'));var querystring=require('querystring');var Papa=require(_0x4935('0xf'));var htmlToText=require(_0x4935('0x10'));var juice=require(_0x4935('0x11'));var Redis=require(_0x4935('0x12'));var authService=require(_0x4935('0x13'));var qs=require(_0x4935('0x14'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x4935('0x15'))('api');var utils=require('../../config/utils');var config=require(_0x4935('0x16'));var licenseUtil=require(_0x4935('0x17'));var db=require(_0x4935('0x18'))['db'];config[_0x4935('0x19')]=_[_0x4935('0x1a')](config[_0x4935('0x19')],{'host':_0x4935('0x1b'),'port':0x18eb});var socket=require(_0x4935('0x1c'))(new Redis(config[_0x4935('0x19')]));require(_0x4935('0x1d'))[_0x4935('0x1e')](socket);function respondWithStatusCode(_0x1799e4,_0xa41961){_0xa41961=_0xa41961||0xcc;return function(_0x3652c4){if(_0x3652c4){return _0x1799e4[_0x4935('0x1f')](_0xa41961);}return _0x1799e4[_0x4935('0x20')](_0xa41961)['end']();};}function respondWithResult(_0x3079e7,_0x46526a){_0x46526a=_0x46526a||0xc8;return function(_0x165ed3){if(_0x165ed3){return _0x3079e7[_0x4935('0x20')](_0x46526a)[_0x4935('0x21')](_0x165ed3);}};}function respondWithFilteredResult(_0x429ef3,_0x4ebc63){return function(_0xd70eff){if(_0xd70eff){var _0x145277=_0xd70eff[_0x4935('0x22')],_0x4fe356=_0x4ebc63['offset'],_0x288eff=_0x4ebc63['offset']+_0x4ebc63[_0x4935('0x23')],_0x10407f;if(_0x288eff>=_0x145277){_0x288eff=_0x145277;_0x10407f=0xc8;}else{_0x10407f=0xce;}_0x429ef3[_0x4935('0x20')](_0x10407f);return _0x429ef3[_0x4935('0x24')](_0x4935('0x25'),_0x4fe356+'-'+_0x288eff+'/'+_0x145277)[_0x4935('0x21')](_0xd70eff);}return null;};}function patchUpdates(_0x16ab7c){return function(_0x7a50ab){try{jsonpatch[_0x4935('0x26')](_0x7a50ab,_0x16ab7c,!![]);}catch(_0x58b2f3){return BPromise[_0x4935('0x27')](_0x58b2f3);}return _0x7a50ab[_0x4935('0x28')]();};}function saveUpdates(_0x1db8d2,_0x2c701f){return function(_0x52c65a){if(_0x52c65a){return _0x52c65a['update'](_0x1db8d2)['then'](function(_0x36e76a){return _0x36e76a;});}return null;};}function removeEntity(_0x142fdf,_0x3786ff){return function(_0x472b93){if(_0x472b93){return _0x472b93[_0x4935('0x29')]()[_0x4935('0x2a')](function(){_0x142fdf[_0x4935('0x20')](0xcc)[_0x4935('0x2b')]();});}};}function handleEntityNotFound(_0x2e1583,_0xf4abb2){return function(_0x1d08b5){if(!_0x1d08b5){_0x2e1583[_0x4935('0x1f')](0x194);}return _0x1d08b5;};}function handleError(_0x2c47ab,_0xbb00d6){_0xbb00d6=_0xbb00d6||0x1f4;return function(_0x359522){logger['error'](_0x359522['stack']);if(_0x359522['name']){delete _0x359522[_0x4935('0x2c')];}_0x2c47ab[_0x4935('0x20')](_0xbb00d6)['send'](_0x359522);};}function getInteractionUsers(_0x3f0707,_0x20755a){return new BPromise(function(_0x24a3b6,_0x9fe9f6){try{if(_0x20755a[_0x3f0707['id']]){_0x3f0707[_0x4935('0x2d')]=_[_0x4935('0x2e')](_0x20755a[_0x3f0707['id']],function(_0x28afc2){return{'id':_0x28afc2['id'],'fullname':_0x28afc2[_0x4935('0x2f')]};});}}catch(_0x5b3c8e){_0x9fe9f6(_0x5b3c8e);}_0x24a3b6(_0x3f0707);});}function getInteractionTags(_0xb7fe2a,_0x2dcb0b){return new BPromise(function(_0x4ac8ed,_0x48a289){try{if(_0xb7fe2a[_0x4935('0x30')]){_0xb7fe2a['Tags']=[];_0xb7fe2a[_0x4935('0x30')][_0x4935('0x31')](',')[_0x4935('0x32')](function(_0x53722a){_0xb7fe2a['Tags'][_0x4935('0x33')](_0x2dcb0b[_0x53722a]);});}delete _0xb7fe2a[_0x4935('0x30')];}catch(_0x4fabea){_0x48a289(_0x4fabea);}_0x4ac8ed(_0xb7fe2a);});}function getLastMessageText(_0x47003b){return new BPromise(function(_0x3260d2,_0x9bfd48){return db[_0x4935('0x34')][_0x4935('0x35')]({'where':{'id':_0x47003b['id']},'attributes':['lastMsgBody','lastMsgText'],'raw':!![]})[_0x4935('0x2a')](function(_0x1016cc){if(!_0x1016cc['lastMsgText']){_0x47003b['lastMsgText']=_[_0x4935('0x36')](htmlToText['fromString'](_0x1016cc[_0x4935('0x37')],{'preserveNewlines':!![],'singleNewLineParagraphs':!![],'uppercaseHeadings':![],'noLinkBrackets':!![],'ignoreImage':!![]}));}else{_0x47003b[_0x4935('0x38')]=_0x1016cc[_0x4935('0x38')];}_0x3260d2(_0x47003b);})[_0x4935('0x39')](function(_0x1d77b8){_0x9bfd48(_0x1d77b8);});});}function updateMailInteraction(_0x36d0b9,_0x4d1d1c,_0x11b18b,_0x51b7ac){return new BPromise(function(_0x365e83,_0x5db44b){return getInteractionUsers(_0x36d0b9,_0x11b18b)[_0x4935('0x2a')](function(_0x4c5a4e){return getInteractionTags(_0x4c5a4e,_0x4d1d1c);})[_0x4935('0x2a')](function(_0x59b749){if(_0x51b7ac){_0x365e83(getLastMessageText(_0x59b749));}else{_0x365e83(_0x59b749);}})[_0x4935('0x39')](function(_0xc5e3aa){_0x5db44b(_0xc5e3aa);});});}exports[_0x4935('0x3a')]=function(_0xa381b7,_0x441332){var _0x487a53={},_0x57e1ca={},_0x2efc45={'count':0x0,'rows':[]};var _0x4e4820=_['map'](db[_0x4935('0x34')]['rawAttributes'],function(_0x20af47){return{'name':_0x20af47[_0x4935('0x3b')],'type':_0x20af47[_0x4935('0x3c')][_0x4935('0x3d')]};});_0x57e1ca[_0x4935('0x3e')]=_['map'](_0x4e4820,'name');_0x57e1ca[_0x4935('0x3f')]=_[_0x4935('0x40')](_0xa381b7[_0x4935('0x3f')]);_0x57e1ca[_0x4935('0x41')]=_[_0x4935('0x42')](_0x57e1ca[_0x4935('0x3e')],_0x57e1ca[_0x4935('0x3f')]);_0x487a53[_0x4935('0x43')]=_['intersection'](_0x57e1ca['model'],qs[_0x4935('0x44')](_0xa381b7[_0x4935('0x3f')]['fields']));_0x487a53[_0x4935('0x43')]=_0x487a53[_0x4935('0x43')][_0x4935('0x45')]?_0x487a53[_0x4935('0x43')]:_0x57e1ca['model'];if(!_0xa381b7['query'][_0x4935('0x46')](_0x4935('0x47'))){_0x487a53['limit']=qs[_0x4935('0x23')](_0xa381b7[_0x4935('0x3f')][_0x4935('0x23')]);_0x487a53['offset']=qs[_0x4935('0x48')](_0xa381b7[_0x4935('0x3f')][_0x4935('0x48')]);}_0x487a53[_0x4935('0x49')]=qs[_0x4935('0x4a')](_0xa381b7[_0x4935('0x3f')][_0x4935('0x4a')]);_0x487a53[_0x4935('0x4b')]=qs[_0x4935('0x41')](_[_0x4935('0x4c')](_0xa381b7[_0x4935('0x3f')],_0x57e1ca[_0x4935('0x41')]),_0x4e4820);var _0x2cd4c5=[];var _0xf4e847=squel[_0x4935('0x4d')]()[_0x4935('0x4e')]('id')[_0x4935('0x4e')](_0x4935('0x2c'))['field'](_0x4935('0x4f'))['from'](_0x4935('0x50'));var _0x144ac5=squel[_0x4935('0x4d')]()[_0x4935('0x4e')]('u.id')[_0x4935('0x4e')](_0x4935('0x51'))[_0x4935('0x4e')](_0x4935('0x52'))[_0x4935('0x53')](_0x4935('0x54'),'ui')[_0x4935('0x55')](_0x4935('0x56'),'u',_0x4935('0x57'));var _0x392cba=squel['select']()[_0x4935('0x53')](_0x4935('0x58'),'i')['left_join'](_0x4935('0x59'),'c',_0x4935('0x5a'))[_0x4935('0x55')](_0x4935('0x56'),'o',_0x4935('0x5b'))[_0x4935('0x55')](_0x4935('0x5c'),'a',_0x4935('0x5d'))['left_join'](_0x4935('0x5e'),'me','me.MailInteractionId\x20=\x20i.id')['left_join'](_0x4935('0x5f'),'it',_0x4935('0x60'))[_0x4935('0x55')](_0x4935('0x50'),'t',_0x4935('0x61'));var _0x487cf3=squel[_0x4935('0x62')]();var _0x4a88db=[];var _0x2cc0c1=squel[_0x4935('0x62')]();var _0x377ff4;if(_0xa381b7[_0x4935('0x3f')][_0x4935('0x63')]){_0x377ff4=as[_0x4935('0x64')](_0xa381b7[_0x4935('0x3f')][_0x4935('0x63')]);var _0x4c1fb4=_0x377ff4[_0x4935('0x65')];for(var _0x4e99bb=0x0;_0x4e99bb<_0x377ff4[_0x4935('0x66')][_0x4935('0x45')];_0x4e99bb++){var _0x4e4154=_0x377ff4[_0x4935('0x66')][_0x4e99bb];var _0x4b3473='i';var _0x58a89b=_['find'](_0x4e4820,[_0x4935('0x2c'),_0x4e4154[_0x4935('0x4e')]]);if(!_0x58a89b){switch(_0x4e4154[_0x4935('0x4e')]){case _0x4935('0x67'):if(_0x4e4154[_0x4935('0x68')]==0x1){_0x392cba['having']('`'+_0x4e4154['field']+_0x4935('0x69'));}else{_0x392cba[_0x4935('0x6a')]('`'+_0x4e4154[_0x4935('0x4e')]+'`\x20>\x200');}break;case _0x4935('0x6b'):if(_0x4e4154[_0x4935('0x6c')]===_0x4935('0x6d')){if(_0x4e4154[_0x4935('0x68')]['split']('\x20')[_0x4935('0x45')]>0x1){_0x487cf3[_0x4c1fb4]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs['getFullTextValue'](_0x4e4154['value']),null);}else{var _0x24d870='%'+_0x4e4154[_0x4935('0x68')]+'%';_0x487cf3[_0x4c1fb4]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x24d870,_0x24d870,_0x24d870);}}else{_0x58a89b=_[_0x4935('0x6e')](_0x4e4820,[_0x4935('0x2c'),'ContactId']);_0x4e4154[_0x4935('0x4e')]=_0x4935('0x6f');_0x38bc58=as[_0x4935('0x70')](_0x4b3473,_0x58a89b[_0x4935('0x3c')],_0x4e4154);_0x487cf3[_0x4c1fb4](_0x38bc58[_0x4935('0x71')],_0x38bc58[_0x4935('0x68')][_0x4935('0x72')],_0x38bc58['value'][_0x4935('0x2b')]);}break;case'Tag':var _0x4800c7=_0x4e4154[_0x4935('0x68')][_0x4935('0x31')](',')['map'](function(_0x4c7cbe){return Number(_0x4c7cbe);});_0x4800c7[_0x4935('0x32')](function(_0x24841d){_0x2cc0c1['or'](_0x4935('0x73'),'%,'+_0x24841d+',%');});_0x4a88db=_['union'](_0x4a88db,_0x4800c7);break;case _0x4935('0x74'):if(_0x4e4154['operator']===_0x4935('0x6d')){_0x487cf3[_0x4c1fb4](_0x4935('0x75'),'%'+_0x4e4154[_0x4935('0x68')]+'%',null);}else{_0x58a89b=_[_0x4935('0x6e')](_0x4e4820,[_0x4935('0x2c'),'UserId']);_0x4e4154[_0x4935('0x4e')]=_0x4935('0x76');_0x38bc58=as['buildExpression'](_0x4b3473,_0x58a89b[_0x4935('0x3c')],_0x4e4154);_0x487cf3[_0x4c1fb4](_0x38bc58[_0x4935('0x71')],_0x38bc58[_0x4935('0x68')][_0x4935('0x72')],_0x38bc58[_0x4935('0x68')][_0x4935('0x2b')]);}break;case _0x4935('0x77'):_0x38bc58=as[_0x4935('0x70')]('me',null,_0x4e4154);_0x487cf3[_0x4c1fb4](_0x38bc58[_0x4935('0x71')],_0x38bc58[_0x4935('0x68')][_0x4935('0x72')],_0x38bc58['value'][_0x4935('0x2b')]);break;}}else{var _0x38bc58=as[_0x4935('0x70')](_0x4b3473,_0x58a89b[_0x4935('0x3c')],_0x4e4154);_0x487cf3[_0x4c1fb4](_0x38bc58[_0x4935('0x71')],_0x38bc58[_0x4935('0x68')][_0x4935('0x72')],_0x38bc58[_0x4935('0x68')][_0x4935('0x2b')]);}}}else{var _0x19d5d0=_(_0xa381b7[_0x4935('0x3f')])[_0x4935('0x40')]()[_0x4935('0x2e')](function(_0x4824fd){return _['some'](_0x4e4820,[_0x4935('0x2c'),_0x4824fd])?_0x4824fd:undefined;})[_0x4935('0x78')]()['value']();if(!_[_0x4935('0x79')](_0x19d5d0)){_0x19d5d0[_0x4935('0x32')](function(_0x4b4d9a){if(_0x4b4d9a==='MailAccountId'){_0x392cba[_0x4935('0x4b')](_0x4935('0x7a'),[][_0x4935('0x7b')](_0xa381b7[_0x4935('0x3f')][_0x4b4d9a]));}else if(_0x4b4d9a===_0x4935('0x7c')){var _0x5a612b=JSON[_0x4935('0x7d')](_0xa381b7[_0x4935('0x3f')][_0x4b4d9a])[_0x4935('0x7e')];var _0x15232f=JSON['parse'](_0xa381b7[_0x4935('0x3f')][_0x4b4d9a])['$lte'];_0x392cba['where'](_0x4935('0x7f'),_0x5a612b,_0x15232f);}else{if(_0xa381b7[_0x4935('0x3f')][_0x4b4d9a]==='null'){_0x392cba[_0x4935('0x4b')]('i.'+_0x4b4d9a+_0x4935('0x80'));}else{_0x392cba[_0x4935('0x4b')]('i.'+_0x4b4d9a+'\x20=\x20?',_0xa381b7[_0x4935('0x3f')][_0x4b4d9a]);}}});}if(_0xa381b7['query']['read']){if(_0xa381b7[_0x4935('0x3f')][_0x4935('0x81')]==0x1){_0x392cba[_0x4935('0x6a')](_0x4935('0x82'));}else{_0x392cba[_0x4935('0x6a')](_0x4935('0x83'));}}if(_0xa381b7[_0x4935('0x3f')][_0x4935('0x84')]){_0x4a88db=_['isArray'](_0xa381b7[_0x4935('0x3f')][_0x4935('0x84')])?_0xa381b7[_0x4935('0x3f')]['tag']:new Array(_0xa381b7['query'][_0x4935('0x84')]);_0x4a88db[_0x4935('0x32')](function(_0x5d6d93){_0x2cc0c1['or'](_0x4935('0x73'),'%,'+_0x5d6d93+',%');});}if(_0xa381b7['query']['filter']){var _0x11854f=_0xa381b7[_0x4935('0x3f')][_0x4935('0x85')]['replace']('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(qs[_0x4935('0x86')](_0x11854f)){_0x487cf3['or']('i.id\x20LIKE\x20?',_0x11854f+'%');}else if(qs[_0x4935('0x87')](_0x11854f)){_0x487cf3['or']('c.email\x20LIKE\x20?',_0x11854f+'%');}else{_0x487cf3['or'](_0x4935('0x88'),qs[_0x4935('0x89')](_0x11854f))['or'](_0x4935('0x8a'),qs[_0x4935('0x89')](_0x11854f));}}}_0x392cba[_0x4935('0x4b')](_0x487cf3);_0x392cba[_0x4935('0x8b')](_0x4935('0x8c'));var _0x4ba00f={'type':db[_0x4935('0x8d')]['QueryTypes'][_0x4935('0x8e')],'raw':!![]};var _0x10e5ba=_0x392cba['clone']();_0x10e5ba[_0x4935('0x4e')]('i.id');_0x10e5ba[_0x4935('0x4e')](_0x4935('0x8f'),'unreadMessages');if(_0x487a53['order']){_0x487a53['order'][_0x4935('0x32')](function(_0x59ca4f){var _0x5c28f6=_0x59ca4f[0x0]===_0x4935('0x90')?_0x59ca4f[0x0]:'i.'+_0x59ca4f[0x0];_0x392cba['order'](_0x5c28f6,_0x59ca4f[0x1]===_0x4935('0x91')?![]:!![]);});}if(!_['isEmpty'](_0x4a88db)){_0x392cba['having'](_0x2cc0c1);_0x10e5ba['where'](_0x4935('0x92'),_0x4a88db);}BPromise['resolve']()[_0x4935('0x2a')](function(){if(!_0x377ff4){if(_0xa381b7[_0x4935('0x3f')][_0x4935('0x93')])return;_0x10e5ba[_0x4935('0x4b')](_0x4935('0x94'));_0x392cba['where'](_0x4935('0x94'));return;}if(_0xa381b7[_0x4935('0x95')]['role']!==_0x4935('0x96'))return;return _0xa381b7[_0x4935('0x95')]['getMailAccounts']({'attributes':['id'],'raw':!![]})[_0x4935('0x2a')](function(_0x13efd5){if(_['isEmpty'](_0x13efd5)){_0x10e5ba[_0x4935('0x4b')]('i.MailAccountId\x20IS\x20NULL');_0x392cba[_0x4935('0x4b')](_0x4935('0x97'));}else{_0x10e5ba['where'](_0x4935('0x7a'),_[_0x4935('0x2e')](_0x13efd5,'id'));_0x392cba['where']('i.MailAccountId\x20IN\x20?',_[_0x4935('0x2e')](_0x13efd5,'id'));}});})[_0x4935('0x2a')](function(){if(_0xa381b7['user'][_0x4935('0x98')]===_0x4935('0x96')&&!_0x377ff4&&!_0xa381b7[_0x4935('0x3f')][_0x4935('0x93')])return[];return db['sequelize'][_0x4935('0x3f')](_0x10e5ba[_0x4935('0x99')](),_0x4ba00f);})['then'](function(_0x2f7897){_0x2efc45[_0x4935('0x22')]=_0x2f7897[_0x4935('0x45')];if(_0x2efc45[_0x4935('0x22')]===0x0)return[];return db[_0x4935('0x9a')][_0x4935('0x3f')](_0xf4e847[_0x4935('0x99')](),_0x4ba00f)[_0x4935('0x2a')](function(_0x46d434){_0x2cd4c5=_[_0x4935('0x9b')](_0x46d434,'id');_0x4ba00f=_[_0x4935('0x9c')](_0x4ba00f,{'model':db['MailInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0xa381b7[_0x4935('0x3f')][_0x4935('0x44')]){_0x487a53[_0x4935('0x43')][_0x4935('0x32')](function(_0x22851a){_0x392cba['field']('i.'+_0x22851a);});}else{_0x392cba[_0x4935('0x4e')](_0x4935('0x8f'),'unreadMessages');_0x392cba[_0x4935('0x4e')](_0x4935('0x9d'),'Account.key');_0x392cba[_0x4935('0x4e')](_0x4935('0x9e'),_0x4935('0x9f'));_0x392cba['field'](_0x4935('0xa0'),_0x4935('0x90'));_0x392cba[_0x4935('0x4e')](_0x4935('0x8c'));_0x392cba[_0x4935('0x4e')]('i.createdAt');_0x392cba[_0x4935('0x4e')](_0x4935('0xa1'));_0x392cba[_0x4935('0x4e')](_0x4935('0xa2'));_0x392cba[_0x4935('0x4e')](_0x4935('0xa3'));_0x392cba['field'](_0x4935('0xa4'));_0x392cba[_0x4935('0x4e')](_0x4935('0xa5'));_0x392cba[_0x4935('0x4e')](_0x4935('0xa6'));_0x392cba[_0x4935('0x4e')](_0x4935('0xa7'));_0x392cba['field'](_0x4935('0xa8'));_0x392cba[_0x4935('0x4e')](_0x4935('0xa9'));_0x392cba[_0x4935('0x4e')](_0x4935('0xaa'));_0x392cba['field']('i.substatus');_0x392cba[_0x4935('0x4e')](_0x4935('0xab'));_0x392cba[_0x4935('0x4e')](_0x4935('0xac'));_0x392cba[_0x4935('0x4e')]('i.MailAccountId');_0x392cba[_0x4935('0x4e')](_0x4935('0xad'));_0x392cba[_0x4935('0x4e')]('c.firstName',_0x4935('0xae'));_0x392cba[_0x4935('0x4e')](_0x4935('0xaf'),_0x4935('0xb0'));_0x392cba[_0x4935('0x4e')](_0x4935('0xb1'),_0x4935('0xb2'));_0x392cba['field'](_0x4935('0xb3'),'Contact.phone');_0x392cba[_0x4935('0x4e')]('c.mobile','Contact.mobile');_0x392cba[_0x4935('0x4e')]('c.fax','Contact.fax');_0x392cba[_0x4935('0x4e')](_0x4935('0xb4'),'Owner.fullname');_0x392cba[_0x4935('0x4e')]('o.internal',_0x4935('0xb5'));_0x392cba[_0x4935('0x4e')](_0x4935('0xb6'),_0x4935('0x30'));}if(_0x487a53[_0x4935('0x23')])_0x392cba[_0x4935('0x23')](_0x487a53['limit']);if(_0x487a53[_0x4935('0x48')])_0x392cba[_0x4935('0x48')](_0x487a53[_0x4935('0x48')]);return db['sequelize'][_0x4935('0x3f')](_0x392cba[_0x4935('0x99')](),_0x4ba00f);})[_0x4935('0x2a')](function(_0x4aef57){_0x144ac5[_0x4935('0x4b')](_0x4935('0xb7'),_[_0x4935('0x2e')](_0x4aef57,'id'));return db[_0x4935('0x9a')][_0x4935('0x3f')](_0x144ac5['toString'](),_0x4ba00f)[_0x4935('0x2a')](function(_0x490c7d){var _0x19fe30=_['groupBy'](_0x490c7d,_0x4935('0xb8'));var _0x4dcb44=[];return db[_0x4935('0xb9')][_0x4935('0x35')]({'attributes':[_0x4935('0xba')],'raw':!![]})['then'](function(_0x31d209){var _0x251eaf=_0x31d209[_0x4935('0xba')];_0x4aef57[_0x4935('0x32')](function(_0xbb7e63){_0x4dcb44[_0x4935('0x33')](updateMailInteraction(_0xbb7e63,_0x2cd4c5,_0x19fe30,_0x251eaf));});return BPromise[_0x4935('0xbb')](_0x4dcb44);});});});})[_0x4935('0x2a')](function(_0xc4ce1d){_0x2efc45['rows']=_0xc4ce1d;return _0x2efc45;})[_0x4935('0x2a')](respondWithFilteredResult(_0x441332,_0x487a53))[_0x4935('0x39')](handleError(_0x441332,null));};exports[_0x4935('0xbc')]=function(_0x1c1f95,_0x2df4fc){var _0x203750={'raw':![],'where':{'id':_0x1c1f95['params']['id']}},_0x3f2d82={};_0x3f2d82['model']=_[_0x4935('0x40')](db['MailInteraction']['rawAttributes']);_0x3f2d82[_0x4935('0x3f')]=_[_0x4935('0x40')](_0x1c1f95[_0x4935('0x3f')]);_0x3f2d82[_0x4935('0x41')]=_['intersection'](_0x3f2d82[_0x4935('0x3e')],_0x3f2d82[_0x4935('0x3f')]);_0x203750['attributes']=_['intersection'](_0x3f2d82['model'],qs['fields'](_0x1c1f95['query'][_0x4935('0x44')]));_0x203750[_0x4935('0x43')]=_0x203750['attributes']['length']?_0x203750['attributes']:_0x3f2d82[_0x4935('0x3e')];if(_0x1c1f95[_0x4935('0x3f')][_0x4935('0xbd')]){_0x203750['include']=[{'all':!![]}];}_0x203750=_['merge']({},_0x203750,_0x1c1f95['options']);return db[_0x4935('0x34')][_0x4935('0x6e')](_0x203750)[_0x4935('0x2a')](handleEntityNotFound(_0x2df4fc,null))[_0x4935('0x2a')](respondWithResult(_0x2df4fc,null))['catch'](handleError(_0x2df4fc,null));};exports[_0x4935('0xbe')]=function(_0x41405e,_0x226097){return db['MailInteraction']['create'](_0x41405e[_0x4935('0xbf')],{})[_0x4935('0x2a')](respondWithResult(_0x226097,0xc9))[_0x4935('0x39')](handleError(_0x226097,null));};exports[_0x4935('0xc0')]=function(_0x415fc2,_0x255a60){if(_0x415fc2[_0x4935('0xbf')]['id']){delete _0x415fc2[_0x4935('0xbf')]['id'];}return db[_0x4935('0x34')]['find']({'where':{'id':_0x415fc2[_0x4935('0xc1')]['id']}})[_0x4935('0x2a')](handleEntityNotFound(_0x255a60,null))['then'](saveUpdates(_0x415fc2['body'],null))[_0x4935('0x2a')](respondWithResult(_0x255a60,null))['catch'](handleError(_0x255a60,null));};exports[_0x4935('0x29')]=function(_0x46b58e,_0x4a7372){return db[_0x4935('0x34')]['find']({'where':{'id':_0x46b58e[_0x4935('0xc1')]['id']}})[_0x4935('0x2a')](handleEntityNotFound(_0x4a7372,null))['then'](removeEntity(_0x4a7372,null))['catch'](handleError(_0x4a7372,null));};exports[_0x4935('0xc2')]=function(_0x23e726,_0x2c9f29){return db[_0x4935('0x34')][_0x4935('0xc2')]()[_0x4935('0x2a')](respondWithResult(_0x2c9f29,null))[_0x4935('0x39')](handleError(_0x2c9f29,null));};exports[_0x4935('0xc3')]=function(_0x5e230e,_0x5de0a1,_0x346d2b){return db[_0x4935('0xc4')][_0x4935('0x6e')]({'where':{'id':_0x5e230e[_0x4935('0xc1')]['id']}})[_0x4935('0x2a')](handleEntityNotFound(_0x5de0a1,null))[_0x4935('0x2a')](function(_0x3f13d7){if(_0x3f13d7){return _0x3f13d7[_0x4935('0xc3')](_0x5e230e['body'][_0x4935('0xc5')],_['omit'](_0x5e230e[_0x4935('0xbf')],['ids','id'])||{});}})[_0x4935('0x2a')](respondWithResult(_0x5de0a1,null))[_0x4935('0x39')](handleError(_0x5de0a1,null));};exports[_0x4935('0xc6')]=function(_0x409d86,_0x3ce69e,_0x4f1077){var _0x46ec25={'raw':![],'where':{}};var _0x212786={};var _0x3015ce={'count':0x0,'rows':[]};return db['MailInteraction']['findOne']({'where':{'id':_0x409d86[_0x4935('0xc1')]['id']}})['then'](handleEntityNotFound(_0x3ce69e,null))[_0x4935('0x2a')](function(_0x3f5c16){if(_0x3f5c16){_0x212786[_0x4935('0x3e')]=_[_0x4935('0x40')](db[_0x4935('0xc4')]['rawAttributes']);_0x212786[_0x4935('0x3f')]=_[_0x4935('0x40')](_0x409d86[_0x4935('0x3f')]);_0x212786[_0x4935('0x41')]=_[_0x4935('0x42')](_0x212786['model'],_0x212786[_0x4935('0x3f')]);_0x46ec25[_0x4935('0x43')]=_[_0x4935('0x42')](_0x212786[_0x4935('0x3e')],qs['fields'](_0x409d86['query']['fields']));_0x46ec25['attributes']=_0x46ec25[_0x4935('0x43')][_0x4935('0x45')]?_0x46ec25[_0x4935('0x43')]:_0x212786[_0x4935('0x3e')];if(!_0x409d86[_0x4935('0x3f')][_0x4935('0x46')](_0x4935('0x47'))){_0x46ec25[_0x4935('0x23')]=qs[_0x4935('0x23')](_0x409d86[_0x4935('0x3f')]['limit']);_0x46ec25[_0x4935('0x48')]=qs[_0x4935('0x48')](_0x409d86[_0x4935('0x3f')][_0x4935('0x48')]);}_0x46ec25[_0x4935('0x49')]=qs[_0x4935('0x4a')](_0x409d86[_0x4935('0x3f')][_0x4935('0x4a')]);_0x46ec25[_0x4935('0x4b')]=qs['filters'](_['pick'](_0x409d86[_0x4935('0x3f')],_0x212786[_0x4935('0x41')]));_0x46ec25[_0x4935('0x4b')][_0x4935('0xb8')]=_0x3f5c16['id'];if(_0x409d86[_0x4935('0x3f')][_0x4935('0x85')]){_0x46ec25[_0x4935('0x4b')]=_[_0x4935('0x9c')](_0x46ec25['where'],{'$or':_[_0x4935('0x2e')](_0x46ec25[_0x4935('0x43')],function(_0x4f968d){var _0x46f309={};_0x46f309[_0x4f968d]={'$like':'%'+_0x409d86['query'][_0x4935('0x85')]+'%'};return _0x46f309;})});}if(_0x409d86[_0x4935('0x3f')][_0x4935('0x7e')]){var _0x2197c0=_0x409d86[_0x4935('0x3f')][_0x4935('0x7e')][_0x4935('0x31')](',');var _0x379b5e={};_0x379b5e[_0x2197c0[0x0]]={'$gte':moment(_0x2197c0[0x1])[_0x4935('0xc7')](_0x4935('0xc8'))};_0x46ec25['where']=_[_0x4935('0x9c')](_0x46ec25['where'],_0x379b5e);}_0x46ec25=_[_0x4935('0x9c')]({},_0x46ec25,_0x409d86[_0x4935('0xc9')]);return db[_0x4935('0xc4')][_0x4935('0x22')]({'where':_0x46ec25[_0x4935('0x4b')]})['then'](function(_0x34ae1a){_0x3015ce[_0x4935('0x22')]=_0x34ae1a;if(_0x409d86[_0x4935('0x3f')][_0x4935('0xbd')]){_0x46ec25[_0x4935('0xca')]=[{'all':!![]}];}return db[_0x4935('0xc4')][_0x4935('0xcb')](_0x46ec25);})[_0x4935('0x2a')](function(_0x296ad8){if(_0x409d86[_0x4935('0x3f')][_0x4935('0xcc')]===_0x4935('0xcd')){for(var _0x4e71ba=0x0;_0x4e71ba<_0x296ad8[_0x4935('0x45')];_0x4e71ba++){_0x296ad8[_0x4e71ba][_0x4935('0xbf')]=juice(_0x296ad8[_0x4e71ba][_0x4935('0xbf')]);}}_0x3015ce['rows']=_0x296ad8;return _0x3015ce;});}})[_0x4935('0x2a')](respondWithFilteredResult(_0x3ce69e,_0x46ec25))['catch'](handleError(_0x3ce69e,null));};exports[_0x4935('0xce')]=function(_0x303b62,_0x216ef8,_0x8eda90){return db[_0x4935('0x34')]['find']({'where':{'id':_0x303b62[_0x4935('0xc1')]['id']}})[_0x4935('0x2a')](handleEntityNotFound(_0x216ef8,null))[_0x4935('0x2a')](function(_0x1eba49){if(_0x1eba49){return _0x1eba49['setTags'](_0x303b62[_0x4935('0xbf')][_0x4935('0xc5')],_[_0x4935('0xcf')](_0x303b62[_0x4935('0xbf')],[_0x4935('0xc5'),'id'])||{})[_0x4935('0xd0')](function(){return db[_0x4935('0xd1')][_0x4935('0xcb')]({'attributes':['id','name',_0x4935('0x4f')],'where':{'id':_0x303b62[_0x4935('0xbf')][_0x4935('0xc5')]}});})['then'](function(_0x3d508b){socket[_0x4935('0xd2')]('mailInteractionTags:save',{'id':Number(_0x303b62['params']['id']),'tags':_0x3d508b||[]});return{'id':Number(_0x303b62[_0x4935('0xc1')]['id']),'tags':_0x3d508b||[]};});}})[_0x4935('0x2a')](respondWithResult(_0x216ef8,null))[_0x4935('0x39')](handleError(_0x216ef8,null));};exports['removeTags']=function(_0x514996,_0x4d0fc2,_0x1488f3){return db[_0x4935('0x34')][_0x4935('0x6e')]({'where':{'id':_0x514996[_0x4935('0xc1')]['id']}})[_0x4935('0x2a')](handleEntityNotFound(_0x4d0fc2,null))['then'](function(_0x15c87c){if(_0x15c87c){return _0x15c87c['removeTags'](_0x514996['query']['ids']);}})[_0x4935('0x2a')](respondWithStatusCode(_0x4d0fc2,null))[_0x4935('0x39')](handleError(_0x4d0fc2,null));};exports[_0x4935('0xd3')]=function(_0x4a5b9d,_0x384144){var _0xa1078f=moment()[_0x4935('0xd4')]()['toString']();var _0x3cad2e=path[_0x4935('0xd5')](config['root'],'server',_0x4935('0xd6'),'tmp');var _0x2d0e40=path[_0x4935('0xd5')](config['root'],_0x4935('0xd7'),'files','attachments');var _0x2896d8=path[_0x4935('0xd5')](_0x3cad2e,_0xa1078f);var _0x319909=util[_0x4935('0xc7')](_0x4935('0xd8'),_0x4a5b9d[_0x4935('0xc1')]['id'],_0xa1078f);var _0x22d615=path['join'](_0x3cad2e,_0x319909);var _0x3eb951=[];if(_0x4a5b9d['query'][_0x4935('0xd9')]){_0x3eb951[_0x4935('0x33')]({'model':db[_0x4935('0xda')],'as':_0x4935('0xdb'),'raw':!![]});}var _0x3d7ed5=[{'model':db[_0x4935('0xc4')],'as':'Messages','attributes':['id','body',_0x4935('0x53'),'to','cc',_0x4935('0xdc'),_0x4935('0xdd'),_0x4935('0x7c')],'where':{'secret':![]},'order':qs[_0x4935('0x4a')]('id'),'include':_0x3eb951}];return db[_0x4935('0x34')]['find']({'where':{'id':_0x4a5b9d[_0x4935('0xc1')]['id']},'include':_0x3d7ed5})[_0x4935('0x2a')](handleEntityNotFound(_0x384144,null))[_0x4935('0x2a')](function(_0x5457c7){if(_0x5457c7&&_0x5457c7['Messages']){var _0x2d2b4d=_0x5457c7[_0x4935('0xde')]({'plain':!![]});fs[_0x4935('0xdf')](_0x2896d8);return BPromise[_0x4935('0xe0')](_0x2d2b4d['Messages'],function(_0x5aeff4,_0x47402d){var _0x4b5e23={'from':_0x5aeff4['from'],'to':_0x5aeff4['to'],'subject':_0x5aeff4['subject'],'html':_0x5aeff4[_0x4935('0xbf')],'headers':{'Date':moment(_0x5aeff4[_0x4935('0x7c')])['format']('ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ')},'attachments':[]};if(_0x5aeff4['cc']){_0x4b5e23[_0x4935('0xe1')]['Cc']=_0x5aeff4['cc'];}if(_0x5aeff4[_0x4935('0xdc')]){_0x4b5e23[_0x4935('0xe1')][_0x4935('0xe2')]=_0x5aeff4[_0x4935('0xdc')];}return new BPromise(function(_0xedc0f5,_0x547ffe){if(_0x5aeff4[_0x4935('0xdb')]){for(var _0xd5f9bc=0x0;_0xd5f9bc<_0x5aeff4[_0x4935('0xdb')][_0x4935('0x45')];_0xd5f9bc++){var _0x3e2409=_0x5aeff4[_0x4935('0xdb')][_0xd5f9bc];var _0x5c3f30=path[_0x4935('0xd5')](_0x2d0e40,_0x3e2409[_0x4935('0xe3')]);if(fs['existsSync'](_0x5c3f30)){_0x4b5e23[_0x4935('0xd9')][_0x4935('0x33')]({'name':_0x3e2409[_0x4935('0x2c')],'contentType':_0x3e2409['type'],'data':fs[_0x4935('0xe4')](_0x5c3f30)});}}}emlformat['build'](_0x4b5e23,function(_0x1edc47,_0x526656){if(_0x1edc47)return _0x547ffe(_0x1edc47);fs[_0x4935('0xe5')](path['join'](_0x2896d8,util[_0x4935('0xc7')](_0x4935('0xe6'),_0x47402d)),_0x526656);return _0xedc0f5(_0x526656);});});})[_0x4935('0x2a')](function(){return new BPromise(function(_0x4dc62c,_0x480708){zipdir(_0x2896d8,{'saveTo':_0x22d615},function(_0x11edf3,_0x3ba117){if(_0x11edf3)return _0x480708(_0x11edf3);return _0x4dc62c(_0x3ba117);});})[_0x4935('0x2a')](function(){return new BPromise(function(_0x327055,_0xd8299f){rimraf(_0x2896d8,function(_0x1c2626){if(_0x1c2626)_0xd8299f(_0x1c2626);return _0x327055();});});})['then'](function(){return _0x384144['download'](_0x22d615,_0x319909,function(_0x48c372){if(_0x48c372){console['log']('err',_0x48c372);}else{fs[_0x4935('0xe7')](_0x22d615);}});});});}else{return _0x384144[_0x4935('0x1f')](0xc8);}})['catch'](handleError(_0x384144,null));};