Built motion from commit 775e2a94.|2.6.3
[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 _0xeae8=['SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','DESC','t.id\x20IN\x20?','resolve','i.MailAccountId\x20IS\x20NOT\x20NULL','user','role','agent','i.MailAccountId\x20IS\x20NULL','sequelize','toString','keyBy','merge','MailInteraction','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','contactName','i.createdAt','i.closed','i.closedAt','i.attach','i.lastMsgDirection','i.subject','i.disposition','i.secondDisposition','i.thirdDisposition','i.to','i.ContactId','i.MailAccountId','i.UserId','c.firstName','Contact.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','Contact.mobile','c.fax','Contact.fax','o.fullname','o.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.MailInteractionId\x20IN\x20?','groupBy','MailInteractionId','Setting','enableEmailPreview','all','params','includeAll','include','create','body','destroy','describe','addMessage','ids','omit','getMessages','sort','YYYY-MM-DD\x20HH:mm:ss','options','inlineCss','rows','addTags','setTags','spread','Tag','findAll','emit','mailInteractionTags:save','removeTags','unix','root','server','files','tmp','join','format','transcript-%d-%s.zip','attachments','Attachment','Attachments','bcc','subject','Messages','get','mkdirSync','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','basename','readFileSync','build','writeFileSync','message%d.eml','download','eml-format','rimraf','zip-dir','bluebird','path','squel','juice','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../mysqldb','html-entities','redis','localhost','socket.io-emitter','./mailInteraction.socket','register','sendStatus','status','json','offset','undefined','limit','count','set','Content-Range','update','then','end','stack','name','send','Users','map','fullname','TagIds','forEach','Tags','push','MailMessage','findOne','plainBody','-id','lastMsgText','trimStart','catch','waiting','talking','answered','unmanaged','closed','UserId','index','rawAttributes','fieldName','key','model','query','keys','intersection','attributes','fields','hasOwnProperty','order','where','filters','pick','select','field','color','from','tools_tags','u.id','u.fullname','ui.MailInteractionId','user_has_mail_interactions','users','u.id\x20=\x20ui.UserId','mail_interactions','left_join','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','mail_accounts','a.id\x20=\x20i.MailAccountId','mail_messages','me.MailInteractionId\x20=\x20i.id','it.MailInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','length','conditions','find','unreadMessages','value','having','`\x20=\x200','`\x20>\x200','Contact','operator','$substring','split','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','type','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','User','text','buildExpression','start','some','compact','isEmpty','MailAccountId','i.MailAccountId\x20IN\x20?','concat','createdAt','parse','$gte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','tag','filter','replace','isNumeric','MATCH\x20(i.to,\x20i.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','MATCH\x20(me.plainBody,\x20me.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','i.id','QueryTypes'];(function(_0x4a0472,_0x88fbcf){var _0x2a8efa=function(_0x50ff14){while(--_0x50ff14){_0x4a0472['push'](_0x4a0472['shift']());}};_0x2a8efa(++_0x88fbcf);}(_0xeae8,0x66));var _0x8eae=function(_0x398a34,_0x10a9e2){_0x398a34=_0x398a34-0x0;var _0x316bc2=_0xeae8[_0x398a34];return _0x316bc2;};'use strict';var emlformat=require(_0x8eae('0x0'));var rimraf=require(_0x8eae('0x1'));var zipdir=require(_0x8eae('0x2'));var moment=require('moment');var BPromise=require(_0x8eae('0x3'));var util=require('util');var path=require(_0x8eae('0x4'));var fs=require('fs');var _=require('lodash');var squel=require(_0x8eae('0x5'));var juice=require(_0x8eae('0x6'));var Redis=require(_0x8eae('0x7'));var qs=require(_0x8eae('0x8'));var as=require(_0x8eae('0x9'));var logger=require(_0x8eae('0xa'))(_0x8eae('0xb'));var config=require(_0x8eae('0xc'));var db=require(_0x8eae('0xd'))['db'];var htmlEntities=require(_0x8eae('0xe'));config[_0x8eae('0xf')]=_['defaults'](config['redis'],{'host':_0x8eae('0x10'),'port':0x18eb});var socket=require(_0x8eae('0x11'))(new Redis(config[_0x8eae('0xf')]));require(_0x8eae('0x12'))[_0x8eae('0x13')](socket);function respondWithStatusCode(_0x4aba96,_0x4d3f22){_0x4d3f22=_0x4d3f22||0xcc;return function(_0x4cf0c3){if(_0x4cf0c3){return _0x4aba96[_0x8eae('0x14')](_0x4d3f22);}return _0x4aba96[_0x8eae('0x15')](_0x4d3f22)['end']();};}function respondWithResult(_0x406afc,_0x50e569){_0x50e569=_0x50e569||0xc8;return function(_0xa29afd){if(_0xa29afd){return _0x406afc[_0x8eae('0x15')](_0x50e569)[_0x8eae('0x16')](_0xa29afd);}};}function respondWithFilteredResult(_0x10f61e,_0x14172c){return function(_0x549d19){if(_0x549d19){var _0x16f24a=typeof _0x14172c[_0x8eae('0x17')]===_0x8eae('0x18')&&typeof _0x14172c[_0x8eae('0x19')]===_0x8eae('0x18');var _0x1cec9f=_0x549d19[_0x8eae('0x1a')];var _0x367dfe=_0x16f24a?0x0:_0x14172c[_0x8eae('0x17')];var _0x5324e3=_0x16f24a?_0x549d19['count']:_0x14172c['offset']+_0x14172c[_0x8eae('0x19')];var _0x47c1db;if(_0x5324e3>=_0x1cec9f){_0x5324e3=_0x1cec9f;_0x47c1db=0xc8;}else{_0x47c1db=0xce;}_0x10f61e[_0x8eae('0x15')](_0x47c1db);return _0x10f61e[_0x8eae('0x1b')](_0x8eae('0x1c'),_0x367dfe+'-'+_0x5324e3+'/'+_0x1cec9f)[_0x8eae('0x16')](_0x549d19);}return null;};}function saveUpdates(_0x20213d){return function(_0x173672){if(_0x173672){return _0x173672[_0x8eae('0x1d')](_0x20213d)[_0x8eae('0x1e')](function(_0xfbb712){return _0xfbb712;});}return null;};}function removeEntity(_0xf5df63){return function(_0x4cb7e0){if(_0x4cb7e0){return _0x4cb7e0['destroy']()[_0x8eae('0x1e')](function(){_0xf5df63[_0x8eae('0x15')](0xcc)[_0x8eae('0x1f')]();});}};}function handleEntityNotFound(_0x4d4d8f){return function(_0x1ee7fb){if(!_0x1ee7fb){_0x4d4d8f[_0x8eae('0x14')](0x194);}return _0x1ee7fb;};}function handleError(_0x51fa34,_0x1dc612){_0x1dc612=_0x1dc612||0x1f4;return function(_0x3326b3){logger['error'](_0x3326b3[_0x8eae('0x20')]);if(_0x3326b3[_0x8eae('0x21')]){delete _0x3326b3[_0x8eae('0x21')];}_0x51fa34[_0x8eae('0x15')](_0x1dc612)[_0x8eae('0x22')](_0x3326b3);};}function getInteractionUsers(_0x2bda3a,_0x3761a6){return new BPromise(function(_0x3efe66,_0x14c0c5){try{if(_0x3761a6[_0x2bda3a['id']]){_0x2bda3a[_0x8eae('0x23')]=_[_0x8eae('0x24')](_0x3761a6[_0x2bda3a['id']],function(_0x53733c){return{'id':_0x53733c['id'],'fullname':_0x53733c[_0x8eae('0x25')]};});}}catch(_0xe9a3c5){_0x14c0c5(_0xe9a3c5);}_0x3efe66(_0x2bda3a);});}function getInteractionTags(_0x141940,_0x34dff7){return new BPromise(function(_0x149b83,_0x13a80a){try{if(_0x141940[_0x8eae('0x26')]){_0x141940['Tags']=[];_0x141940[_0x8eae('0x26')]['split'](',')[_0x8eae('0x27')](function(_0xf4f03c){_0x141940[_0x8eae('0x28')][_0x8eae('0x29')](_0x34dff7[_0xf4f03c]);});}delete _0x141940[_0x8eae('0x26')];}catch(_0x541448){_0x13a80a(_0x541448);}_0x149b83(_0x141940);});}function getLastMessageText(_0x52a030){return new BPromise(function(_0x2d50e1,_0x28431c){return db[_0x8eae('0x2a')][_0x8eae('0x2b')]({'where':{'$and':[{'MailInteractionId':_0x52a030['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':'out'},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':[_0x8eae('0x2c')],'order':_0x8eae('0x2d'),'raw':!![]})[_0x8eae('0x1e')](function(_0x3273c0){if(_0x3273c0&&_0x3273c0[_0x8eae('0x2c')]){_0x52a030[_0x8eae('0x2e')]=_[_0x8eae('0x2f')](_0x3273c0[_0x8eae('0x2c')]);}_0x2d50e1(_0x52a030);})[_0x8eae('0x30')](function(_0x1bcd2d){_0x28431c(_0x1bcd2d);});});}function updateMailInteraction(_0x3403a2,_0x3c4219,_0x2d6109,_0x2a0b6a){return new BPromise(function(_0x1f247e,_0x3d19f7){return getInteractionUsers(_0x3403a2,_0x2d6109)[_0x8eae('0x1e')](function(_0x6952f3){return getInteractionTags(_0x6952f3,_0x3c4219);})[_0x8eae('0x1e')](function(_0x2fc72a){return getStateInteraction(_0x2fc72a);})[_0x8eae('0x1e')](function(_0x54b216){if(_0x2a0b6a){_0x1f247e(getLastMessageText(_0x54b216));}else{_0x1f247e(_0x54b216);}})[_0x8eae('0x30')](function(_0x36819a){_0x3d19f7(_0x36819a);});});}function getStateInteraction(_0x1c0cce){return new BPromise(function(_0x4bf905){_0x1c0cce[_0x8eae('0x31')]=0x0;_0x1c0cce[_0x8eae('0x32')]=0x0;_0x1c0cce[_0x8eae('0x33')]=0x0;_0x1c0cce[_0x8eae('0x34')]=0x0;_0x1c0cce['total']=0x0;if(!_0x1c0cce[_0x8eae('0x35')]&&!_0x1c0cce['UserId']){_0x1c0cce['waiting']+=0x1;}if(!_0x1c0cce[_0x8eae('0x35')]&&_0x1c0cce[_0x8eae('0x36')]){_0x1c0cce[_0x8eae('0x32')]+=0x1;if(_0x1c0cce[_0x8eae('0x31')]){_0x1c0cce[_0x8eae('0x31')]-=0x1;}}if(_0x1c0cce[_0x8eae('0x35')]&&_0x1c0cce[_0x8eae('0x36')]){_0x1c0cce['answered']+=0x1;if(_0x1c0cce[_0x8eae('0x32')]){_0x1c0cce[_0x8eae('0x32')]-=0x1;}}if(_0x1c0cce['closed']&&!_0x1c0cce['UserId']){_0x1c0cce['unmanaged']+=0x1;if(_0x1c0cce[_0x8eae('0x31')]){_0x1c0cce[_0x8eae('0x31')]-=0x1;}}_0x1c0cce['total']+=0x1;_0x4bf905(_0x1c0cce);});}exports[_0x8eae('0x37')]=function(_0x1a7539,_0x576c00){var _0xe4417d={},_0x2ee9c2={},_0x17305e={'count':0x0,'rows':[]};var _0x11c626=_[_0x8eae('0x24')](db['MailInteraction'][_0x8eae('0x38')],function(_0x13e5b8){return{'name':_0x13e5b8[_0x8eae('0x39')],'type':_0x13e5b8['type'][_0x8eae('0x3a')]};});_0x2ee9c2[_0x8eae('0x3b')]=_['map'](_0x11c626,_0x8eae('0x21'));_0x2ee9c2[_0x8eae('0x3c')]=_[_0x8eae('0x3d')](_0x1a7539[_0x8eae('0x3c')]);_0x2ee9c2['filters']=_[_0x8eae('0x3e')](_0x2ee9c2[_0x8eae('0x3b')],_0x2ee9c2[_0x8eae('0x3c')]);_0xe4417d[_0x8eae('0x3f')]=_['intersection'](_0x2ee9c2[_0x8eae('0x3b')],qs[_0x8eae('0x40')](_0x1a7539[_0x8eae('0x3c')][_0x8eae('0x40')]));_0xe4417d['attributes']=_0xe4417d[_0x8eae('0x3f')]['length']?_0xe4417d[_0x8eae('0x3f')]:_0x2ee9c2['model'];if(!_0x1a7539[_0x8eae('0x3c')][_0x8eae('0x41')]('nolimit')){_0xe4417d[_0x8eae('0x19')]=qs[_0x8eae('0x19')](_0x1a7539[_0x8eae('0x3c')][_0x8eae('0x19')]);_0xe4417d[_0x8eae('0x17')]=qs[_0x8eae('0x17')](_0x1a7539[_0x8eae('0x3c')][_0x8eae('0x17')]);}_0xe4417d[_0x8eae('0x42')]=qs['sort'](_0x1a7539[_0x8eae('0x3c')]['sort']);_0xe4417d[_0x8eae('0x43')]=qs[_0x8eae('0x44')](_[_0x8eae('0x45')](_0x1a7539[_0x8eae('0x3c')],_0x2ee9c2['filters']),_0x11c626);var _0x2a4bc9=[];var _0x32fec2=squel[_0x8eae('0x46')]()[_0x8eae('0x47')]('id')[_0x8eae('0x47')](_0x8eae('0x21'))[_0x8eae('0x47')](_0x8eae('0x48'))[_0x8eae('0x49')](_0x8eae('0x4a'));var _0x319a94=squel['select']()[_0x8eae('0x47')](_0x8eae('0x4b'))['field'](_0x8eae('0x4c'))['field'](_0x8eae('0x4d'))['from'](_0x8eae('0x4e'),'ui')['left_join'](_0x8eae('0x4f'),'u',_0x8eae('0x50'));var _0x470f54=squel[_0x8eae('0x46')]()[_0x8eae('0x49')](_0x8eae('0x51'),'i')[_0x8eae('0x52')](_0x8eae('0x53'),'c',_0x8eae('0x54'))[_0x8eae('0x52')](_0x8eae('0x4f'),'o','o.id\x20=\x20i.UserId')['left_join'](_0x8eae('0x55'),'a',_0x8eae('0x56'))[_0x8eae('0x52')](_0x8eae('0x57'),'me',_0x8eae('0x58'))[_0x8eae('0x52')]('mail_interaction_has_tags','it',_0x8eae('0x59'))[_0x8eae('0x52')](_0x8eae('0x4a'),'t',_0x8eae('0x5a'));var _0x3db9d0=squel[_0x8eae('0x5b')]();var _0x581947=[];var _0x14ec02=squel[_0x8eae('0x5b')]();var _0x4f0e8e;if(_0x1a7539[_0x8eae('0x3c')][_0x8eae('0x5c')]){_0x4f0e8e=as[_0x8eae('0x5d')](_0x1a7539[_0x8eae('0x3c')][_0x8eae('0x5c')]);var _0x1e66f1=_0x4f0e8e['sqlOperator'];for(var _0x3a581a=0x0;_0x3a581a<_0x4f0e8e['conditions'][_0x8eae('0x5e')];_0x3a581a++){var _0x22159e=_0x4f0e8e[_0x8eae('0x5f')][_0x3a581a];var _0x537e25='i';var _0x33a210=_[_0x8eae('0x60')](_0x11c626,[_0x8eae('0x21'),_0x22159e[_0x8eae('0x47')]]);if(!_0x33a210){switch(_0x22159e[_0x8eae('0x47')]){case _0x8eae('0x61'):if(_0x22159e[_0x8eae('0x62')]==0x1){_0x470f54[_0x8eae('0x63')]('`'+_0x22159e[_0x8eae('0x47')]+_0x8eae('0x64'));}else{_0x470f54[_0x8eae('0x63')]('`'+_0x22159e['field']+_0x8eae('0x65'));}break;case _0x8eae('0x66'):if(_0x22159e[_0x8eae('0x67')]===_0x8eae('0x68')){if(_0x22159e[_0x8eae('0x62')][_0x8eae('0x69')]('\x20')[_0x8eae('0x5e')]>0x1){_0x3db9d0[_0x1e66f1](_0x8eae('0x6a'),qs[_0x8eae('0x6b')](_0x22159e[_0x8eae('0x62')]),null);}else{var _0xc17cf2='%'+_0x22159e['value']+'%';_0x3db9d0[_0x1e66f1](_0x8eae('0x6c'),_0xc17cf2,_0xc17cf2,_0xc17cf2);}}else{_0x33a210=_[_0x8eae('0x60')](_0x11c626,[_0x8eae('0x21'),_0x8eae('0x6d')]);_0x22159e[_0x8eae('0x47')]=_0x8eae('0x6d');_0x33cbf8=as['buildExpression'](_0x537e25,_0x33a210[_0x8eae('0x6e')],_0x22159e);_0x3db9d0[_0x1e66f1](_0x33cbf8['text'],_0x33cbf8[_0x8eae('0x62')]['start'],_0x33cbf8[_0x8eae('0x62')][_0x8eae('0x1f')]);}break;case'Tag':var _0x20a577=_0x22159e['value']['split'](',')[_0x8eae('0x24')](function(_0x518a51){return Number(_0x518a51);});_0x20a577[_0x8eae('0x27')](function(_0x4da988){_0x14ec02['or'](_0x8eae('0x6f'),'%,'+_0x4da988+',%');});_0x581947=_['union'](_0x581947,_0x20a577);break;case _0x8eae('0x70'):if(_0x22159e['operator']==='$substring'){_0x3db9d0[_0x1e66f1]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x22159e[_0x8eae('0x62')]+'%',null);}else{_0x33a210=_[_0x8eae('0x60')](_0x11c626,['name',_0x8eae('0x36')]);_0x22159e[_0x8eae('0x47')]=_0x8eae('0x36');_0x33cbf8=as['buildExpression'](_0x537e25,_0x33a210[_0x8eae('0x6e')],_0x22159e);_0x3db9d0[_0x1e66f1](_0x33cbf8['text'],_0x33cbf8[_0x8eae('0x62')]['start'],_0x33cbf8['value'][_0x8eae('0x1f')]);}break;case _0x8eae('0x2c'):_0x33cbf8=as['buildExpression']('me',null,_0x22159e);_0x3db9d0[_0x1e66f1](_0x33cbf8[_0x8eae('0x71')],_0x33cbf8[_0x8eae('0x62')]['start'],_0x33cbf8[_0x8eae('0x62')][_0x8eae('0x1f')]);break;}}else{var _0x33cbf8=as[_0x8eae('0x72')](_0x537e25,_0x33a210[_0x8eae('0x6e')],_0x22159e);_0x3db9d0[_0x1e66f1](_0x33cbf8['text'],_0x33cbf8[_0x8eae('0x62')][_0x8eae('0x73')],_0x33cbf8['value'][_0x8eae('0x1f')]);}}}else{var _0x109896=_(_0x1a7539[_0x8eae('0x3c')])[_0x8eae('0x3d')]()['map'](function(_0x2100c7){return _[_0x8eae('0x74')](_0x11c626,[_0x8eae('0x21'),_0x2100c7])?_0x2100c7:undefined;})[_0x8eae('0x75')]()[_0x8eae('0x62')]();if(!_[_0x8eae('0x76')](_0x109896)){_0x109896[_0x8eae('0x27')](function(_0x324f85){if(_0x324f85===_0x8eae('0x77')){_0x470f54[_0x8eae('0x43')](_0x8eae('0x78'),[][_0x8eae('0x79')](_0x1a7539['query'][_0x324f85]));}else if(_0x324f85===_0x8eae('0x7a')){var _0x11cd28=JSON[_0x8eae('0x7b')](_0x1a7539[_0x8eae('0x3c')][_0x324f85])[_0x8eae('0x7c')];var _0x4e4111=JSON[_0x8eae('0x7b')](_0x1a7539['query'][_0x324f85])['$lte'];_0x470f54[_0x8eae('0x43')](_0x8eae('0x7d'),_0x11cd28,_0x4e4111);}else{if(_0x1a7539[_0x8eae('0x3c')][_0x324f85]===_0x8eae('0x7e')){_0x470f54[_0x8eae('0x43')]('i.'+_0x324f85+_0x8eae('0x7f'));}else{_0x470f54[_0x8eae('0x43')]('i.'+_0x324f85+_0x8eae('0x80'),_0x1a7539[_0x8eae('0x3c')][_0x324f85]);}}});}if(_0x1a7539[_0x8eae('0x3c')][_0x8eae('0x81')]){if(_0x1a7539[_0x8eae('0x3c')]['read']==0x1){_0x470f54[_0x8eae('0x63')]('`unreadMessages`\x20=\x200');}else{_0x470f54['having']('`unreadMessages`\x20>\x200');}}if(_0x1a7539[_0x8eae('0x3c')][_0x8eae('0x82')]){_0x581947=_['isArray'](_0x1a7539[_0x8eae('0x3c')]['tag'])?_0x1a7539['query'][_0x8eae('0x82')]:new Array(_0x1a7539[_0x8eae('0x3c')][_0x8eae('0x82')]);_0x581947[_0x8eae('0x27')](function(_0x36cc6e){_0x14ec02['or'](_0x8eae('0x6f'),'%,'+_0x36cc6e+',%');});}if(_0x1a7539[_0x8eae('0x3c')][_0x8eae('0x83')]){var _0x5135cc=_0x1a7539['query'][_0x8eae('0x83')][_0x8eae('0x84')]('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(qs[_0x8eae('0x85')](_0x5135cc)){_0x3db9d0['or']('i.id\x20LIKE\x20?',_0x5135cc+'%');}else if(qs['isEmail'](_0x5135cc)){_0x3db9d0['or']('c.email\x20LIKE\x20?',_0x5135cc+'%');}else{_0x3db9d0['or'](_0x8eae('0x86'),qs[_0x8eae('0x6b')](_0x5135cc))['or'](_0x8eae('0x87'),qs[_0x8eae('0x6b')](_0x5135cc));}}}_0x470f54[_0x8eae('0x43')](_0x3db9d0);_0x470f54['group'](_0x8eae('0x88'));var _0x5092fe={'type':db['Sequelize'][_0x8eae('0x89')][_0x8eae('0x8a')],'raw':!![]};var _0x37704b=_0x470f54[_0x8eae('0x8b')]();_0x37704b[_0x8eae('0x47')]('i.id');_0x37704b[_0x8eae('0x47')](_0x8eae('0x8c'),_0x8eae('0x61'));if(_0xe4417d[_0x8eae('0x42')]){_0xe4417d[_0x8eae('0x42')][_0x8eae('0x27')](function(_0x53f549){var _0x10601e=_0x53f549[0x0]==='contactName'?_0x53f549[0x0]:'i.'+_0x53f549[0x0];_0x470f54[_0x8eae('0x42')](_0x10601e,_0x53f549[0x1]===_0x8eae('0x8d')?![]:!![]);});}if(!_[_0x8eae('0x76')](_0x581947)){_0x470f54['having'](_0x14ec02);_0x37704b[_0x8eae('0x43')](_0x8eae('0x8e'),_0x581947);}BPromise[_0x8eae('0x8f')]()['then'](function(){if(!_0x4f0e8e){if(_0x1a7539[_0x8eae('0x3c')][_0x8eae('0x77')])return;_0x37704b['where'](_0x8eae('0x90'));_0x470f54[_0x8eae('0x43')](_0x8eae('0x90'));return;}if(_0x1a7539[_0x8eae('0x91')][_0x8eae('0x92')]!==_0x8eae('0x93'))return;return _0x1a7539['user']['getMailAccounts']({'attributes':['id'],'raw':!![]})[_0x8eae('0x1e')](function(_0x13330e){if(_[_0x8eae('0x76')](_0x13330e)){_0x37704b[_0x8eae('0x43')](_0x8eae('0x94'));_0x470f54[_0x8eae('0x43')](_0x8eae('0x94'));}else{_0x37704b[_0x8eae('0x43')](_0x8eae('0x78'),_[_0x8eae('0x24')](_0x13330e,'id'));_0x470f54['where'](_0x8eae('0x78'),_[_0x8eae('0x24')](_0x13330e,'id'));}});})['then'](function(){if(_0x1a7539['user'][_0x8eae('0x92')]===_0x8eae('0x93')&&!_0x4f0e8e&&!_0x1a7539[_0x8eae('0x3c')]['MailAccountId'])return[];return db[_0x8eae('0x95')][_0x8eae('0x3c')](_0x37704b[_0x8eae('0x96')](),_0x5092fe);})['then'](function(_0x62fe9b){_0x17305e[_0x8eae('0x1a')]=_0x62fe9b[_0x8eae('0x5e')];if(_0x17305e['count']===0x0)return[];return db['sequelize'][_0x8eae('0x3c')](_0x32fec2[_0x8eae('0x96')](),_0x5092fe)[_0x8eae('0x1e')](function(_0x274c91){_0x2a4bc9=_[_0x8eae('0x97')](_0x274c91,'id');_0x5092fe=_[_0x8eae('0x98')](_0x5092fe,{'model':db[_0x8eae('0x99')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x1a7539[_0x8eae('0x3c')]['fields']){_0xe4417d[_0x8eae('0x3f')]['forEach'](function(_0x3644d9){_0x470f54[_0x8eae('0x47')]('i.'+_0x3644d9);});}else{_0x470f54['field'](_0x8eae('0x8c'),_0x8eae('0x61'));_0x470f54[_0x8eae('0x47')](_0x8eae('0x9a'),_0x8eae('0x9b'));_0x470f54['field'](_0x8eae('0x9c'),_0x8eae('0x9d'));_0x470f54[_0x8eae('0x47')]('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',_0x8eae('0x9e'));_0x470f54[_0x8eae('0x47')]('i.id');_0x470f54[_0x8eae('0x47')](_0x8eae('0x9f'));_0x470f54[_0x8eae('0x47')]('i.updatedAt');_0x470f54[_0x8eae('0x47')](_0x8eae('0xa0'));_0x470f54[_0x8eae('0x47')](_0x8eae('0xa1'));_0x470f54[_0x8eae('0x47')](_0x8eae('0xa2'));_0x470f54['field']('i.lastMsgAt');_0x470f54[_0x8eae('0x47')](_0x8eae('0xa3'));_0x470f54[_0x8eae('0x47')](_0x8eae('0xa4'));_0x470f54[_0x8eae('0x47')](_0x8eae('0xa5'));_0x470f54['field'](_0x8eae('0xa6'));_0x470f54[_0x8eae('0x47')](_0x8eae('0xa7'));_0x470f54[_0x8eae('0x47')]('i.substatus');_0x470f54[_0x8eae('0x47')](_0x8eae('0xa8'));_0x470f54[_0x8eae('0x47')](_0x8eae('0xa9'));_0x470f54[_0x8eae('0x47')](_0x8eae('0xaa'));_0x470f54[_0x8eae('0x47')](_0x8eae('0xab'));_0x470f54[_0x8eae('0x47')](_0x8eae('0xac'),_0x8eae('0xad'));_0x470f54[_0x8eae('0x47')](_0x8eae('0xae'),_0x8eae('0xaf'));_0x470f54[_0x8eae('0x47')](_0x8eae('0xb0'),_0x8eae('0xb1'));_0x470f54[_0x8eae('0x47')](_0x8eae('0xb2'),_0x8eae('0xb3'));_0x470f54[_0x8eae('0x47')]('c.mobile',_0x8eae('0xb4'));_0x470f54[_0x8eae('0x47')](_0x8eae('0xb5'),_0x8eae('0xb6'));_0x470f54['field'](_0x8eae('0xb7'),'Owner.fullname');_0x470f54[_0x8eae('0x47')](_0x8eae('0xb8'),'Owner.internal');_0x470f54[_0x8eae('0x47')](_0x8eae('0xb9'),_0x8eae('0x26'));}if(_0xe4417d[_0x8eae('0x19')])_0x470f54['limit'](_0xe4417d[_0x8eae('0x19')]);if(_0xe4417d[_0x8eae('0x17')])_0x470f54[_0x8eae('0x17')](_0xe4417d[_0x8eae('0x17')]);return db[_0x8eae('0x95')][_0x8eae('0x3c')](_0x470f54[_0x8eae('0x96')](),_0x5092fe);})['then'](function(_0x542bda){if(_0x542bda[_0x8eae('0x5e')]>0x0)_0x319a94['where'](_0x8eae('0xba'),_['map'](_0x542bda,'id'));return db[_0x8eae('0x95')][_0x8eae('0x3c')](_0x319a94[_0x8eae('0x96')](),_0x5092fe)[_0x8eae('0x1e')](function(_0x27612b){var _0x41a889=_[_0x8eae('0xbb')](_0x27612b,_0x8eae('0xbc'));var _0x3c3379=[];return db[_0x8eae('0xbd')][_0x8eae('0x2b')]({'attributes':[_0x8eae('0xbe')],'raw':!![]})['then'](function(_0x2ac47b){var _0x593d52=_0x2ac47b[_0x8eae('0xbe')];_0x542bda[_0x8eae('0x27')](function(_0x2397a7){_0x3c3379[_0x8eae('0x29')](updateMailInteraction(_0x2397a7,_0x2a4bc9,_0x41a889,_0x593d52));});return BPromise[_0x8eae('0xbf')](_0x3c3379);});});});})[_0x8eae('0x1e')](function(_0x3b36f4){_0x17305e['rows']=_0x3b36f4;return _0x17305e;})[_0x8eae('0x1e')](respondWithFilteredResult(_0x576c00,_0xe4417d))[_0x8eae('0x30')](handleError(_0x576c00,null));};exports['show']=function(_0x2c0e5f,_0x3850c5){var _0x4d5bec={'raw':![],'where':{'id':_0x2c0e5f[_0x8eae('0xc0')]['id']}},_0x580095={};_0x580095['model']=_[_0x8eae('0x3d')](db[_0x8eae('0x99')][_0x8eae('0x38')]);_0x580095[_0x8eae('0x3c')]=_[_0x8eae('0x3d')](_0x2c0e5f['query']);_0x580095[_0x8eae('0x44')]=_[_0x8eae('0x3e')](_0x580095['model'],_0x580095['query']);_0x4d5bec[_0x8eae('0x3f')]=_['intersection'](_0x580095[_0x8eae('0x3b')],qs[_0x8eae('0x40')](_0x2c0e5f[_0x8eae('0x3c')][_0x8eae('0x40')]));_0x4d5bec[_0x8eae('0x3f')]=_0x4d5bec[_0x8eae('0x3f')][_0x8eae('0x5e')]?_0x4d5bec[_0x8eae('0x3f')]:_0x580095[_0x8eae('0x3b')];if(_0x2c0e5f[_0x8eae('0x3c')][_0x8eae('0xc1')]){_0x4d5bec[_0x8eae('0xc2')]=[{'all':!![]}];}_0x4d5bec=_[_0x8eae('0x98')]({},_0x4d5bec,_0x2c0e5f['options']);return db[_0x8eae('0x99')][_0x8eae('0x60')](_0x4d5bec)[_0x8eae('0x1e')](handleEntityNotFound(_0x3850c5,null))[_0x8eae('0x1e')](respondWithResult(_0x3850c5,null))['catch'](handleError(_0x3850c5,null));};exports[_0x8eae('0xc3')]=function(_0x1f6ab6,_0x531cbb){return db[_0x8eae('0x99')][_0x8eae('0xc3')](_0x1f6ab6[_0x8eae('0xc4')],{})['then'](respondWithResult(_0x531cbb,0xc9))[_0x8eae('0x30')](handleError(_0x531cbb,null));};exports['update']=function(_0x10154c,_0x24ae5e){if(_0x10154c[_0x8eae('0xc4')]['id']){delete _0x10154c[_0x8eae('0xc4')]['id'];}return db[_0x8eae('0x99')]['find']({'where':{'id':_0x10154c[_0x8eae('0xc0')]['id']}})['then'](handleEntityNotFound(_0x24ae5e,null))[_0x8eae('0x1e')](saveUpdates(_0x10154c[_0x8eae('0xc4')],null))[_0x8eae('0x1e')](respondWithResult(_0x24ae5e,null))[_0x8eae('0x30')](handleError(_0x24ae5e,null));};exports[_0x8eae('0xc5')]=function(_0x3136d2,_0x34a42f){return db[_0x8eae('0x99')][_0x8eae('0x60')]({'where':{'id':_0x3136d2[_0x8eae('0xc0')]['id']}})[_0x8eae('0x1e')](handleEntityNotFound(_0x34a42f,null))[_0x8eae('0x1e')](removeEntity(_0x34a42f,null))[_0x8eae('0x30')](handleError(_0x34a42f,null));};exports['describe']=function(_0x1208c2,_0x2dfc06){return db[_0x8eae('0x99')][_0x8eae('0xc6')]()[_0x8eae('0x1e')](respondWithResult(_0x2dfc06,null))[_0x8eae('0x30')](handleError(_0x2dfc06,null));};exports[_0x8eae('0xc7')]=function(_0x18a73d,_0x26e03c){return db[_0x8eae('0x2a')][_0x8eae('0x60')]({'where':{'id':_0x18a73d['params']['id']}})['then'](handleEntityNotFound(_0x26e03c,null))[_0x8eae('0x1e')](function(_0x234e3a){if(_0x234e3a){return _0x234e3a[_0x8eae('0xc7')](_0x18a73d[_0x8eae('0xc4')][_0x8eae('0xc8')],_[_0x8eae('0xc9')](_0x18a73d[_0x8eae('0xc4')],[_0x8eae('0xc8'),'id'])||{});}})['then'](respondWithResult(_0x26e03c,null))['catch'](handleError(_0x26e03c,null));};exports[_0x8eae('0xca')]=function(_0x4e0502,_0x591e58){var _0x5cb329={'raw':![],'where':{}};var _0x330573={};var _0x4a3807={'count':0x0,'rows':[]};return db[_0x8eae('0x99')][_0x8eae('0x2b')]({'where':{'id':_0x4e0502['params']['id']}})[_0x8eae('0x1e')](handleEntityNotFound(_0x591e58,null))['then'](function(_0x3865cf){if(_0x3865cf){_0x330573['model']=_[_0x8eae('0x3d')](db[_0x8eae('0x2a')][_0x8eae('0x38')]);_0x330573[_0x8eae('0x3c')]=_['keys'](_0x4e0502[_0x8eae('0x3c')]);_0x330573[_0x8eae('0x44')]=_['intersection'](_0x330573[_0x8eae('0x3b')],_0x330573['query']);_0x5cb329[_0x8eae('0x3f')]=_['intersection'](_0x330573['model'],qs[_0x8eae('0x40')](_0x4e0502[_0x8eae('0x3c')]['fields']));_0x5cb329[_0x8eae('0x3f')]=_0x5cb329[_0x8eae('0x3f')]['length']?_0x5cb329['attributes']:_0x330573[_0x8eae('0x3b')];if(!_0x4e0502[_0x8eae('0x3c')][_0x8eae('0x41')]('nolimit')){_0x5cb329[_0x8eae('0x19')]=qs[_0x8eae('0x19')](_0x4e0502[_0x8eae('0x3c')][_0x8eae('0x19')]);_0x5cb329['offset']=qs[_0x8eae('0x17')](_0x4e0502[_0x8eae('0x3c')][_0x8eae('0x17')]);}_0x5cb329[_0x8eae('0x42')]=qs[_0x8eae('0xcb')](_0x4e0502[_0x8eae('0x3c')]['sort']);_0x5cb329['where']=qs[_0x8eae('0x44')](_[_0x8eae('0x45')](_0x4e0502[_0x8eae('0x3c')],_0x330573['filters']));_0x5cb329[_0x8eae('0x43')][_0x8eae('0xbc')]=_0x3865cf['id'];if(_0x4e0502[_0x8eae('0x3c')][_0x8eae('0x83')]){_0x5cb329[_0x8eae('0x43')]=_[_0x8eae('0x98')](_0x5cb329['where'],{'$or':_[_0x8eae('0x24')](_0x5cb329[_0x8eae('0x3f')],function(_0x5081ea){var _0x397a2d={};_0x397a2d[_0x5081ea]={'$like':'%'+_0x4e0502['query'][_0x8eae('0x83')]+'%'};return _0x397a2d;})});}if(_0x4e0502['query'][_0x8eae('0x7c')]){var _0x41a431=_0x4e0502[_0x8eae('0x3c')][_0x8eae('0x7c')]['split'](',');var _0xbe6dfc={};_0xbe6dfc[_0x41a431[0x0]]={'$gte':moment(_0x41a431[0x1])['format'](_0x8eae('0xcc'))};_0x5cb329['where']=_[_0x8eae('0x98')](_0x5cb329[_0x8eae('0x43')],_0xbe6dfc);}_0x5cb329=_[_0x8eae('0x98')]({},_0x5cb329,_0x4e0502[_0x8eae('0xcd')]);return db[_0x8eae('0x2a')][_0x8eae('0x1a')]({'where':_0x5cb329[_0x8eae('0x43')]})[_0x8eae('0x1e')](function(_0x1757f8){_0x4a3807['count']=_0x1757f8;if(_0x4e0502[_0x8eae('0x3c')][_0x8eae('0xc1')]){_0x5cb329[_0x8eae('0xc2')]=[{'all':!![]}];}return db[_0x8eae('0x2a')]['findAll'](_0x5cb329);})[_0x8eae('0x1e')](function(_0x21a1d9){if(_0x4e0502[_0x8eae('0x3c')][_0x8eae('0xce')]==='true'){for(var _0x2bc8fb=0x0;_0x2bc8fb<_0x21a1d9[_0x8eae('0x5e')];_0x2bc8fb++){_0x21a1d9[_0x2bc8fb][_0x8eae('0xc4')]=juice(_0x21a1d9[_0x2bc8fb][_0x8eae('0xc4')]);}}_0x4a3807[_0x8eae('0xcf')]=_0x21a1d9;return _0x4a3807;});}})[_0x8eae('0x1e')](respondWithFilteredResult(_0x591e58,_0x5cb329))['catch'](handleError(_0x591e58,null));};exports[_0x8eae('0xd0')]=function(_0x3f1cd5,_0x4bc059){return db[_0x8eae('0x99')][_0x8eae('0x60')]({'where':{'id':_0x3f1cd5[_0x8eae('0xc0')]['id']}})[_0x8eae('0x1e')](handleEntityNotFound(_0x4bc059,null))['then'](function(_0x2198cb){if(_0x2198cb){return _0x2198cb[_0x8eae('0xd1')](_0x3f1cd5[_0x8eae('0xc4')][_0x8eae('0xc8')],_['omit'](_0x3f1cd5[_0x8eae('0xc4')],[_0x8eae('0xc8'),'id'])||{})[_0x8eae('0xd2')](function(){return db[_0x8eae('0xd3')][_0x8eae('0xd4')]({'attributes':['id','name','color'],'where':{'id':_0x3f1cd5[_0x8eae('0xc4')][_0x8eae('0xc8')]}});})[_0x8eae('0x1e')](function(_0x191cfd){socket[_0x8eae('0xd5')](_0x8eae('0xd6'),{'id':Number(_0x3f1cd5[_0x8eae('0xc0')]['id']),'tags':_0x191cfd||[]});return{'id':Number(_0x3f1cd5[_0x8eae('0xc0')]['id']),'tags':_0x191cfd||[]};});}})['then'](respondWithResult(_0x4bc059,null))[_0x8eae('0x30')](handleError(_0x4bc059,null));};exports[_0x8eae('0xd7')]=function(_0x4fcd1b,_0x4370ad){return db[_0x8eae('0x99')]['find']({'where':{'id':_0x4fcd1b[_0x8eae('0xc0')]['id']}})[_0x8eae('0x1e')](handleEntityNotFound(_0x4370ad,null))[_0x8eae('0x1e')](function(_0x3d7e52){if(_0x3d7e52){return _0x3d7e52[_0x8eae('0xd7')](_0x4fcd1b[_0x8eae('0x3c')][_0x8eae('0xc8')]);}})['then'](respondWithStatusCode(_0x4370ad,null))['catch'](handleError(_0x4370ad,null));};exports['download']=function(_0x22f0a1,_0x36e128){var _0x2442ae=moment()[_0x8eae('0xd8')]()[_0x8eae('0x96')]();var _0xd0e216=path['join'](config[_0x8eae('0xd9')],_0x8eae('0xda'),_0x8eae('0xdb'),_0x8eae('0xdc'));var _0x543375=path[_0x8eae('0xdd')](config[_0x8eae('0xd9')],'server',_0x8eae('0xdb'),'attachments');var _0x24d3cc=path[_0x8eae('0xdd')](_0xd0e216,_0x2442ae);var _0x3b1374=util[_0x8eae('0xde')](_0x8eae('0xdf'),_0x22f0a1[_0x8eae('0xc0')]['id'],_0x2442ae);var _0x30577e=path['join'](_0xd0e216,_0x3b1374);var _0x3f0f5a=[];if(_0x22f0a1[_0x8eae('0x3c')][_0x8eae('0xe0')]){_0x3f0f5a['push']({'model':db[_0x8eae('0xe1')],'as':_0x8eae('0xe2'),'raw':!![]});}var _0x32b45a=[{'model':db[_0x8eae('0x2a')],'as':'Messages','attributes':['id',_0x8eae('0xc4'),_0x8eae('0x49'),'to','cc',_0x8eae('0xe3'),_0x8eae('0xe4'),_0x8eae('0x7a')],'where':{'secret':![]},'order':qs[_0x8eae('0xcb')]('id'),'include':_0x3f0f5a}];return db[_0x8eae('0x99')]['find']({'where':{'id':_0x22f0a1[_0x8eae('0xc0')]['id']},'include':_0x32b45a})['then'](handleEntityNotFound(_0x36e128,null))[_0x8eae('0x1e')](function(_0xb8de65){if(_0xb8de65&&_0xb8de65[_0x8eae('0xe5')]){var _0x278be2=_0xb8de65[_0x8eae('0xe6')]({'plain':!![]});fs[_0x8eae('0xe7')](_0x24d3cc);return BPromise['each'](_0x278be2[_0x8eae('0xe5')],function(_0x152ceb,_0x4c103c){var _0x535e07={'from':_0x152ceb['from'],'to':_0x152ceb['to'],'subject':_0x152ceb[_0x8eae('0xe4')],'html':htmlEntities['decode'](_0x152ceb[_0x8eae('0xc4')]),'headers':{'Date':moment(_0x152ceb['createdAt'])[_0x8eae('0xde')](_0x8eae('0xe8'))},'attachments':[]};if(_0x152ceb['cc']){_0x535e07[_0x8eae('0xe9')]['Cc']=_0x152ceb['cc'];}if(_0x152ceb[_0x8eae('0xe3')]){_0x535e07[_0x8eae('0xe9')]['Bcc']=_0x152ceb[_0x8eae('0xe3')];}return new BPromise(function(_0xad6a93,_0x46fae5){if(_0x152ceb[_0x8eae('0xe2')]){for(var _0x1c7465=0x0;_0x1c7465<_0x152ceb[_0x8eae('0xe2')]['length'];_0x1c7465++){var _0x3a8c56=_0x152ceb['Attachments'][_0x1c7465];var _0x3d200a=path[_0x8eae('0xdd')](_0x543375,_0x3a8c56[_0x8eae('0xea')]);if(fs['existsSync'](_0x3d200a)){_0x535e07['attachments'][_0x8eae('0x29')]({'name':_0x3a8c56[_0x8eae('0x21')],'contentType':_0x3a8c56[_0x8eae('0x6e')],'data':fs[_0x8eae('0xeb')](_0x3d200a)});}}}emlformat[_0x8eae('0xec')](_0x535e07,function(_0x252959,_0x40cef3){if(_0x252959)return _0x46fae5(_0x252959);fs[_0x8eae('0xed')](path[_0x8eae('0xdd')](_0x24d3cc,util['format'](_0x8eae('0xee'),_0x4c103c)),_0x40cef3);return _0xad6a93(_0x40cef3);});});})[_0x8eae('0x1e')](function(){return new BPromise(function(_0x1d4886,_0x2d8ab7){zipdir(_0x24d3cc,{'saveTo':_0x30577e},function(_0x27e438,_0x190308){if(_0x27e438)return _0x2d8ab7(_0x27e438);return _0x1d4886(_0x190308);});})[_0x8eae('0x1e')](function(){return new BPromise(function(_0x317d47,_0x483fa0){rimraf(_0x24d3cc,function(_0xfb1c09){if(_0xfb1c09)_0x483fa0(_0xfb1c09);return _0x317d47();});});})[_0x8eae('0x1e')](function(){return _0x36e128[_0x8eae('0xef')](_0x30577e,_0x3b1374,function(_0x5df20c){if(!_0x5df20c)fs['unlinkSync'](_0x30577e);});});});}else{return _0x36e128['sendStatus'](0xc8);}})[_0x8eae('0x30')](handleError(_0x36e128,null));};