d0907c9cda7ecf2d263091494ba820cbba3167dd
[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 _0x3084=['having','`\x20=\x200','`\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','value','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','text','start','Tag','forEach','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','UserId','buildExpression','plainBody','some','compact','MailAccountId','i.MailAccountId\x20IN\x20?','concat','createdAt','parse','$gte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20=\x20?','read','`unreadMessages`\x20=\x200','isArray','tag','filter','replace','\x27\x27\x27\x27','isNumeric','i.id\x20LIKE\x20?','isEmail','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','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','DESC','isEmpty','t.id\x20IN\x20?','resolve','journey','i.MailAccountId\x20IS\x20NOT\x20NULL','user','getMailAccounts','i.MailAccountId\x20IS\x20NULL','sequelize','toString','merge','a.key','a.mandatoryDisposition','Account.mandatoryDisposition','i.createdAt','i.updatedAt','i.closed','i.attach','i.lastMsgAt','i.lastMsgDirection','i.subject','i.secondDisposition','i.to','i.ContactId','i.MailAccountId','i.UserId','Contact.firstName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','Contact.mobile','Contact.fax','Owner.fullname','o.internal','ui.MailInteractionId\x20IN\x20?','groupBy','findOne','enableEmailPreview','all','rows','show','params','includeAll','include','options','create','body','destroy','describe','addMessage','MailMessage','ids','getMessages','pick','MailInteractionId','YYYY-MM-DD\x20HH:mm:ss','findAll','setTags','omit','emit','removeTags','unix','join','root','server','files','format','transcript-%d-%s.zip','attachments','Attachment','Attachments','Messages','bcc','subject','get','each','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','basename','readFileSync','build','writeFileSync','message%d.eml','log','err','unlinkSync','fast-json-patch','request-promise','moment','bluebird','util','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','html-to-text','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../mysqldb','redis','socket.io-emitter','./mailInteraction.socket','register','sendStatus','status','end','json','count','offset','Content-Range','reject','update','then','error','name','send','Users','fullname','Tags','split','push','TagIds','MailInteraction','lastMsgText','trimStart','fromString','catch','index','map','rawAttributes','fieldName','type','key','query','keys','filters','intersection','attributes','fields','model','hasOwnProperty','nolimit','limit','order','sort','where','select','field','color','from','tools_tags','u.id','u.fullname','ui.MailInteractionId','user_has_mail_interactions','left_join','users','u.id\x20=\x20ui.UserId','mail_interactions','o.id\x20=\x20i.UserId','mail_accounts','mail_messages','me.MailInteractionId\x20=\x20i.id','it.MailInteractionId\x20=\x20i.id','expr','search','parseSearch','sqlOperator','conditions','length','find','unreadMessages'];(function(_0x600f5,_0x1c7dc6){var _0x14bed4=function(_0x3399c8){while(--_0x3399c8){_0x600f5['push'](_0x600f5['shift']());}};_0x14bed4(++_0x1c7dc6);}(_0x3084,0x179));var _0x4308=function(_0x30f48a,_0x5d5a19){_0x30f48a=_0x30f48a-0x0;var _0x19622e=_0x3084[_0x30f48a];return _0x19622e;};'use strict';var pdf=require('html-pdf');var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require(_0x4308('0x0'));var rp=require(_0x4308('0x1'));var moment=require(_0x4308('0x2'));var BPromise=require(_0x4308('0x3'));var Mustache=require('mustache');var util=require(_0x4308('0x4'));var path=require('path');var sox=require('sox');var csv=require(_0x4308('0x5'));var ejs=require(_0x4308('0x6'));var fs=require('fs');var _=require(_0x4308('0x7'));var squel=require(_0x4308('0x8'));var crypto=require(_0x4308('0x9'));var jsforce=require(_0x4308('0xa'));var deskjs=require(_0x4308('0xb'));var toCsv=require('to-csv');var querystring=require(_0x4308('0xc'));var Papa=require(_0x4308('0xd'));var htmlToText=require(_0x4308('0xe'));var Redis=require(_0x4308('0xf'));var authService=require(_0x4308('0x10'));var qs=require(_0x4308('0x11'));var as=require(_0x4308('0x12'));var hardwareService=require(_0x4308('0x13'));var logger=require(_0x4308('0x14'))('api');var utils=require(_0x4308('0x15'));var config=require(_0x4308('0x16'));var licenseUtil=require('../../config/license/util');var db=require(_0x4308('0x17'))['db'];config[_0x4308('0x18')]=_['defaults'](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x4308('0x19'))(new Redis(config[_0x4308('0x18')]));require(_0x4308('0x1a'))[_0x4308('0x1b')](socket);function respondWithStatusCode(_0x557f3b,_0x8e445a){_0x8e445a=_0x8e445a||0xcc;return function(_0x473eb3){if(_0x473eb3){return _0x557f3b[_0x4308('0x1c')](_0x8e445a);}return _0x557f3b[_0x4308('0x1d')](_0x8e445a)[_0x4308('0x1e')]();};}function respondWithResult(_0xcb9101,_0x114a62){_0x114a62=_0x114a62||0xc8;return function(_0x333b63){if(_0x333b63){return _0xcb9101[_0x4308('0x1d')](_0x114a62)[_0x4308('0x1f')](_0x333b63);}};}function respondWithFilteredResult(_0x27689e,_0xc49276){return function(_0x45f07e){if(_0x45f07e){var _0x154517=_0x45f07e[_0x4308('0x20')],_0x5d5a47=_0xc49276[_0x4308('0x21')],_0x31b6f3=_0xc49276[_0x4308('0x21')]+_0xc49276['limit'],_0x1b1213;if(_0x31b6f3>=_0x154517){_0x31b6f3=_0x154517;_0x1b1213=0xc8;}else{_0x1b1213=0xce;}_0x27689e[_0x4308('0x1d')](_0x1b1213);return _0x27689e['set'](_0x4308('0x22'),_0x5d5a47+'-'+_0x31b6f3+'/'+_0x154517)['json'](_0x45f07e);}return null;};}function patchUpdates(_0x2432ea){return function(_0x4700c9){try{jsonpatch['apply'](_0x4700c9,_0x2432ea,!![]);}catch(_0x55139e){return BPromise[_0x4308('0x23')](_0x55139e);}return _0x4700c9['save']();};}function saveUpdates(_0x2644fe,_0x4018cb){return function(_0x1e7fc5){if(_0x1e7fc5){return _0x1e7fc5[_0x4308('0x24')](_0x2644fe)[_0x4308('0x25')](function(_0x154013){return _0x154013;});}return null;};}function removeEntity(_0x2f56cc,_0x1d33ef){return function(_0x4b9d2f){if(_0x4b9d2f){return _0x4b9d2f['destroy']()[_0x4308('0x25')](function(){_0x2f56cc[_0x4308('0x1d')](0xcc)['end']();});}};}function handleEntityNotFound(_0x520789,_0x5128e3){return function(_0x1372a2){if(!_0x1372a2){_0x520789['sendStatus'](0x194);}return _0x1372a2;};}function handleError(_0xeee02,_0x2f171d){_0x2f171d=_0x2f171d||0x1f4;return function(_0x4d82a5){logger[_0x4308('0x26')](_0x4d82a5['stack']);if(_0x4d82a5[_0x4308('0x27')]){delete _0x4d82a5[_0x4308('0x27')];}_0xeee02[_0x4308('0x1d')](_0x2f171d)[_0x4308('0x28')](_0x4d82a5);};}function getInteractionUsers(_0x26580c,_0x5728cf){return new BPromise(function(_0x5d08e2,_0x3f7605){try{if(_0x5728cf[_0x26580c['id']]){_0x26580c[_0x4308('0x29')]=_['map'](_0x5728cf[_0x26580c['id']],function(_0x3af5d1){return{'id':_0x3af5d1['id'],'fullname':_0x3af5d1[_0x4308('0x2a')]};});}}catch(_0x54b23a){_0x3f7605(_0x54b23a);}_0x5d08e2(_0x26580c);});}function getInteractionTags(_0x3ce987,_0x5e55c8){return new BPromise(function(_0x1b0146,_0x36928b){try{if(_0x3ce987['TagIds']){_0x3ce987[_0x4308('0x2b')]=[];_0x3ce987['TagIds'][_0x4308('0x2c')](',')['forEach'](function(_0x16a598){_0x3ce987[_0x4308('0x2b')][_0x4308('0x2d')](_0x5e55c8[_0x16a598]);});}delete _0x3ce987[_0x4308('0x2e')];}catch(_0x3bb448){_0x36928b(_0x3bb448);}_0x1b0146(_0x3ce987);});}function getLastMessageText(_0x5dd2cd){return new BPromise(function(_0x3a4c4d,_0xd525f5){return db[_0x4308('0x2f')]['findOne']({'where':{'id':_0x5dd2cd['id']},'attributes':['lastMsgBody',_0x4308('0x30')],'raw':!![]})[_0x4308('0x25')](function(_0x11e4d7){if(!_0x11e4d7[_0x4308('0x30')]){_0x5dd2cd[_0x4308('0x30')]=_[_0x4308('0x31')](htmlToText[_0x4308('0x32')](_0x11e4d7['lastMsgBody'],{'preserveNewlines':!![],'singleNewLineParagraphs':!![],'uppercaseHeadings':![],'noLinkBrackets':!![],'ignoreImage':!![]}));}else{_0x5dd2cd[_0x4308('0x30')]=_0x11e4d7[_0x4308('0x30')];}_0x3a4c4d(_0x5dd2cd);})[_0x4308('0x33')](function(_0x197752){_0xd525f5(_0x197752);});});}function updateMailInteraction(_0x3cc93c,_0x302ff6,_0x4d6e87,_0x578cea){return new BPromise(function(_0x14aab9,_0x5e5889){return getInteractionUsers(_0x3cc93c,_0x4d6e87)[_0x4308('0x25')](function(_0x4fd0b8){return getInteractionTags(_0x4fd0b8,_0x302ff6);})[_0x4308('0x25')](function(_0x157b73){if(_0x578cea){_0x14aab9(getLastMessageText(_0x157b73));}else{_0x14aab9(_0x157b73);}})['catch'](function(_0x571bba){_0x5e5889(_0x571bba);});});}exports[_0x4308('0x34')]=function(_0x5a84c9,_0x4566f4){var _0x41526c={},_0x3397f4={},_0x4e5e1b={'count':0x0,'rows':[]};var _0x4dbc01=_[_0x4308('0x35')](db[_0x4308('0x2f')][_0x4308('0x36')],function(_0x154972){return{'name':_0x154972[_0x4308('0x37')],'type':_0x154972[_0x4308('0x38')][_0x4308('0x39')]};});_0x3397f4['model']=_[_0x4308('0x35')](_0x4dbc01,_0x4308('0x27'));_0x3397f4[_0x4308('0x3a')]=_[_0x4308('0x3b')](_0x5a84c9[_0x4308('0x3a')]);_0x3397f4[_0x4308('0x3c')]=_[_0x4308('0x3d')](_0x3397f4['model'],_0x3397f4[_0x4308('0x3a')]);_0x41526c[_0x4308('0x3e')]=_[_0x4308('0x3d')](_0x3397f4['model'],qs[_0x4308('0x3f')](_0x5a84c9['query'][_0x4308('0x3f')]));_0x41526c['attributes']=_0x41526c['attributes']['length']?_0x41526c[_0x4308('0x3e')]:_0x3397f4[_0x4308('0x40')];if(!_0x5a84c9['query'][_0x4308('0x41')](_0x4308('0x42'))){_0x41526c[_0x4308('0x43')]=qs['limit'](_0x5a84c9[_0x4308('0x3a')][_0x4308('0x43')]);_0x41526c[_0x4308('0x21')]=qs[_0x4308('0x21')](_0x5a84c9[_0x4308('0x3a')][_0x4308('0x21')]);}_0x41526c[_0x4308('0x44')]=qs[_0x4308('0x45')](_0x5a84c9['query'][_0x4308('0x45')]);_0x41526c[_0x4308('0x46')]=qs['filters'](_['pick'](_0x5a84c9[_0x4308('0x3a')],_0x3397f4['filters']),_0x4dbc01);var _0x32f641=[];var _0x3e90fa=squel[_0x4308('0x47')]()['field']('id')[_0x4308('0x48')]('name')[_0x4308('0x48')](_0x4308('0x49'))[_0x4308('0x4a')](_0x4308('0x4b'));var _0x34dec5=squel[_0x4308('0x47')]()[_0x4308('0x48')](_0x4308('0x4c'))[_0x4308('0x48')](_0x4308('0x4d'))[_0x4308('0x48')](_0x4308('0x4e'))[_0x4308('0x4a')](_0x4308('0x4f'),'ui')[_0x4308('0x50')](_0x4308('0x51'),'u',_0x4308('0x52'));var _0x28317b=squel[_0x4308('0x47')]()[_0x4308('0x4a')](_0x4308('0x53'),'i')[_0x4308('0x50')]('cm_contacts','c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')[_0x4308('0x50')](_0x4308('0x51'),'o',_0x4308('0x54'))[_0x4308('0x50')](_0x4308('0x55'),'a','a.id\x20=\x20i.MailAccountId')[_0x4308('0x50')](_0x4308('0x56'),'me',_0x4308('0x57'))[_0x4308('0x50')]('mail_interaction_has_tags','it',_0x4308('0x58'))['left_join'](_0x4308('0x4b'),'t','t.id\x20=\x20it.TagId');var _0x242954=squel['expr']();var _0x3ab6db=[];var _0x493587=squel[_0x4308('0x59')]();var _0x42aaa7;if(_0x5a84c9[_0x4308('0x3a')][_0x4308('0x5a')]){_0x42aaa7=as[_0x4308('0x5b')](_0x5a84c9[_0x4308('0x3a')][_0x4308('0x5a')]);var _0x1d9fd9=_0x42aaa7[_0x4308('0x5c')];for(var _0x4dff9c=0x0;_0x4dff9c<_0x42aaa7[_0x4308('0x5d')][_0x4308('0x5e')];_0x4dff9c++){var _0x54c500=_0x42aaa7[_0x4308('0x5d')][_0x4dff9c];var _0x926666='i';var _0x5beb43=_[_0x4308('0x5f')](_0x4dbc01,[_0x4308('0x27'),_0x54c500[_0x4308('0x48')]]);if(!_0x5beb43){switch(_0x54c500[_0x4308('0x48')]){case _0x4308('0x60'):if(_0x54c500['value']==0x1){_0x28317b[_0x4308('0x61')]('`'+_0x54c500[_0x4308('0x48')]+_0x4308('0x62'));}else{_0x28317b[_0x4308('0x61')]('`'+_0x54c500[_0x4308('0x48')]+_0x4308('0x63'));}break;case _0x4308('0x64'):if(_0x54c500[_0x4308('0x65')]===_0x4308('0x66')){if(_0x54c500['value'][_0x4308('0x2c')]('\x20')['length']>0x1){_0x242954[_0x1d9fd9](_0x4308('0x67'),qs[_0x4308('0x68')](_0x54c500['value']),null);}else{var _0xf39a79='%'+_0x54c500[_0x4308('0x69')]+'%';_0x242954[_0x1d9fd9](_0x4308('0x6a'),_0xf39a79,_0xf39a79,_0xf39a79);}}else{_0x5beb43=_[_0x4308('0x5f')](_0x4dbc01,[_0x4308('0x27'),_0x4308('0x6b')]);_0x54c500[_0x4308('0x48')]=_0x4308('0x6b');_0x31f2cb=as['buildExpression'](_0x926666,_0x5beb43['type'],_0x54c500);_0x242954[_0x1d9fd9](_0x31f2cb[_0x4308('0x6c')],_0x31f2cb[_0x4308('0x69')][_0x4308('0x6d')],_0x31f2cb['value'][_0x4308('0x1e')]);}break;case _0x4308('0x6e'):var _0x577ca4=_0x54c500[_0x4308('0x69')][_0x4308('0x2c')](',')[_0x4308('0x35')](function(_0x25cf2a){return Number(_0x25cf2a);});_0x577ca4[_0x4308('0x6f')](function(_0x15bc4b){_0x493587['or'](_0x4308('0x70'),'%,'+_0x15bc4b+',%');});_0x3ab6db=_[_0x4308('0x71')](_0x3ab6db,_0x577ca4);break;case _0x4308('0x72'):if(_0x54c500['operator']===_0x4308('0x66')){_0x242954[_0x1d9fd9]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x54c500[_0x4308('0x69')]+'%',null);}else{_0x5beb43=_['find'](_0x4dbc01,[_0x4308('0x27'),_0x4308('0x73')]);_0x54c500['field']='UserId';_0x31f2cb=as[_0x4308('0x74')](_0x926666,_0x5beb43[_0x4308('0x38')],_0x54c500);_0x242954[_0x1d9fd9](_0x31f2cb[_0x4308('0x6c')],_0x31f2cb[_0x4308('0x69')][_0x4308('0x6d')],_0x31f2cb['value'][_0x4308('0x1e')]);}break;case _0x4308('0x75'):_0x31f2cb=as[_0x4308('0x74')]('me',null,_0x54c500);_0x242954[_0x1d9fd9](_0x31f2cb[_0x4308('0x6c')],_0x31f2cb[_0x4308('0x69')][_0x4308('0x6d')],_0x31f2cb['value'][_0x4308('0x1e')]);break;}}else{var _0x31f2cb=as[_0x4308('0x74')](_0x926666,_0x5beb43[_0x4308('0x38')],_0x54c500);_0x242954[_0x1d9fd9](_0x31f2cb[_0x4308('0x6c')],_0x31f2cb[_0x4308('0x69')][_0x4308('0x6d')],_0x31f2cb[_0x4308('0x69')][_0x4308('0x1e')]);}}}else{var _0x5da347=_(_0x5a84c9[_0x4308('0x3a')])[_0x4308('0x3b')]()['map'](function(_0x22b8a5){return _[_0x4308('0x76')](_0x4dbc01,['name',_0x22b8a5])?_0x22b8a5:undefined;})[_0x4308('0x77')]()[_0x4308('0x69')]();if(!_['isEmpty'](_0x5da347)){_0x5da347['forEach'](function(_0x252fbb){if(_0x252fbb===_0x4308('0x78')){_0x28317b[_0x4308('0x46')](_0x4308('0x79'),[][_0x4308('0x7a')](_0x5a84c9[_0x4308('0x3a')][_0x252fbb]));}else if(_0x252fbb===_0x4308('0x7b')){var _0x25f26c=JSON[_0x4308('0x7c')](_0x5a84c9[_0x4308('0x3a')][_0x252fbb])[_0x4308('0x7d')];var _0x51a54a=JSON[_0x4308('0x7c')](_0x5a84c9['query'][_0x252fbb])['$lte'];_0x28317b['where'](_0x4308('0x7e'),_0x25f26c,_0x51a54a);}else{if(_0x5a84c9['query'][_0x252fbb]===_0x4308('0x7f')){_0x28317b['where']('i.'+_0x252fbb+'\x20IS\x20NULL');}else{_0x28317b['where']('i.'+_0x252fbb+_0x4308('0x80'),_0x5a84c9[_0x4308('0x3a')][_0x252fbb]);}}});}if(_0x5a84c9['query']['read']){if(_0x5a84c9[_0x4308('0x3a')][_0x4308('0x81')]==0x1){_0x28317b[_0x4308('0x61')](_0x4308('0x82'));}else{_0x28317b[_0x4308('0x61')]('`unreadMessages`\x20>\x200');}}if(_0x5a84c9[_0x4308('0x3a')]['tag']){_0x3ab6db=_[_0x4308('0x83')](_0x5a84c9['query'][_0x4308('0x84')])?_0x5a84c9[_0x4308('0x3a')][_0x4308('0x84')]:new Array(_0x5a84c9['query'][_0x4308('0x84')]);_0x3ab6db[_0x4308('0x6f')](function(_0x266304){_0x493587['or'](_0x4308('0x70'),'%,'+_0x266304+',%');});}if(_0x5a84c9['query']['filter']){var _0x2ae2e0=_0x5a84c9[_0x4308('0x3a')][_0x4308('0x85')][_0x4308('0x86')]('\x5c','\x5c\x5c')['replace']('\x27\x27',_0x4308('0x87'));if(qs[_0x4308('0x88')](_0x2ae2e0)){_0x242954['or'](_0x4308('0x89'),_0x2ae2e0+'%');}else if(qs[_0x4308('0x8a')](_0x2ae2e0)){_0x242954['or']('c.email\x20LIKE\x20?',_0x2ae2e0+'%');}else{_0x242954['or'](_0x4308('0x8b'),qs[_0x4308('0x68')](_0x2ae2e0))['or'](_0x4308('0x8c'),qs[_0x4308('0x68')](_0x2ae2e0));}}}_0x28317b['where'](_0x242954);_0x28317b[_0x4308('0x8d')](_0x4308('0x8e'));var _0x1da53f={'type':db[_0x4308('0x8f')]['QueryTypes'][_0x4308('0x90')],'raw':!![]};var _0x3e1983=_0x28317b[_0x4308('0x91')]();_0x3e1983['field']('i.id');_0x3e1983[_0x4308('0x48')](_0x4308('0x92'),_0x4308('0x60'));if(_0x41526c[_0x4308('0x44')]){_0x41526c[_0x4308('0x44')][_0x4308('0x6f')](function(_0x4793c8){_0x28317b[_0x4308('0x44')]('i.'+_0x4793c8[0x0],_0x4793c8[0x1]===_0x4308('0x93')?![]:!![]);});}if(!_[_0x4308('0x94')](_0x3ab6db)){_0x28317b[_0x4308('0x61')](_0x493587);_0x3e1983['where'](_0x4308('0x95'),_0x3ab6db);}BPromise[_0x4308('0x96')]()['then'](function(){if(!_0x42aaa7){if(_0x5a84c9['query'][_0x4308('0x78')]||_0x5a84c9[_0x4308('0x3a')][_0x4308('0x97')])return;_0x3e1983[_0x4308('0x46')](_0x4308('0x98'));_0x28317b[_0x4308('0x46')](_0x4308('0x98'));return;}return _0x5a84c9[_0x4308('0x99')][_0x4308('0x9a')]({'attributes':['id'],'raw':!![]})[_0x4308('0x25')](function(_0x24761c){if(_[_0x4308('0x94')](_0x24761c)){_0x3e1983[_0x4308('0x46')](_0x4308('0x9b'));_0x28317b[_0x4308('0x46')]('i.MailAccountId\x20IS\x20NULL');}else{_0x3e1983[_0x4308('0x46')]('i.MailAccountId\x20IN\x20?',_[_0x4308('0x35')](_0x24761c,'id'));_0x28317b[_0x4308('0x46')](_0x4308('0x79'),_[_0x4308('0x35')](_0x24761c,'id'));}});})[_0x4308('0x25')](function(){db[_0x4308('0x9c')][_0x4308('0x3a')](_0x3e1983['toString'](),_0x1da53f)[_0x4308('0x25')](function(_0x1589c4){_0x4e5e1b[_0x4308('0x20')]=_0x1589c4[_0x4308('0x5e')];if(_0x4e5e1b[_0x4308('0x20')]===0x0)return[];return db[_0x4308('0x9c')][_0x4308('0x3a')](_0x3e90fa[_0x4308('0x9d')](),_0x1da53f)['then'](function(_0x59aa04){_0x32f641=_['keyBy'](_0x59aa04,'id');_0x1da53f=_[_0x4308('0x9e')](_0x1da53f,{'model':db[_0x4308('0x2f')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x5a84c9[_0x4308('0x3a')]['fields']){_0x41526c['attributes'][_0x4308('0x6f')](function(_0x15932d){_0x28317b[_0x4308('0x48')]('i.'+_0x15932d);});}else{_0x28317b[_0x4308('0x48')](_0x4308('0x92'),_0x4308('0x60'));_0x28317b[_0x4308('0x48')](_0x4308('0x9f'),'Account.key');_0x28317b[_0x4308('0x48')](_0x4308('0xa0'),_0x4308('0xa1'));_0x28317b[_0x4308('0x48')](_0x4308('0x8e'));_0x28317b[_0x4308('0x48')](_0x4308('0xa2'));_0x28317b[_0x4308('0x48')](_0x4308('0xa3'));_0x28317b[_0x4308('0x48')](_0x4308('0xa4'));_0x28317b[_0x4308('0x48')]('i.closedAt');_0x28317b[_0x4308('0x48')](_0x4308('0xa5'));_0x28317b['field'](_0x4308('0xa6'));_0x28317b[_0x4308('0x48')](_0x4308('0xa7'));_0x28317b[_0x4308('0x48')](_0x4308('0xa8'));_0x28317b['field']('i.disposition');_0x28317b[_0x4308('0x48')](_0x4308('0xa9'));_0x28317b[_0x4308('0x48')]('i.thirdDisposition');_0x28317b['field']('i.substatus');_0x28317b[_0x4308('0x48')](_0x4308('0xaa'));_0x28317b[_0x4308('0x48')](_0x4308('0xab'));_0x28317b[_0x4308('0x48')](_0x4308('0xac'));_0x28317b['field'](_0x4308('0xad'));_0x28317b[_0x4308('0x48')]('c.firstName',_0x4308('0xae'));_0x28317b[_0x4308('0x48')]('c.lastName',_0x4308('0xaf'));_0x28317b['field'](_0x4308('0xb0'),_0x4308('0xb1'));_0x28317b[_0x4308('0x48')](_0x4308('0xb2'),_0x4308('0xb3'));_0x28317b[_0x4308('0x48')]('c.mobile',_0x4308('0xb4'));_0x28317b[_0x4308('0x48')]('c.fax',_0x4308('0xb5'));_0x28317b[_0x4308('0x48')]('o.fullname',_0x4308('0xb6'));_0x28317b[_0x4308('0x48')](_0x4308('0xb7'),'Owner.internal');_0x28317b[_0x4308('0x48')]('GROUP_CONCAT(DISTINCT\x20t.id)',_0x4308('0x2e'));}if(_0x41526c['limit'])_0x28317b[_0x4308('0x43')](_0x41526c['limit']);if(_0x41526c[_0x4308('0x21')])_0x28317b[_0x4308('0x21')](_0x41526c[_0x4308('0x21')]);return db[_0x4308('0x9c')][_0x4308('0x3a')](_0x28317b[_0x4308('0x9d')](),_0x1da53f);})[_0x4308('0x25')](function(_0x309af7){_0x34dec5['where'](_0x4308('0xb8'),_[_0x4308('0x35')](_0x309af7,'id'));return db[_0x4308('0x9c')][_0x4308('0x3a')](_0x34dec5['toString'](),_0x1da53f)[_0x4308('0x25')](function(_0x2d3e57){var _0x70068f=_[_0x4308('0xb9')](_0x2d3e57,'MailInteractionId');var _0x575efb=[];return db['Setting'][_0x4308('0xba')]({'attributes':[_0x4308('0xbb')],'raw':!![]})[_0x4308('0x25')](function(_0x1a284e){var _0x5ef7df=_0x1a284e[_0x4308('0xbb')];_0x309af7[_0x4308('0x6f')](function(_0x3c240c){_0x575efb[_0x4308('0x2d')](updateMailInteraction(_0x3c240c,_0x32f641,_0x70068f,_0x5ef7df));});return BPromise[_0x4308('0xbc')](_0x575efb);});});});})[_0x4308('0x25')](function(_0x2620b9){_0x4e5e1b[_0x4308('0xbd')]=_0x2620b9;return _0x4e5e1b;})['then'](respondWithFilteredResult(_0x4566f4,_0x41526c));})[_0x4308('0x33')](handleError(_0x4566f4,null));};exports[_0x4308('0xbe')]=function(_0x78b8af,_0xcab5d){var _0x10f806={'raw':![],'where':{'id':_0x78b8af[_0x4308('0xbf')]['id']}},_0x2a086c={};_0x2a086c[_0x4308('0x40')]=_[_0x4308('0x3b')](db[_0x4308('0x2f')][_0x4308('0x36')]);_0x2a086c[_0x4308('0x3a')]=_['keys'](_0x78b8af['query']);_0x2a086c[_0x4308('0x3c')]=_[_0x4308('0x3d')](_0x2a086c[_0x4308('0x40')],_0x2a086c[_0x4308('0x3a')]);_0x10f806[_0x4308('0x3e')]=_[_0x4308('0x3d')](_0x2a086c[_0x4308('0x40')],qs[_0x4308('0x3f')](_0x78b8af['query'][_0x4308('0x3f')]));_0x10f806[_0x4308('0x3e')]=_0x10f806[_0x4308('0x3e')]['length']?_0x10f806[_0x4308('0x3e')]:_0x2a086c[_0x4308('0x40')];if(_0x78b8af[_0x4308('0x3a')][_0x4308('0xc0')]){_0x10f806[_0x4308('0xc1')]=[{'all':!![]}];}_0x10f806=_[_0x4308('0x9e')]({},_0x10f806,_0x78b8af[_0x4308('0xc2')]);return db[_0x4308('0x2f')][_0x4308('0x5f')](_0x10f806)[_0x4308('0x25')](handleEntityNotFound(_0xcab5d,null))['then'](respondWithResult(_0xcab5d,null))[_0x4308('0x33')](handleError(_0xcab5d,null));};exports[_0x4308('0xc3')]=function(_0x5cc600,_0x56c659){return db[_0x4308('0x2f')][_0x4308('0xc3')](_0x5cc600['body'],{})[_0x4308('0x25')](respondWithResult(_0x56c659,0xc9))[_0x4308('0x33')](handleError(_0x56c659,null));};exports[_0x4308('0x24')]=function(_0x34b161,_0x5ae692){if(_0x34b161[_0x4308('0xc4')]['id']){delete _0x34b161['body']['id'];}return db['MailInteraction'][_0x4308('0x5f')]({'where':{'id':_0x34b161['params']['id']}})[_0x4308('0x25')](handleEntityNotFound(_0x5ae692,null))[_0x4308('0x25')](saveUpdates(_0x34b161[_0x4308('0xc4')],null))[_0x4308('0x25')](respondWithResult(_0x5ae692,null))['catch'](handleError(_0x5ae692,null));};exports[_0x4308('0xc5')]=function(_0x3ea829,_0x31a93f){return db['MailInteraction'][_0x4308('0x5f')]({'where':{'id':_0x3ea829[_0x4308('0xbf')]['id']}})[_0x4308('0x25')](handleEntityNotFound(_0x31a93f,null))['then'](removeEntity(_0x31a93f,null))[_0x4308('0x33')](handleError(_0x31a93f,null));};exports[_0x4308('0xc6')]=function(_0x496d5d,_0x41fdb7){return db[_0x4308('0x2f')]['describe']()['then'](respondWithResult(_0x41fdb7,null))[_0x4308('0x33')](handleError(_0x41fdb7,null));};exports[_0x4308('0xc7')]=function(_0x281959,_0x342d71,_0xb22c91){return db[_0x4308('0xc8')][_0x4308('0x5f')]({'where':{'id':_0x281959[_0x4308('0xbf')]['id']}})[_0x4308('0x25')](handleEntityNotFound(_0x342d71,null))[_0x4308('0x25')](function(_0x2e5f65){if(_0x2e5f65){return _0x2e5f65[_0x4308('0xc7')](_0x281959['body'][_0x4308('0xc9')],_['omit'](_0x281959[_0x4308('0xc4')],[_0x4308('0xc9'),'id'])||{});}})[_0x4308('0x25')](respondWithResult(_0x342d71,null))['catch'](handleError(_0x342d71,null));};exports[_0x4308('0xca')]=function(_0x1aa4d5,_0x1ec234,_0x4f4e28){var _0x4f079a={'raw':![],'where':{}};var _0x8138bc={};var _0x2db621={'count':0x0,'rows':[]};return db[_0x4308('0x2f')][_0x4308('0xba')]({'where':{'id':_0x1aa4d5[_0x4308('0xbf')]['id']}})[_0x4308('0x25')](handleEntityNotFound(_0x1ec234,null))[_0x4308('0x25')](function(_0x4ca6e0){if(_0x4ca6e0){_0x8138bc[_0x4308('0x40')]=_['keys'](db[_0x4308('0xc8')][_0x4308('0x36')]);_0x8138bc[_0x4308('0x3a')]=_[_0x4308('0x3b')](_0x1aa4d5['query']);_0x8138bc[_0x4308('0x3c')]=_[_0x4308('0x3d')](_0x8138bc['model'],_0x8138bc[_0x4308('0x3a')]);_0x4f079a[_0x4308('0x3e')]=_[_0x4308('0x3d')](_0x8138bc[_0x4308('0x40')],qs[_0x4308('0x3f')](_0x1aa4d5[_0x4308('0x3a')][_0x4308('0x3f')]));_0x4f079a[_0x4308('0x3e')]=_0x4f079a['attributes'][_0x4308('0x5e')]?_0x4f079a[_0x4308('0x3e')]:_0x8138bc[_0x4308('0x40')];if(!_0x1aa4d5[_0x4308('0x3a')][_0x4308('0x41')](_0x4308('0x42'))){_0x4f079a[_0x4308('0x43')]=qs[_0x4308('0x43')](_0x1aa4d5[_0x4308('0x3a')][_0x4308('0x43')]);_0x4f079a[_0x4308('0x21')]=qs[_0x4308('0x21')](_0x1aa4d5[_0x4308('0x3a')]['offset']);}_0x4f079a[_0x4308('0x44')]=qs['sort'](_0x1aa4d5['query'][_0x4308('0x45')]);_0x4f079a[_0x4308('0x46')]=qs[_0x4308('0x3c')](_[_0x4308('0xcb')](_0x1aa4d5[_0x4308('0x3a')],_0x8138bc[_0x4308('0x3c')]));_0x4f079a['where'][_0x4308('0xcc')]=_0x4ca6e0['id'];if(_0x1aa4d5[_0x4308('0x3a')][_0x4308('0x85')]){_0x4f079a[_0x4308('0x46')]=_['merge'](_0x4f079a['where'],{'$or':_[_0x4308('0x35')](_0x4f079a[_0x4308('0x3e')],function(_0x53a30c){var _0x4f4467={};_0x4f4467[_0x53a30c]={'$like':'%'+_0x1aa4d5[_0x4308('0x3a')][_0x4308('0x85')]+'%'};return _0x4f4467;})});}if(_0x1aa4d5[_0x4308('0x3a')][_0x4308('0x7d')]){var _0x6bfad3=_0x1aa4d5[_0x4308('0x3a')]['$gte']['split'](',');var _0x53aafb={};_0x53aafb[_0x6bfad3[0x0]]={'$gte':moment(_0x6bfad3[0x1])['format'](_0x4308('0xcd'))};_0x4f079a[_0x4308('0x46')]=_[_0x4308('0x9e')](_0x4f079a[_0x4308('0x46')],_0x53aafb);}_0x4f079a=_['merge']({},_0x4f079a,_0x1aa4d5[_0x4308('0xc2')]);return db[_0x4308('0xc8')]['count']({'where':_0x4f079a[_0x4308('0x46')]})['then'](function(_0x40ed8f){_0x2db621[_0x4308('0x20')]=_0x40ed8f;if(_0x1aa4d5[_0x4308('0x3a')]['includeAll']){_0x4f079a[_0x4308('0xc1')]=[{'all':!![]}];}return db[_0x4308('0xc8')][_0x4308('0xce')](_0x4f079a);})['then'](function(_0x65db72){_0x2db621[_0x4308('0xbd')]=_0x65db72;return _0x2db621;});}})['then'](respondWithFilteredResult(_0x1ec234,_0x4f079a))[_0x4308('0x33')](handleError(_0x1ec234,null));};exports['addTags']=function(_0xcf1047,_0x48d185,_0x211cf4){return db[_0x4308('0x2f')][_0x4308('0x5f')]({'where':{'id':_0xcf1047[_0x4308('0xbf')]['id']}})['then'](handleEntityNotFound(_0x48d185,null))['then'](function(_0x5c81bb){if(_0x5c81bb){return _0x5c81bb[_0x4308('0xcf')](_0xcf1047['body'][_0x4308('0xc9')],_[_0x4308('0xd0')](_0xcf1047[_0x4308('0xc4')],[_0x4308('0xc9'),'id'])||{})['spread'](function(){return db[_0x4308('0x6e')][_0x4308('0xce')]({'attributes':['id',_0x4308('0x27'),'color'],'where':{'id':_0xcf1047['body']['ids']}});})[_0x4308('0x25')](function(_0x1199bc){socket[_0x4308('0xd1')]('mailInteractionTags:save',{'id':Number(_0xcf1047[_0x4308('0xbf')]['id']),'tags':_0x1199bc||[]});return{'id':Number(_0xcf1047[_0x4308('0xbf')]['id']),'tags':_0x1199bc||[]};});}})[_0x4308('0x25')](respondWithResult(_0x48d185,null))[_0x4308('0x33')](handleError(_0x48d185,null));};exports[_0x4308('0xd2')]=function(_0x2aa9fb,_0x3b1041,_0x33f682){return db[_0x4308('0x2f')][_0x4308('0x5f')]({'where':{'id':_0x2aa9fb[_0x4308('0xbf')]['id']}})['then'](handleEntityNotFound(_0x3b1041,null))[_0x4308('0x25')](function(_0x4084b7){if(_0x4084b7){return _0x4084b7[_0x4308('0xd2')](_0x2aa9fb[_0x4308('0x3a')][_0x4308('0xc9')]);}})[_0x4308('0x25')](respondWithStatusCode(_0x3b1041,null))[_0x4308('0x33')](handleError(_0x3b1041,null));};exports['download']=function(_0xc62504,_0x7d8f34){var _0x1bdb49=moment()[_0x4308('0xd3')]()['toString']();var _0x15c834=path[_0x4308('0xd4')](config[_0x4308('0xd5')],_0x4308('0xd6'),_0x4308('0xd7'),'tmp');var _0x59e7ff=path[_0x4308('0xd4')](config['root'],_0x4308('0xd6'),'files','attachments');var _0x39db6d=path[_0x4308('0xd4')](_0x15c834,_0x1bdb49);var _0x244251=util[_0x4308('0xd8')](_0x4308('0xd9'),_0xc62504[_0x4308('0xbf')]['id'],_0x1bdb49);var _0x19a65b=path['join'](_0x15c834,_0x244251);var _0x3130b8=[];if(_0xc62504[_0x4308('0x3a')][_0x4308('0xda')]){_0x3130b8[_0x4308('0x2d')]({'model':db[_0x4308('0xdb')],'as':_0x4308('0xdc'),'raw':!![]});}var _0x513bfe=[{'model':db[_0x4308('0xc8')],'as':_0x4308('0xdd'),'attributes':['id','body','from','to','cc',_0x4308('0xde'),_0x4308('0xdf'),_0x4308('0x7b')],'where':{'secret':![]},'order':qs['sort']('id'),'include':_0x3130b8}];return db[_0x4308('0x2f')][_0x4308('0x5f')]({'where':{'id':_0xc62504[_0x4308('0xbf')]['id']},'include':_0x513bfe})[_0x4308('0x25')](handleEntityNotFound(_0x7d8f34,null))['then'](function(_0x5c8d8e){if(_0x5c8d8e&&_0x5c8d8e[_0x4308('0xdd')]){var _0x3e0255=_0x5c8d8e[_0x4308('0xe0')]({'plain':!![]});fs['mkdirSync'](_0x39db6d);return BPromise[_0x4308('0xe1')](_0x3e0255['Messages'],function(_0x50e6ea,_0x2c375a){var _0x27148d={'from':_0x50e6ea[_0x4308('0x4a')],'to':_0x50e6ea['to'],'subject':_0x50e6ea[_0x4308('0xdf')],'html':_0x50e6ea[_0x4308('0xc4')],'headers':{'Date':moment(_0x50e6ea[_0x4308('0x7b')])[_0x4308('0xd8')](_0x4308('0xe2'))},'attachments':[]};if(_0x50e6ea['cc']){_0x27148d[_0x4308('0xe3')]['Cc']=_0x50e6ea['cc'];}if(_0x50e6ea[_0x4308('0xde')]){_0x27148d[_0x4308('0xe3')][_0x4308('0xe4')]=_0x50e6ea[_0x4308('0xde')];}return new BPromise(function(_0x104b89,_0x36b698){if(_0x50e6ea[_0x4308('0xdc')]){for(var _0x2fc21a=0x0;_0x2fc21a<_0x50e6ea[_0x4308('0xdc')][_0x4308('0x5e')];_0x2fc21a++){var _0x445972=_0x50e6ea['Attachments'][_0x2fc21a];var _0x258ba0=path[_0x4308('0xd4')](_0x59e7ff,_0x445972[_0x4308('0xe5')]);if(fs['existsSync'](_0x258ba0)){_0x27148d[_0x4308('0xda')][_0x4308('0x2d')]({'name':_0x445972[_0x4308('0x27')],'contentType':_0x445972[_0x4308('0x38')],'data':fs[_0x4308('0xe6')](_0x258ba0)});}}}emlformat[_0x4308('0xe7')](_0x27148d,function(_0xf0d73f,_0x24e2b9){if(_0xf0d73f)return _0x36b698(_0xf0d73f);fs[_0x4308('0xe8')](path[_0x4308('0xd4')](_0x39db6d,util[_0x4308('0xd8')](_0x4308('0xe9'),_0x2c375a)),_0x24e2b9);return _0x104b89(_0x24e2b9);});});})[_0x4308('0x25')](function(){return new BPromise(function(_0x34474a,_0x236ceb){zipdir(_0x39db6d,{'saveTo':_0x19a65b},function(_0x5084e8,_0x3aed9f){if(_0x5084e8)return _0x236ceb(_0x5084e8);return _0x34474a(_0x3aed9f);});})['then'](function(){return new BPromise(function(_0x3c4780,_0x20afa3){rimraf(_0x39db6d,function(_0xaf887b){if(_0xaf887b)_0x20afa3(_0xaf887b);return _0x3c4780();});});})[_0x4308('0x25')](function(){return _0x7d8f34['download'](_0x19a65b,_0x244251,function(_0x52ab4b){if(_0x52ab4b){console[_0x4308('0xea')](_0x4308('0xeb'),_0x52ab4b);}else{fs[_0x4308('0xec')](_0x19a65b);}});});});}else{return _0x7d8f34[_0x4308('0x1c')](0xc8);}})[_0x4308('0x33')](handleError(_0x7d8f34,null));};