a420d3baabb2a5799fee49d7ce1ea6f3146fdca1
[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 _0xa991=['send','Users','map','fullname','TagIds','split','forEach','Tags','push','MailInteraction','findOne','lastMsgBody','lastMsgText','trimStart','fromString','rawAttributes','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','hasOwnProperty','offset','order','sort','where','pick','select','field','color','u.id','u.fullname','ui.MailInteractionId','from','user_has_mail_interactions','left_join','users','mail_interactions','cm_contacts','a.id\x20=\x20i.MailAccountId','mail_interaction_has_tags','tools_tags','t.id\x20=\x20it.TagId','expr','parseSearch','sqlOperator','conditions','length','find','value','having','`\x20=\x200','Contact','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','text','start','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','plainBody','some','compact','isEmpty','i.MailAccountId\x20IN\x20?','createdAt','parse','$gte','$lte','null','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','\x27\x27\x27\x27','isNumeric','i.id\x20LIKE\x20?','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','QueryTypes','SELECT','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','unreadMessages','DESC','t.id\x20IN\x20?','resolve','MailAccountId','journey','user','getMailAccounts','i.MailAccountId\x20IS\x20NULL','sequelize','toString','merge','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','i.createdAt','i.updatedAt','i.closedAt','i.attach','i.subject','i.disposition','i.to','i.ContactId','i.MailAccountId','i.UserId','c.firstName','Contact.firstName','c.lastName','c.email','Contact.email','c.phone','Contact.phone','c.mobile','c.fax','Contact.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','groupBy','enableEmailPreview','all','show','params','includeAll','include','options','catch','create','body','destroy','describe','MailMessage','addMessage','omit','ids','getMessages','nolimit','MailInteractionId','findAll','rows','addTags','setTags','spread','emit','mailInteractionTags:save','removeTags','download','join','root','server','files','tmp','attachments','transcript-%d-%s.zip','Attachment','Messages','bcc','subject','get','format','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','Attachments','basename','existsSync','build','writeFileSync','message%d.eml','unlinkSync','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','to-csv','lodash','crypto','jsforce','desk.js','querystring','ioredis','../../components/auth/service','../../components/parsers/qs','api','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./mailInteraction.socket','status','end','count','limit','set','Content-Range','json','reject','save','update','then','sendStatus','error','name'];(function(_0x568f96,_0x32d489){var _0x5a053a=function(_0x5570ce){while(--_0x5570ce){_0x568f96['push'](_0x568f96['shift']());}};_0x5a053a(++_0x32d489);}(_0xa991,0xc0));var _0x1a99=function(_0x6cf19c,_0x2f3f02){_0x6cf19c=_0x6cf19c-0x0;var _0xce14f3=_0xa991[_0x6cf19c];return _0xce14f3;};'use strict';var pdf=require(_0x1a99('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x1a99('0x1'));var zipdir=require(_0x1a99('0x2'));var jsonpatch=require(_0x1a99('0x3'));var rp=require(_0x1a99('0x4'));var moment=require(_0x1a99('0x5'));var BPromise=require(_0x1a99('0x6'));var Mustache=require(_0x1a99('0x7'));var util=require(_0x1a99('0x8'));var path=require('path');var sox=require('sox');var csv=require(_0x1a99('0x9'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x1a99('0xa'));var squel=require('squel');var crypto=require(_0x1a99('0xb'));var jsforce=require(_0x1a99('0xc'));var deskjs=require(_0x1a99('0xd'));var toCsv=require('to-csv');var querystring=require(_0x1a99('0xe'));var Papa=require('papaparse');var htmlToText=require('html-to-text');var Redis=require(_0x1a99('0xf'));var authService=require(_0x1a99('0x10'));var qs=require(_0x1a99('0x11'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require('../../config/logger')(_0x1a99('0x12'));var utils=require('../../config/utils');var config=require('../../config/environment');var db=require(_0x1a99('0x13'))['db'];config[_0x1a99('0x14')]=_[_0x1a99('0x15')](config['redis'],{'host':_0x1a99('0x16'),'port':0x18eb});var socket=require(_0x1a99('0x17'))(new Redis(config[_0x1a99('0x14')]));require(_0x1a99('0x18'))['register'](socket);function respondWithStatusCode(_0x5944be,_0x19f58){_0x19f58=_0x19f58||0xcc;return function(_0x1f0f54){if(_0x1f0f54){return _0x5944be['sendStatus'](_0x19f58);}return _0x5944be[_0x1a99('0x19')](_0x19f58)[_0x1a99('0x1a')]();};}function respondWithResult(_0x13521d,_0x4fbdee){_0x4fbdee=_0x4fbdee||0xc8;return function(_0x4d0ba0){if(_0x4d0ba0){return _0x13521d[_0x1a99('0x19')](_0x4fbdee)['json'](_0x4d0ba0);}};}function respondWithFilteredResult(_0x430151,_0x9a3fe6){return function(_0x3d8ef5){if(_0x3d8ef5){var _0x3dc6b5=_0x3d8ef5[_0x1a99('0x1b')],_0x3146d0=_0x9a3fe6['offset'],_0x163dfe=_0x9a3fe6['offset']+_0x9a3fe6[_0x1a99('0x1c')],_0x75fba6;if(_0x163dfe>=_0x3dc6b5){_0x163dfe=_0x3dc6b5;_0x75fba6=0xc8;}else{_0x75fba6=0xce;}_0x430151['status'](_0x75fba6);return _0x430151[_0x1a99('0x1d')](_0x1a99('0x1e'),_0x3146d0+'-'+_0x163dfe+'/'+_0x3dc6b5)[_0x1a99('0x1f')](_0x3d8ef5);}return null;};}function patchUpdates(_0xf31155){return function(_0x2a874b){try{jsonpatch['apply'](_0x2a874b,_0xf31155,!![]);}catch(_0x3812c4){return BPromise[_0x1a99('0x20')](_0x3812c4);}return _0x2a874b[_0x1a99('0x21')]();};}function saveUpdates(_0x408406,_0x2167a1){return function(_0x397d0a){if(_0x397d0a){return _0x397d0a[_0x1a99('0x22')](_0x408406)['then'](function(_0x2082d3){return _0x2082d3;});}return null;};}function removeEntity(_0x1db7f0,_0x5ae821){return function(_0x439fb5){if(_0x439fb5){return _0x439fb5['destroy']()[_0x1a99('0x23')](function(){_0x1db7f0['status'](0xcc)[_0x1a99('0x1a')]();});}};}function handleEntityNotFound(_0x9ea715,_0x1263ed){return function(_0x9c288a){if(!_0x9c288a){_0x9ea715[_0x1a99('0x24')](0x194);}return _0x9c288a;};}function handleError(_0x547185,_0x335fa0){_0x335fa0=_0x335fa0||0x1f4;return function(_0x4b69e5){logger[_0x1a99('0x25')](_0x4b69e5['stack']);if(_0x4b69e5['name']){delete _0x4b69e5[_0x1a99('0x26')];}_0x547185['status'](_0x335fa0)[_0x1a99('0x27')](_0x4b69e5);};}function getInteractionUsers(_0xe69dd6,_0x589a80){return new BPromise(function(_0x5f561b,_0x2d08bc){try{if(_0x589a80[_0xe69dd6['id']]){_0xe69dd6[_0x1a99('0x28')]=_[_0x1a99('0x29')](_0x589a80[_0xe69dd6['id']],function(_0x38c5f4){return{'id':_0x38c5f4['id'],'fullname':_0x38c5f4[_0x1a99('0x2a')]};});}}catch(_0x4eb491){_0x2d08bc(_0x4eb491);}_0x5f561b(_0xe69dd6);});}function getInteractionTags(_0x6c4e92,_0x44a1b7){return new BPromise(function(_0x41b1b7,_0x39b379){try{if(_0x6c4e92[_0x1a99('0x2b')]){_0x6c4e92['Tags']=[];_0x6c4e92[_0x1a99('0x2b')][_0x1a99('0x2c')](',')[_0x1a99('0x2d')](function(_0x483dcc){_0x6c4e92[_0x1a99('0x2e')][_0x1a99('0x2f')](_0x44a1b7[_0x483dcc]);});}delete _0x6c4e92[_0x1a99('0x2b')];}catch(_0x29de1e){_0x39b379(_0x29de1e);}_0x41b1b7(_0x6c4e92);});}function getLastMessageText(_0x1bc117){return new BPromise(function(_0x198489,_0x3c5fbf){return db[_0x1a99('0x30')][_0x1a99('0x31')]({'where':{'id':_0x1bc117['id']},'attributes':[_0x1a99('0x32'),_0x1a99('0x33')],'raw':!![]})[_0x1a99('0x23')](function(_0x27016a){if(!_0x27016a[_0x1a99('0x33')]){_0x1bc117[_0x1a99('0x33')]=_[_0x1a99('0x34')](htmlToText[_0x1a99('0x35')](_0x27016a[_0x1a99('0x32')],{'preserveNewlines':!![],'singleNewLineParagraphs':!![],'uppercaseHeadings':![],'noLinkBrackets':!![],'ignoreImage':!![]}));}else{_0x1bc117[_0x1a99('0x33')]=_0x27016a['lastMsgText'];}_0x198489(_0x1bc117);})['catch'](function(_0xf2df38){_0x3c5fbf(_0xf2df38);});});}function updateMailInteraction(_0x17615f,_0x1cada5,_0x1f62d2,_0x426e4b){return new BPromise(function(_0xaf5b45,_0x2ca9ff){return getInteractionUsers(_0x17615f,_0x1f62d2)['then'](function(_0x252c66){return getInteractionTags(_0x252c66,_0x1cada5);})['then'](function(_0x4fb4bc){if(_0x426e4b){_0xaf5b45(getLastMessageText(_0x4fb4bc));}else{_0xaf5b45(_0x4fb4bc);}})['catch'](function(_0xf5a8a0){_0x2ca9ff(_0xf5a8a0);});});}exports['index']=function(_0x506791,_0x431fac){var _0x5d3163={},_0x575f01={},_0x31caea={'count':0x0,'rows':[]};var _0x2a0ffe=_['map'](db[_0x1a99('0x30')][_0x1a99('0x36')],function(_0x1540b4){return{'name':_0x1540b4[_0x1a99('0x37')],'type':_0x1540b4[_0x1a99('0x38')][_0x1a99('0x39')]};});_0x575f01['model']=_[_0x1a99('0x29')](_0x2a0ffe,_0x1a99('0x26'));_0x575f01[_0x1a99('0x3a')]=_[_0x1a99('0x3b')](_0x506791[_0x1a99('0x3a')]);_0x575f01[_0x1a99('0x3c')]=_[_0x1a99('0x3d')](_0x575f01[_0x1a99('0x3e')],_0x575f01[_0x1a99('0x3a')]);_0x5d3163[_0x1a99('0x3f')]=_[_0x1a99('0x3d')](_0x575f01['model'],qs['fields'](_0x506791[_0x1a99('0x3a')][_0x1a99('0x40')]));_0x5d3163[_0x1a99('0x3f')]=_0x5d3163[_0x1a99('0x3f')]['length']?_0x5d3163[_0x1a99('0x3f')]:_0x575f01[_0x1a99('0x3e')];if(!_0x506791['query'][_0x1a99('0x41')]('nolimit')){_0x5d3163[_0x1a99('0x1c')]=qs[_0x1a99('0x1c')](_0x506791['query'][_0x1a99('0x1c')]);_0x5d3163[_0x1a99('0x42')]=qs['offset'](_0x506791[_0x1a99('0x3a')][_0x1a99('0x42')]);}_0x5d3163[_0x1a99('0x43')]=qs[_0x1a99('0x44')](_0x506791['query']['sort']);_0x5d3163[_0x1a99('0x45')]=qs[_0x1a99('0x3c')](_[_0x1a99('0x46')](_0x506791[_0x1a99('0x3a')],_0x575f01['filters']));var _0x472167=[];var _0x14c52a=squel[_0x1a99('0x47')]()['field']('id')[_0x1a99('0x48')](_0x1a99('0x26'))[_0x1a99('0x48')](_0x1a99('0x49'))['from']('tools_tags');var _0xd721f8=squel[_0x1a99('0x47')]()[_0x1a99('0x48')](_0x1a99('0x4a'))[_0x1a99('0x48')](_0x1a99('0x4b'))[_0x1a99('0x48')](_0x1a99('0x4c'))[_0x1a99('0x4d')](_0x1a99('0x4e'),'ui')[_0x1a99('0x4f')](_0x1a99('0x50'),'u','u.id\x20=\x20ui.UserId');var _0x137838=squel[_0x1a99('0x47')]()[_0x1a99('0x4d')](_0x1a99('0x51'),'i')[_0x1a99('0x4f')](_0x1a99('0x52'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')[_0x1a99('0x4f')](_0x1a99('0x50'),'o','o.id\x20=\x20i.UserId')[_0x1a99('0x4f')]('mail_accounts','a',_0x1a99('0x53'))[_0x1a99('0x4f')]('mail_messages','me','me.MailInteractionId\x20=\x20i.id')['left_join'](_0x1a99('0x54'),'it','it.MailInteractionId\x20=\x20i.id')['left_join'](_0x1a99('0x55'),'t',_0x1a99('0x56'));var _0x21babb=squel[_0x1a99('0x57')]();var _0x7328b7=[];var _0x263679=squel[_0x1a99('0x57')]();var _0x405435;if(_0x506791[_0x1a99('0x3a')]['search']){_0x405435=as[_0x1a99('0x58')](_0x506791[_0x1a99('0x3a')]['search']);var _0x288e8e=_0x405435[_0x1a99('0x59')];for(var _0x5cb756=0x0;_0x5cb756<_0x405435[_0x1a99('0x5a')][_0x1a99('0x5b')];_0x5cb756++){var _0x1738c2=_0x405435[_0x1a99('0x5a')][_0x5cb756];var _0x54d0bc='i';var _0x328f1a=_[_0x1a99('0x5c')](_0x2a0ffe,[_0x1a99('0x26'),_0x1738c2[_0x1a99('0x48')]]);if(!_0x328f1a){switch(_0x1738c2[_0x1a99('0x48')]){case'unreadMessages':if(_0x1738c2[_0x1a99('0x5d')]==0x1){_0x137838[_0x1a99('0x5e')]('`'+_0x1738c2[_0x1a99('0x48')]+_0x1a99('0x5f'));}else{_0x137838[_0x1a99('0x5e')]('`'+_0x1738c2['field']+'`\x20>\x200');}break;case _0x1a99('0x60'):if(_0x1738c2['operator']==='$substring'){if(_0x1738c2[_0x1a99('0x5d')]['split']('\x20')[_0x1a99('0x5b')]>0x1){_0x21babb[_0x288e8e](_0x1a99('0x61'),qs['getFullTextValue'](_0x1738c2[_0x1a99('0x5d')]),null);}else{var _0xd7c3bd='%'+_0x1738c2['value']+'%';_0x21babb[_0x288e8e](_0x1a99('0x62'),_0xd7c3bd,_0xd7c3bd,_0xd7c3bd);}}else{_0x328f1a=_['find'](_0x2a0ffe,[_0x1a99('0x26'),_0x1a99('0x63')]);_0x1738c2[_0x1a99('0x48')]=_0x1a99('0x63');_0x5917f0=as[_0x1a99('0x64')](_0x54d0bc,_0x328f1a['type'],_0x1738c2);_0x21babb[_0x288e8e](_0x5917f0[_0x1a99('0x65')],_0x5917f0[_0x1a99('0x5d')][_0x1a99('0x66')],_0x5917f0[_0x1a99('0x5d')][_0x1a99('0x1a')]);}break;case'Tag':var _0x5b71c6=_0x1738c2['value'][_0x1a99('0x2c')](',')[_0x1a99('0x29')](function(_0x245faa){return Number(_0x245faa);});_0x5b71c6[_0x1a99('0x2d')](function(_0xc0357e){_0x263679['or'](_0x1a99('0x67'),'%,'+_0xc0357e+',%');});_0x7328b7=_[_0x1a99('0x68')](_0x7328b7,_0x5b71c6);break;case _0x1a99('0x69'):if(_0x1738c2['operator']==='$substring'){_0x21babb[_0x288e8e](_0x1a99('0x6a'),'%'+_0x1738c2['value']+'%',null);}else{_0x328f1a=_[_0x1a99('0x5c')](_0x2a0ffe,[_0x1a99('0x26'),_0x1a99('0x6b')]);_0x1738c2[_0x1a99('0x48')]=_0x1a99('0x6b');_0x5917f0=as[_0x1a99('0x64')](_0x54d0bc,_0x328f1a['type'],_0x1738c2);_0x21babb[_0x288e8e](_0x5917f0[_0x1a99('0x65')],_0x5917f0[_0x1a99('0x5d')][_0x1a99('0x66')],_0x5917f0[_0x1a99('0x5d')][_0x1a99('0x1a')]);}break;case _0x1a99('0x6c'):_0x5917f0=as['buildExpression']('me',null,_0x1738c2);_0x21babb[_0x288e8e](_0x5917f0[_0x1a99('0x65')],_0x5917f0[_0x1a99('0x5d')]['start'],_0x5917f0[_0x1a99('0x5d')]['end']);break;}}else{var _0x5917f0=as[_0x1a99('0x64')](_0x54d0bc,_0x328f1a[_0x1a99('0x38')],_0x1738c2);_0x21babb[_0x288e8e](_0x5917f0[_0x1a99('0x65')],_0x5917f0[_0x1a99('0x5d')][_0x1a99('0x66')],_0x5917f0[_0x1a99('0x5d')][_0x1a99('0x1a')]);}}}else{var _0x2b2de4=_(_0x506791[_0x1a99('0x3a')])[_0x1a99('0x3b')]()[_0x1a99('0x29')](function(_0x11439c){return _[_0x1a99('0x6d')](_0x2a0ffe,[_0x1a99('0x26'),_0x11439c])?_0x11439c:undefined;})[_0x1a99('0x6e')]()[_0x1a99('0x5d')]();if(!_[_0x1a99('0x6f')](_0x2b2de4)){_0x2b2de4['forEach'](function(_0x70c550){if(_0x70c550==='MailAccountId'){_0x137838[_0x1a99('0x45')](_0x1a99('0x70'),[]['concat'](_0x506791[_0x1a99('0x3a')][_0x70c550]));}else if(_0x70c550===_0x1a99('0x71')){var _0x48a74c=JSON[_0x1a99('0x72')](_0x506791[_0x1a99('0x3a')][_0x70c550])[_0x1a99('0x73')];var _0x6baa6e=JSON[_0x1a99('0x72')](_0x506791[_0x1a99('0x3a')][_0x70c550])[_0x1a99('0x74')];_0x137838['where']('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x48a74c,_0x6baa6e);}else{if(_0x506791[_0x1a99('0x3a')][_0x70c550]===_0x1a99('0x75')){_0x137838[_0x1a99('0x45')]('i.'+_0x70c550+'\x20IS\x20NULL');}else{_0x137838[_0x1a99('0x45')]('i.'+_0x70c550+'\x20=\x20?',_0x506791[_0x1a99('0x3a')][_0x70c550]);}}});}if(_0x506791[_0x1a99('0x3a')][_0x1a99('0x76')]){if(_0x506791[_0x1a99('0x3a')][_0x1a99('0x76')]==0x1){_0x137838[_0x1a99('0x5e')](_0x1a99('0x77'));}else{_0x137838[_0x1a99('0x5e')](_0x1a99('0x78'));}}if(_0x506791['query'][_0x1a99('0x79')]){_0x7328b7=_[_0x1a99('0x7a')](_0x506791[_0x1a99('0x3a')][_0x1a99('0x79')])?_0x506791[_0x1a99('0x3a')][_0x1a99('0x79')]:new Array(_0x506791['query'][_0x1a99('0x79')]);_0x7328b7[_0x1a99('0x2d')](function(_0x4ec14d){_0x263679['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x4ec14d+',%');});}if(_0x506791[_0x1a99('0x3a')]['filter']){var _0x133e9a=_0x506791[_0x1a99('0x3a')][_0x1a99('0x7b')]['replace']('\x5c','\x5c\x5c')[_0x1a99('0x7c')]('\x27\x27',_0x1a99('0x7d'));if(qs[_0x1a99('0x7e')](_0x133e9a)){_0x21babb['or'](_0x1a99('0x7f'),_0x133e9a+'%');}else if(qs[_0x1a99('0x80')](_0x133e9a)){_0x21babb['or']('c.email\x20LIKE\x20?',_0x133e9a+'%');}else{_0x21babb['or'](_0x1a99('0x81'),qs[_0x1a99('0x82')](_0x133e9a))['or'](_0x1a99('0x83'),qs[_0x1a99('0x82')](_0x133e9a));}}}_0x137838[_0x1a99('0x45')](_0x21babb);_0x137838[_0x1a99('0x84')](_0x1a99('0x85'));var _0x378c7f={'type':db[_0x1a99('0x86')][_0x1a99('0x87')][_0x1a99('0x88')],'raw':!![]};var _0x4fd7b9=_0x137838['clone']();_0x4fd7b9[_0x1a99('0x48')](_0x1a99('0x85'));_0x4fd7b9[_0x1a99('0x48')](_0x1a99('0x89'),_0x1a99('0x8a'));if(_0x5d3163['order']){_0x5d3163[_0x1a99('0x43')][_0x1a99('0x2d')](function(_0xb515ba){_0x137838[_0x1a99('0x43')]('i.'+_0xb515ba[0x0],_0xb515ba[0x1]===_0x1a99('0x8b')?![]:!![]);});}if(!_[_0x1a99('0x6f')](_0x7328b7)){_0x137838[_0x1a99('0x5e')](_0x263679);_0x4fd7b9['where'](_0x1a99('0x8c'),_0x7328b7);}BPromise[_0x1a99('0x8d')]()['then'](function(){if(!_0x405435){if(_0x506791[_0x1a99('0x3a')][_0x1a99('0x8e')]||_0x506791[_0x1a99('0x3a')][_0x1a99('0x8f')])return;_0x4fd7b9[_0x1a99('0x45')]('i.MailAccountId\x20IS\x20NOT\x20NULL');_0x137838[_0x1a99('0x45')]('i.MailAccountId\x20IS\x20NOT\x20NULL');return;}return _0x506791[_0x1a99('0x90')][_0x1a99('0x91')]({'attributes':['id'],'raw':!![]})[_0x1a99('0x23')](function(_0x18df1e){if(_[_0x1a99('0x6f')](_0x18df1e)){_0x4fd7b9[_0x1a99('0x45')](_0x1a99('0x92'));_0x137838[_0x1a99('0x45')](_0x1a99('0x92'));}else{_0x4fd7b9[_0x1a99('0x45')]('i.MailAccountId\x20IN\x20?',_[_0x1a99('0x29')](_0x18df1e,'id'));_0x137838[_0x1a99('0x45')](_0x1a99('0x70'),_[_0x1a99('0x29')](_0x18df1e,'id'));}});})[_0x1a99('0x23')](function(){db[_0x1a99('0x93')][_0x1a99('0x3a')](_0x4fd7b9[_0x1a99('0x94')](),_0x378c7f)[_0x1a99('0x23')](function(_0x4d777c){_0x31caea[_0x1a99('0x1b')]=_0x4d777c[_0x1a99('0x5b')];if(_0x31caea['count']===0x0)return[];return db[_0x1a99('0x93')]['query'](_0x14c52a['toString'](),_0x378c7f)[_0x1a99('0x23')](function(_0x14a489){_0x472167=_['keyBy'](_0x14a489,'id');_0x378c7f=_[_0x1a99('0x95')](_0x378c7f,{'model':db[_0x1a99('0x30')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x506791[_0x1a99('0x3a')][_0x1a99('0x40')]){_0x5d3163[_0x1a99('0x3f')][_0x1a99('0x2d')](function(_0x2b1d9a){_0x137838[_0x1a99('0x48')]('i.'+_0x2b1d9a);});}else{_0x137838[_0x1a99('0x48')](_0x1a99('0x89'),_0x1a99('0x8a'));_0x137838[_0x1a99('0x48')](_0x1a99('0x96'),_0x1a99('0x97'));_0x137838[_0x1a99('0x48')](_0x1a99('0x98'),_0x1a99('0x99'));_0x137838[_0x1a99('0x48')](_0x1a99('0x85'));_0x137838['field'](_0x1a99('0x9a'));_0x137838[_0x1a99('0x48')](_0x1a99('0x9b'));_0x137838[_0x1a99('0x48')]('i.closed');_0x137838[_0x1a99('0x48')](_0x1a99('0x9c'));_0x137838[_0x1a99('0x48')](_0x1a99('0x9d'));_0x137838['field']('i.lastMsgAt');_0x137838['field']('i.lastMsgDirection');_0x137838[_0x1a99('0x48')](_0x1a99('0x9e'));_0x137838[_0x1a99('0x48')](_0x1a99('0x9f'));_0x137838['field']('i.substatus');_0x137838[_0x1a99('0x48')](_0x1a99('0xa0'));_0x137838[_0x1a99('0x48')](_0x1a99('0xa1'));_0x137838[_0x1a99('0x48')](_0x1a99('0xa2'));_0x137838[_0x1a99('0x48')](_0x1a99('0xa3'));_0x137838[_0x1a99('0x48')](_0x1a99('0xa4'),_0x1a99('0xa5'));_0x137838['field'](_0x1a99('0xa6'),'Contact.lastName');_0x137838['field'](_0x1a99('0xa7'),_0x1a99('0xa8'));_0x137838['field'](_0x1a99('0xa9'),_0x1a99('0xaa'));_0x137838[_0x1a99('0x48')](_0x1a99('0xab'),'Contact.mobile');_0x137838[_0x1a99('0x48')](_0x1a99('0xac'),_0x1a99('0xad'));_0x137838[_0x1a99('0x48')](_0x1a99('0xae'),_0x1a99('0xaf'));_0x137838[_0x1a99('0x48')](_0x1a99('0xb0'),_0x1a99('0xb1'));_0x137838[_0x1a99('0x48')](_0x1a99('0xb2'),_0x1a99('0x2b'));}_0x137838[_0x1a99('0x1c')](_0x5d3163[_0x1a99('0x1c')]);_0x137838['offset'](_0x5d3163['offset']);return db[_0x1a99('0x93')][_0x1a99('0x3a')](_0x137838[_0x1a99('0x94')](),_0x378c7f);})[_0x1a99('0x23')](function(_0x53dca3){_0xd721f8[_0x1a99('0x45')]('ui.MailInteractionId\x20IN\x20?',_[_0x1a99('0x29')](_0x53dca3,'id'));return db[_0x1a99('0x93')][_0x1a99('0x3a')](_0xd721f8['toString'](),_0x378c7f)[_0x1a99('0x23')](function(_0x1953ec){var _0xf52d70=_[_0x1a99('0xb3')](_0x1953ec,'MailInteractionId');var _0x389467=[];return db['Setting'][_0x1a99('0x31')]({'attributes':[_0x1a99('0xb4')],'raw':!![]})[_0x1a99('0x23')](function(_0x2d90ee){var _0x11f3a2=_0x2d90ee[_0x1a99('0xb4')];_0x53dca3[_0x1a99('0x2d')](function(_0x298b93){_0x389467[_0x1a99('0x2f')](updateMailInteraction(_0x298b93,_0x472167,_0xf52d70,_0x11f3a2));});return BPromise[_0x1a99('0xb5')](_0x389467);});});});})[_0x1a99('0x23')](function(_0xc90ee0){_0x31caea['rows']=_0xc90ee0;return _0x31caea;})['then'](respondWithFilteredResult(_0x431fac,_0x5d3163));})['catch'](handleError(_0x431fac,null));};exports[_0x1a99('0xb6')]=function(_0x2ecef4,_0x477c18){var _0x118eac={'raw':![],'where':{'id':_0x2ecef4[_0x1a99('0xb7')]['id']}},_0x248386={};_0x248386[_0x1a99('0x3e')]=_[_0x1a99('0x3b')](db['MailInteraction'][_0x1a99('0x36')]);_0x248386['query']=_[_0x1a99('0x3b')](_0x2ecef4[_0x1a99('0x3a')]);_0x248386[_0x1a99('0x3c')]=_['intersection'](_0x248386[_0x1a99('0x3e')],_0x248386[_0x1a99('0x3a')]);_0x118eac['attributes']=_[_0x1a99('0x3d')](_0x248386[_0x1a99('0x3e')],qs['fields'](_0x2ecef4['query'][_0x1a99('0x40')]));_0x118eac[_0x1a99('0x3f')]=_0x118eac[_0x1a99('0x3f')]['length']?_0x118eac[_0x1a99('0x3f')]:_0x248386[_0x1a99('0x3e')];if(_0x2ecef4['query'][_0x1a99('0xb8')]){_0x118eac[_0x1a99('0xb9')]=[{'all':!![]}];}_0x118eac=_['merge']({},_0x118eac,_0x2ecef4[_0x1a99('0xba')]);return db[_0x1a99('0x30')][_0x1a99('0x5c')](_0x118eac)[_0x1a99('0x23')](handleEntityNotFound(_0x477c18,null))['then'](respondWithResult(_0x477c18,null))[_0x1a99('0xbb')](handleError(_0x477c18,null));};exports[_0x1a99('0xbc')]=function(_0x41cb1b,_0x206046){return db[_0x1a99('0x30')]['create'](_0x41cb1b[_0x1a99('0xbd')],{})[_0x1a99('0x23')](respondWithResult(_0x206046,0xc9))['catch'](handleError(_0x206046,null));};exports[_0x1a99('0x22')]=function(_0x283400,_0x6ccc0c){if(_0x283400['body']['id']){delete _0x283400['body']['id'];}return db[_0x1a99('0x30')][_0x1a99('0x5c')]({'where':{'id':_0x283400['params']['id']}})[_0x1a99('0x23')](handleEntityNotFound(_0x6ccc0c,null))['then'](saveUpdates(_0x283400['body'],null))[_0x1a99('0x23')](respondWithResult(_0x6ccc0c,null))[_0x1a99('0xbb')](handleError(_0x6ccc0c,null));};exports[_0x1a99('0xbe')]=function(_0x58ae89,_0xbbdcaa){return db['MailInteraction']['find']({'where':{'id':_0x58ae89['params']['id']}})['then'](handleEntityNotFound(_0xbbdcaa,null))['then'](removeEntity(_0xbbdcaa,null))[_0x1a99('0xbb')](handleError(_0xbbdcaa,null));};exports[_0x1a99('0xbf')]=function(_0x58eddd,_0x25bb34){return db[_0x1a99('0x30')][_0x1a99('0xbf')]()[_0x1a99('0x23')](respondWithResult(_0x25bb34,null))[_0x1a99('0xbb')](handleError(_0x25bb34,null));};exports['addMessage']=function(_0x4dd1ae,_0x5473fe,_0x299499){return db[_0x1a99('0xc0')][_0x1a99('0x5c')]({'where':{'id':_0x4dd1ae['params']['id']}})[_0x1a99('0x23')](handleEntityNotFound(_0x5473fe,null))[_0x1a99('0x23')](function(_0x2b41b9){if(_0x2b41b9){return _0x2b41b9[_0x1a99('0xc1')](_0x4dd1ae[_0x1a99('0xbd')]['ids'],_[_0x1a99('0xc2')](_0x4dd1ae[_0x1a99('0xbd')],[_0x1a99('0xc3'),'id'])||{});}})[_0x1a99('0x23')](respondWithResult(_0x5473fe,null))[_0x1a99('0xbb')](handleError(_0x5473fe,null));};exports[_0x1a99('0xc4')]=function(_0x3bc751,_0x3ce421,_0x579069){var _0xaaff95={'raw':![],'where':{}};var _0x1e105a={};var _0x46b183={'count':0x0,'rows':[]};return db[_0x1a99('0x30')][_0x1a99('0x31')]({'where':{'id':_0x3bc751[_0x1a99('0xb7')]['id']}})[_0x1a99('0x23')](handleEntityNotFound(_0x3ce421,null))[_0x1a99('0x23')](function(_0x50abc7){if(_0x50abc7){_0x1e105a[_0x1a99('0x3e')]=_['keys'](db['MailMessage']['rawAttributes']);_0x1e105a[_0x1a99('0x3a')]=_['keys'](_0x3bc751['query']);_0x1e105a['filters']=_[_0x1a99('0x3d')](_0x1e105a[_0x1a99('0x3e')],_0x1e105a[_0x1a99('0x3a')]);_0xaaff95['attributes']=_['intersection'](_0x1e105a['model'],qs[_0x1a99('0x40')](_0x3bc751[_0x1a99('0x3a')][_0x1a99('0x40')]));_0xaaff95[_0x1a99('0x3f')]=_0xaaff95[_0x1a99('0x3f')][_0x1a99('0x5b')]?_0xaaff95[_0x1a99('0x3f')]:_0x1e105a[_0x1a99('0x3e')];if(!_0x3bc751[_0x1a99('0x3a')][_0x1a99('0x41')](_0x1a99('0xc5'))){_0xaaff95[_0x1a99('0x1c')]=qs[_0x1a99('0x1c')](_0x3bc751['query'][_0x1a99('0x1c')]);_0xaaff95['offset']=qs[_0x1a99('0x42')](_0x3bc751[_0x1a99('0x3a')][_0x1a99('0x42')]);}_0xaaff95[_0x1a99('0x43')]=qs[_0x1a99('0x44')](_0x3bc751[_0x1a99('0x3a')][_0x1a99('0x44')]);_0xaaff95[_0x1a99('0x45')]=qs[_0x1a99('0x3c')](_[_0x1a99('0x46')](_0x3bc751[_0x1a99('0x3a')],_0x1e105a[_0x1a99('0x3c')]));_0xaaff95[_0x1a99('0x45')][_0x1a99('0xc6')]=_0x50abc7['id'];if(_0x3bc751[_0x1a99('0x3a')][_0x1a99('0x7b')]){_0xaaff95[_0x1a99('0x45')]=_[_0x1a99('0x95')](_0xaaff95[_0x1a99('0x45')],{'$or':_[_0x1a99('0x29')](_0xaaff95[_0x1a99('0x3f')],function(_0x336b15){var _0x12d3b2={};_0x12d3b2[_0x336b15]={'$like':'%'+_0x3bc751[_0x1a99('0x3a')]['filter']+'%'};return _0x12d3b2;})});}if(_0x3bc751['query'][_0x1a99('0x73')]){var _0x31546b=_0x3bc751[_0x1a99('0x3a')][_0x1a99('0x73')][_0x1a99('0x2c')](',');var _0x11edf2={};_0x11edf2[_0x31546b[0x0]]={'$gte':moment(_0x31546b[0x1])['format']('YYYY-MM-DD\x20HH:mm:ss')};_0xaaff95[_0x1a99('0x45')]=_[_0x1a99('0x95')](_0xaaff95['where'],_0x11edf2);}_0xaaff95=_[_0x1a99('0x95')]({},_0xaaff95,_0x3bc751['options']);return db[_0x1a99('0xc0')][_0x1a99('0x1b')]({'where':_0xaaff95[_0x1a99('0x45')]})['then'](function(_0x2e48c9){_0x46b183[_0x1a99('0x1b')]=_0x2e48c9;if(_0x3bc751[_0x1a99('0x3a')][_0x1a99('0xb8')]){_0xaaff95['include']=[{'all':!![]}];}return db[_0x1a99('0xc0')][_0x1a99('0xc7')](_0xaaff95);})['then'](function(_0xe3e15b){_0x46b183[_0x1a99('0xc8')]=_0xe3e15b;return _0x46b183;});}})['then'](respondWithFilteredResult(_0x3ce421,_0xaaff95))[_0x1a99('0xbb')](handleError(_0x3ce421,null));};exports[_0x1a99('0xc9')]=function(_0x512083,_0x207cb8,_0x592aeb){return db[_0x1a99('0x30')]['find']({'where':{'id':_0x512083[_0x1a99('0xb7')]['id']}})[_0x1a99('0x23')](handleEntityNotFound(_0x207cb8,null))[_0x1a99('0x23')](function(_0x5ea892){if(_0x5ea892){return _0x5ea892[_0x1a99('0xca')](_0x512083[_0x1a99('0xbd')][_0x1a99('0xc3')],_[_0x1a99('0xc2')](_0x512083[_0x1a99('0xbd')],[_0x1a99('0xc3'),'id'])||{})[_0x1a99('0xcb')](function(){return db['Tag'][_0x1a99('0xc7')]({'attributes':['id','name',_0x1a99('0x49')],'where':{'id':_0x512083['body'][_0x1a99('0xc3')]}});})['then'](function(_0x49a6ce){socket[_0x1a99('0xcc')](_0x1a99('0xcd'),{'id':Number(_0x512083[_0x1a99('0xb7')]['id']),'tags':_0x49a6ce||[]});return{'id':Number(_0x512083[_0x1a99('0xb7')]['id']),'tags':_0x49a6ce||[]};});}})[_0x1a99('0x23')](respondWithResult(_0x207cb8,null))[_0x1a99('0xbb')](handleError(_0x207cb8,null));};exports[_0x1a99('0xce')]=function(_0x17de75,_0x2dbe32,_0x479dcd){return db[_0x1a99('0x30')][_0x1a99('0x5c')]({'where':{'id':_0x17de75[_0x1a99('0xb7')]['id']}})[_0x1a99('0x23')](handleEntityNotFound(_0x2dbe32,null))[_0x1a99('0x23')](function(_0x16a487){if(_0x16a487){return _0x16a487[_0x1a99('0xce')](_0x17de75[_0x1a99('0x3a')][_0x1a99('0xc3')]);}})[_0x1a99('0x23')](respondWithStatusCode(_0x2dbe32,null))['catch'](handleError(_0x2dbe32,null));};exports[_0x1a99('0xcf')]=function(_0xee1f0f,_0x139015){var _0x1ab6be=moment()['unix']()[_0x1a99('0x94')]();var _0x57601e=path[_0x1a99('0xd0')](config[_0x1a99('0xd1')],_0x1a99('0xd2'),_0x1a99('0xd3'),_0x1a99('0xd4'));var _0x8f4b=path[_0x1a99('0xd0')](config[_0x1a99('0xd1')],_0x1a99('0xd2'),'files',_0x1a99('0xd5'));var _0x537f10=path[_0x1a99('0xd0')](_0x57601e,_0x1ab6be);var _0x59f880=util['format'](_0x1a99('0xd6'),_0xee1f0f[_0x1a99('0xb7')]['id'],_0x1ab6be);var _0x5d0605=path[_0x1a99('0xd0')](_0x57601e,_0x59f880);var _0x2d50ff=[];if(_0xee1f0f[_0x1a99('0x3a')][_0x1a99('0xd5')]){_0x2d50ff['push']({'model':db[_0x1a99('0xd7')],'as':'Attachments','raw':!![]});}var _0x446b19=[{'model':db[_0x1a99('0xc0')],'as':_0x1a99('0xd8'),'attributes':['id',_0x1a99('0xbd'),_0x1a99('0x4d'),'to','cc',_0x1a99('0xd9'),_0x1a99('0xda'),_0x1a99('0x71')],'where':{'secret':![]},'order':qs[_0x1a99('0x44')]('id'),'include':_0x2d50ff}];return db[_0x1a99('0x30')][_0x1a99('0x5c')]({'where':{'id':_0xee1f0f[_0x1a99('0xb7')]['id']},'include':_0x446b19})[_0x1a99('0x23')](handleEntityNotFound(_0x139015,null))[_0x1a99('0x23')](function(_0x14aa56){if(_0x14aa56&&_0x14aa56[_0x1a99('0xd8')]){var _0x11b78c=_0x14aa56[_0x1a99('0xdb')]({'plain':!![]});fs['mkdirSync'](_0x537f10);return BPromise['each'](_0x11b78c['Messages'],function(_0x2e5627,_0x24bebf){var _0x5457cd={'from':_0x2e5627[_0x1a99('0x4d')],'to':_0x2e5627['to'],'subject':_0x2e5627['subject'],'html':_0x2e5627[_0x1a99('0xbd')],'headers':{'Date':moment(_0x2e5627[_0x1a99('0x71')])[_0x1a99('0xdc')](_0x1a99('0xdd'))},'attachments':[]};if(_0x2e5627['cc']){_0x5457cd[_0x1a99('0xde')]['Cc']=_0x2e5627['cc'];}if(_0x2e5627[_0x1a99('0xd9')]){_0x5457cd['headers'][_0x1a99('0xdf')]=_0x2e5627[_0x1a99('0xd9')];}return new BPromise(function(_0x4766e2,_0x368127){if(_0x2e5627['Attachments']){for(var _0x35d735=0x0;_0x35d735<_0x2e5627[_0x1a99('0xe0')][_0x1a99('0x5b')];_0x35d735++){var _0x2fb60d=_0x2e5627['Attachments'][_0x35d735];var _0x428033=path[_0x1a99('0xd0')](_0x8f4b,_0x2fb60d[_0x1a99('0xe1')]);if(fs[_0x1a99('0xe2')](_0x428033)){_0x5457cd[_0x1a99('0xd5')][_0x1a99('0x2f')]({'name':_0x2fb60d[_0x1a99('0x26')],'contentType':_0x2fb60d[_0x1a99('0x38')],'data':fs['readFileSync'](_0x428033)});}}}emlformat[_0x1a99('0xe3')](_0x5457cd,function(_0x295718,_0x2ab427){if(_0x295718)return _0x368127(_0x295718);fs[_0x1a99('0xe4')](path['join'](_0x537f10,util[_0x1a99('0xdc')](_0x1a99('0xe5'),_0x24bebf)),_0x2ab427);return _0x4766e2(_0x2ab427);});});})['then'](function(){return new BPromise(function(_0x3c929f,_0x453215){zipdir(_0x537f10,{'saveTo':_0x5d0605},function(_0x108dcc,_0x3a39ca){if(_0x108dcc)return _0x453215(_0x108dcc);return _0x3c929f(_0x3a39ca);});})[_0x1a99('0x23')](function(){return new BPromise(function(_0x3fb50e,_0x2be670){rimraf(_0x537f10,function(_0x1b98f8){if(_0x1b98f8)_0x2be670(_0x1b98f8);return _0x3fb50e();});});})[_0x1a99('0x23')](function(){return _0x139015[_0x1a99('0xcf')](_0x5d0605,_0x59f880,function(_0x3123cd){if(_0x3123cd){console['log']('err',_0x3123cd);}else{fs[_0x1a99('0xe6')](_0x5d0605);}});});});}else{return _0x139015[_0x1a99('0x24')](0xc8);}})[_0x1a99('0xbb')](handleError(_0x139015,null));};