8484e9f192d9e9ff70f3043e25ffab1d0723cdb6
[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 _0x94eb=['nolimit','limit','order','sort','where','pick','field','color','from','tools_tags','u.id','ui.MailInteractionId','user_has_mail_interactions','users','left_join','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','a.id\x20=\x20i.MailAccountId','mail_messages','t.id\x20=\x20it.TagId','expr','search','sqlOperator','conditions','unreadMessages','value','having','operator','$substring','length','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','ContactId','buildExpression','text','start','end','Tag','map','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','find','UserId','plainBody','some','isEmpty','i.MailAccountId\x20IN\x20?','concat','createdAt','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20=\x20?','read','`unreadMessages`\x20>\x200','tag','filter','replace','isEmail','MATCH\x20(i.to,\x20i.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','MATCH\x20(me.plainBody,\x20me.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','group','i.id','Sequelize','QueryTypes','SELECT','contactName','DESC','t.id\x20IN\x20?','resolve','MailAccountId','user','role','agent','getMailAccounts','i.MailAccountId\x20IS\x20NULL','sequelize','merge','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','i.updatedAt','i.lastMsgAt','i.lastMsgDirection','i.subject','i.secondDisposition','i.thirdDisposition','i.to','i.MailAccountId','i.UserId','c.firstName','Contact.firstName','c.lastName','Contact.lastName','c.email','c.phone','Contact.phone','c.mobile','Contact.mobile','c.fax','Contact.fax','o.fullname','o.internal','Owner.internal','toString','ui.MailInteractionId\x20IN\x20?','MailInteractionId','Setting','enableEmailPreview','push','rows','show','params','fields','includeAll','include','create','body','describe','addMessage','MailMessage','ids','getMessages','format','YYYY-MM-DD\x20HH:mm:ss','options','findAll','addTags','setTags','omit','spread','emit','mailInteractionTags:save','removeTags','download','unix','join','server','files','tmp','root','transcript-%d-%s.zip','Attachment','Attachments','Messages','bcc','each','subject','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','basename','existsSync','attachments','readFileSync','build','writeFileSync','message%d.eml','err','unlinkSync','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','crypto','desk.js','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/utils','../../config/environment','redis','socket.io-emitter','./mailInteraction.socket','register','sendStatus','status','json','count','offset','set','apply','reject','save','update','destroy','then','error','stack','name','Users','TagIds','Tags','split','forEach','MailInteraction','findOne','lastMsgBody','lastMsgText','trimStart','fromString','catch','index','rawAttributes','fieldName','type','key','model','query','keys','filters','intersection','attributes','hasOwnProperty'];(function(_0x67aa29,_0x43ccea){var _0x5bf35f=function(_0x26f5f4){while(--_0x26f5f4){_0x67aa29['push'](_0x67aa29['shift']());}};_0x5bf35f(++_0x43ccea);}(_0x94eb,0xa5));var _0xb94e=function(_0x12891e,_0x428d9c){_0x12891e=_0x12891e-0x0;var _0x23398e=_0x94eb[_0x12891e];return _0x23398e;};'use strict';var pdf=require(_0xb94e('0x0'));var emlformat=require(_0xb94e('0x1'));var rimraf=require(_0xb94e('0x2'));var zipdir=require(_0xb94e('0x3'));var jsonpatch=require(_0xb94e('0x4'));var rp=require(_0xb94e('0x5'));var moment=require(_0xb94e('0x6'));var BPromise=require(_0xb94e('0x7'));var Mustache=require(_0xb94e('0x8'));var util=require(_0xb94e('0x9'));var path=require(_0xb94e('0xa'));var sox=require(_0xb94e('0xb'));var csv=require(_0xb94e('0xc'));var ejs=require(_0xb94e('0xd'));var fs=require('fs');var _=require(_0xb94e('0xe'));var squel=require('squel');var crypto=require(_0xb94e('0xf'));var jsforce=require('jsforce');var deskjs=require(_0xb94e('0x10'));var toCsv=require(_0xb94e('0xc'));var querystring=require(_0xb94e('0x11'));var Papa=require(_0xb94e('0x12'));var htmlToText=require('html-to-text');var Redis=require(_0xb94e('0x13'));var authService=require(_0xb94e('0x14'));var qs=require(_0xb94e('0x15'));var as=require(_0xb94e('0x16'));var hardwareService=require('../../config/license/hardware');var logger=require(_0xb94e('0x17'))(_0xb94e('0x18'));var utils=require(_0xb94e('0x19'));var config=require(_0xb94e('0x1a'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config['redis']=_['defaults'](config[_0xb94e('0x1b')],{'host':'localhost','port':0x18eb});var socket=require(_0xb94e('0x1c'))(new Redis(config[_0xb94e('0x1b')]));require(_0xb94e('0x1d'))[_0xb94e('0x1e')](socket);function respondWithStatusCode(_0x822378,_0x3a4c01){_0x3a4c01=_0x3a4c01||0xcc;return function(_0x1b98a7){if(_0x1b98a7){return _0x822378[_0xb94e('0x1f')](_0x3a4c01);}return _0x822378['status'](_0x3a4c01)['end']();};}function respondWithResult(_0x90f4f8,_0x3f679b){_0x3f679b=_0x3f679b||0xc8;return function(_0x3cb9f8){if(_0x3cb9f8){return _0x90f4f8[_0xb94e('0x20')](_0x3f679b)[_0xb94e('0x21')](_0x3cb9f8);}};}function respondWithFilteredResult(_0x4a47be,_0x54eb69){return function(_0x685e8c){if(_0x685e8c){var _0x2baa6f=_0x685e8c[_0xb94e('0x22')],_0x40f0ec=_0x54eb69[_0xb94e('0x23')],_0x3b0d3e=_0x54eb69[_0xb94e('0x23')]+_0x54eb69['limit'],_0x4fc06e;if(_0x3b0d3e>=_0x2baa6f){_0x3b0d3e=_0x2baa6f;_0x4fc06e=0xc8;}else{_0x4fc06e=0xce;}_0x4a47be[_0xb94e('0x20')](_0x4fc06e);return _0x4a47be[_0xb94e('0x24')]('Content-Range',_0x40f0ec+'-'+_0x3b0d3e+'/'+_0x2baa6f)[_0xb94e('0x21')](_0x685e8c);}return null;};}function patchUpdates(_0x46db3e){return function(_0x41448b){try{jsonpatch[_0xb94e('0x25')](_0x41448b,_0x46db3e,!![]);}catch(_0x4bbac9){return BPromise[_0xb94e('0x26')](_0x4bbac9);}return _0x41448b[_0xb94e('0x27')]();};}function saveUpdates(_0x38f52a,_0x522562){return function(_0x285949){if(_0x285949){return _0x285949[_0xb94e('0x28')](_0x38f52a)['then'](function(_0x1cd4ec){return _0x1cd4ec;});}return null;};}function removeEntity(_0x1b821e,_0x297654){return function(_0x2d3add){if(_0x2d3add){return _0x2d3add[_0xb94e('0x29')]()[_0xb94e('0x2a')](function(){_0x1b821e[_0xb94e('0x20')](0xcc)['end']();});}};}function handleEntityNotFound(_0x1df810,_0x3d271e){return function(_0x4ac535){if(!_0x4ac535){_0x1df810['sendStatus'](0x194);}return _0x4ac535;};}function handleError(_0x1f3265,_0x1752c1){_0x1752c1=_0x1752c1||0x1f4;return function(_0x4a3ce2){logger[_0xb94e('0x2b')](_0x4a3ce2[_0xb94e('0x2c')]);if(_0x4a3ce2[_0xb94e('0x2d')]){delete _0x4a3ce2[_0xb94e('0x2d')];}_0x1f3265[_0xb94e('0x20')](_0x1752c1)['send'](_0x4a3ce2);};}function getInteractionUsers(_0x1d8018,_0xfa2e1f){return new BPromise(function(_0x580c14,_0x58f1ac){try{if(_0xfa2e1f[_0x1d8018['id']]){_0x1d8018[_0xb94e('0x2e')]=_['map'](_0xfa2e1f[_0x1d8018['id']],function(_0x451474){return{'id':_0x451474['id'],'fullname':_0x451474['fullname']};});}}catch(_0x96912f){_0x58f1ac(_0x96912f);}_0x580c14(_0x1d8018);});}function getInteractionTags(_0x287ebd,_0x1925ed){return new BPromise(function(_0x9eef51,_0x11760f){try{if(_0x287ebd[_0xb94e('0x2f')]){_0x287ebd[_0xb94e('0x30')]=[];_0x287ebd[_0xb94e('0x2f')][_0xb94e('0x31')](',')[_0xb94e('0x32')](function(_0x197b74){_0x287ebd[_0xb94e('0x30')]['push'](_0x1925ed[_0x197b74]);});}delete _0x287ebd[_0xb94e('0x2f')];}catch(_0x32bc5b){_0x11760f(_0x32bc5b);}_0x9eef51(_0x287ebd);});}function getLastMessageText(_0x5b6750){return new BPromise(function(_0x1c197c,_0x57ad90){return db[_0xb94e('0x33')][_0xb94e('0x34')]({'where':{'id':_0x5b6750['id']},'attributes':[_0xb94e('0x35'),'lastMsgText'],'raw':!![]})[_0xb94e('0x2a')](function(_0x1c14ec){if(!_0x1c14ec[_0xb94e('0x36')]){_0x5b6750[_0xb94e('0x36')]=_[_0xb94e('0x37')](htmlToText[_0xb94e('0x38')](_0x1c14ec['lastMsgBody'],{'preserveNewlines':!![],'singleNewLineParagraphs':!![],'uppercaseHeadings':![],'noLinkBrackets':!![],'ignoreImage':!![]}));}else{_0x5b6750[_0xb94e('0x36')]=_0x1c14ec[_0xb94e('0x36')];}_0x1c197c(_0x5b6750);})['catch'](function(_0x3598ae){_0x57ad90(_0x3598ae);});});}function updateMailInteraction(_0x30122e,_0x50af42,_0x5720e5,_0x3b6106){return new BPromise(function(_0x371829,_0xc372ca){return getInteractionUsers(_0x30122e,_0x5720e5)['then'](function(_0x1c9c8b){return getInteractionTags(_0x1c9c8b,_0x50af42);})[_0xb94e('0x2a')](function(_0x53d62d){if(_0x3b6106){_0x371829(getLastMessageText(_0x53d62d));}else{_0x371829(_0x53d62d);}})[_0xb94e('0x39')](function(_0x319282){_0xc372ca(_0x319282);});});}exports[_0xb94e('0x3a')]=function(_0x8f6cc1,_0xbae9ca){var _0x3438ec={},_0x5747f6={},_0x3e53e2={'count':0x0,'rows':[]};var _0xe0cdd9=_['map'](db[_0xb94e('0x33')][_0xb94e('0x3b')],function(_0x39c9b4){return{'name':_0x39c9b4[_0xb94e('0x3c')],'type':_0x39c9b4[_0xb94e('0x3d')][_0xb94e('0x3e')]};});_0x5747f6[_0xb94e('0x3f')]=_['map'](_0xe0cdd9,_0xb94e('0x2d'));_0x5747f6[_0xb94e('0x40')]=_[_0xb94e('0x41')](_0x8f6cc1['query']);_0x5747f6[_0xb94e('0x42')]=_[_0xb94e('0x43')](_0x5747f6['model'],_0x5747f6[_0xb94e('0x40')]);_0x3438ec[_0xb94e('0x44')]=_[_0xb94e('0x43')](_0x5747f6[_0xb94e('0x3f')],qs['fields'](_0x8f6cc1[_0xb94e('0x40')]['fields']));_0x3438ec[_0xb94e('0x44')]=_0x3438ec['attributes']['length']?_0x3438ec[_0xb94e('0x44')]:_0x5747f6['model'];if(!_0x8f6cc1[_0xb94e('0x40')][_0xb94e('0x45')](_0xb94e('0x46'))){_0x3438ec[_0xb94e('0x47')]=qs['limit'](_0x8f6cc1[_0xb94e('0x40')][_0xb94e('0x47')]);_0x3438ec[_0xb94e('0x23')]=qs[_0xb94e('0x23')](_0x8f6cc1['query'][_0xb94e('0x23')]);}_0x3438ec[_0xb94e('0x48')]=qs[_0xb94e('0x49')](_0x8f6cc1['query'][_0xb94e('0x49')]);_0x3438ec[_0xb94e('0x4a')]=qs[_0xb94e('0x42')](_[_0xb94e('0x4b')](_0x8f6cc1[_0xb94e('0x40')],_0x5747f6[_0xb94e('0x42')]),_0xe0cdd9);var _0x3b3aec=[];var _0x5660a8=squel['select']()[_0xb94e('0x4c')]('id')['field'](_0xb94e('0x2d'))[_0xb94e('0x4c')](_0xb94e('0x4d'))[_0xb94e('0x4e')](_0xb94e('0x4f'));var _0x52dce6=squel['select']()[_0xb94e('0x4c')](_0xb94e('0x50'))[_0xb94e('0x4c')]('u.fullname')['field'](_0xb94e('0x51'))[_0xb94e('0x4e')](_0xb94e('0x52'),'ui')['left_join'](_0xb94e('0x53'),'u','u.id\x20=\x20ui.UserId');var _0x530adf=squel['select']()[_0xb94e('0x4e')]('mail_interactions','i')[_0xb94e('0x54')]('cm_contacts','c',_0xb94e('0x55'))[_0xb94e('0x54')](_0xb94e('0x53'),'o',_0xb94e('0x56'))[_0xb94e('0x54')]('mail_accounts','a',_0xb94e('0x57'))['left_join'](_0xb94e('0x58'),'me','me.MailInteractionId\x20=\x20i.id')['left_join']('mail_interaction_has_tags','it','it.MailInteractionId\x20=\x20i.id')['left_join']('tools_tags','t',_0xb94e('0x59'));var _0x316282=squel['expr']();var _0x4861a9=[];var _0x3c2b06=squel[_0xb94e('0x5a')]();var _0x19cddf;if(_0x8f6cc1[_0xb94e('0x40')][_0xb94e('0x5b')]){_0x19cddf=as['parseSearch'](_0x8f6cc1[_0xb94e('0x40')]['search']);var _0x609307=_0x19cddf[_0xb94e('0x5c')];for(var _0x25e190=0x0;_0x25e190<_0x19cddf[_0xb94e('0x5d')]['length'];_0x25e190++){var _0x1ed28a=_0x19cddf[_0xb94e('0x5d')][_0x25e190];var _0x597501='i';var _0x2ac545=_['find'](_0xe0cdd9,['name',_0x1ed28a[_0xb94e('0x4c')]]);if(!_0x2ac545){switch(_0x1ed28a[_0xb94e('0x4c')]){case _0xb94e('0x5e'):if(_0x1ed28a[_0xb94e('0x5f')]==0x1){_0x530adf[_0xb94e('0x60')]('`'+_0x1ed28a[_0xb94e('0x4c')]+'`\x20=\x200');}else{_0x530adf[_0xb94e('0x60')]('`'+_0x1ed28a[_0xb94e('0x4c')]+'`\x20>\x200');}break;case'Contact':if(_0x1ed28a[_0xb94e('0x61')]===_0xb94e('0x62')){if(_0x1ed28a[_0xb94e('0x5f')]['split']('\x20')[_0xb94e('0x63')]>0x1){_0x316282[_0x609307](_0xb94e('0x64'),qs['getFullTextValue'](_0x1ed28a[_0xb94e('0x5f')]),null);}else{var _0x2b3554='%'+_0x1ed28a[_0xb94e('0x5f')]+'%';_0x316282[_0x609307]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x2b3554,_0x2b3554,_0x2b3554);}}else{_0x2ac545=_['find'](_0xe0cdd9,[_0xb94e('0x2d'),_0xb94e('0x65')]);_0x1ed28a[_0xb94e('0x4c')]=_0xb94e('0x65');_0x538372=as[_0xb94e('0x66')](_0x597501,_0x2ac545[_0xb94e('0x3d')],_0x1ed28a);_0x316282[_0x609307](_0x538372[_0xb94e('0x67')],_0x538372[_0xb94e('0x5f')][_0xb94e('0x68')],_0x538372[_0xb94e('0x5f')][_0xb94e('0x69')]);}break;case _0xb94e('0x6a'):var _0x4062f7=_0x1ed28a[_0xb94e('0x5f')][_0xb94e('0x31')](',')[_0xb94e('0x6b')](function(_0xa65f25){return Number(_0xa65f25);});_0x4062f7[_0xb94e('0x32')](function(_0x516b34){_0x3c2b06['or'](_0xb94e('0x6c'),'%,'+_0x516b34+',%');});_0x4861a9=_['union'](_0x4861a9,_0x4062f7);break;case _0xb94e('0x6d'):if(_0x1ed28a[_0xb94e('0x61')]===_0xb94e('0x62')){_0x316282[_0x609307](_0xb94e('0x6e'),'%'+_0x1ed28a[_0xb94e('0x5f')]+'%',null);}else{_0x2ac545=_[_0xb94e('0x6f')](_0xe0cdd9,[_0xb94e('0x2d'),'UserId']);_0x1ed28a[_0xb94e('0x4c')]=_0xb94e('0x70');_0x538372=as['buildExpression'](_0x597501,_0x2ac545[_0xb94e('0x3d')],_0x1ed28a);_0x316282[_0x609307](_0x538372['text'],_0x538372[_0xb94e('0x5f')][_0xb94e('0x68')],_0x538372[_0xb94e('0x5f')][_0xb94e('0x69')]);}break;case _0xb94e('0x71'):_0x538372=as[_0xb94e('0x66')]('me',null,_0x1ed28a);_0x316282[_0x609307](_0x538372['text'],_0x538372[_0xb94e('0x5f')][_0xb94e('0x68')],_0x538372[_0xb94e('0x5f')][_0xb94e('0x69')]);break;}}else{var _0x538372=as[_0xb94e('0x66')](_0x597501,_0x2ac545[_0xb94e('0x3d')],_0x1ed28a);_0x316282[_0x609307](_0x538372[_0xb94e('0x67')],_0x538372[_0xb94e('0x5f')][_0xb94e('0x68')],_0x538372[_0xb94e('0x5f')][_0xb94e('0x69')]);}}}else{var _0x1ed56b=_(_0x8f6cc1[_0xb94e('0x40')])[_0xb94e('0x41')]()['map'](function(_0x2a7a6e){return _[_0xb94e('0x72')](_0xe0cdd9,['name',_0x2a7a6e])?_0x2a7a6e:undefined;})['compact']()['value']();if(!_[_0xb94e('0x73')](_0x1ed56b)){_0x1ed56b[_0xb94e('0x32')](function(_0x113bae){if(_0x113bae==='MailAccountId'){_0x530adf[_0xb94e('0x4a')](_0xb94e('0x74'),[][_0xb94e('0x75')](_0x8f6cc1[_0xb94e('0x40')][_0x113bae]));}else if(_0x113bae===_0xb94e('0x76')){var _0x2bec4d=JSON[_0xb94e('0x77')](_0x8f6cc1[_0xb94e('0x40')][_0x113bae])[_0xb94e('0x78')];var _0x4f76fe=JSON['parse'](_0x8f6cc1[_0xb94e('0x40')][_0x113bae])[_0xb94e('0x79')];_0x530adf[_0xb94e('0x4a')](_0xb94e('0x7a'),_0x2bec4d,_0x4f76fe);}else{if(_0x8f6cc1[_0xb94e('0x40')][_0x113bae]===_0xb94e('0x7b')){_0x530adf['where']('i.'+_0x113bae+'\x20IS\x20NULL');}else{_0x530adf[_0xb94e('0x4a')]('i.'+_0x113bae+_0xb94e('0x7c'),_0x8f6cc1[_0xb94e('0x40')][_0x113bae]);}}});}if(_0x8f6cc1[_0xb94e('0x40')][_0xb94e('0x7d')]){if(_0x8f6cc1[_0xb94e('0x40')]['read']==0x1){_0x530adf[_0xb94e('0x60')]('`unreadMessages`\x20=\x200');}else{_0x530adf['having'](_0xb94e('0x7e'));}}if(_0x8f6cc1[_0xb94e('0x40')]['tag']){_0x4861a9=_['isArray'](_0x8f6cc1[_0xb94e('0x40')][_0xb94e('0x7f')])?_0x8f6cc1[_0xb94e('0x40')]['tag']:new Array(_0x8f6cc1['query'][_0xb94e('0x7f')]);_0x4861a9[_0xb94e('0x32')](function(_0x3297e3){_0x3c2b06['or'](_0xb94e('0x6c'),'%,'+_0x3297e3+',%');});}if(_0x8f6cc1[_0xb94e('0x40')][_0xb94e('0x80')]){var _0x128014=_0x8f6cc1[_0xb94e('0x40')][_0xb94e('0x80')][_0xb94e('0x81')]('\x5c','\x5c\x5c')[_0xb94e('0x81')](/'/g,'\x27\x27');if(qs['isNumeric'](_0x128014)){_0x316282['or']('i.id\x20LIKE\x20?',_0x128014+'%');}else if(qs[_0xb94e('0x82')](_0x128014)){_0x316282['or']('c.email\x20LIKE\x20?',_0x128014+'%');}else{_0x316282['or'](_0xb94e('0x83'),qs['getFullTextValue'](_0x128014))['or'](_0xb94e('0x84'),qs[_0xb94e('0x85')](_0x128014));}}}_0x530adf[_0xb94e('0x4a')](_0x316282);_0x530adf[_0xb94e('0x86')](_0xb94e('0x87'));var _0x5fb63b={'type':db[_0xb94e('0x88')][_0xb94e('0x89')][_0xb94e('0x8a')],'raw':!![]};var _0x47b195=_0x530adf['clone']();_0x47b195['field']('i.id');_0x47b195[_0xb94e('0x4c')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0xb94e('0x5e'));if(_0x3438ec[_0xb94e('0x48')]){_0x3438ec[_0xb94e('0x48')][_0xb94e('0x32')](function(_0xd95cb0){var _0x5a7f2f=_0xd95cb0[0x0]===_0xb94e('0x8b')?_0xd95cb0[0x0]:'i.'+_0xd95cb0[0x0];_0x530adf[_0xb94e('0x48')](_0x5a7f2f,_0xd95cb0[0x1]===_0xb94e('0x8c')?![]:!![]);});}if(!_[_0xb94e('0x73')](_0x4861a9)){_0x530adf[_0xb94e('0x60')](_0x3c2b06);_0x47b195[_0xb94e('0x4a')](_0xb94e('0x8d'),_0x4861a9);}BPromise[_0xb94e('0x8e')]()['then'](function(){if(!_0x19cddf){if(_0x8f6cc1[_0xb94e('0x40')][_0xb94e('0x8f')]||_0x8f6cc1[_0xb94e('0x40')]['journey'])return;_0x47b195[_0xb94e('0x4a')]('i.MailAccountId\x20IS\x20NOT\x20NULL');_0x530adf[_0xb94e('0x4a')]('i.MailAccountId\x20IS\x20NOT\x20NULL');return;}if(_0x8f6cc1[_0xb94e('0x90')][_0xb94e('0x91')]!==_0xb94e('0x92'))return;return _0x8f6cc1[_0xb94e('0x90')][_0xb94e('0x93')]({'attributes':['id'],'raw':!![]})['then'](function(_0x33d5f9){if(_[_0xb94e('0x73')](_0x33d5f9)){_0x47b195['where'](_0xb94e('0x94'));_0x530adf[_0xb94e('0x4a')]('i.MailAccountId\x20IS\x20NULL');}else{_0x47b195[_0xb94e('0x4a')](_0xb94e('0x74'),_[_0xb94e('0x6b')](_0x33d5f9,'id'));_0x530adf[_0xb94e('0x4a')](_0xb94e('0x74'),_[_0xb94e('0x6b')](_0x33d5f9,'id'));}});})[_0xb94e('0x2a')](function(){if(_0x8f6cc1[_0xb94e('0x90')][_0xb94e('0x91')]===_0xb94e('0x92')&&!_0x19cddf&&!_0x8f6cc1[_0xb94e('0x40')][_0xb94e('0x8f')])return[];return db[_0xb94e('0x95')][_0xb94e('0x40')](_0x47b195['toString'](),_0x5fb63b);})[_0xb94e('0x2a')](function(_0x54530b){_0x3e53e2['count']=_0x54530b[_0xb94e('0x63')];if(_0x3e53e2['count']===0x0)return[];return db[_0xb94e('0x95')][_0xb94e('0x40')](_0x5660a8['toString'](),_0x5fb63b)[_0xb94e('0x2a')](function(_0x22dbb9){_0x3b3aec=_['keyBy'](_0x22dbb9,'id');_0x5fb63b=_[_0xb94e('0x96')](_0x5fb63b,{'model':db[_0xb94e('0x33')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x8f6cc1[_0xb94e('0x40')]['fields']){_0x3438ec[_0xb94e('0x44')]['forEach'](function(_0x3e1f6f){_0x530adf[_0xb94e('0x4c')]('i.'+_0x3e1f6f);});}else{_0x530adf[_0xb94e('0x4c')](_0xb94e('0x97'),'unreadMessages');_0x530adf[_0xb94e('0x4c')](_0xb94e('0x98'),_0xb94e('0x99'));_0x530adf[_0xb94e('0x4c')](_0xb94e('0x9a'),_0xb94e('0x9b'));_0x530adf[_0xb94e('0x4c')]('CASE\x20WHEN\x20i.to\x20IS\x20NOT\x20NULL\x20AND\x20i.to\x20<>\x20\x27\x27\x20AND\x20i.to\x20NOT\x20LIKE\x20(\x27%\x27\x20+\x20a.email\x20+\x20\x27%\x27)\x20THEN\x20SUBSTRING_INDEX(i.to,\x20\x27<\x27,\x201)\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END',_0xb94e('0x8b'));_0x530adf[_0xb94e('0x4c')](_0xb94e('0x87'));_0x530adf[_0xb94e('0x4c')]('i.createdAt');_0x530adf['field'](_0xb94e('0x9c'));_0x530adf[_0xb94e('0x4c')]('i.closed');_0x530adf['field']('i.closedAt');_0x530adf['field']('i.attach');_0x530adf[_0xb94e('0x4c')](_0xb94e('0x9d'));_0x530adf['field'](_0xb94e('0x9e'));_0x530adf[_0xb94e('0x4c')](_0xb94e('0x9f'));_0x530adf['field']('i.disposition');_0x530adf[_0xb94e('0x4c')](_0xb94e('0xa0'));_0x530adf[_0xb94e('0x4c')](_0xb94e('0xa1'));_0x530adf[_0xb94e('0x4c')]('i.substatus');_0x530adf[_0xb94e('0x4c')](_0xb94e('0xa2'));_0x530adf[_0xb94e('0x4c')]('i.ContactId');_0x530adf['field'](_0xb94e('0xa3'));_0x530adf[_0xb94e('0x4c')](_0xb94e('0xa4'));_0x530adf[_0xb94e('0x4c')](_0xb94e('0xa5'),_0xb94e('0xa6'));_0x530adf[_0xb94e('0x4c')](_0xb94e('0xa7'),_0xb94e('0xa8'));_0x530adf[_0xb94e('0x4c')](_0xb94e('0xa9'),'Contact.email');_0x530adf[_0xb94e('0x4c')](_0xb94e('0xaa'),_0xb94e('0xab'));_0x530adf[_0xb94e('0x4c')](_0xb94e('0xac'),_0xb94e('0xad'));_0x530adf[_0xb94e('0x4c')](_0xb94e('0xae'),_0xb94e('0xaf'));_0x530adf[_0xb94e('0x4c')](_0xb94e('0xb0'),'Owner.fullname');_0x530adf['field'](_0xb94e('0xb1'),_0xb94e('0xb2'));_0x530adf[_0xb94e('0x4c')]('GROUP_CONCAT(DISTINCT\x20t.id)',_0xb94e('0x2f'));}if(_0x3438ec[_0xb94e('0x47')])_0x530adf[_0xb94e('0x47')](_0x3438ec[_0xb94e('0x47')]);if(_0x3438ec[_0xb94e('0x23')])_0x530adf[_0xb94e('0x23')](_0x3438ec['offset']);return db[_0xb94e('0x95')][_0xb94e('0x40')](_0x530adf[_0xb94e('0xb3')](),_0x5fb63b);})[_0xb94e('0x2a')](function(_0x1a98d4){_0x52dce6['where'](_0xb94e('0xb4'),_[_0xb94e('0x6b')](_0x1a98d4,'id'));return db['sequelize'][_0xb94e('0x40')](_0x52dce6[_0xb94e('0xb3')](),_0x5fb63b)[_0xb94e('0x2a')](function(_0x5a0a05){var _0x5170fb=_['groupBy'](_0x5a0a05,_0xb94e('0xb5'));var _0x2fbe6f=[];return db[_0xb94e('0xb6')][_0xb94e('0x34')]({'attributes':[_0xb94e('0xb7')],'raw':!![]})[_0xb94e('0x2a')](function(_0x26498b){var _0x31b649=_0x26498b[_0xb94e('0xb7')];_0x1a98d4['forEach'](function(_0x364cac){_0x2fbe6f[_0xb94e('0xb8')](updateMailInteraction(_0x364cac,_0x3b3aec,_0x5170fb,_0x31b649));});return BPromise['all'](_0x2fbe6f);});});});})[_0xb94e('0x2a')](function(_0x3b0f04){_0x3e53e2[_0xb94e('0xb9')]=_0x3b0f04;return _0x3e53e2;})[_0xb94e('0x2a')](respondWithFilteredResult(_0xbae9ca,_0x3438ec))['catch'](handleError(_0xbae9ca,null));};exports[_0xb94e('0xba')]=function(_0x6838fb,_0x511510){var _0x568c23={'raw':![],'where':{'id':_0x6838fb[_0xb94e('0xbb')]['id']}},_0x21e772={};_0x21e772[_0xb94e('0x3f')]=_[_0xb94e('0x41')](db[_0xb94e('0x33')][_0xb94e('0x3b')]);_0x21e772[_0xb94e('0x40')]=_[_0xb94e('0x41')](_0x6838fb[_0xb94e('0x40')]);_0x21e772[_0xb94e('0x42')]=_['intersection'](_0x21e772['model'],_0x21e772[_0xb94e('0x40')]);_0x568c23[_0xb94e('0x44')]=_[_0xb94e('0x43')](_0x21e772[_0xb94e('0x3f')],qs[_0xb94e('0xbc')](_0x6838fb['query'][_0xb94e('0xbc')]));_0x568c23[_0xb94e('0x44')]=_0x568c23[_0xb94e('0x44')]['length']?_0x568c23['attributes']:_0x21e772[_0xb94e('0x3f')];if(_0x6838fb[_0xb94e('0x40')][_0xb94e('0xbd')]){_0x568c23[_0xb94e('0xbe')]=[{'all':!![]}];}_0x568c23=_[_0xb94e('0x96')]({},_0x568c23,_0x6838fb['options']);return db[_0xb94e('0x33')][_0xb94e('0x6f')](_0x568c23)['then'](handleEntityNotFound(_0x511510,null))['then'](respondWithResult(_0x511510,null))[_0xb94e('0x39')](handleError(_0x511510,null));};exports[_0xb94e('0xbf')]=function(_0x29a563,_0x1b9877){return db[_0xb94e('0x33')][_0xb94e('0xbf')](_0x29a563[_0xb94e('0xc0')],{})[_0xb94e('0x2a')](respondWithResult(_0x1b9877,0xc9))[_0xb94e('0x39')](handleError(_0x1b9877,null));};exports[_0xb94e('0x28')]=function(_0x493c50,_0x73c426){if(_0x493c50[_0xb94e('0xc0')]['id']){delete _0x493c50['body']['id'];}return db[_0xb94e('0x33')][_0xb94e('0x6f')]({'where':{'id':_0x493c50[_0xb94e('0xbb')]['id']}})['then'](handleEntityNotFound(_0x73c426,null))[_0xb94e('0x2a')](saveUpdates(_0x493c50[_0xb94e('0xc0')],null))[_0xb94e('0x2a')](respondWithResult(_0x73c426,null))[_0xb94e('0x39')](handleError(_0x73c426,null));};exports[_0xb94e('0x29')]=function(_0x54276e,_0x4ac2dd){return db[_0xb94e('0x33')][_0xb94e('0x6f')]({'where':{'id':_0x54276e[_0xb94e('0xbb')]['id']}})['then'](handleEntityNotFound(_0x4ac2dd,null))[_0xb94e('0x2a')](removeEntity(_0x4ac2dd,null))[_0xb94e('0x39')](handleError(_0x4ac2dd,null));};exports[_0xb94e('0xc1')]=function(_0xb1e66b,_0x3f32af){return db[_0xb94e('0x33')]['describe']()[_0xb94e('0x2a')](respondWithResult(_0x3f32af,null))[_0xb94e('0x39')](handleError(_0x3f32af,null));};exports[_0xb94e('0xc2')]=function(_0x52fa9c,_0x327af1,_0xe13d85){return db[_0xb94e('0xc3')][_0xb94e('0x6f')]({'where':{'id':_0x52fa9c[_0xb94e('0xbb')]['id']}})['then'](handleEntityNotFound(_0x327af1,null))[_0xb94e('0x2a')](function(_0x5b1325){if(_0x5b1325){return _0x5b1325[_0xb94e('0xc2')](_0x52fa9c['body'][_0xb94e('0xc4')],_['omit'](_0x52fa9c['body'],['ids','id'])||{});}})[_0xb94e('0x2a')](respondWithResult(_0x327af1,null))[_0xb94e('0x39')](handleError(_0x327af1,null));};exports[_0xb94e('0xc5')]=function(_0x192dd6,_0x5c633a,_0x2dbd94){var _0x2e311f={'raw':![],'where':{}};var _0x297b8e={};var _0x4271d3={'count':0x0,'rows':[]};return db['MailInteraction']['findOne']({'where':{'id':_0x192dd6[_0xb94e('0xbb')]['id']}})[_0xb94e('0x2a')](handleEntityNotFound(_0x5c633a,null))[_0xb94e('0x2a')](function(_0x3af0d3){if(_0x3af0d3){_0x297b8e[_0xb94e('0x3f')]=_['keys'](db[_0xb94e('0xc3')][_0xb94e('0x3b')]);_0x297b8e[_0xb94e('0x40')]=_['keys'](_0x192dd6[_0xb94e('0x40')]);_0x297b8e[_0xb94e('0x42')]=_[_0xb94e('0x43')](_0x297b8e[_0xb94e('0x3f')],_0x297b8e[_0xb94e('0x40')]);_0x2e311f['attributes']=_[_0xb94e('0x43')](_0x297b8e[_0xb94e('0x3f')],qs['fields'](_0x192dd6[_0xb94e('0x40')]['fields']));_0x2e311f['attributes']=_0x2e311f[_0xb94e('0x44')]['length']?_0x2e311f[_0xb94e('0x44')]:_0x297b8e[_0xb94e('0x3f')];if(!_0x192dd6[_0xb94e('0x40')][_0xb94e('0x45')](_0xb94e('0x46'))){_0x2e311f['limit']=qs[_0xb94e('0x47')](_0x192dd6['query'][_0xb94e('0x47')]);_0x2e311f['offset']=qs[_0xb94e('0x23')](_0x192dd6[_0xb94e('0x40')][_0xb94e('0x23')]);}_0x2e311f[_0xb94e('0x48')]=qs[_0xb94e('0x49')](_0x192dd6[_0xb94e('0x40')][_0xb94e('0x49')]);_0x2e311f[_0xb94e('0x4a')]=qs[_0xb94e('0x42')](_[_0xb94e('0x4b')](_0x192dd6[_0xb94e('0x40')],_0x297b8e[_0xb94e('0x42')]));_0x2e311f[_0xb94e('0x4a')][_0xb94e('0xb5')]=_0x3af0d3['id'];if(_0x192dd6[_0xb94e('0x40')]['filter']){_0x2e311f['where']=_['merge'](_0x2e311f[_0xb94e('0x4a')],{'$or':_[_0xb94e('0x6b')](_0x2e311f[_0xb94e('0x44')],function(_0x3fd9f0){var _0x222ea0={};_0x222ea0[_0x3fd9f0]={'$like':'%'+_0x192dd6[_0xb94e('0x40')]['filter']+'%'};return _0x222ea0;})});}if(_0x192dd6['query'][_0xb94e('0x78')]){var _0x26e17b=_0x192dd6[_0xb94e('0x40')][_0xb94e('0x78')][_0xb94e('0x31')](',');var _0xa327dd={};_0xa327dd[_0x26e17b[0x0]]={'$gte':moment(_0x26e17b[0x1])[_0xb94e('0xc6')](_0xb94e('0xc7'))};_0x2e311f['where']=_[_0xb94e('0x96')](_0x2e311f[_0xb94e('0x4a')],_0xa327dd);}_0x2e311f=_['merge']({},_0x2e311f,_0x192dd6[_0xb94e('0xc8')]);return db[_0xb94e('0xc3')][_0xb94e('0x22')]({'where':_0x2e311f[_0xb94e('0x4a')]})[_0xb94e('0x2a')](function(_0x2232a3){_0x4271d3['count']=_0x2232a3;if(_0x192dd6[_0xb94e('0x40')]['includeAll']){_0x2e311f[_0xb94e('0xbe')]=[{'all':!![]}];}return db[_0xb94e('0xc3')][_0xb94e('0xc9')](_0x2e311f);})[_0xb94e('0x2a')](function(_0x3c35e0){_0x4271d3[_0xb94e('0xb9')]=_0x3c35e0;return _0x4271d3;});}})[_0xb94e('0x2a')](respondWithFilteredResult(_0x5c633a,_0x2e311f))['catch'](handleError(_0x5c633a,null));};exports[_0xb94e('0xca')]=function(_0x68dcaa,_0x427bf2,_0xfb128){return db[_0xb94e('0x33')][_0xb94e('0x6f')]({'where':{'id':_0x68dcaa[_0xb94e('0xbb')]['id']}})[_0xb94e('0x2a')](handleEntityNotFound(_0x427bf2,null))[_0xb94e('0x2a')](function(_0x887254){if(_0x887254){return _0x887254[_0xb94e('0xcb')](_0x68dcaa[_0xb94e('0xc0')][_0xb94e('0xc4')],_[_0xb94e('0xcc')](_0x68dcaa[_0xb94e('0xc0')],[_0xb94e('0xc4'),'id'])||{})[_0xb94e('0xcd')](function(){return db[_0xb94e('0x6a')]['findAll']({'attributes':['id','name','color'],'where':{'id':_0x68dcaa[_0xb94e('0xc0')][_0xb94e('0xc4')]}});})[_0xb94e('0x2a')](function(_0x5e2359){socket[_0xb94e('0xce')](_0xb94e('0xcf'),{'id':Number(_0x68dcaa['params']['id']),'tags':_0x5e2359||[]});return{'id':Number(_0x68dcaa['params']['id']),'tags':_0x5e2359||[]};});}})[_0xb94e('0x2a')](respondWithResult(_0x427bf2,null))[_0xb94e('0x39')](handleError(_0x427bf2,null));};exports[_0xb94e('0xd0')]=function(_0x560e16,_0x5a9db8,_0xc563ee){return db[_0xb94e('0x33')]['find']({'where':{'id':_0x560e16[_0xb94e('0xbb')]['id']}})[_0xb94e('0x2a')](handleEntityNotFound(_0x5a9db8,null))['then'](function(_0x554c0d){if(_0x554c0d){return _0x554c0d['removeTags'](_0x560e16[_0xb94e('0x40')][_0xb94e('0xc4')]);}})[_0xb94e('0x2a')](respondWithStatusCode(_0x5a9db8,null))[_0xb94e('0x39')](handleError(_0x5a9db8,null));};exports[_0xb94e('0xd1')]=function(_0x5c8e79,_0x5c9a27){var _0xc554b5=moment()[_0xb94e('0xd2')]()['toString']();var _0xc3f758=path[_0xb94e('0xd3')](config['root'],_0xb94e('0xd4'),_0xb94e('0xd5'),_0xb94e('0xd6'));var _0x44e8a9=path[_0xb94e('0xd3')](config[_0xb94e('0xd7')],_0xb94e('0xd4'),'files','attachments');var _0x5be5df=path[_0xb94e('0xd3')](_0xc3f758,_0xc554b5);var _0x115eac=util['format'](_0xb94e('0xd8'),_0x5c8e79[_0xb94e('0xbb')]['id'],_0xc554b5);var _0xc903b4=path[_0xb94e('0xd3')](_0xc3f758,_0x115eac);var _0x422182=[];if(_0x5c8e79[_0xb94e('0x40')]['attachments']){_0x422182[_0xb94e('0xb8')]({'model':db[_0xb94e('0xd9')],'as':_0xb94e('0xda'),'raw':!![]});}var _0x37616c=[{'model':db[_0xb94e('0xc3')],'as':_0xb94e('0xdb'),'attributes':['id',_0xb94e('0xc0'),'from','to','cc',_0xb94e('0xdc'),'subject','createdAt'],'where':{'secret':![]},'order':qs[_0xb94e('0x49')]('id'),'include':_0x422182}];return db[_0xb94e('0x33')][_0xb94e('0x6f')]({'where':{'id':_0x5c8e79[_0xb94e('0xbb')]['id']},'include':_0x37616c})['then'](handleEntityNotFound(_0x5c9a27,null))['then'](function(_0x2177ff){if(_0x2177ff&&_0x2177ff[_0xb94e('0xdb')]){var _0x406a46=_0x2177ff['get']({'plain':!![]});fs['mkdirSync'](_0x5be5df);return BPromise[_0xb94e('0xdd')](_0x406a46[_0xb94e('0xdb')],function(_0x3d1590,_0x223d28){var _0x535cb5={'from':_0x3d1590['from'],'to':_0x3d1590['to'],'subject':_0x3d1590[_0xb94e('0xde')],'html':_0x3d1590[_0xb94e('0xc0')],'headers':{'Date':moment(_0x3d1590[_0xb94e('0x76')])[_0xb94e('0xc6')](_0xb94e('0xdf'))},'attachments':[]};if(_0x3d1590['cc']){_0x535cb5['headers']['Cc']=_0x3d1590['cc'];}if(_0x3d1590[_0xb94e('0xdc')]){_0x535cb5[_0xb94e('0xe0')][_0xb94e('0xe1')]=_0x3d1590[_0xb94e('0xdc')];}return new BPromise(function(_0x214a6a,_0x46c7ba){if(_0x3d1590['Attachments']){for(var _0x306eb4=0x0;_0x306eb4<_0x3d1590[_0xb94e('0xda')][_0xb94e('0x63')];_0x306eb4++){var _0x51d229=_0x3d1590['Attachments'][_0x306eb4];var _0x2a2319=path[_0xb94e('0xd3')](_0x44e8a9,_0x51d229[_0xb94e('0xe2')]);if(fs[_0xb94e('0xe3')](_0x2a2319)){_0x535cb5[_0xb94e('0xe4')][_0xb94e('0xb8')]({'name':_0x51d229[_0xb94e('0x2d')],'contentType':_0x51d229[_0xb94e('0x3d')],'data':fs[_0xb94e('0xe5')](_0x2a2319)});}}}emlformat[_0xb94e('0xe6')](_0x535cb5,function(_0x5a9185,_0x2e5f84){if(_0x5a9185)return _0x46c7ba(_0x5a9185);fs[_0xb94e('0xe7')](path[_0xb94e('0xd3')](_0x5be5df,util['format'](_0xb94e('0xe8'),_0x223d28)),_0x2e5f84);return _0x214a6a(_0x2e5f84);});});})['then'](function(){return new BPromise(function(_0x5ef619,_0x170015){zipdir(_0x5be5df,{'saveTo':_0xc903b4},function(_0x1040ca,_0x49ac46){if(_0x1040ca)return _0x170015(_0x1040ca);return _0x5ef619(_0x49ac46);});})[_0xb94e('0x2a')](function(){return new BPromise(function(_0x157963,_0xe3b21){rimraf(_0x5be5df,function(_0x2587cb){if(_0x2587cb)_0xe3b21(_0x2587cb);return _0x157963();});});})[_0xb94e('0x2a')](function(){return _0x5c9a27[_0xb94e('0xd1')](_0xc903b4,_0x115eac,function(_0x1d49a3){if(_0x1d49a3){console['log'](_0xb94e('0xe9'),_0x1d49a3);}else{fs[_0xb94e('0xea')](_0xc903b4);}});});});}else{return _0x5c9a27['sendStatus'](0xc8);}})[_0xb94e('0x39')](handleError(_0x5c9a27,null));};