0f73e83cf66a4c7741131b2f443e03c1f236abdc
[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 _0x4b20=['redis','defaults','localhost','socket.io-emitter','register','sendStatus','end','status','json','count','offset','limit','set','Content-Range','apply','save','update','destroy','then','error','stack','name','send','Users','map','fullname','Tags','split','forEach','push','MailInteraction','lastMsgBody','lastMsgText','trimStart','fromString','catch','index','rawAttributes','fieldName','type','key','model','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','select','field','color','from','tools_tags','u.id','u.fullname','ui.MailInteractionId','left_join','users','u.id\x20=\x20ui.UserId','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','a.id\x20=\x20i.MailAccountId','me.MailInteractionId\x20=\x20i.id','mail_interaction_has_tags','it.MailInteractionId\x20=\x20i.id','expr','search','parseSearch','sqlOperator','conditions','unreadMessages','value','having','`\x20=\x200','Contact','operator','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','ContactId','buildExpression','text','start','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','UserId','plainBody','keys','isEmpty','MailAccountId','parse','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','replace','\x27\x27\x27\x27','isNumeric','i.id\x20LIKE\x20?','isEmail','c.email\x20LIKE\x20?','MATCH\x20(i.to,\x20i.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','MATCH\x20(me.plainBody,\x20me.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','group','i.id','Sequelize','QueryTypes','SELECT','order','DESC','t.id\x20IN\x20?','resolve','journey','i.MailAccountId\x20IS\x20NOT\x20NULL','getMailAccounts','i.MailAccountId\x20IS\x20NULL','i.MailAccountId\x20IN\x20?','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.attach','i.lastMsgAt','i.lastMsgDirection','i.subject','i.substatus','i.ContactId','i.UserId','c.firstName','Contact.firstName','c.lastName','Contact.lastName','c.email','Contact.email','Contact.phone','c.mobile','Contact.mobile','Contact.fax','o.fullname','Owner.fullname','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','TagIds','ui.MailInteractionId\x20IN\x20?','sequelize','groupBy','Setting','enableEmailPreview','rows','show','params','includeAll','options','find','create','body','describe','addMessage','MailMessage','ids','omit','getMessages','MailInteractionId','filter','$gte','format','YYYY-MM-DD\x20HH:mm:ss','include','findAll','setTags','spread','emit','mailInteractionTags:save','removeTags','download','unix','root','server','files','tmp','join','attachments','transcript-%d-%s.zip','Attachments','bcc','subject','createdAt','get','mkdirSync','each','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','basename','existsSync','readFileSync','writeFileSync','message%d.eml','log','err','zip-dir','fast-json-patch','bluebird','mustache','util','sox','ejs','lodash','crypto','to-csv','papaparse','html-to-text','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb'];(function(_0x4166f6,_0x16207d){var _0x34df0d=function(_0x52eddf){while(--_0x52eddf){_0x4166f6['push'](_0x4166f6['shift']());}};_0x34df0d(++_0x16207d);}(_0x4b20,0xdb));var _0x04b2=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x4b20[_0x3dd15e];return _0x231fd0;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x04b2('0x0'));var jsonpatch=require(_0x04b2('0x1'));var rp=require('request-promise');var moment=require('moment');var BPromise=require(_0x04b2('0x2'));var Mustache=require(_0x04b2('0x3'));var util=require(_0x04b2('0x4'));var path=require('path');var sox=require(_0x04b2('0x5'));var csv=require('to-csv');var ejs=require(_0x04b2('0x6'));var fs=require('fs');var _=require(_0x04b2('0x7'));var squel=require('squel');var crypto=require(_0x04b2('0x8'));var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0x04b2('0x9'));var querystring=require('querystring');var Papa=require(_0x04b2('0xa'));var htmlToText=require(_0x04b2('0xb'));var Redis=require(_0x04b2('0xc'));var authService=require(_0x04b2('0xd'));var qs=require(_0x04b2('0xe'));var as=require(_0x04b2('0xf'));var hardwareService=require(_0x04b2('0x10'));var logger=require(_0x04b2('0x11'))('api');var utils=require(_0x04b2('0x12'));var config=require(_0x04b2('0x13'));var db=require(_0x04b2('0x14'))['db'];config[_0x04b2('0x15')]=_[_0x04b2('0x16')](config[_0x04b2('0x15')],{'host':_0x04b2('0x17'),'port':0x18eb});var socket=require(_0x04b2('0x18'))(new Redis(config[_0x04b2('0x15')]));require('./mailInteraction.socket')[_0x04b2('0x19')](socket);function respondWithStatusCode(_0x52fdc7,_0x294046){_0x294046=_0x294046||0xcc;return function(_0x2fb5d3){if(_0x2fb5d3){return _0x52fdc7[_0x04b2('0x1a')](_0x294046);}return _0x52fdc7['status'](_0x294046)[_0x04b2('0x1b')]();};}function respondWithResult(_0x4ec02d,_0x14caac){_0x14caac=_0x14caac||0xc8;return function(_0x3fede8){if(_0x3fede8){return _0x4ec02d[_0x04b2('0x1c')](_0x14caac)[_0x04b2('0x1d')](_0x3fede8);}};}function respondWithFilteredResult(_0x108ce2,_0x1ab749){return function(_0x8c5794){if(_0x8c5794){var _0x17e956=_0x8c5794[_0x04b2('0x1e')],_0x43d4c4=_0x1ab749['offset'],_0x476820=_0x1ab749[_0x04b2('0x1f')]+_0x1ab749[_0x04b2('0x20')],_0x44cca8;if(_0x476820>=_0x17e956){_0x476820=_0x17e956;_0x44cca8=0xc8;}else{_0x44cca8=0xce;}_0x108ce2[_0x04b2('0x1c')](_0x44cca8);return _0x108ce2[_0x04b2('0x21')](_0x04b2('0x22'),_0x43d4c4+'-'+_0x476820+'/'+_0x17e956)['json'](_0x8c5794);}return null;};}function patchUpdates(_0x139212){return function(_0x3e6f09){try{jsonpatch[_0x04b2('0x23')](_0x3e6f09,_0x139212,!![]);}catch(_0x4f4ceb){return BPromise['reject'](_0x4f4ceb);}return _0x3e6f09[_0x04b2('0x24')]();};}function saveUpdates(_0x3def72,_0x1e52ce){return function(_0x2e7e7e){if(_0x2e7e7e){return _0x2e7e7e[_0x04b2('0x25')](_0x3def72)['then'](function(_0x4d7aeb){return _0x4d7aeb;});}return null;};}function removeEntity(_0x8ca15a,_0x4a316d){return function(_0x3a6aeb){if(_0x3a6aeb){return _0x3a6aeb[_0x04b2('0x26')]()[_0x04b2('0x27')](function(){_0x8ca15a[_0x04b2('0x1c')](0xcc)[_0x04b2('0x1b')]();});}};}function handleEntityNotFound(_0x3003cb,_0x13689a){return function(_0x444a60){if(!_0x444a60){_0x3003cb[_0x04b2('0x1a')](0x194);}return _0x444a60;};}function handleError(_0x3e1a91,_0x3f6a61){_0x3f6a61=_0x3f6a61||0x1f4;return function(_0x30daa0){logger[_0x04b2('0x28')](_0x30daa0[_0x04b2('0x29')]);if(_0x30daa0[_0x04b2('0x2a')]){delete _0x30daa0[_0x04b2('0x2a')];}_0x3e1a91['status'](_0x3f6a61)[_0x04b2('0x2b')](_0x30daa0);};}function getInteractionUsers(_0x1438f7,_0x26a745){return new BPromise(function(_0x364ba5,_0x4a8d65){try{if(_0x26a745[_0x1438f7['id']]){_0x1438f7[_0x04b2('0x2c')]=_[_0x04b2('0x2d')](_0x26a745[_0x1438f7['id']],function(_0x3cd478){return{'id':_0x3cd478['id'],'fullname':_0x3cd478[_0x04b2('0x2e')]};});}}catch(_0x7a9df5){_0x4a8d65(_0x7a9df5);}_0x364ba5(_0x1438f7);});}function getInteractionTags(_0x3bb2d0,_0xdd957d){return new BPromise(function(_0x40e976,_0x54695c){try{if(_0x3bb2d0['TagIds']){_0x3bb2d0[_0x04b2('0x2f')]=[];_0x3bb2d0['TagIds'][_0x04b2('0x30')](',')[_0x04b2('0x31')](function(_0x1df0ee){_0x3bb2d0[_0x04b2('0x2f')][_0x04b2('0x32')](_0xdd957d[_0x1df0ee]);});}delete _0x3bb2d0['TagIds'];}catch(_0x34963b){_0x54695c(_0x34963b);}_0x40e976(_0x3bb2d0);});}function getLastMessageText(_0x5b2158){return new BPromise(function(_0x163f7f,_0x12d3ee){return db[_0x04b2('0x33')]['findOne']({'where':{'id':_0x5b2158['id']},'attributes':[_0x04b2('0x34'),_0x04b2('0x35')],'raw':!![]})[_0x04b2('0x27')](function(_0x20f577){if(!_0x20f577[_0x04b2('0x35')]){_0x5b2158[_0x04b2('0x35')]=_[_0x04b2('0x36')](htmlToText[_0x04b2('0x37')](_0x20f577['lastMsgBody'],{'preserveNewlines':!![],'singleNewLineParagraphs':!![],'uppercaseHeadings':![],'noLinkBrackets':!![],'ignoreImage':!![]}));}else{_0x5b2158[_0x04b2('0x35')]=_0x20f577[_0x04b2('0x35')];}_0x163f7f(_0x5b2158);})[_0x04b2('0x38')](function(_0xf53af2){_0x12d3ee(_0xf53af2);});});}function updateMailInteraction(_0x3879ae,_0x40f4f3,_0x4328c8,_0x30e7d7){return new BPromise(function(_0x5c5635,_0x55b637){return getInteractionUsers(_0x3879ae,_0x4328c8)['then'](function(_0x5bcff5){return getInteractionTags(_0x5bcff5,_0x40f4f3);})['then'](function(_0x53fbd2){if(_0x30e7d7){_0x5c5635(getLastMessageText(_0x53fbd2));}else{_0x5c5635(_0x53fbd2);}})['catch'](function(_0x8f0ba1){_0x55b637(_0x8f0ba1);});});}exports[_0x04b2('0x39')]=function(_0x507cce,_0x5ea011){var _0x331d5c={},_0x17686c={},_0x390dd6={'count':0x0,'rows':[]};var _0x290c77=_['map'](db[_0x04b2('0x33')][_0x04b2('0x3a')],function(_0x11ea6f){return{'name':_0x11ea6f[_0x04b2('0x3b')],'type':_0x11ea6f[_0x04b2('0x3c')][_0x04b2('0x3d')]};});_0x17686c[_0x04b2('0x3e')]=_['map'](_0x290c77,_0x04b2('0x2a'));_0x17686c[_0x04b2('0x3f')]=_['keys'](_0x507cce['query']);_0x17686c[_0x04b2('0x40')]=_[_0x04b2('0x41')](_0x17686c['model'],_0x17686c[_0x04b2('0x3f')]);_0x331d5c['attributes']=_['intersection'](_0x17686c[_0x04b2('0x3e')],qs[_0x04b2('0x42')](_0x507cce[_0x04b2('0x3f')]['fields']));_0x331d5c['attributes']=_0x331d5c[_0x04b2('0x43')][_0x04b2('0x44')]?_0x331d5c[_0x04b2('0x43')]:_0x17686c[_0x04b2('0x3e')];if(!_0x507cce[_0x04b2('0x3f')][_0x04b2('0x45')](_0x04b2('0x46'))){_0x331d5c[_0x04b2('0x20')]=qs[_0x04b2('0x20')](_0x507cce['query']['limit']);_0x331d5c['offset']=qs[_0x04b2('0x1f')](_0x507cce[_0x04b2('0x3f')]['offset']);}_0x331d5c['order']=qs[_0x04b2('0x47')](_0x507cce[_0x04b2('0x3f')][_0x04b2('0x47')]);_0x331d5c[_0x04b2('0x48')]=qs[_0x04b2('0x40')](_[_0x04b2('0x49')](_0x507cce[_0x04b2('0x3f')],_0x17686c[_0x04b2('0x40')]));var _0x4285ad=[];var _0x53cef2=squel[_0x04b2('0x4a')]()[_0x04b2('0x4b')]('id')['field'](_0x04b2('0x2a'))[_0x04b2('0x4b')](_0x04b2('0x4c'))[_0x04b2('0x4d')](_0x04b2('0x4e'));var _0x2bcae2=squel[_0x04b2('0x4a')]()[_0x04b2('0x4b')](_0x04b2('0x4f'))['field'](_0x04b2('0x50'))[_0x04b2('0x4b')](_0x04b2('0x51'))['from']('user_has_mail_interactions','ui')[_0x04b2('0x52')](_0x04b2('0x53'),'u',_0x04b2('0x54'));var _0x5179a1=squel['select']()[_0x04b2('0x4d')]('mail_interactions','i')[_0x04b2('0x52')](_0x04b2('0x55'),'c',_0x04b2('0x56'))[_0x04b2('0x52')](_0x04b2('0x53'),'o',_0x04b2('0x57'))[_0x04b2('0x52')]('mail_accounts','a',_0x04b2('0x58'))[_0x04b2('0x52')]('mail_messages','me',_0x04b2('0x59'))[_0x04b2('0x52')](_0x04b2('0x5a'),'it',_0x04b2('0x5b'))['left_join'](_0x04b2('0x4e'),'t','t.id\x20=\x20it.TagId');var _0x24709c=squel[_0x04b2('0x5c')]();var _0x133f82=[];var _0xa8c71=squel[_0x04b2('0x5c')]();var _0x3486d8;if(_0x507cce[_0x04b2('0x3f')][_0x04b2('0x5d')]){_0x3486d8=as[_0x04b2('0x5e')](_0x507cce[_0x04b2('0x3f')][_0x04b2('0x5d')]);var _0x44bc64=_0x3486d8[_0x04b2('0x5f')];for(var _0x29e081=0x0;_0x29e081<_0x3486d8[_0x04b2('0x60')][_0x04b2('0x44')];_0x29e081++){var _0x5bd2e5=_0x3486d8[_0x04b2('0x60')][_0x29e081];var _0xf1cdb6='i';var _0x57cd1c=_['find'](_0x290c77,[_0x04b2('0x2a'),_0x5bd2e5[_0x04b2('0x4b')]]);if(!_0x57cd1c){switch(_0x5bd2e5[_0x04b2('0x4b')]){case _0x04b2('0x61'):if(_0x5bd2e5[_0x04b2('0x62')]==0x1){_0x5179a1[_0x04b2('0x63')]('`'+_0x5bd2e5[_0x04b2('0x4b')]+_0x04b2('0x64'));}else{_0x5179a1[_0x04b2('0x63')]('`'+_0x5bd2e5[_0x04b2('0x4b')]+'`\x20>\x200');}break;case _0x04b2('0x65'):if(_0x5bd2e5[_0x04b2('0x66')]===_0x04b2('0x67')){if(_0x5bd2e5['value'][_0x04b2('0x30')]('\x20')[_0x04b2('0x44')]>0x1){_0x24709c[_0x44bc64](_0x04b2('0x68'),qs[_0x04b2('0x69')](_0x5bd2e5[_0x04b2('0x62')]),null);}else{var _0x74860f='%'+_0x5bd2e5['value']+'%';_0x24709c[_0x44bc64]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x74860f,_0x74860f,_0x74860f);}}else{_0x57cd1c=_['find'](_0x290c77,[_0x04b2('0x2a'),_0x04b2('0x6a')]);_0x5bd2e5[_0x04b2('0x4b')]=_0x04b2('0x6a');_0x576068=as[_0x04b2('0x6b')](_0xf1cdb6,_0x57cd1c[_0x04b2('0x3c')],_0x5bd2e5);_0x24709c[_0x44bc64](_0x576068[_0x04b2('0x6c')],_0x576068[_0x04b2('0x62')][_0x04b2('0x6d')],_0x576068['value']['end']);}break;case _0x04b2('0x6e'):var _0x364c5f=_0x5bd2e5[_0x04b2('0x62')][_0x04b2('0x30')](',')[_0x04b2('0x2d')](function(_0xd9cd8c){return Number(_0xd9cd8c);});_0x364c5f['forEach'](function(_0x1102da){_0xa8c71['or'](_0x04b2('0x6f'),'%,'+_0x1102da+',%');});_0x133f82=_[_0x04b2('0x70')](_0x133f82,_0x364c5f);break;case _0x04b2('0x71'):if(_0x5bd2e5[_0x04b2('0x66')]==='$substring'){_0x24709c[_0x44bc64]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x5bd2e5[_0x04b2('0x62')]+'%',null);}else{_0x57cd1c=_['find'](_0x290c77,[_0x04b2('0x2a'),_0x04b2('0x72')]);_0x5bd2e5[_0x04b2('0x4b')]=_0x04b2('0x72');_0x576068=as[_0x04b2('0x6b')](_0xf1cdb6,_0x57cd1c[_0x04b2('0x3c')],_0x5bd2e5);_0x24709c[_0x44bc64](_0x576068['text'],_0x576068['value'][_0x04b2('0x6d')],_0x576068[_0x04b2('0x62')][_0x04b2('0x1b')]);}break;case _0x04b2('0x73'):_0x576068=as[_0x04b2('0x6b')]('me',null,_0x5bd2e5);_0x24709c[_0x44bc64](_0x576068[_0x04b2('0x6c')],_0x576068[_0x04b2('0x62')][_0x04b2('0x6d')],_0x576068[_0x04b2('0x62')][_0x04b2('0x1b')]);break;}}else{var _0x576068=as[_0x04b2('0x6b')](_0xf1cdb6,_0x57cd1c[_0x04b2('0x3c')],_0x5bd2e5);_0x24709c[_0x44bc64](_0x576068[_0x04b2('0x6c')],_0x576068['value']['start'],_0x576068[_0x04b2('0x62')][_0x04b2('0x1b')]);}}}else{var _0x28648d=_(_0x507cce[_0x04b2('0x3f')])[_0x04b2('0x74')]()[_0x04b2('0x2d')](function(_0x12de9f){return _['some'](_0x290c77,[_0x04b2('0x2a'),_0x12de9f])?_0x12de9f:undefined;})['compact']()[_0x04b2('0x62')]();if(!_[_0x04b2('0x75')](_0x28648d)){_0x28648d['forEach'](function(_0x20cfc6){if(_0x20cfc6===_0x04b2('0x76')){_0x5179a1[_0x04b2('0x48')]('i.MailAccountId\x20IN\x20?',[]['concat'](_0x507cce['query'][_0x20cfc6]));}else if(_0x20cfc6==='createdAt'){var _0x4cb7dc=JSON[_0x04b2('0x77')](_0x507cce[_0x04b2('0x3f')][_0x20cfc6])['$gte'];var _0x16087c=JSON[_0x04b2('0x77')](_0x507cce[_0x04b2('0x3f')][_0x20cfc6])['$lte'];_0x5179a1[_0x04b2('0x48')](_0x04b2('0x78'),_0x4cb7dc,_0x16087c);}else{if(_0x507cce['query'][_0x20cfc6]===_0x04b2('0x79')){_0x5179a1[_0x04b2('0x48')]('i.'+_0x20cfc6+_0x04b2('0x7a'));}else{_0x5179a1[_0x04b2('0x48')]('i.'+_0x20cfc6+_0x04b2('0x7b'),_0x507cce['query'][_0x20cfc6]);}}});}if(_0x507cce[_0x04b2('0x3f')][_0x04b2('0x7c')]){if(_0x507cce[_0x04b2('0x3f')][_0x04b2('0x7c')]==0x1){_0x5179a1['having'](_0x04b2('0x7d'));}else{_0x5179a1[_0x04b2('0x63')](_0x04b2('0x7e'));}}if(_0x507cce[_0x04b2('0x3f')][_0x04b2('0x7f')]){_0x133f82=_[_0x04b2('0x80')](_0x507cce['query'][_0x04b2('0x7f')])?_0x507cce[_0x04b2('0x3f')]['tag']:new Array(_0x507cce[_0x04b2('0x3f')][_0x04b2('0x7f')]);_0x133f82[_0x04b2('0x31')](function(_0x93b0f9){_0xa8c71['or'](_0x04b2('0x6f'),'%,'+_0x93b0f9+',%');});}if(_0x507cce['query']['filter']){var _0x578580=_0x507cce[_0x04b2('0x3f')]['filter'][_0x04b2('0x81')]('\x5c','\x5c\x5c')[_0x04b2('0x81')]('\x27\x27',_0x04b2('0x82'));if(qs[_0x04b2('0x83')](_0x578580)){_0x24709c['or'](_0x04b2('0x84'),_0x578580+'%');}else if(qs[_0x04b2('0x85')](_0x578580)){_0x24709c['or'](_0x04b2('0x86'),_0x578580+'%');}else{_0x24709c['or'](_0x04b2('0x87'),qs[_0x04b2('0x69')](_0x578580))['or'](_0x04b2('0x88'),qs[_0x04b2('0x69')](_0x578580));}}}_0x5179a1[_0x04b2('0x48')](_0x24709c);_0x5179a1[_0x04b2('0x89')](_0x04b2('0x8a'));var _0x181515={'type':db[_0x04b2('0x8b')][_0x04b2('0x8c')][_0x04b2('0x8d')],'raw':!![]};var _0x55aab8=_0x5179a1['clone']();_0x55aab8[_0x04b2('0x4b')](_0x04b2('0x8a'));_0x55aab8[_0x04b2('0x4b')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x04b2('0x61'));if(_0x331d5c[_0x04b2('0x8e')]){_0x331d5c[_0x04b2('0x8e')][_0x04b2('0x31')](function(_0x400812){_0x5179a1['order']('i.'+_0x400812[0x0],_0x400812[0x1]===_0x04b2('0x8f')?![]:!![]);});}if(!_[_0x04b2('0x75')](_0x133f82)){_0x5179a1['having'](_0xa8c71);_0x55aab8[_0x04b2('0x48')](_0x04b2('0x90'),_0x133f82);}BPromise[_0x04b2('0x91')]()[_0x04b2('0x27')](function(){if(!_0x3486d8){if(_0x507cce[_0x04b2('0x3f')]['MailAccountId']||_0x507cce[_0x04b2('0x3f')][_0x04b2('0x92')])return;_0x55aab8[_0x04b2('0x48')](_0x04b2('0x93'));_0x5179a1[_0x04b2('0x48')]('i.MailAccountId\x20IS\x20NOT\x20NULL');return;}return _0x507cce['user'][_0x04b2('0x94')]({'attributes':['id'],'raw':!![]})[_0x04b2('0x27')](function(_0x1fb7e1){if(_['isEmpty'](_0x1fb7e1)){_0x55aab8[_0x04b2('0x48')](_0x04b2('0x95'));_0x5179a1[_0x04b2('0x48')]('i.MailAccountId\x20IS\x20NULL');}else{_0x55aab8[_0x04b2('0x48')]('i.MailAccountId\x20IN\x20?',_[_0x04b2('0x2d')](_0x1fb7e1,'id'));_0x5179a1[_0x04b2('0x48')](_0x04b2('0x96'),_[_0x04b2('0x2d')](_0x1fb7e1,'id'));}});})[_0x04b2('0x27')](function(){db['sequelize'][_0x04b2('0x3f')](_0x55aab8[_0x04b2('0x97')](),_0x181515)[_0x04b2('0x27')](function(_0x7a799e){_0x390dd6[_0x04b2('0x1e')]=_0x7a799e['length'];if(_0x390dd6['count']===0x0)return[];return db['sequelize']['query'](_0x53cef2[_0x04b2('0x97')](),_0x181515)[_0x04b2('0x27')](function(_0x2a7ee8){_0x4285ad=_[_0x04b2('0x98')](_0x2a7ee8,'id');_0x181515=_[_0x04b2('0x99')](_0x181515,{'model':db[_0x04b2('0x33')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x507cce[_0x04b2('0x3f')]['fields']){_0x331d5c[_0x04b2('0x43')][_0x04b2('0x31')](function(_0xc281b2){_0x5179a1['field']('i.'+_0xc281b2);});}else{_0x5179a1[_0x04b2('0x4b')](_0x04b2('0x9a'),_0x04b2('0x61'));_0x5179a1[_0x04b2('0x4b')]('a.key',_0x04b2('0x9b'));_0x5179a1[_0x04b2('0x4b')](_0x04b2('0x9c'),_0x04b2('0x9d'));_0x5179a1[_0x04b2('0x4b')](_0x04b2('0x8a'));_0x5179a1[_0x04b2('0x4b')](_0x04b2('0x9e'));_0x5179a1[_0x04b2('0x4b')]('i.updatedAt');_0x5179a1[_0x04b2('0x4b')](_0x04b2('0x9f'));_0x5179a1[_0x04b2('0x4b')](_0x04b2('0xa0'));_0x5179a1[_0x04b2('0x4b')](_0x04b2('0xa1'));_0x5179a1['field'](_0x04b2('0xa2'));_0x5179a1[_0x04b2('0x4b')](_0x04b2('0xa3'));_0x5179a1[_0x04b2('0x4b')](_0x04b2('0xa4'));_0x5179a1[_0x04b2('0x4b')]('i.disposition');_0x5179a1[_0x04b2('0x4b')](_0x04b2('0xa5'));_0x5179a1[_0x04b2('0x4b')]('i.to');_0x5179a1[_0x04b2('0x4b')](_0x04b2('0xa6'));_0x5179a1[_0x04b2('0x4b')]('i.MailAccountId');_0x5179a1['field'](_0x04b2('0xa7'));_0x5179a1['field'](_0x04b2('0xa8'),_0x04b2('0xa9'));_0x5179a1[_0x04b2('0x4b')](_0x04b2('0xaa'),_0x04b2('0xab'));_0x5179a1[_0x04b2('0x4b')](_0x04b2('0xac'),_0x04b2('0xad'));_0x5179a1[_0x04b2('0x4b')]('c.phone',_0x04b2('0xae'));_0x5179a1[_0x04b2('0x4b')](_0x04b2('0xaf'),_0x04b2('0xb0'));_0x5179a1['field']('c.fax',_0x04b2('0xb1'));_0x5179a1[_0x04b2('0x4b')](_0x04b2('0xb2'),_0x04b2('0xb3'));_0x5179a1['field']('o.internal',_0x04b2('0xb4'));_0x5179a1[_0x04b2('0x4b')](_0x04b2('0xb5'),_0x04b2('0xb6'));}_0x5179a1['limit'](_0x331d5c[_0x04b2('0x20')]);_0x5179a1[_0x04b2('0x1f')](_0x331d5c[_0x04b2('0x1f')]);return db['sequelize'][_0x04b2('0x3f')](_0x5179a1['toString'](),_0x181515);})[_0x04b2('0x27')](function(_0x19dad2){_0x2bcae2[_0x04b2('0x48')](_0x04b2('0xb7'),_[_0x04b2('0x2d')](_0x19dad2,'id'));return db[_0x04b2('0xb8')][_0x04b2('0x3f')](_0x2bcae2[_0x04b2('0x97')](),_0x181515)[_0x04b2('0x27')](function(_0x948cbb){var _0x3c6c2e=_[_0x04b2('0xb9')](_0x948cbb,'MailInteractionId');var _0x15c0f5=[];return db[_0x04b2('0xba')]['findOne']({'attributes':[_0x04b2('0xbb')],'raw':!![]})['then'](function(_0x11df55){var _0x304cf8=_0x11df55['enableEmailPreview'];_0x19dad2[_0x04b2('0x31')](function(_0x574a7f){_0x15c0f5[_0x04b2('0x32')](updateMailInteraction(_0x574a7f,_0x4285ad,_0x3c6c2e,_0x304cf8));});return BPromise['all'](_0x15c0f5);});});});})['then'](function(_0x4dc4b3){_0x390dd6[_0x04b2('0xbc')]=_0x4dc4b3;return _0x390dd6;})[_0x04b2('0x27')](respondWithFilteredResult(_0x5ea011,_0x331d5c));})[_0x04b2('0x38')](handleError(_0x5ea011,null));};exports[_0x04b2('0xbd')]=function(_0xd9bc33,_0x487dad){var _0x1c62b6={'raw':![],'where':{'id':_0xd9bc33[_0x04b2('0xbe')]['id']}},_0xb68974={};_0xb68974[_0x04b2('0x3e')]=_[_0x04b2('0x74')](db['MailInteraction'][_0x04b2('0x3a')]);_0xb68974[_0x04b2('0x3f')]=_[_0x04b2('0x74')](_0xd9bc33[_0x04b2('0x3f')]);_0xb68974[_0x04b2('0x40')]=_['intersection'](_0xb68974[_0x04b2('0x3e')],_0xb68974[_0x04b2('0x3f')]);_0x1c62b6[_0x04b2('0x43')]=_[_0x04b2('0x41')](_0xb68974[_0x04b2('0x3e')],qs[_0x04b2('0x42')](_0xd9bc33[_0x04b2('0x3f')][_0x04b2('0x42')]));_0x1c62b6[_0x04b2('0x43')]=_0x1c62b6['attributes'][_0x04b2('0x44')]?_0x1c62b6[_0x04b2('0x43')]:_0xb68974[_0x04b2('0x3e')];if(_0xd9bc33[_0x04b2('0x3f')][_0x04b2('0xbf')]){_0x1c62b6['include']=[{'all':!![]}];}_0x1c62b6=_[_0x04b2('0x99')]({},_0x1c62b6,_0xd9bc33[_0x04b2('0xc0')]);return db[_0x04b2('0x33')][_0x04b2('0xc1')](_0x1c62b6)[_0x04b2('0x27')](handleEntityNotFound(_0x487dad,null))[_0x04b2('0x27')](respondWithResult(_0x487dad,null))[_0x04b2('0x38')](handleError(_0x487dad,null));};exports[_0x04b2('0xc2')]=function(_0x32680c,_0x45bd98){return db[_0x04b2('0x33')][_0x04b2('0xc2')](_0x32680c[_0x04b2('0xc3')],{})[_0x04b2('0x27')](respondWithResult(_0x45bd98,0xc9))['catch'](handleError(_0x45bd98,null));};exports[_0x04b2('0x25')]=function(_0x54b9e1,_0x1f5db2){if(_0x54b9e1[_0x04b2('0xc3')]['id']){delete _0x54b9e1['body']['id'];}return db[_0x04b2('0x33')][_0x04b2('0xc1')]({'where':{'id':_0x54b9e1[_0x04b2('0xbe')]['id']}})[_0x04b2('0x27')](handleEntityNotFound(_0x1f5db2,null))[_0x04b2('0x27')](saveUpdates(_0x54b9e1['body'],null))[_0x04b2('0x27')](respondWithResult(_0x1f5db2,null))[_0x04b2('0x38')](handleError(_0x1f5db2,null));};exports['destroy']=function(_0x53f6c9,_0x37ba6c){return db[_0x04b2('0x33')]['find']({'where':{'id':_0x53f6c9[_0x04b2('0xbe')]['id']}})[_0x04b2('0x27')](handleEntityNotFound(_0x37ba6c,null))[_0x04b2('0x27')](removeEntity(_0x37ba6c,null))[_0x04b2('0x38')](handleError(_0x37ba6c,null));};exports[_0x04b2('0xc4')]=function(_0x40ffeb,_0x241323){return db[_0x04b2('0x33')]['describe']()[_0x04b2('0x27')](respondWithResult(_0x241323,null))[_0x04b2('0x38')](handleError(_0x241323,null));};exports[_0x04b2('0xc5')]=function(_0x13fd94,_0x4c2ec9,_0x1098ae){return db[_0x04b2('0xc6')]['find']({'where':{'id':_0x13fd94[_0x04b2('0xbe')]['id']}})[_0x04b2('0x27')](handleEntityNotFound(_0x4c2ec9,null))[_0x04b2('0x27')](function(_0x1e3697){if(_0x1e3697){return _0x1e3697[_0x04b2('0xc5')](_0x13fd94[_0x04b2('0xc3')][_0x04b2('0xc7')],_[_0x04b2('0xc8')](_0x13fd94['body'],[_0x04b2('0xc7'),'id'])||{});}})[_0x04b2('0x27')](respondWithResult(_0x4c2ec9,null))[_0x04b2('0x38')](handleError(_0x4c2ec9,null));};exports[_0x04b2('0xc9')]=function(_0x1ad872,_0x15b247,_0x5e4b06){var _0x503620={'raw':![],'where':{}};var _0x3bf13b={};var _0x157e12={'count':0x0,'rows':[]};return db[_0x04b2('0x33')]['findOne']({'where':{'id':_0x1ad872[_0x04b2('0xbe')]['id']}})[_0x04b2('0x27')](handleEntityNotFound(_0x15b247,null))[_0x04b2('0x27')](function(_0x581060){if(_0x581060){_0x3bf13b[_0x04b2('0x3e')]=_[_0x04b2('0x74')](db[_0x04b2('0xc6')]['rawAttributes']);_0x3bf13b[_0x04b2('0x3f')]=_[_0x04b2('0x74')](_0x1ad872[_0x04b2('0x3f')]);_0x3bf13b[_0x04b2('0x40')]=_[_0x04b2('0x41')](_0x3bf13b['model'],_0x3bf13b['query']);_0x503620['attributes']=_[_0x04b2('0x41')](_0x3bf13b['model'],qs[_0x04b2('0x42')](_0x1ad872[_0x04b2('0x3f')][_0x04b2('0x42')]));_0x503620['attributes']=_0x503620[_0x04b2('0x43')]['length']?_0x503620['attributes']:_0x3bf13b[_0x04b2('0x3e')];if(!_0x1ad872[_0x04b2('0x3f')][_0x04b2('0x45')](_0x04b2('0x46'))){_0x503620['limit']=qs[_0x04b2('0x20')](_0x1ad872[_0x04b2('0x3f')][_0x04b2('0x20')]);_0x503620[_0x04b2('0x1f')]=qs[_0x04b2('0x1f')](_0x1ad872[_0x04b2('0x3f')][_0x04b2('0x1f')]);}_0x503620[_0x04b2('0x8e')]=qs[_0x04b2('0x47')](_0x1ad872[_0x04b2('0x3f')][_0x04b2('0x47')]);_0x503620[_0x04b2('0x48')]=qs['filters'](_[_0x04b2('0x49')](_0x1ad872['query'],_0x3bf13b[_0x04b2('0x40')]));_0x503620[_0x04b2('0x48')][_0x04b2('0xca')]=_0x581060['id'];if(_0x1ad872[_0x04b2('0x3f')][_0x04b2('0xcb')]){_0x503620[_0x04b2('0x48')]=_[_0x04b2('0x99')](_0x503620[_0x04b2('0x48')],{'$or':_[_0x04b2('0x2d')](_0x503620[_0x04b2('0x43')],function(_0x4650a8){var _0x6e5d51={};_0x6e5d51[_0x4650a8]={'$like':'%'+_0x1ad872['query'][_0x04b2('0xcb')]+'%'};return _0x6e5d51;})});}if(_0x1ad872['query'][_0x04b2('0xcc')]){var _0x45ec9d=_0x1ad872['query'][_0x04b2('0xcc')][_0x04b2('0x30')](',');var _0x3a68c2={};_0x3a68c2[_0x45ec9d[0x0]]={'$gte':moment(_0x45ec9d[0x1])[_0x04b2('0xcd')](_0x04b2('0xce'))};_0x503620[_0x04b2('0x48')]=_[_0x04b2('0x99')](_0x503620[_0x04b2('0x48')],_0x3a68c2);}_0x503620=_['merge']({},_0x503620,_0x1ad872[_0x04b2('0xc0')]);return db[_0x04b2('0xc6')][_0x04b2('0x1e')]({'where':_0x503620[_0x04b2('0x48')]})[_0x04b2('0x27')](function(_0x479538){_0x157e12['count']=_0x479538;if(_0x1ad872[_0x04b2('0x3f')][_0x04b2('0xbf')]){_0x503620[_0x04b2('0xcf')]=[{'all':!![]}];}return db[_0x04b2('0xc6')][_0x04b2('0xd0')](_0x503620);})[_0x04b2('0x27')](function(_0x7cdb55){_0x157e12['rows']=_0x7cdb55;return _0x157e12;});}})[_0x04b2('0x27')](respondWithFilteredResult(_0x15b247,_0x503620))[_0x04b2('0x38')](handleError(_0x15b247,null));};exports['addTags']=function(_0x28aa5a,_0x5d42e7,_0x573116){return db[_0x04b2('0x33')][_0x04b2('0xc1')]({'where':{'id':_0x28aa5a[_0x04b2('0xbe')]['id']}})['then'](handleEntityNotFound(_0x5d42e7,null))[_0x04b2('0x27')](function(_0x570b16){if(_0x570b16){return _0x570b16[_0x04b2('0xd1')](_0x28aa5a[_0x04b2('0xc3')]['ids'],_[_0x04b2('0xc8')](_0x28aa5a[_0x04b2('0xc3')],[_0x04b2('0xc7'),'id'])||{})[_0x04b2('0xd2')](function(){return db['Tag'][_0x04b2('0xd0')]({'attributes':['id',_0x04b2('0x2a'),_0x04b2('0x4c')],'where':{'id':_0x28aa5a[_0x04b2('0xc3')][_0x04b2('0xc7')]}});})[_0x04b2('0x27')](function(_0xdb1851){socket[_0x04b2('0xd3')](_0x04b2('0xd4'),{'id':Number(_0x28aa5a[_0x04b2('0xbe')]['id']),'tags':_0xdb1851||[]});return{'id':Number(_0x28aa5a[_0x04b2('0xbe')]['id']),'tags':_0xdb1851||[]};});}})['then'](respondWithResult(_0x5d42e7,null))['catch'](handleError(_0x5d42e7,null));};exports[_0x04b2('0xd5')]=function(_0x1d0e1d,_0x50d1db,_0x257313){return db[_0x04b2('0x33')][_0x04b2('0xc1')]({'where':{'id':_0x1d0e1d[_0x04b2('0xbe')]['id']}})['then'](handleEntityNotFound(_0x50d1db,null))[_0x04b2('0x27')](function(_0x4c41be){if(_0x4c41be){return _0x4c41be['removeTags'](_0x1d0e1d[_0x04b2('0x3f')][_0x04b2('0xc7')]);}})[_0x04b2('0x27')](respondWithStatusCode(_0x50d1db,null))['catch'](handleError(_0x50d1db,null));};exports[_0x04b2('0xd6')]=function(_0x3d545f,_0x399ef8){var _0x1379ef=moment()[_0x04b2('0xd7')]()['toString']();var _0x31cf7a=path['join'](config[_0x04b2('0xd8')],_0x04b2('0xd9'),_0x04b2('0xda'),_0x04b2('0xdb'));var _0x7be1e2=path[_0x04b2('0xdc')](config[_0x04b2('0xd8')],_0x04b2('0xd9'),_0x04b2('0xda'),_0x04b2('0xdd'));var _0x1568cf=path[_0x04b2('0xdc')](_0x31cf7a,_0x1379ef);var _0x3f6f40=util[_0x04b2('0xcd')](_0x04b2('0xde'),_0x3d545f[_0x04b2('0xbe')]['id'],_0x1379ef);var _0x37e1e3=path[_0x04b2('0xdc')](_0x31cf7a,_0x3f6f40);var _0x57be54=[];if(_0x3d545f['query'][_0x04b2('0xdd')]){_0x57be54[_0x04b2('0x32')]({'model':db['Attachment'],'as':_0x04b2('0xdf'),'raw':!![]});}var _0x15281e=[{'model':db[_0x04b2('0xc6')],'as':'Messages','attributes':['id',_0x04b2('0xc3'),_0x04b2('0x4d'),'to','cc',_0x04b2('0xe0'),_0x04b2('0xe1'),_0x04b2('0xe2')],'where':{'secret':![]},'order':qs[_0x04b2('0x47')]('id'),'include':_0x57be54}];return db[_0x04b2('0x33')][_0x04b2('0xc1')]({'where':{'id':_0x3d545f[_0x04b2('0xbe')]['id']},'include':_0x15281e})['then'](handleEntityNotFound(_0x399ef8,null))[_0x04b2('0x27')](function(_0x15ed70){if(_0x15ed70&&_0x15ed70['Messages']){var _0x2ce44b=_0x15ed70[_0x04b2('0xe3')]({'plain':!![]});fs[_0x04b2('0xe4')](_0x1568cf);return BPromise[_0x04b2('0xe5')](_0x2ce44b['Messages'],function(_0x456221,_0x5286ba){var _0x4a948a={'from':_0x456221[_0x04b2('0x4d')],'to':_0x456221['to'],'subject':_0x456221[_0x04b2('0xe1')],'html':_0x456221[_0x04b2('0xc3')],'headers':{'Date':moment(_0x456221['createdAt'])[_0x04b2('0xcd')](_0x04b2('0xe6'))},'attachments':[]};if(_0x456221['cc']){_0x4a948a[_0x04b2('0xe7')]['Cc']=_0x456221['cc'];}if(_0x456221['bcc']){_0x4a948a[_0x04b2('0xe7')][_0x04b2('0xe8')]=_0x456221['bcc'];}return new BPromise(function(_0x2289d8,_0x4c61d0){if(_0x456221['Attachments']){for(var _0x2beffb=0x0;_0x2beffb<_0x456221[_0x04b2('0xdf')][_0x04b2('0x44')];_0x2beffb++){var _0x186939=_0x456221[_0x04b2('0xdf')][_0x2beffb];var _0x182af7=path[_0x04b2('0xdc')](_0x7be1e2,_0x186939[_0x04b2('0xe9')]);if(fs[_0x04b2('0xea')](_0x182af7)){_0x4a948a[_0x04b2('0xdd')][_0x04b2('0x32')]({'name':_0x186939[_0x04b2('0x2a')],'contentType':_0x186939[_0x04b2('0x3c')],'data':fs[_0x04b2('0xeb')](_0x182af7)});}}}emlformat['build'](_0x4a948a,function(_0x3e4404,_0xecf4ea){if(_0x3e4404)return _0x4c61d0(_0x3e4404);fs[_0x04b2('0xec')](path[_0x04b2('0xdc')](_0x1568cf,util['format'](_0x04b2('0xed'),_0x5286ba)),_0xecf4ea);return _0x2289d8(_0xecf4ea);});});})['then'](function(){return new BPromise(function(_0x8c9997,_0x3de20){zipdir(_0x1568cf,{'saveTo':_0x37e1e3},function(_0x2b7170,_0xee07df){if(_0x2b7170)return _0x3de20(_0x2b7170);return _0x8c9997(_0xee07df);});})[_0x04b2('0x27')](function(){return new BPromise(function(_0xb21921,_0x16f74e){rimraf(_0x1568cf,function(_0x1a051b){if(_0x1a051b)_0x16f74e(_0x1a051b);return _0xb21921();});});})['then'](function(){return _0x399ef8[_0x04b2('0xd6')](_0x37e1e3,_0x3f6f40,function(_0x41b563){if(_0x41b563){console[_0x04b2('0xee')](_0x04b2('0xef'),_0x41b563);}else{fs['unlinkSync'](_0x37e1e3);}});});});}else{return _0x399ef8[_0x04b2('0x1a')](0xc8);}})[_0x04b2('0x38')](handleError(_0x399ef8,null));};