dae4b23bec2a5b1f70e08cef8ad142b67e69e5d9
[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 _0x8a88=['i.substatus','i.to','i.ContactId','c.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','Contact.fax','o.internal','Owner.internal','ui.MailInteractionId\x20IN\x20?','groupBy','MailInteractionId','Setting','findOne','enableEmailPreview','all','show','includeAll','include','options','create','body','params','describe','addMessage','omit','getMessages','findAll','rows','addTags','ids','spread','emit','mailInteractionTags:save','removeTags','download','unix','join','root','files','server','attachments','format','transcript-%d-%s.zip','Attachment','Messages','bcc','subject','get','each','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','Attachments','basename','build','err','eml-format','rimraf','zip-dir','moment','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','defaults','socket.io-emitter','./mailInteraction.socket','register','sendStatus','status','count','offset','set','apply','reject','save','update','destroy','then','end','error','stack','name','Users','map','fullname','TagIds','Tags','forEach','push','MailMessage','out','plainBody','-id','lastMsgText','trimStart','catch','MailInteraction','rawAttributes','fieldName','key','model','keys','filters','intersection','query','attributes','fields','length','hasOwnProperty','nolimit','limit','sort','where','pick','select','field','color','tools_tags','u.id','u.fullname','ui.MailInteractionId','user_has_mail_interactions','left_join','users','u.id\x20=\x20ui.UserId','from','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','mail_accounts','a.id\x20=\x20i.MailAccountId','mail_interaction_has_tags','it.MailInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','parseSearch','search','sqlOperator','conditions','find','unreadMessages','value','`\x20>\x200','operator','$substring','split','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','ContactId','text','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','buildExpression','type','some','MailAccountId','i.MailAccountId\x20IN\x20?','concat','createdAt','parse','$gte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','\x20IS\x20NULL','\x20=\x20?','read','having','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','isNumeric','c.email\x20LIKE\x20?','MATCH\x20(i.to,\x20i.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','MATCH\x20(me.plainBody,\x20me.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','group','Sequelize','SELECT','i.id','order','contactName','DESC','isEmpty','t.id\x20IN\x20?','resolve','i.MailAccountId\x20IS\x20NOT\x20NULL','user','role','getMailAccounts','i.MailAccountId\x20IS\x20NULL','agent','sequelize','toString','keyBy','merge','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','i.createdAt','i.closed','i.closedAt','i.lastMsgAt','i.lastMsgDirection','i.subject','i.thirdDisposition'];(function(_0x4779f1,_0x18e4bb){var _0x122c85=function(_0x3dcbe5){while(--_0x3dcbe5){_0x4779f1['push'](_0x4779f1['shift']());}};_0x122c85(++_0x18e4bb);}(_0x8a88,0x126));var _0x88a8=function(_0x24717a,_0x26f6dc){_0x24717a=_0x24717a-0x0;var _0x32cf54=_0x8a88[_0x24717a];return _0x32cf54;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x88a8('0x0'));var rimraf=require(_0x88a8('0x1'));var zipdir=require(_0x88a8('0x2'));var jsonpatch=require('fast-json-patch');var rp=require('request-promise');var moment=require(_0x88a8('0x3'));var BPromise=require('bluebird');var Mustache=require(_0x88a8('0x4'));var util=require(_0x88a8('0x5'));var path=require(_0x88a8('0x6'));var sox=require(_0x88a8('0x7'));var csv=require(_0x88a8('0x8'));var ejs=require(_0x88a8('0x9'));var fs=require('fs');var _=require(_0x88a8('0xa'));var squel=require(_0x88a8('0xb'));var crypto=require(_0x88a8('0xc'));var jsforce=require('jsforce');var deskjs=require(_0x88a8('0xd'));var toCsv=require(_0x88a8('0x8'));var querystring=require(_0x88a8('0xe'));var Papa=require(_0x88a8('0xf'));var htmlToText=require('html-to-text');var juice=require('juice');var Redis=require(_0x88a8('0x10'));var authService=require('../../components/auth/service');var qs=require(_0x88a8('0x11'));var as=require(_0x88a8('0x12'));var hardwareService=require('../../config/license/hardware');var logger=require(_0x88a8('0x13'))(_0x88a8('0x14'));var utils=require(_0x88a8('0x15'));var config=require(_0x88a8('0x16'));var licenseUtil=require(_0x88a8('0x17'));var db=require('../../mysqldb')['db'];config['redis']=_[_0x88a8('0x18')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x88a8('0x19'))(new Redis(config['redis']));require(_0x88a8('0x1a'))[_0x88a8('0x1b')](socket);function respondWithStatusCode(_0x1e0f40,_0x468d85){_0x468d85=_0x468d85||0xcc;return function(_0x962279){if(_0x962279){return _0x1e0f40[_0x88a8('0x1c')](_0x468d85);}return _0x1e0f40[_0x88a8('0x1d')](_0x468d85)['end']();};}function respondWithResult(_0xca4661,_0x2f1915){_0x2f1915=_0x2f1915||0xc8;return function(_0x55d30b){if(_0x55d30b){return _0xca4661[_0x88a8('0x1d')](_0x2f1915)['json'](_0x55d30b);}};}function respondWithFilteredResult(_0x491725,_0x3a01cd){return function(_0x547cf9){if(_0x547cf9){var _0x850b4f=_0x547cf9[_0x88a8('0x1e')],_0x28b9bf=_0x3a01cd[_0x88a8('0x1f')],_0x56a522=_0x3a01cd['offset']+_0x3a01cd['limit'],_0x20f10d;if(_0x56a522>=_0x850b4f){_0x56a522=_0x850b4f;_0x20f10d=0xc8;}else{_0x20f10d=0xce;}_0x491725[_0x88a8('0x1d')](_0x20f10d);return _0x491725[_0x88a8('0x20')]('Content-Range',_0x28b9bf+'-'+_0x56a522+'/'+_0x850b4f)['json'](_0x547cf9);}return null;};}function patchUpdates(_0x44b5ef){return function(_0x4ab479){try{jsonpatch[_0x88a8('0x21')](_0x4ab479,_0x44b5ef,!![]);}catch(_0x24d72d){return BPromise[_0x88a8('0x22')](_0x24d72d);}return _0x4ab479[_0x88a8('0x23')]();};}function saveUpdates(_0x55662a,_0x4c175d){return function(_0x50b152){if(_0x50b152){return _0x50b152[_0x88a8('0x24')](_0x55662a)['then'](function(_0x257149){return _0x257149;});}return null;};}function removeEntity(_0x3a252c,_0x580d93){return function(_0x3c52a0){if(_0x3c52a0){return _0x3c52a0[_0x88a8('0x25')]()[_0x88a8('0x26')](function(){_0x3a252c['status'](0xcc)[_0x88a8('0x27')]();});}};}function handleEntityNotFound(_0x2d929c,_0x11f579){return function(_0x5173e9){if(!_0x5173e9){_0x2d929c['sendStatus'](0x194);}return _0x5173e9;};}function handleError(_0x27d9e6,_0x2c0e9b){_0x2c0e9b=_0x2c0e9b||0x1f4;return function(_0x43b0e8){logger[_0x88a8('0x28')](_0x43b0e8[_0x88a8('0x29')]);if(_0x43b0e8[_0x88a8('0x2a')]){delete _0x43b0e8[_0x88a8('0x2a')];}_0x27d9e6[_0x88a8('0x1d')](_0x2c0e9b)['send'](_0x43b0e8);};}function getInteractionUsers(_0x3e028d,_0x22e4c4){return new BPromise(function(_0x40431a,_0x44eb74){try{if(_0x22e4c4[_0x3e028d['id']]){_0x3e028d[_0x88a8('0x2b')]=_[_0x88a8('0x2c')](_0x22e4c4[_0x3e028d['id']],function(_0x35f045){return{'id':_0x35f045['id'],'fullname':_0x35f045[_0x88a8('0x2d')]};});}}catch(_0x158bde){_0x44eb74(_0x158bde);}_0x40431a(_0x3e028d);});}function getInteractionTags(_0x5e64f3,_0x5e0f0e){return new BPromise(function(_0x1307c7,_0xb622ff){try{if(_0x5e64f3[_0x88a8('0x2e')]){_0x5e64f3[_0x88a8('0x2f')]=[];_0x5e64f3[_0x88a8('0x2e')]['split'](',')[_0x88a8('0x30')](function(_0x1385b6){_0x5e64f3['Tags'][_0x88a8('0x31')](_0x5e0f0e[_0x1385b6]);});}delete _0x5e64f3[_0x88a8('0x2e')];}catch(_0x33e5fb){_0xb622ff(_0x33e5fb);}_0x1307c7(_0x5e64f3);});}function getLastMessageText(_0x53e1ee){return new BPromise(function(_0x314f6b,_0x47faef){return db[_0x88a8('0x32')]['findOne']({'where':{'$and':[{'MailInteractionId':_0x53e1ee['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':_0x88a8('0x33')},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':[_0x88a8('0x34')],'order':_0x88a8('0x35'),'raw':!![]})[_0x88a8('0x26')](function(_0x1e59f9){if(_0x1e59f9&&_0x1e59f9[_0x88a8('0x34')]){_0x53e1ee[_0x88a8('0x36')]=_[_0x88a8('0x37')](_0x1e59f9[_0x88a8('0x34')]);}_0x314f6b(_0x53e1ee);})[_0x88a8('0x38')](function(_0x5281df){_0x47faef(_0x5281df);});});}function updateMailInteraction(_0x9c539,_0x2b7cd4,_0x43565e,_0x39d69d){return new BPromise(function(_0x25f8c4,_0x253e2a){return getInteractionUsers(_0x9c539,_0x43565e)[_0x88a8('0x26')](function(_0x3a5a11){return getInteractionTags(_0x3a5a11,_0x2b7cd4);})[_0x88a8('0x26')](function(_0x2aeef5){if(_0x39d69d){_0x25f8c4(getLastMessageText(_0x2aeef5));}else{_0x25f8c4(_0x2aeef5);}})[_0x88a8('0x38')](function(_0x5305dd){_0x253e2a(_0x5305dd);});});}exports['index']=function(_0x361180,_0x58f560){var _0x5d4cc0={},_0x272cef={},_0x399488={'count':0x0,'rows':[]};var _0x435150=_[_0x88a8('0x2c')](db[_0x88a8('0x39')][_0x88a8('0x3a')],function(_0x46cf4c){return{'name':_0x46cf4c[_0x88a8('0x3b')],'type':_0x46cf4c['type'][_0x88a8('0x3c')]};});_0x272cef[_0x88a8('0x3d')]=_[_0x88a8('0x2c')](_0x435150,_0x88a8('0x2a'));_0x272cef['query']=_[_0x88a8('0x3e')](_0x361180['query']);_0x272cef[_0x88a8('0x3f')]=_[_0x88a8('0x40')](_0x272cef[_0x88a8('0x3d')],_0x272cef[_0x88a8('0x41')]);_0x5d4cc0[_0x88a8('0x42')]=_[_0x88a8('0x40')](_0x272cef[_0x88a8('0x3d')],qs[_0x88a8('0x43')](_0x361180[_0x88a8('0x41')][_0x88a8('0x43')]));_0x5d4cc0[_0x88a8('0x42')]=_0x5d4cc0['attributes'][_0x88a8('0x44')]?_0x5d4cc0[_0x88a8('0x42')]:_0x272cef['model'];if(!_0x361180[_0x88a8('0x41')][_0x88a8('0x45')](_0x88a8('0x46'))){_0x5d4cc0[_0x88a8('0x47')]=qs['limit'](_0x361180[_0x88a8('0x41')]['limit']);_0x5d4cc0[_0x88a8('0x1f')]=qs[_0x88a8('0x1f')](_0x361180[_0x88a8('0x41')][_0x88a8('0x1f')]);}_0x5d4cc0['order']=qs[_0x88a8('0x48')](_0x361180['query']['sort']);_0x5d4cc0[_0x88a8('0x49')]=qs[_0x88a8('0x3f')](_[_0x88a8('0x4a')](_0x361180[_0x88a8('0x41')],_0x272cef[_0x88a8('0x3f')]),_0x435150);var _0x294525=[];var _0x19fc1d=squel[_0x88a8('0x4b')]()[_0x88a8('0x4c')]('id')[_0x88a8('0x4c')](_0x88a8('0x2a'))[_0x88a8('0x4c')](_0x88a8('0x4d'))['from'](_0x88a8('0x4e'));var _0x827647=squel[_0x88a8('0x4b')]()['field'](_0x88a8('0x4f'))[_0x88a8('0x4c')](_0x88a8('0x50'))[_0x88a8('0x4c')](_0x88a8('0x51'))['from'](_0x88a8('0x52'),'ui')[_0x88a8('0x53')](_0x88a8('0x54'),'u',_0x88a8('0x55'));var _0x1afec3=squel[_0x88a8('0x4b')]()[_0x88a8('0x56')]('mail_interactions','i')[_0x88a8('0x53')]('cm_contacts','c',_0x88a8('0x57'))[_0x88a8('0x53')](_0x88a8('0x54'),'o',_0x88a8('0x58'))[_0x88a8('0x53')](_0x88a8('0x59'),'a',_0x88a8('0x5a'))[_0x88a8('0x53')]('mail_messages','me','me.MailInteractionId\x20=\x20i.id')[_0x88a8('0x53')](_0x88a8('0x5b'),'it',_0x88a8('0x5c'))[_0x88a8('0x53')](_0x88a8('0x4e'),'t',_0x88a8('0x5d'));var _0x421d48=squel[_0x88a8('0x5e')]();var _0x1658be=[];var _0x2bb2e9=squel[_0x88a8('0x5e')]();var _0x27387c;if(_0x361180[_0x88a8('0x41')]['search']){_0x27387c=as[_0x88a8('0x5f')](_0x361180[_0x88a8('0x41')][_0x88a8('0x60')]);var _0x393290=_0x27387c[_0x88a8('0x61')];for(var _0xeef8ba=0x0;_0xeef8ba<_0x27387c[_0x88a8('0x62')][_0x88a8('0x44')];_0xeef8ba++){var _0x19af96=_0x27387c[_0x88a8('0x62')][_0xeef8ba];var _0xd456c='i';var _0x2b5628=_[_0x88a8('0x63')](_0x435150,['name',_0x19af96[_0x88a8('0x4c')]]);if(!_0x2b5628){switch(_0x19af96[_0x88a8('0x4c')]){case _0x88a8('0x64'):if(_0x19af96[_0x88a8('0x65')]==0x1){_0x1afec3['having']('`'+_0x19af96[_0x88a8('0x4c')]+'`\x20=\x200');}else{_0x1afec3['having']('`'+_0x19af96['field']+_0x88a8('0x66'));}break;case'Contact':if(_0x19af96[_0x88a8('0x67')]===_0x88a8('0x68')){if(_0x19af96[_0x88a8('0x65')][_0x88a8('0x69')]('\x20')[_0x88a8('0x44')]>0x1){_0x421d48[_0x393290](_0x88a8('0x6a'),qs[_0x88a8('0x6b')](_0x19af96[_0x88a8('0x65')]),null);}else{var _0x2b09a5='%'+_0x19af96[_0x88a8('0x65')]+'%';_0x421d48[_0x393290]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x2b09a5,_0x2b09a5,_0x2b09a5);}}else{_0x2b5628=_[_0x88a8('0x63')](_0x435150,['name',_0x88a8('0x6c')]);_0x19af96[_0x88a8('0x4c')]=_0x88a8('0x6c');_0x142240=as['buildExpression'](_0xd456c,_0x2b5628['type'],_0x19af96);_0x421d48[_0x393290](_0x142240[_0x88a8('0x6d')],_0x142240[_0x88a8('0x65')][_0x88a8('0x6e')],_0x142240[_0x88a8('0x65')][_0x88a8('0x27')]);}break;case _0x88a8('0x6f'):var _0x31a5f6=_0x19af96[_0x88a8('0x65')]['split'](',')[_0x88a8('0x2c')](function(_0x2c3aab){return Number(_0x2c3aab);});_0x31a5f6[_0x88a8('0x30')](function(_0x2ec3d2){_0x2bb2e9['or'](_0x88a8('0x70'),'%,'+_0x2ec3d2+',%');});_0x1658be=_[_0x88a8('0x71')](_0x1658be,_0x31a5f6);break;case _0x88a8('0x72'):if(_0x19af96[_0x88a8('0x67')]===_0x88a8('0x68')){_0x421d48[_0x393290](_0x88a8('0x73'),'%'+_0x19af96['value']+'%',null);}else{_0x2b5628=_['find'](_0x435150,[_0x88a8('0x2a'),_0x88a8('0x74')]);_0x19af96[_0x88a8('0x4c')]=_0x88a8('0x74');_0x142240=as[_0x88a8('0x75')](_0xd456c,_0x2b5628[_0x88a8('0x76')],_0x19af96);_0x421d48[_0x393290](_0x142240[_0x88a8('0x6d')],_0x142240[_0x88a8('0x65')][_0x88a8('0x6e')],_0x142240['value'][_0x88a8('0x27')]);}break;case _0x88a8('0x34'):_0x142240=as['buildExpression']('me',null,_0x19af96);_0x421d48[_0x393290](_0x142240['text'],_0x142240[_0x88a8('0x65')][_0x88a8('0x6e')],_0x142240[_0x88a8('0x65')][_0x88a8('0x27')]);break;}}else{var _0x142240=as['buildExpression'](_0xd456c,_0x2b5628[_0x88a8('0x76')],_0x19af96);_0x421d48[_0x393290](_0x142240[_0x88a8('0x6d')],_0x142240[_0x88a8('0x65')][_0x88a8('0x6e')],_0x142240[_0x88a8('0x65')][_0x88a8('0x27')]);}}}else{var _0x4fe72f=_(_0x361180[_0x88a8('0x41')])[_0x88a8('0x3e')]()[_0x88a8('0x2c')](function(_0x487e0f){return _[_0x88a8('0x77')](_0x435150,['name',_0x487e0f])?_0x487e0f:undefined;})['compact']()['value']();if(!_['isEmpty'](_0x4fe72f)){_0x4fe72f['forEach'](function(_0x325670){if(_0x325670===_0x88a8('0x78')){_0x1afec3[_0x88a8('0x49')](_0x88a8('0x79'),[][_0x88a8('0x7a')](_0x361180[_0x88a8('0x41')][_0x325670]));}else if(_0x325670===_0x88a8('0x7b')){var _0x9c1a50=JSON[_0x88a8('0x7c')](_0x361180['query'][_0x325670])[_0x88a8('0x7d')];var _0x198aeb=JSON['parse'](_0x361180[_0x88a8('0x41')][_0x325670])['$lte'];_0x1afec3[_0x88a8('0x49')](_0x88a8('0x7e'),_0x9c1a50,_0x198aeb);}else{if(_0x361180[_0x88a8('0x41')][_0x325670]==='null'){_0x1afec3[_0x88a8('0x49')]('i.'+_0x325670+_0x88a8('0x7f'));}else{_0x1afec3[_0x88a8('0x49')]('i.'+_0x325670+_0x88a8('0x80'),_0x361180[_0x88a8('0x41')][_0x325670]);}}});}if(_0x361180[_0x88a8('0x41')][_0x88a8('0x81')]){if(_0x361180[_0x88a8('0x41')]['read']==0x1){_0x1afec3[_0x88a8('0x82')](_0x88a8('0x83'));}else{_0x1afec3[_0x88a8('0x82')](_0x88a8('0x84'));}}if(_0x361180['query'][_0x88a8('0x85')]){_0x1658be=_[_0x88a8('0x86')](_0x361180['query'][_0x88a8('0x85')])?_0x361180[_0x88a8('0x41')][_0x88a8('0x85')]:new Array(_0x361180[_0x88a8('0x41')][_0x88a8('0x85')]);_0x1658be['forEach'](function(_0x5e038b){_0x2bb2e9['or'](_0x88a8('0x70'),'%,'+_0x5e038b+',%');});}if(_0x361180[_0x88a8('0x41')]['filter']){var _0xe200f1=_0x361180[_0x88a8('0x41')][_0x88a8('0x87')][_0x88a8('0x88')]('\x5c','\x5c\x5c')[_0x88a8('0x88')](/'/g,'\x27\x27');if(qs[_0x88a8('0x89')](_0xe200f1)){_0x421d48['or']('i.id\x20LIKE\x20?',_0xe200f1+'%');}else if(qs['isEmail'](_0xe200f1)){_0x421d48['or'](_0x88a8('0x8a'),_0xe200f1+'%');}else{_0x421d48['or'](_0x88a8('0x8b'),qs[_0x88a8('0x6b')](_0xe200f1))['or'](_0x88a8('0x8c'),qs['getFullTextValue'](_0xe200f1));}}}_0x1afec3[_0x88a8('0x49')](_0x421d48);_0x1afec3[_0x88a8('0x8d')]('i.id');var _0x24dcf1={'type':db[_0x88a8('0x8e')]['QueryTypes'][_0x88a8('0x8f')],'raw':!![]};var _0x296a9f=_0x1afec3['clone']();_0x296a9f[_0x88a8('0x4c')](_0x88a8('0x90'));_0x296a9f[_0x88a8('0x4c')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x88a8('0x64'));if(_0x5d4cc0[_0x88a8('0x91')]){_0x5d4cc0[_0x88a8('0x91')][_0x88a8('0x30')](function(_0x467634){var _0x400f22=_0x467634[0x0]===_0x88a8('0x92')?_0x467634[0x0]:'i.'+_0x467634[0x0];_0x1afec3[_0x88a8('0x91')](_0x400f22,_0x467634[0x1]===_0x88a8('0x93')?![]:!![]);});}if(!_[_0x88a8('0x94')](_0x1658be)){_0x1afec3[_0x88a8('0x82')](_0x2bb2e9);_0x296a9f[_0x88a8('0x49')](_0x88a8('0x95'),_0x1658be);}BPromise[_0x88a8('0x96')]()[_0x88a8('0x26')](function(){if(!_0x27387c){if(_0x361180[_0x88a8('0x41')][_0x88a8('0x78')])return;_0x296a9f[_0x88a8('0x49')]('i.MailAccountId\x20IS\x20NOT\x20NULL');_0x1afec3['where'](_0x88a8('0x97'));return;}if(_0x361180[_0x88a8('0x98')][_0x88a8('0x99')]!=='agent')return;return _0x361180[_0x88a8('0x98')][_0x88a8('0x9a')]({'attributes':['id'],'raw':!![]})[_0x88a8('0x26')](function(_0x1c77bb){if(_[_0x88a8('0x94')](_0x1c77bb)){_0x296a9f[_0x88a8('0x49')]('i.MailAccountId\x20IS\x20NULL');_0x1afec3[_0x88a8('0x49')](_0x88a8('0x9b'));}else{_0x296a9f['where'](_0x88a8('0x79'),_['map'](_0x1c77bb,'id'));_0x1afec3['where'](_0x88a8('0x79'),_[_0x88a8('0x2c')](_0x1c77bb,'id'));}});})['then'](function(){if(_0x361180[_0x88a8('0x98')][_0x88a8('0x99')]===_0x88a8('0x9c')&&!_0x27387c&&!_0x361180[_0x88a8('0x41')]['MailAccountId'])return[];return db['sequelize'][_0x88a8('0x41')](_0x296a9f['toString'](),_0x24dcf1);})[_0x88a8('0x26')](function(_0x45c1cb){_0x399488[_0x88a8('0x1e')]=_0x45c1cb[_0x88a8('0x44')];if(_0x399488['count']===0x0)return[];return db[_0x88a8('0x9d')]['query'](_0x19fc1d[_0x88a8('0x9e')](),_0x24dcf1)['then'](function(_0xfa99af){_0x294525=_[_0x88a8('0x9f')](_0xfa99af,'id');_0x24dcf1=_[_0x88a8('0xa0')](_0x24dcf1,{'model':db['MailInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x361180[_0x88a8('0x41')]['fields']){_0x5d4cc0[_0x88a8('0x42')][_0x88a8('0x30')](function(_0x28955b){_0x1afec3[_0x88a8('0x4c')]('i.'+_0x28955b);});}else{_0x1afec3[_0x88a8('0x4c')](_0x88a8('0xa1'),_0x88a8('0x64'));_0x1afec3[_0x88a8('0x4c')]('a.key',_0x88a8('0xa2'));_0x1afec3['field'](_0x88a8('0xa3'),_0x88a8('0xa4'));_0x1afec3[_0x88a8('0x4c')]('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');_0x1afec3[_0x88a8('0x4c')](_0x88a8('0x90'));_0x1afec3['field'](_0x88a8('0xa5'));_0x1afec3[_0x88a8('0x4c')]('i.updatedAt');_0x1afec3[_0x88a8('0x4c')](_0x88a8('0xa6'));_0x1afec3[_0x88a8('0x4c')](_0x88a8('0xa7'));_0x1afec3['field']('i.attach');_0x1afec3['field'](_0x88a8('0xa8'));_0x1afec3[_0x88a8('0x4c')](_0x88a8('0xa9'));_0x1afec3[_0x88a8('0x4c')](_0x88a8('0xaa'));_0x1afec3[_0x88a8('0x4c')]('i.disposition');_0x1afec3['field']('i.secondDisposition');_0x1afec3[_0x88a8('0x4c')](_0x88a8('0xab'));_0x1afec3['field'](_0x88a8('0xac'));_0x1afec3['field'](_0x88a8('0xad'));_0x1afec3[_0x88a8('0x4c')](_0x88a8('0xae'));_0x1afec3[_0x88a8('0x4c')]('i.MailAccountId');_0x1afec3[_0x88a8('0x4c')]('i.UserId');_0x1afec3[_0x88a8('0x4c')](_0x88a8('0xaf'),'Contact.firstName');_0x1afec3['field'](_0x88a8('0xb0'),_0x88a8('0xb1'));_0x1afec3[_0x88a8('0x4c')](_0x88a8('0xb2'),_0x88a8('0xb3'));_0x1afec3[_0x88a8('0x4c')](_0x88a8('0xb4'),_0x88a8('0xb5'));_0x1afec3[_0x88a8('0x4c')]('c.mobile','Contact.mobile');_0x1afec3[_0x88a8('0x4c')]('c.fax',_0x88a8('0xb6'));_0x1afec3['field']('o.fullname','Owner.fullname');_0x1afec3[_0x88a8('0x4c')](_0x88a8('0xb7'),_0x88a8('0xb8'));_0x1afec3[_0x88a8('0x4c')]('GROUP_CONCAT(DISTINCT\x20t.id)',_0x88a8('0x2e'));}if(_0x5d4cc0[_0x88a8('0x47')])_0x1afec3[_0x88a8('0x47')](_0x5d4cc0[_0x88a8('0x47')]);if(_0x5d4cc0[_0x88a8('0x1f')])_0x1afec3[_0x88a8('0x1f')](_0x5d4cc0[_0x88a8('0x1f')]);return db[_0x88a8('0x9d')][_0x88a8('0x41')](_0x1afec3[_0x88a8('0x9e')](),_0x24dcf1);})['then'](function(_0x54379e){_0x827647['where'](_0x88a8('0xb9'),_[_0x88a8('0x2c')](_0x54379e,'id'));return db[_0x88a8('0x9d')][_0x88a8('0x41')](_0x827647[_0x88a8('0x9e')](),_0x24dcf1)[_0x88a8('0x26')](function(_0x48b92c){var _0x4ac2b4=_[_0x88a8('0xba')](_0x48b92c,_0x88a8('0xbb'));var _0x2c9026=[];return db[_0x88a8('0xbc')][_0x88a8('0xbd')]({'attributes':[_0x88a8('0xbe')],'raw':!![]})[_0x88a8('0x26')](function(_0x319b77){var _0x2929a7=_0x319b77['enableEmailPreview'];_0x54379e[_0x88a8('0x30')](function(_0x55f448){_0x2c9026[_0x88a8('0x31')](updateMailInteraction(_0x55f448,_0x294525,_0x4ac2b4,_0x2929a7));});return BPromise[_0x88a8('0xbf')](_0x2c9026);});});});})[_0x88a8('0x26')](function(_0xc93de5){_0x399488['rows']=_0xc93de5;return _0x399488;})[_0x88a8('0x26')](respondWithFilteredResult(_0x58f560,_0x5d4cc0))['catch'](handleError(_0x58f560,null));};exports[_0x88a8('0xc0')]=function(_0x38988f,_0x40b302){var _0x15630c={'raw':![],'where':{'id':_0x38988f['params']['id']}},_0x466737={};_0x466737['model']=_[_0x88a8('0x3e')](db[_0x88a8('0x39')]['rawAttributes']);_0x466737[_0x88a8('0x41')]=_[_0x88a8('0x3e')](_0x38988f[_0x88a8('0x41')]);_0x466737[_0x88a8('0x3f')]=_['intersection'](_0x466737[_0x88a8('0x3d')],_0x466737[_0x88a8('0x41')]);_0x15630c[_0x88a8('0x42')]=_[_0x88a8('0x40')](_0x466737['model'],qs['fields'](_0x38988f[_0x88a8('0x41')]['fields']));_0x15630c['attributes']=_0x15630c[_0x88a8('0x42')][_0x88a8('0x44')]?_0x15630c[_0x88a8('0x42')]:_0x466737[_0x88a8('0x3d')];if(_0x38988f[_0x88a8('0x41')][_0x88a8('0xc1')]){_0x15630c[_0x88a8('0xc2')]=[{'all':!![]}];}_0x15630c=_[_0x88a8('0xa0')]({},_0x15630c,_0x38988f[_0x88a8('0xc3')]);return db[_0x88a8('0x39')][_0x88a8('0x63')](_0x15630c)[_0x88a8('0x26')](handleEntityNotFound(_0x40b302,null))['then'](respondWithResult(_0x40b302,null))[_0x88a8('0x38')](handleError(_0x40b302,null));};exports[_0x88a8('0xc4')]=function(_0x10e05c,_0x2cc766){return db[_0x88a8('0x39')][_0x88a8('0xc4')](_0x10e05c['body'],{})[_0x88a8('0x26')](respondWithResult(_0x2cc766,0xc9))[_0x88a8('0x38')](handleError(_0x2cc766,null));};exports[_0x88a8('0x24')]=function(_0x189834,_0x212317){if(_0x189834['body']['id']){delete _0x189834[_0x88a8('0xc5')]['id'];}return db['MailInteraction'][_0x88a8('0x63')]({'where':{'id':_0x189834[_0x88a8('0xc6')]['id']}})[_0x88a8('0x26')](handleEntityNotFound(_0x212317,null))[_0x88a8('0x26')](saveUpdates(_0x189834[_0x88a8('0xc5')],null))[_0x88a8('0x26')](respondWithResult(_0x212317,null))['catch'](handleError(_0x212317,null));};exports['destroy']=function(_0x42429b,_0x15eb2c){return db[_0x88a8('0x39')][_0x88a8('0x63')]({'where':{'id':_0x42429b[_0x88a8('0xc6')]['id']}})[_0x88a8('0x26')](handleEntityNotFound(_0x15eb2c,null))[_0x88a8('0x26')](removeEntity(_0x15eb2c,null))[_0x88a8('0x38')](handleError(_0x15eb2c,null));};exports['describe']=function(_0x9be19f,_0x17ba6a){return db[_0x88a8('0x39')][_0x88a8('0xc7')]()[_0x88a8('0x26')](respondWithResult(_0x17ba6a,null))[_0x88a8('0x38')](handleError(_0x17ba6a,null));};exports['addMessage']=function(_0x56b55b,_0x214b27,_0x53b46c){return db[_0x88a8('0x32')][_0x88a8('0x63')]({'where':{'id':_0x56b55b[_0x88a8('0xc6')]['id']}})[_0x88a8('0x26')](handleEntityNotFound(_0x214b27,null))[_0x88a8('0x26')](function(_0x23dc0f){if(_0x23dc0f){return _0x23dc0f[_0x88a8('0xc8')](_0x56b55b[_0x88a8('0xc5')]['ids'],_[_0x88a8('0xc9')](_0x56b55b[_0x88a8('0xc5')],['ids','id'])||{});}})[_0x88a8('0x26')](respondWithResult(_0x214b27,null))[_0x88a8('0x38')](handleError(_0x214b27,null));};exports[_0x88a8('0xca')]=function(_0x307310,_0x173456,_0x29ec14){var _0x5b02b2={'raw':![],'where':{}};var _0x4c2814={};var _0x5cd681={'count':0x0,'rows':[]};return db['MailInteraction'][_0x88a8('0xbd')]({'where':{'id':_0x307310['params']['id']}})['then'](handleEntityNotFound(_0x173456,null))[_0x88a8('0x26')](function(_0x1f529d){if(_0x1f529d){_0x4c2814[_0x88a8('0x3d')]=_[_0x88a8('0x3e')](db['MailMessage'][_0x88a8('0x3a')]);_0x4c2814[_0x88a8('0x41')]=_[_0x88a8('0x3e')](_0x307310[_0x88a8('0x41')]);_0x4c2814[_0x88a8('0x3f')]=_['intersection'](_0x4c2814[_0x88a8('0x3d')],_0x4c2814[_0x88a8('0x41')]);_0x5b02b2[_0x88a8('0x42')]=_['intersection'](_0x4c2814[_0x88a8('0x3d')],qs[_0x88a8('0x43')](_0x307310[_0x88a8('0x41')][_0x88a8('0x43')]));_0x5b02b2[_0x88a8('0x42')]=_0x5b02b2[_0x88a8('0x42')]['length']?_0x5b02b2[_0x88a8('0x42')]:_0x4c2814[_0x88a8('0x3d')];if(!_0x307310[_0x88a8('0x41')][_0x88a8('0x45')](_0x88a8('0x46'))){_0x5b02b2[_0x88a8('0x47')]=qs['limit'](_0x307310[_0x88a8('0x41')][_0x88a8('0x47')]);_0x5b02b2[_0x88a8('0x1f')]=qs[_0x88a8('0x1f')](_0x307310[_0x88a8('0x41')][_0x88a8('0x1f')]);}_0x5b02b2[_0x88a8('0x91')]=qs['sort'](_0x307310[_0x88a8('0x41')][_0x88a8('0x48')]);_0x5b02b2[_0x88a8('0x49')]=qs[_0x88a8('0x3f')](_[_0x88a8('0x4a')](_0x307310[_0x88a8('0x41')],_0x4c2814[_0x88a8('0x3f')]));_0x5b02b2[_0x88a8('0x49')][_0x88a8('0xbb')]=_0x1f529d['id'];if(_0x307310['query'][_0x88a8('0x87')]){_0x5b02b2[_0x88a8('0x49')]=_[_0x88a8('0xa0')](_0x5b02b2['where'],{'$or':_[_0x88a8('0x2c')](_0x5b02b2[_0x88a8('0x42')],function(_0x593522){var _0x383952={};_0x383952[_0x593522]={'$like':'%'+_0x307310['query']['filter']+'%'};return _0x383952;})});}if(_0x307310[_0x88a8('0x41')][_0x88a8('0x7d')]){var _0x3c5be3=_0x307310[_0x88a8('0x41')][_0x88a8('0x7d')]['split'](',');var _0x3a5c5d={};_0x3a5c5d[_0x3c5be3[0x0]]={'$gte':moment(_0x3c5be3[0x1])['format']('YYYY-MM-DD\x20HH:mm:ss')};_0x5b02b2[_0x88a8('0x49')]=_[_0x88a8('0xa0')](_0x5b02b2[_0x88a8('0x49')],_0x3a5c5d);}_0x5b02b2=_[_0x88a8('0xa0')]({},_0x5b02b2,_0x307310[_0x88a8('0xc3')]);return db['MailMessage'][_0x88a8('0x1e')]({'where':_0x5b02b2['where']})[_0x88a8('0x26')](function(_0x2ed6d1){_0x5cd681[_0x88a8('0x1e')]=_0x2ed6d1;if(_0x307310['query']['includeAll']){_0x5b02b2[_0x88a8('0xc2')]=[{'all':!![]}];}return db[_0x88a8('0x32')][_0x88a8('0xcb')](_0x5b02b2);})[_0x88a8('0x26')](function(_0x220659){if(_0x307310['query']['inlineCss']==='true'){for(var _0xbbd7e=0x0;_0xbbd7e<_0x220659[_0x88a8('0x44')];_0xbbd7e++){_0x220659[_0xbbd7e][_0x88a8('0xc5')]=juice(_0x220659[_0xbbd7e][_0x88a8('0xc5')]);}}_0x5cd681[_0x88a8('0xcc')]=_0x220659;return _0x5cd681;});}})[_0x88a8('0x26')](respondWithFilteredResult(_0x173456,_0x5b02b2))[_0x88a8('0x38')](handleError(_0x173456,null));};exports[_0x88a8('0xcd')]=function(_0x6d3ef,_0x51a31c,_0x393731){return db[_0x88a8('0x39')][_0x88a8('0x63')]({'where':{'id':_0x6d3ef[_0x88a8('0xc6')]['id']}})[_0x88a8('0x26')](handleEntityNotFound(_0x51a31c,null))[_0x88a8('0x26')](function(_0xe81f94){if(_0xe81f94){return _0xe81f94['setTags'](_0x6d3ef['body'][_0x88a8('0xce')],_[_0x88a8('0xc9')](_0x6d3ef['body'],[_0x88a8('0xce'),'id'])||{})[_0x88a8('0xcf')](function(){return db[_0x88a8('0x6f')][_0x88a8('0xcb')]({'attributes':['id',_0x88a8('0x2a'),_0x88a8('0x4d')],'where':{'id':_0x6d3ef['body'][_0x88a8('0xce')]}});})[_0x88a8('0x26')](function(_0x23f82d){socket[_0x88a8('0xd0')](_0x88a8('0xd1'),{'id':Number(_0x6d3ef[_0x88a8('0xc6')]['id']),'tags':_0x23f82d||[]});return{'id':Number(_0x6d3ef['params']['id']),'tags':_0x23f82d||[]};});}})[_0x88a8('0x26')](respondWithResult(_0x51a31c,null))[_0x88a8('0x38')](handleError(_0x51a31c,null));};exports[_0x88a8('0xd2')]=function(_0xeb5111,_0x2b5b09,_0x3145a1){return db[_0x88a8('0x39')][_0x88a8('0x63')]({'where':{'id':_0xeb5111[_0x88a8('0xc6')]['id']}})[_0x88a8('0x26')](handleEntityNotFound(_0x2b5b09,null))[_0x88a8('0x26')](function(_0x3ff674){if(_0x3ff674){return _0x3ff674[_0x88a8('0xd2')](_0xeb5111[_0x88a8('0x41')][_0x88a8('0xce')]);}})[_0x88a8('0x26')](respondWithStatusCode(_0x2b5b09,null))[_0x88a8('0x38')](handleError(_0x2b5b09,null));};exports[_0x88a8('0xd3')]=function(_0x3ffc3f,_0x467c9f){var _0x22499d=moment()[_0x88a8('0xd4')]()[_0x88a8('0x9e')]();var _0xd1631b=path[_0x88a8('0xd5')](config[_0x88a8('0xd6')],'server',_0x88a8('0xd7'),'tmp');var _0x52eb73=path[_0x88a8('0xd5')](config[_0x88a8('0xd6')],_0x88a8('0xd8'),_0x88a8('0xd7'),_0x88a8('0xd9'));var _0x2799a3=path[_0x88a8('0xd5')](_0xd1631b,_0x22499d);var _0x578011=util[_0x88a8('0xda')](_0x88a8('0xdb'),_0x3ffc3f[_0x88a8('0xc6')]['id'],_0x22499d);var _0xa40062=path['join'](_0xd1631b,_0x578011);var _0x2394ce=[];if(_0x3ffc3f[_0x88a8('0x41')][_0x88a8('0xd9')]){_0x2394ce[_0x88a8('0x31')]({'model':db[_0x88a8('0xdc')],'as':'Attachments','raw':!![]});}var _0x11f19d=[{'model':db['MailMessage'],'as':_0x88a8('0xdd'),'attributes':['id','body',_0x88a8('0x56'),'to','cc',_0x88a8('0xde'),_0x88a8('0xdf'),_0x88a8('0x7b')],'where':{'secret':![]},'order':qs[_0x88a8('0x48')]('id'),'include':_0x2394ce}];return db['MailInteraction'][_0x88a8('0x63')]({'where':{'id':_0x3ffc3f[_0x88a8('0xc6')]['id']},'include':_0x11f19d})[_0x88a8('0x26')](handleEntityNotFound(_0x467c9f,null))[_0x88a8('0x26')](function(_0x1ea938){if(_0x1ea938&&_0x1ea938[_0x88a8('0xdd')]){var _0x42b09e=_0x1ea938[_0x88a8('0xe0')]({'plain':!![]});fs['mkdirSync'](_0x2799a3);return BPromise[_0x88a8('0xe1')](_0x42b09e[_0x88a8('0xdd')],function(_0x3021cc,_0x1f47a2){var _0x2572bd={'from':_0x3021cc['from'],'to':_0x3021cc['to'],'subject':_0x3021cc[_0x88a8('0xdf')],'html':_0x3021cc[_0x88a8('0xc5')],'headers':{'Date':moment(_0x3021cc[_0x88a8('0x7b')])[_0x88a8('0xda')](_0x88a8('0xe2'))},'attachments':[]};if(_0x3021cc['cc']){_0x2572bd[_0x88a8('0xe3')]['Cc']=_0x3021cc['cc'];}if(_0x3021cc[_0x88a8('0xde')]){_0x2572bd[_0x88a8('0xe3')][_0x88a8('0xe4')]=_0x3021cc[_0x88a8('0xde')];}return new BPromise(function(_0x2e843d,_0x169590){if(_0x3021cc['Attachments']){for(var _0x2abe6d=0x0;_0x2abe6d<_0x3021cc[_0x88a8('0xe5')]['length'];_0x2abe6d++){var _0x36eb68=_0x3021cc[_0x88a8('0xe5')][_0x2abe6d];var _0x48bc79=path[_0x88a8('0xd5')](_0x52eb73,_0x36eb68[_0x88a8('0xe6')]);if(fs['existsSync'](_0x48bc79)){_0x2572bd[_0x88a8('0xd9')]['push']({'name':_0x36eb68['name'],'contentType':_0x36eb68['type'],'data':fs['readFileSync'](_0x48bc79)});}}}emlformat[_0x88a8('0xe7')](_0x2572bd,function(_0x2772ab,_0x25549f){if(_0x2772ab)return _0x169590(_0x2772ab);fs['writeFileSync'](path['join'](_0x2799a3,util[_0x88a8('0xda')]('message%d.eml',_0x1f47a2)),_0x25549f);return _0x2e843d(_0x25549f);});});})[_0x88a8('0x26')](function(){return new BPromise(function(_0x3fab86,_0x4ef364){zipdir(_0x2799a3,{'saveTo':_0xa40062},function(_0x558741,_0x391013){if(_0x558741)return _0x4ef364(_0x558741);return _0x3fab86(_0x391013);});})[_0x88a8('0x26')](function(){return new BPromise(function(_0x45fef9,_0x2d6ade){rimraf(_0x2799a3,function(_0x18926f){if(_0x18926f)_0x2d6ade(_0x18926f);return _0x45fef9();});});})['then'](function(){return _0x467c9f[_0x88a8('0xd3')](_0xa40062,_0x578011,function(_0x1ce9eb){if(_0x1ce9eb){console['log'](_0x88a8('0xe8'),_0x1ce9eb);}else{fs['unlinkSync'](_0xa40062);}});});});}else{return _0x467c9f[_0x88a8('0x1c')](0xc8);}})[_0x88a8('0x38')](handleError(_0x467c9f,null));};