1ace8e9590ccc1c6a28f1f2f8ad790d4154a8053
[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 _0x7b16=['$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','filter','isNumeric','i.id\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','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','isEmpty','t.id\x20IN\x20?','i.MailAccountId\x20IS\x20NOT\x20NULL','role','agent','user','getMailAccounts','i.MailAccountId\x20IS\x20NULL','sequelize','toString','keyBy','MailInteraction','a.key','Account.key','Account.mandatoryDisposition','i.updatedAt','i.closedAt','i.lastMsgAt','i.lastMsgDirection','i.subject','i.secondDisposition','i.thirdDisposition','i.substatus','i.to','i.ContactId','i.MailAccountId','i.UserId','Contact.firstName','c.lastName','Contact.lastName','c.email','c.phone','Contact.phone','c.mobile','Contact.mobile','c.fax','Contact.fax','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.MailInteractionId\x20IN\x20?','groupBy','Setting','enableEmailPreview','all','rows','show','params','include','merge','options','create','body','destroy','describe','addMessage','MailMessage','ids','getMessages','rawAttributes','YYYY-MM-DD\x20HH:mm:ss','includeAll','findAll','inlineCss','true','addTags','spread','color','emit','mailInteractionTags:save','removeTags','download','root','server','files','tmp','attachments','join','format','transcript-%d-%s.zip','Attachments','Messages','subject','get','each','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','bcc','Bcc','existsSync','writeFileSync','err','unlinkSync','eml-format','fast-json-patch','request-promise','bluebird','mustache','util','path','sox','ejs','fs-extra','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','juice','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','defaults','redis','localhost','socket.io-emitter','./mailInteraction.socket','register','sendStatus','status','json','count','offset','limit','set','reject','save','update','then','end','error','stack','name','send','Users','map','TagIds','split','forEach','Tags','push','findOne','out','plainBody','-id','lastMsgText','trimStart','catch','index','fieldName','type','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','pick','select','field','from','tools_tags','u.id','ui.MailInteractionId','user_has_mail_interactions','users','u.id\x20=\x20ui.UserId','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','left_join','o.id\x20=\x20i.UserId','mail_accounts','a.id\x20=\x20i.MailAccountId','mail_messages','me.MailInteractionId\x20=\x20i.id','mail_interaction_has_tags','it.MailInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','find','unreadMessages','value','having','`\x20=\x200','`\x20>\x200','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?','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','compact','MailAccountId','i.MailAccountId\x20IN\x20?','concat','createdAt','parse','$gte'];(function(_0x403980,_0x314a20){var _0x50097a=function(_0x46a77b){while(--_0x46a77b){_0x403980['push'](_0x403980['shift']());}};_0x50097a(++_0x314a20);}(_0x7b16,0x74));var _0x67b1=function(_0x5dd33e,_0x1b66dd){_0x5dd33e=_0x5dd33e-0x0;var _0x4206cd=_0x7b16[_0x5dd33e];return _0x4206cd;};'use strict';var emlformat=require(_0x67b1('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x67b1('0x1'));var rp=require(_0x67b1('0x2'));var moment=require('moment');var BPromise=require(_0x67b1('0x3'));var Mustache=require(_0x67b1('0x4'));var util=require(_0x67b1('0x5'));var path=require(_0x67b1('0x6'));var sox=require(_0x67b1('0x7'));var csv=require('to-csv');var ejs=require(_0x67b1('0x8'));var fs=require('fs');var fs_extra=require(_0x67b1('0x9'));var _=require(_0x67b1('0xa'));var squel=require(_0x67b1('0xb'));var crypto=require(_0x67b1('0xc'));var jsforce=require(_0x67b1('0xd'));var deskjs=require(_0x67b1('0xe'));var toCsv=require(_0x67b1('0xf'));var querystring=require(_0x67b1('0x10'));var Papa=require(_0x67b1('0x11'));var htmlToText=require('html-to-text');var juice=require(_0x67b1('0x12'));var Redis=require(_0x67b1('0x13'));var authService=require(_0x67b1('0x14'));var qs=require(_0x67b1('0x15'));var as=require(_0x67b1('0x16'));var hardwareService=require(_0x67b1('0x17'));var logger=require(_0x67b1('0x18'))(_0x67b1('0x19'));var utils=require(_0x67b1('0x1a'));var config=require(_0x67b1('0x1b'));var licenseUtil=require(_0x67b1('0x1c'));var db=require(_0x67b1('0x1d'))['db'];config['redis']=_[_0x67b1('0x1e')](config[_0x67b1('0x1f')],{'host':_0x67b1('0x20'),'port':0x18eb});var socket=require(_0x67b1('0x21'))(new Redis(config[_0x67b1('0x1f')]));require(_0x67b1('0x22'))[_0x67b1('0x23')](socket);function respondWithStatusCode(_0x529d6a,_0x5d2c3a){_0x5d2c3a=_0x5d2c3a||0xcc;return function(_0x4edf1c){if(_0x4edf1c){return _0x529d6a[_0x67b1('0x24')](_0x5d2c3a);}return _0x529d6a[_0x67b1('0x25')](_0x5d2c3a)['end']();};}function respondWithResult(_0x2d1139,_0x1ef992){_0x1ef992=_0x1ef992||0xc8;return function(_0x450842){if(_0x450842){return _0x2d1139[_0x67b1('0x25')](_0x1ef992)[_0x67b1('0x26')](_0x450842);}};}function respondWithFilteredResult(_0x23e91d,_0x167f32){return function(_0x592af){if(_0x592af){var _0x4e7cae=_0x592af[_0x67b1('0x27')],_0x23f7f7=_0x167f32[_0x67b1('0x28')],_0x1a5715=_0x167f32['offset']+_0x167f32[_0x67b1('0x29')],_0x3e1f3e;if(_0x1a5715>=_0x4e7cae){_0x1a5715=_0x4e7cae;_0x3e1f3e=0xc8;}else{_0x3e1f3e=0xce;}_0x23e91d[_0x67b1('0x25')](_0x3e1f3e);return _0x23e91d[_0x67b1('0x2a')]('Content-Range',_0x23f7f7+'-'+_0x1a5715+'/'+_0x4e7cae)[_0x67b1('0x26')](_0x592af);}return null;};}function patchUpdates(_0x263575){return function(_0x36dc4c){try{jsonpatch['apply'](_0x36dc4c,_0x263575,!![]);}catch(_0x35b995){return BPromise[_0x67b1('0x2b')](_0x35b995);}return _0x36dc4c[_0x67b1('0x2c')]();};}function saveUpdates(_0x1c8663,_0x352ddf){return function(_0x3f97e9){if(_0x3f97e9){return _0x3f97e9[_0x67b1('0x2d')](_0x1c8663)['then'](function(_0x1deefc){return _0x1deefc;});}return null;};}function removeEntity(_0x2e5bbc,_0x42fdea){return function(_0xf0587a){if(_0xf0587a){return _0xf0587a['destroy']()[_0x67b1('0x2e')](function(){_0x2e5bbc[_0x67b1('0x25')](0xcc)[_0x67b1('0x2f')]();});}};}function handleEntityNotFound(_0x3214b4,_0x1def40){return function(_0x1570cc){if(!_0x1570cc){_0x3214b4[_0x67b1('0x24')](0x194);}return _0x1570cc;};}function handleError(_0x1830b7,_0x81b9ce){_0x81b9ce=_0x81b9ce||0x1f4;return function(_0x44b060){logger[_0x67b1('0x30')](_0x44b060[_0x67b1('0x31')]);if(_0x44b060[_0x67b1('0x32')]){delete _0x44b060['name'];}_0x1830b7['status'](_0x81b9ce)[_0x67b1('0x33')](_0x44b060);};}function getInteractionUsers(_0x11ca0f,_0x39747c){return new BPromise(function(_0x5456c4,_0x2b83ae){try{if(_0x39747c[_0x11ca0f['id']]){_0x11ca0f[_0x67b1('0x34')]=_[_0x67b1('0x35')](_0x39747c[_0x11ca0f['id']],function(_0x5b32d3){return{'id':_0x5b32d3['id'],'fullname':_0x5b32d3['fullname']};});}}catch(_0x3643f9){_0x2b83ae(_0x3643f9);}_0x5456c4(_0x11ca0f);});}function getInteractionTags(_0x5db838,_0x15fe0b){return new BPromise(function(_0x34c2bd,_0x51a5f8){try{if(_0x5db838[_0x67b1('0x36')]){_0x5db838['Tags']=[];_0x5db838[_0x67b1('0x36')][_0x67b1('0x37')](',')[_0x67b1('0x38')](function(_0x4bc030){_0x5db838[_0x67b1('0x39')][_0x67b1('0x3a')](_0x15fe0b[_0x4bc030]);});}delete _0x5db838['TagIds'];}catch(_0xc7f67b){_0x51a5f8(_0xc7f67b);}_0x34c2bd(_0x5db838);});}function getLastMessageText(_0x583441){return new BPromise(function(_0x22c847,_0x3fbd51){return db['MailMessage'][_0x67b1('0x3b')]({'where':{'$and':[{'MailInteractionId':_0x583441['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':_0x67b1('0x3c')},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':[_0x67b1('0x3d')],'order':_0x67b1('0x3e'),'raw':!![]})[_0x67b1('0x2e')](function(_0x3c9a03){if(_0x3c9a03&&_0x3c9a03[_0x67b1('0x3d')]){_0x583441[_0x67b1('0x3f')]=_[_0x67b1('0x40')](_0x3c9a03[_0x67b1('0x3d')]);}_0x22c847(_0x583441);})[_0x67b1('0x41')](function(_0x225365){_0x3fbd51(_0x225365);});});}function updateMailInteraction(_0x14cd53,_0x26dd9a,_0x12650e,_0x110ce8){return new BPromise(function(_0x26ab60,_0x1a2993){return getInteractionUsers(_0x14cd53,_0x12650e)['then'](function(_0x395b98){return getInteractionTags(_0x395b98,_0x26dd9a);})[_0x67b1('0x2e')](function(_0x30198f){if(_0x110ce8){_0x26ab60(getLastMessageText(_0x30198f));}else{_0x26ab60(_0x30198f);}})[_0x67b1('0x41')](function(_0x450283){_0x1a2993(_0x450283);});});}exports[_0x67b1('0x42')]=function(_0x41b8a4,_0xec8f49){var _0x3936c7={},_0x50a5c3={},_0x43dcaf={'count':0x0,'rows':[]};var _0x5de449=_[_0x67b1('0x35')](db['MailInteraction']['rawAttributes'],function(_0x31ab5d){return{'name':_0x31ab5d[_0x67b1('0x43')],'type':_0x31ab5d[_0x67b1('0x44')]['key']};});_0x50a5c3[_0x67b1('0x45')]=_[_0x67b1('0x35')](_0x5de449,_0x67b1('0x32'));_0x50a5c3['query']=_[_0x67b1('0x46')](_0x41b8a4[_0x67b1('0x47')]);_0x50a5c3[_0x67b1('0x48')]=_[_0x67b1('0x49')](_0x50a5c3[_0x67b1('0x45')],_0x50a5c3[_0x67b1('0x47')]);_0x3936c7[_0x67b1('0x4a')]=_[_0x67b1('0x49')](_0x50a5c3[_0x67b1('0x45')],qs['fields'](_0x41b8a4[_0x67b1('0x47')][_0x67b1('0x4b')]));_0x3936c7[_0x67b1('0x4a')]=_0x3936c7[_0x67b1('0x4a')][_0x67b1('0x4c')]?_0x3936c7['attributes']:_0x50a5c3[_0x67b1('0x45')];if(!_0x41b8a4[_0x67b1('0x47')][_0x67b1('0x4d')](_0x67b1('0x4e'))){_0x3936c7[_0x67b1('0x29')]=qs[_0x67b1('0x29')](_0x41b8a4[_0x67b1('0x47')]['limit']);_0x3936c7[_0x67b1('0x28')]=qs[_0x67b1('0x28')](_0x41b8a4[_0x67b1('0x47')][_0x67b1('0x28')]);}_0x3936c7[_0x67b1('0x4f')]=qs[_0x67b1('0x50')](_0x41b8a4[_0x67b1('0x47')][_0x67b1('0x50')]);_0x3936c7[_0x67b1('0x51')]=qs[_0x67b1('0x48')](_[_0x67b1('0x52')](_0x41b8a4[_0x67b1('0x47')],_0x50a5c3[_0x67b1('0x48')]),_0x5de449);var _0x1e138c=[];var _0x506c63=squel[_0x67b1('0x53')]()[_0x67b1('0x54')]('id')['field']('name')[_0x67b1('0x54')]('color')[_0x67b1('0x55')](_0x67b1('0x56'));var _0x213960=squel['select']()[_0x67b1('0x54')](_0x67b1('0x57'))[_0x67b1('0x54')]('u.fullname')[_0x67b1('0x54')](_0x67b1('0x58'))[_0x67b1('0x55')](_0x67b1('0x59'),'ui')['left_join'](_0x67b1('0x5a'),'u',_0x67b1('0x5b'));var _0x16cba5=squel[_0x67b1('0x53')]()[_0x67b1('0x55')]('mail_interactions','i')['left_join'](_0x67b1('0x5c'),'c',_0x67b1('0x5d'))[_0x67b1('0x5e')](_0x67b1('0x5a'),'o',_0x67b1('0x5f'))[_0x67b1('0x5e')](_0x67b1('0x60'),'a',_0x67b1('0x61'))[_0x67b1('0x5e')](_0x67b1('0x62'),'me',_0x67b1('0x63'))[_0x67b1('0x5e')](_0x67b1('0x64'),'it',_0x67b1('0x65'))[_0x67b1('0x5e')](_0x67b1('0x56'),'t',_0x67b1('0x66'));var _0x1a0914=squel[_0x67b1('0x67')]();var _0x27f603=[];var _0x1ddb26=squel['expr']();var _0x27cefb;if(_0x41b8a4[_0x67b1('0x47')][_0x67b1('0x68')]){_0x27cefb=as[_0x67b1('0x69')](_0x41b8a4[_0x67b1('0x47')][_0x67b1('0x68')]);var _0x919069=_0x27cefb[_0x67b1('0x6a')];for(var _0x333447=0x0;_0x333447<_0x27cefb[_0x67b1('0x6b')][_0x67b1('0x4c')];_0x333447++){var _0x283935=_0x27cefb[_0x67b1('0x6b')][_0x333447];var _0xb6de4a='i';var _0x456421=_[_0x67b1('0x6c')](_0x5de449,[_0x67b1('0x32'),_0x283935[_0x67b1('0x54')]]);if(!_0x456421){switch(_0x283935[_0x67b1('0x54')]){case _0x67b1('0x6d'):if(_0x283935[_0x67b1('0x6e')]==0x1){_0x16cba5[_0x67b1('0x6f')]('`'+_0x283935[_0x67b1('0x54')]+_0x67b1('0x70'));}else{_0x16cba5[_0x67b1('0x6f')]('`'+_0x283935[_0x67b1('0x54')]+_0x67b1('0x71'));}break;case'Contact':if(_0x283935[_0x67b1('0x72')]===_0x67b1('0x73')){if(_0x283935[_0x67b1('0x6e')]['split']('\x20')[_0x67b1('0x4c')]>0x1){_0x1a0914[_0x919069](_0x67b1('0x74'),qs[_0x67b1('0x75')](_0x283935[_0x67b1('0x6e')]),null);}else{var _0x4797a7='%'+_0x283935[_0x67b1('0x6e')]+'%';_0x1a0914[_0x919069]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x4797a7,_0x4797a7,_0x4797a7);}}else{_0x456421=_[_0x67b1('0x6c')](_0x5de449,['name',_0x67b1('0x76')]);_0x283935[_0x67b1('0x54')]=_0x67b1('0x76');_0x46f2ee=as[_0x67b1('0x77')](_0xb6de4a,_0x456421[_0x67b1('0x44')],_0x283935);_0x1a0914[_0x919069](_0x46f2ee[_0x67b1('0x78')],_0x46f2ee['value'][_0x67b1('0x79')],_0x46f2ee[_0x67b1('0x6e')][_0x67b1('0x2f')]);}break;case _0x67b1('0x7a'):var _0x22c03=_0x283935[_0x67b1('0x6e')][_0x67b1('0x37')](',')[_0x67b1('0x35')](function(_0x534b95){return Number(_0x534b95);});_0x22c03['forEach'](function(_0x20fc09){_0x1ddb26['or'](_0x67b1('0x7b'),'%,'+_0x20fc09+',%');});_0x27f603=_['union'](_0x27f603,_0x22c03);break;case _0x67b1('0x7c'):if(_0x283935['operator']===_0x67b1('0x73')){_0x1a0914[_0x919069](_0x67b1('0x7d'),'%'+_0x283935[_0x67b1('0x6e')]+'%',null);}else{_0x456421=_[_0x67b1('0x6c')](_0x5de449,['name','UserId']);_0x283935[_0x67b1('0x54')]='UserId';_0x46f2ee=as['buildExpression'](_0xb6de4a,_0x456421[_0x67b1('0x44')],_0x283935);_0x1a0914[_0x919069](_0x46f2ee[_0x67b1('0x78')],_0x46f2ee[_0x67b1('0x6e')]['start'],_0x46f2ee[_0x67b1('0x6e')][_0x67b1('0x2f')]);}break;case _0x67b1('0x3d'):_0x46f2ee=as[_0x67b1('0x77')]('me',null,_0x283935);_0x1a0914[_0x919069](_0x46f2ee['text'],_0x46f2ee['value'][_0x67b1('0x79')],_0x46f2ee[_0x67b1('0x6e')]['end']);break;}}else{var _0x46f2ee=as['buildExpression'](_0xb6de4a,_0x456421[_0x67b1('0x44')],_0x283935);_0x1a0914[_0x919069](_0x46f2ee[_0x67b1('0x78')],_0x46f2ee[_0x67b1('0x6e')][_0x67b1('0x79')],_0x46f2ee[_0x67b1('0x6e')][_0x67b1('0x2f')]);}}}else{var _0x170a07=_(_0x41b8a4['query'])[_0x67b1('0x46')]()['map'](function(_0x5e43f9){return _['some'](_0x5de449,[_0x67b1('0x32'),_0x5e43f9])?_0x5e43f9:undefined;})[_0x67b1('0x7e')]()[_0x67b1('0x6e')]();if(!_['isEmpty'](_0x170a07)){_0x170a07['forEach'](function(_0x5a458e){if(_0x5a458e===_0x67b1('0x7f')){_0x16cba5['where'](_0x67b1('0x80'),[][_0x67b1('0x81')](_0x41b8a4[_0x67b1('0x47')][_0x5a458e]));}else if(_0x5a458e===_0x67b1('0x82')){var _0x305208=JSON[_0x67b1('0x83')](_0x41b8a4[_0x67b1('0x47')][_0x5a458e])[_0x67b1('0x84')];var _0x595988=JSON[_0x67b1('0x83')](_0x41b8a4[_0x67b1('0x47')][_0x5a458e])[_0x67b1('0x85')];_0x16cba5[_0x67b1('0x51')](_0x67b1('0x86'),_0x305208,_0x595988);}else{if(_0x41b8a4[_0x67b1('0x47')][_0x5a458e]===_0x67b1('0x87')){_0x16cba5['where']('i.'+_0x5a458e+'\x20IS\x20NULL');}else{_0x16cba5[_0x67b1('0x51')]('i.'+_0x5a458e+_0x67b1('0x88'),_0x41b8a4[_0x67b1('0x47')][_0x5a458e]);}}});}if(_0x41b8a4[_0x67b1('0x47')][_0x67b1('0x89')]){if(_0x41b8a4[_0x67b1('0x47')]['read']==0x1){_0x16cba5[_0x67b1('0x6f')](_0x67b1('0x8a'));}else{_0x16cba5[_0x67b1('0x6f')](_0x67b1('0x8b'));}}if(_0x41b8a4['query'][_0x67b1('0x8c')]){_0x27f603=_[_0x67b1('0x8d')](_0x41b8a4[_0x67b1('0x47')][_0x67b1('0x8c')])?_0x41b8a4['query']['tag']:new Array(_0x41b8a4[_0x67b1('0x47')][_0x67b1('0x8c')]);_0x27f603[_0x67b1('0x38')](function(_0x17ebf7){_0x1ddb26['or'](_0x67b1('0x7b'),'%,'+_0x17ebf7+',%');});}if(_0x41b8a4[_0x67b1('0x47')][_0x67b1('0x8e')]){var _0x1a469a=_0x41b8a4[_0x67b1('0x47')]['filter']['replace']('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(qs[_0x67b1('0x8f')](_0x1a469a)){_0x1a0914['or'](_0x67b1('0x90'),_0x1a469a+'%');}else if(qs['isEmail'](_0x1a469a)){_0x1a0914['or']('c.email\x20LIKE\x20?',_0x1a469a+'%');}else{_0x1a0914['or'](_0x67b1('0x91'),qs['getFullTextValue'](_0x1a469a))['or'](_0x67b1('0x92'),qs[_0x67b1('0x75')](_0x1a469a));}}}_0x16cba5[_0x67b1('0x51')](_0x1a0914);_0x16cba5[_0x67b1('0x93')](_0x67b1('0x94'));var _0xfdaaac={'type':db[_0x67b1('0x95')][_0x67b1('0x96')][_0x67b1('0x97')],'raw':!![]};var _0x49e7b3=_0x16cba5[_0x67b1('0x98')]();_0x49e7b3['field']('i.id');_0x49e7b3[_0x67b1('0x54')](_0x67b1('0x99'),'unreadMessages');if(_0x3936c7[_0x67b1('0x4f')]){_0x3936c7[_0x67b1('0x4f')][_0x67b1('0x38')](function(_0x1c3480){var _0x5ba5b0=_0x1c3480[0x0]===_0x67b1('0x9a')?_0x1c3480[0x0]:'i.'+_0x1c3480[0x0];_0x16cba5['order'](_0x5ba5b0,_0x1c3480[0x1]==='DESC'?![]:!![]);});}if(!_[_0x67b1('0x9b')](_0x27f603)){_0x16cba5[_0x67b1('0x6f')](_0x1ddb26);_0x49e7b3[_0x67b1('0x51')](_0x67b1('0x9c'),_0x27f603);}BPromise['resolve']()['then'](function(){if(!_0x27cefb){if(_0x41b8a4[_0x67b1('0x47')][_0x67b1('0x7f')])return;_0x49e7b3['where']('i.MailAccountId\x20IS\x20NOT\x20NULL');_0x16cba5[_0x67b1('0x51')](_0x67b1('0x9d'));return;}if(_0x41b8a4['user'][_0x67b1('0x9e')]!==_0x67b1('0x9f'))return;return _0x41b8a4[_0x67b1('0xa0')][_0x67b1('0xa1')]({'attributes':['id'],'raw':!![]})['then'](function(_0x579bac){if(_[_0x67b1('0x9b')](_0x579bac)){_0x49e7b3[_0x67b1('0x51')](_0x67b1('0xa2'));_0x16cba5[_0x67b1('0x51')]('i.MailAccountId\x20IS\x20NULL');}else{_0x49e7b3['where'](_0x67b1('0x80'),_[_0x67b1('0x35')](_0x579bac,'id'));_0x16cba5['where'](_0x67b1('0x80'),_['map'](_0x579bac,'id'));}});})['then'](function(){if(_0x41b8a4['user'][_0x67b1('0x9e')]===_0x67b1('0x9f')&&!_0x27cefb&&!_0x41b8a4[_0x67b1('0x47')][_0x67b1('0x7f')])return[];return db[_0x67b1('0xa3')][_0x67b1('0x47')](_0x49e7b3[_0x67b1('0xa4')](),_0xfdaaac);})['then'](function(_0x53f92f){_0x43dcaf['count']=_0x53f92f['length'];if(_0x43dcaf[_0x67b1('0x27')]===0x0)return[];return db[_0x67b1('0xa3')][_0x67b1('0x47')](_0x506c63['toString'](),_0xfdaaac)[_0x67b1('0x2e')](function(_0x53692b){_0x1e138c=_[_0x67b1('0xa5')](_0x53692b,'id');_0xfdaaac=_['merge'](_0xfdaaac,{'model':db[_0x67b1('0xa6')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x41b8a4[_0x67b1('0x47')][_0x67b1('0x4b')]){_0x3936c7[_0x67b1('0x4a')]['forEach'](function(_0x56ee46){_0x16cba5[_0x67b1('0x54')]('i.'+_0x56ee46);});}else{_0x16cba5[_0x67b1('0x54')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x67b1('0x6d'));_0x16cba5['field'](_0x67b1('0xa7'),_0x67b1('0xa8'));_0x16cba5['field']('a.mandatoryDisposition',_0x67b1('0xa9'));_0x16cba5[_0x67b1('0x54')]('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',_0x67b1('0x9a'));_0x16cba5[_0x67b1('0x54')](_0x67b1('0x94'));_0x16cba5['field']('i.createdAt');_0x16cba5[_0x67b1('0x54')](_0x67b1('0xaa'));_0x16cba5[_0x67b1('0x54')]('i.closed');_0x16cba5['field'](_0x67b1('0xab'));_0x16cba5[_0x67b1('0x54')]('i.attach');_0x16cba5[_0x67b1('0x54')](_0x67b1('0xac'));_0x16cba5[_0x67b1('0x54')](_0x67b1('0xad'));_0x16cba5['field'](_0x67b1('0xae'));_0x16cba5['field']('i.disposition');_0x16cba5[_0x67b1('0x54')](_0x67b1('0xaf'));_0x16cba5[_0x67b1('0x54')](_0x67b1('0xb0'));_0x16cba5[_0x67b1('0x54')](_0x67b1('0xb1'));_0x16cba5[_0x67b1('0x54')](_0x67b1('0xb2'));_0x16cba5[_0x67b1('0x54')](_0x67b1('0xb3'));_0x16cba5[_0x67b1('0x54')](_0x67b1('0xb4'));_0x16cba5[_0x67b1('0x54')](_0x67b1('0xb5'));_0x16cba5[_0x67b1('0x54')]('c.firstName',_0x67b1('0xb6'));_0x16cba5[_0x67b1('0x54')](_0x67b1('0xb7'),_0x67b1('0xb8'));_0x16cba5[_0x67b1('0x54')](_0x67b1('0xb9'),'Contact.email');_0x16cba5['field'](_0x67b1('0xba'),_0x67b1('0xbb'));_0x16cba5['field'](_0x67b1('0xbc'),_0x67b1('0xbd'));_0x16cba5[_0x67b1('0x54')](_0x67b1('0xbe'),_0x67b1('0xbf'));_0x16cba5[_0x67b1('0x54')]('o.fullname',_0x67b1('0xc0'));_0x16cba5[_0x67b1('0x54')](_0x67b1('0xc1'),_0x67b1('0xc2'));_0x16cba5['field'](_0x67b1('0xc3'),'TagIds');}if(_0x3936c7['limit'])_0x16cba5[_0x67b1('0x29')](_0x3936c7[_0x67b1('0x29')]);if(_0x3936c7[_0x67b1('0x28')])_0x16cba5[_0x67b1('0x28')](_0x3936c7[_0x67b1('0x28')]);return db[_0x67b1('0xa3')][_0x67b1('0x47')](_0x16cba5[_0x67b1('0xa4')](),_0xfdaaac);})['then'](function(_0x536829){_0x213960[_0x67b1('0x51')](_0x67b1('0xc4'),_['map'](_0x536829,'id'));return db[_0x67b1('0xa3')]['query'](_0x213960[_0x67b1('0xa4')](),_0xfdaaac)[_0x67b1('0x2e')](function(_0x798473){var _0x2a084c=_[_0x67b1('0xc5')](_0x798473,'MailInteractionId');var _0x33cfb3=[];return db[_0x67b1('0xc6')]['findOne']({'attributes':[_0x67b1('0xc7')],'raw':!![]})[_0x67b1('0x2e')](function(_0x2a2df1){var _0x4ac039=_0x2a2df1[_0x67b1('0xc7')];_0x536829['forEach'](function(_0x30988a){_0x33cfb3[_0x67b1('0x3a')](updateMailInteraction(_0x30988a,_0x1e138c,_0x2a084c,_0x4ac039));});return BPromise[_0x67b1('0xc8')](_0x33cfb3);});});});})['then'](function(_0x4d9604){_0x43dcaf[_0x67b1('0xc9')]=_0x4d9604;return _0x43dcaf;})[_0x67b1('0x2e')](respondWithFilteredResult(_0xec8f49,_0x3936c7))[_0x67b1('0x41')](handleError(_0xec8f49,null));};exports[_0x67b1('0xca')]=function(_0x567300,_0x31ba50){var _0x4b18bf={'raw':![],'where':{'id':_0x567300[_0x67b1('0xcb')]['id']}},_0xed1db={};_0xed1db[_0x67b1('0x45')]=_[_0x67b1('0x46')](db['MailInteraction']['rawAttributes']);_0xed1db['query']=_['keys'](_0x567300['query']);_0xed1db[_0x67b1('0x48')]=_[_0x67b1('0x49')](_0xed1db['model'],_0xed1db[_0x67b1('0x47')]);_0x4b18bf['attributes']=_['intersection'](_0xed1db[_0x67b1('0x45')],qs['fields'](_0x567300[_0x67b1('0x47')]['fields']));_0x4b18bf[_0x67b1('0x4a')]=_0x4b18bf['attributes']['length']?_0x4b18bf['attributes']:_0xed1db[_0x67b1('0x45')];if(_0x567300[_0x67b1('0x47')]['includeAll']){_0x4b18bf[_0x67b1('0xcc')]=[{'all':!![]}];}_0x4b18bf=_[_0x67b1('0xcd')]({},_0x4b18bf,_0x567300[_0x67b1('0xce')]);return db['MailInteraction'][_0x67b1('0x6c')](_0x4b18bf)[_0x67b1('0x2e')](handleEntityNotFound(_0x31ba50,null))[_0x67b1('0x2e')](respondWithResult(_0x31ba50,null))['catch'](handleError(_0x31ba50,null));};exports[_0x67b1('0xcf')]=function(_0x19f508,_0xcac59a){return db['MailInteraction'][_0x67b1('0xcf')](_0x19f508[_0x67b1('0xd0')],{})[_0x67b1('0x2e')](respondWithResult(_0xcac59a,0xc9))[_0x67b1('0x41')](handleError(_0xcac59a,null));};exports[_0x67b1('0x2d')]=function(_0x306913,_0x2fbb2f){if(_0x306913['body']['id']){delete _0x306913[_0x67b1('0xd0')]['id'];}return db[_0x67b1('0xa6')][_0x67b1('0x6c')]({'where':{'id':_0x306913[_0x67b1('0xcb')]['id']}})[_0x67b1('0x2e')](handleEntityNotFound(_0x2fbb2f,null))[_0x67b1('0x2e')](saveUpdates(_0x306913[_0x67b1('0xd0')],null))[_0x67b1('0x2e')](respondWithResult(_0x2fbb2f,null))[_0x67b1('0x41')](handleError(_0x2fbb2f,null));};exports[_0x67b1('0xd1')]=function(_0x2117a0,_0x1bb23d){return db[_0x67b1('0xa6')]['find']({'where':{'id':_0x2117a0[_0x67b1('0xcb')]['id']}})[_0x67b1('0x2e')](handleEntityNotFound(_0x1bb23d,null))[_0x67b1('0x2e')](removeEntity(_0x1bb23d,null))[_0x67b1('0x41')](handleError(_0x1bb23d,null));};exports['describe']=function(_0x2c3b1e,_0xefc3a2){return db['MailInteraction'][_0x67b1('0xd2')]()[_0x67b1('0x2e')](respondWithResult(_0xefc3a2,null))[_0x67b1('0x41')](handleError(_0xefc3a2,null));};exports[_0x67b1('0xd3')]=function(_0x4235a8,_0x495b9b,_0x4f6f9a){return db[_0x67b1('0xd4')][_0x67b1('0x6c')]({'where':{'id':_0x4235a8[_0x67b1('0xcb')]['id']}})['then'](handleEntityNotFound(_0x495b9b,null))['then'](function(_0x41884f){if(_0x41884f){return _0x41884f[_0x67b1('0xd3')](_0x4235a8[_0x67b1('0xd0')][_0x67b1('0xd5')],_['omit'](_0x4235a8[_0x67b1('0xd0')],[_0x67b1('0xd5'),'id'])||{});}})[_0x67b1('0x2e')](respondWithResult(_0x495b9b,null))[_0x67b1('0x41')](handleError(_0x495b9b,null));};exports[_0x67b1('0xd6')]=function(_0x13abb6,_0x3b26aa,_0xf2607d){var _0x38ec5e={'raw':![],'where':{}};var _0x4a3c0b={};var _0x2c9f09={'count':0x0,'rows':[]};return db[_0x67b1('0xa6')][_0x67b1('0x3b')]({'where':{'id':_0x13abb6[_0x67b1('0xcb')]['id']}})[_0x67b1('0x2e')](handleEntityNotFound(_0x3b26aa,null))[_0x67b1('0x2e')](function(_0x575507){if(_0x575507){_0x4a3c0b['model']=_[_0x67b1('0x46')](db[_0x67b1('0xd4')][_0x67b1('0xd7')]);_0x4a3c0b[_0x67b1('0x47')]=_[_0x67b1('0x46')](_0x13abb6[_0x67b1('0x47')]);_0x4a3c0b['filters']=_[_0x67b1('0x49')](_0x4a3c0b['model'],_0x4a3c0b['query']);_0x38ec5e[_0x67b1('0x4a')]=_[_0x67b1('0x49')](_0x4a3c0b[_0x67b1('0x45')],qs[_0x67b1('0x4b')](_0x13abb6[_0x67b1('0x47')][_0x67b1('0x4b')]));_0x38ec5e[_0x67b1('0x4a')]=_0x38ec5e['attributes'][_0x67b1('0x4c')]?_0x38ec5e[_0x67b1('0x4a')]:_0x4a3c0b[_0x67b1('0x45')];if(!_0x13abb6['query']['hasOwnProperty']('nolimit')){_0x38ec5e[_0x67b1('0x29')]=qs['limit'](_0x13abb6[_0x67b1('0x47')][_0x67b1('0x29')]);_0x38ec5e[_0x67b1('0x28')]=qs['offset'](_0x13abb6[_0x67b1('0x47')][_0x67b1('0x28')]);}_0x38ec5e[_0x67b1('0x4f')]=qs[_0x67b1('0x50')](_0x13abb6[_0x67b1('0x47')][_0x67b1('0x50')]);_0x38ec5e[_0x67b1('0x51')]=qs[_0x67b1('0x48')](_[_0x67b1('0x52')](_0x13abb6[_0x67b1('0x47')],_0x4a3c0b[_0x67b1('0x48')]));_0x38ec5e[_0x67b1('0x51')]['MailInteractionId']=_0x575507['id'];if(_0x13abb6[_0x67b1('0x47')][_0x67b1('0x8e')]){_0x38ec5e[_0x67b1('0x51')]=_[_0x67b1('0xcd')](_0x38ec5e[_0x67b1('0x51')],{'$or':_[_0x67b1('0x35')](_0x38ec5e[_0x67b1('0x4a')],function(_0x3be504){var _0x5722f6={};_0x5722f6[_0x3be504]={'$like':'%'+_0x13abb6[_0x67b1('0x47')][_0x67b1('0x8e')]+'%'};return _0x5722f6;})});}if(_0x13abb6[_0x67b1('0x47')][_0x67b1('0x84')]){var _0x327c84=_0x13abb6[_0x67b1('0x47')]['$gte'][_0x67b1('0x37')](',');var _0x190402={};_0x190402[_0x327c84[0x0]]={'$gte':moment(_0x327c84[0x1])['format'](_0x67b1('0xd8'))};_0x38ec5e[_0x67b1('0x51')]=_[_0x67b1('0xcd')](_0x38ec5e['where'],_0x190402);}_0x38ec5e=_[_0x67b1('0xcd')]({},_0x38ec5e,_0x13abb6[_0x67b1('0xce')]);return db['MailMessage'][_0x67b1('0x27')]({'where':_0x38ec5e[_0x67b1('0x51')]})[_0x67b1('0x2e')](function(_0x5cf1af){_0x2c9f09[_0x67b1('0x27')]=_0x5cf1af;if(_0x13abb6[_0x67b1('0x47')][_0x67b1('0xd9')]){_0x38ec5e[_0x67b1('0xcc')]=[{'all':!![]}];}return db[_0x67b1('0xd4')][_0x67b1('0xda')](_0x38ec5e);})[_0x67b1('0x2e')](function(_0x4c666f){if(_0x13abb6[_0x67b1('0x47')][_0x67b1('0xdb')]===_0x67b1('0xdc')){for(var _0x53b94a=0x0;_0x53b94a<_0x4c666f[_0x67b1('0x4c')];_0x53b94a++){_0x4c666f[_0x53b94a]['body']=juice(_0x4c666f[_0x53b94a][_0x67b1('0xd0')]);}}_0x2c9f09[_0x67b1('0xc9')]=_0x4c666f;return _0x2c9f09;});}})[_0x67b1('0x2e')](respondWithFilteredResult(_0x3b26aa,_0x38ec5e))[_0x67b1('0x41')](handleError(_0x3b26aa,null));};exports[_0x67b1('0xdd')]=function(_0x40299b,_0x4750f9,_0x2f6ce7){return db[_0x67b1('0xa6')]['find']({'where':{'id':_0x40299b[_0x67b1('0xcb')]['id']}})[_0x67b1('0x2e')](handleEntityNotFound(_0x4750f9,null))[_0x67b1('0x2e')](function(_0x6700ac){if(_0x6700ac){return _0x6700ac['setTags'](_0x40299b[_0x67b1('0xd0')][_0x67b1('0xd5')],_['omit'](_0x40299b[_0x67b1('0xd0')],[_0x67b1('0xd5'),'id'])||{})[_0x67b1('0xde')](function(){return db[_0x67b1('0x7a')][_0x67b1('0xda')]({'attributes':['id',_0x67b1('0x32'),_0x67b1('0xdf')],'where':{'id':_0x40299b[_0x67b1('0xd0')]['ids']}});})[_0x67b1('0x2e')](function(_0x55dfc7){socket[_0x67b1('0xe0')](_0x67b1('0xe1'),{'id':Number(_0x40299b[_0x67b1('0xcb')]['id']),'tags':_0x55dfc7||[]});return{'id':Number(_0x40299b[_0x67b1('0xcb')]['id']),'tags':_0x55dfc7||[]};});}})[_0x67b1('0x2e')](respondWithResult(_0x4750f9,null))[_0x67b1('0x41')](handleError(_0x4750f9,null));};exports[_0x67b1('0xe2')]=function(_0x2f240c,_0x74a0e9,_0x5b695e){return db[_0x67b1('0xa6')][_0x67b1('0x6c')]({'where':{'id':_0x2f240c['params']['id']}})[_0x67b1('0x2e')](handleEntityNotFound(_0x74a0e9,null))['then'](function(_0x1da725){if(_0x1da725){return _0x1da725[_0x67b1('0xe2')](_0x2f240c[_0x67b1('0x47')][_0x67b1('0xd5')]);}})[_0x67b1('0x2e')](respondWithStatusCode(_0x74a0e9,null))[_0x67b1('0x41')](handleError(_0x74a0e9,null));};exports[_0x67b1('0xe3')]=function(_0x3e509c,_0x5cb3ee){var _0x2749a7=moment()['unix']()['toString']();var _0x363c34=path['join'](config[_0x67b1('0xe4')],_0x67b1('0xe5'),_0x67b1('0xe6'),_0x67b1('0xe7'));var _0x483fbd=path['join'](config[_0x67b1('0xe4')],_0x67b1('0xe5'),_0x67b1('0xe6'),_0x67b1('0xe8'));var _0x13c564=path[_0x67b1('0xe9')](_0x363c34,_0x2749a7);var _0x58ff20=util[_0x67b1('0xea')](_0x67b1('0xeb'),_0x3e509c[_0x67b1('0xcb')]['id'],_0x2749a7);var _0x16a461=path[_0x67b1('0xe9')](_0x363c34,_0x58ff20);var _0x39d3f6=[];if(_0x3e509c[_0x67b1('0x47')][_0x67b1('0xe8')]){_0x39d3f6['push']({'model':db['Attachment'],'as':_0x67b1('0xec'),'raw':!![]});}var _0x102392=[{'model':db[_0x67b1('0xd4')],'as':_0x67b1('0xed'),'attributes':['id',_0x67b1('0xd0'),_0x67b1('0x55'),'to','cc','bcc',_0x67b1('0xee'),'createdAt'],'where':{'secret':![]},'order':qs['sort']('id'),'include':_0x39d3f6}];return db[_0x67b1('0xa6')][_0x67b1('0x6c')]({'where':{'id':_0x3e509c[_0x67b1('0xcb')]['id']},'include':_0x102392})[_0x67b1('0x2e')](handleEntityNotFound(_0x5cb3ee,null))[_0x67b1('0x2e')](function(_0x3955b3){if(_0x3955b3&&_0x3955b3[_0x67b1('0xed')]){var _0x3968b3=_0x3955b3[_0x67b1('0xef')]({'plain':!![]});fs['mkdirSync'](_0x13c564);return BPromise[_0x67b1('0xf0')](_0x3968b3[_0x67b1('0xed')],function(_0x260b48,_0x3bd24d){var _0x32bd46={'from':_0x260b48[_0x67b1('0x55')],'to':_0x260b48['to'],'subject':_0x260b48['subject'],'html':_0x260b48[_0x67b1('0xd0')],'headers':{'Date':moment(_0x260b48[_0x67b1('0x82')])['format'](_0x67b1('0xf1'))},'attachments':[]};if(_0x260b48['cc']){_0x32bd46[_0x67b1('0xf2')]['Cc']=_0x260b48['cc'];}if(_0x260b48[_0x67b1('0xf3')]){_0x32bd46[_0x67b1('0xf2')][_0x67b1('0xf4')]=_0x260b48[_0x67b1('0xf3')];}return new BPromise(function(_0x5b435d,_0x13658a){if(_0x260b48[_0x67b1('0xec')]){for(var _0xee65e1=0x0;_0xee65e1<_0x260b48[_0x67b1('0xec')][_0x67b1('0x4c')];_0xee65e1++){var _0x19a558=_0x260b48[_0x67b1('0xec')][_0xee65e1];var _0x124d30=path['join'](_0x483fbd,_0x19a558['basename']);if(fs[_0x67b1('0xf5')](_0x124d30)){_0x32bd46[_0x67b1('0xe8')][_0x67b1('0x3a')]({'name':_0x19a558[_0x67b1('0x32')],'contentType':_0x19a558[_0x67b1('0x44')],'data':fs['readFileSync'](_0x124d30)});}}}emlformat['build'](_0x32bd46,function(_0x41b4f5,_0x4c3979){if(_0x41b4f5)return _0x13658a(_0x41b4f5);fs[_0x67b1('0xf6')](path[_0x67b1('0xe9')](_0x13c564,util[_0x67b1('0xea')]('message%d.eml',_0x3bd24d)),_0x4c3979);return _0x5b435d(_0x4c3979);});});})[_0x67b1('0x2e')](function(){return new BPromise(function(_0x46ae51,_0x37edf8){zipdir(_0x13c564,{'saveTo':_0x16a461},function(_0x1b23f3,_0x4ea333){if(_0x1b23f3)return _0x37edf8(_0x1b23f3);return _0x46ae51(_0x4ea333);});})[_0x67b1('0x2e')](function(){return new BPromise(function(_0x56e94e,_0x208f71){rimraf(_0x13c564,function(_0x83a7c6){if(_0x83a7c6)_0x208f71(_0x83a7c6);return _0x56e94e();});});})[_0x67b1('0x2e')](function(){return _0x5cb3ee[_0x67b1('0xe3')](_0x16a461,_0x58ff20,function(_0xad7c27){if(_0xad7c27){console['log'](_0x67b1('0xf7'),_0xad7c27);}else{fs[_0x67b1('0xf8')](_0x16a461);}});});});}else{return _0x5cb3ee[_0x67b1('0x24')](0xc8);}})['catch'](handleError(_0x5cb3ee,null));};