549183621a03512f579b41e307ffb125f183bcb2
[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 _0xf8af=['search','parseSearch','sqlOperator','conditions','length','find','unreadMessages','value','having','`\x20=\x200','`\x20>\x200','operator','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','text','start','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','buildExpression','type','compact','isEmpty','MailAccountId','i.MailAccountId\x20IN\x20?','concat','createdAt','parse','$gte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20>\x200','isArray','tag','filter','replace','isNumeric','i.id\x20LIKE\x20?','MATCH\x20(i.to,\x20i.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','MATCH\x20(me.plainBody,\x20me.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','group','i.id','SELECT','order','DESC','resolve','i.MailAccountId\x20IS\x20NOT\x20NULL','user','role','agent','getMailAccounts','i.MailAccountId\x20IS\x20NULL','toString','keyBy','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','a.key','Account.mandatoryDisposition','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','contactName','i.createdAt','i.updatedAt','i.closedAt','i.attach','i.subject','i.substatus','i.to','i.ContactId','i.MailAccountId','c.firstName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','c.mobile','c.fax','o.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','sequelize','ui.MailInteractionId\x20IN\x20?','groupBy','Setting','enableEmailPreview','push','all','rows','show','params','includeAll','include','merge','options','create','body','update','describe','addMessage','ids','omit','pick','MailInteractionId','format','findAll','true','addTags','setTags','Tag','color','emit','removeTags','download','unix','join','root','server','files','tmp','attachments','Attachment','Attachments','Messages','bcc','subject','mkdirSync','each','decode','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','writeFileSync','message%d.eml','unlinkSync','eml-format','zip-dir','moment','bluebird','util','lodash','squel','juice','ioredis','../../config/logger','../../config/environment','../../mysqldb','html-entities','redis','defaults','localhost','socket.io-emitter','./mailInteraction.socket','register','sendStatus','end','status','offset','count','set','json','then','destroy','error','name','send','Users','map','fullname','TagIds','Tags','split','forEach','MailMessage','findOne','plainBody','-id','lastMsgText','catch','waiting','talking','answered','unmanaged','total','closed','UserId','MailInteraction','rawAttributes','fieldName','key','query','keys','filters','intersection','attributes','model','fields','hasOwnProperty','nolimit','limit','sort','where','field','from','tools_tags','select','u.id','u.fullname','ui.MailInteractionId','left_join','users','mail_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','mail_accounts','a.id\x20=\x20i.MailAccountId','mail_messages','me.MailInteractionId\x20=\x20i.id','it.MailInteractionId\x20=\x20i.id','expr'];(function(_0x23d0fc,_0x20b841){var _0x41f208=function(_0x2d3aa2){while(--_0x2d3aa2){_0x23d0fc['push'](_0x23d0fc['shift']());}};_0x41f208(++_0x20b841);}(_0xf8af,0x8b));var _0xff8a=function(_0x59ee6f,_0x450239){_0x59ee6f=_0x59ee6f-0x0;var _0x4c0979=_0xf8af[_0x59ee6f];return _0x4c0979;};'use strict';var emlformat=require(_0xff8a('0x0'));var rimraf=require('rimraf');var zipdir=require(_0xff8a('0x1'));var moment=require(_0xff8a('0x2'));var BPromise=require(_0xff8a('0x3'));var util=require(_0xff8a('0x4'));var path=require('path');var fs=require('fs');var _=require(_0xff8a('0x5'));var squel=require(_0xff8a('0x6'));var juice=require(_0xff8a('0x7'));var Redis=require(_0xff8a('0x8'));var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var logger=require(_0xff8a('0x9'))('api');var config=require(_0xff8a('0xa'));var db=require(_0xff8a('0xb'))['db'];var htmlEntities=require(_0xff8a('0xc'));config[_0xff8a('0xd')]=_[_0xff8a('0xe')](config[_0xff8a('0xd')],{'host':_0xff8a('0xf'),'port':0x18eb});var socket=require(_0xff8a('0x10'))(new Redis(config[_0xff8a('0xd')]));require(_0xff8a('0x11'))[_0xff8a('0x12')](socket);function respondWithStatusCode(_0x5a31cb,_0x3d7e93){_0x3d7e93=_0x3d7e93||0xcc;return function(_0x437fc8){if(_0x437fc8){return _0x5a31cb[_0xff8a('0x13')](_0x3d7e93);}return _0x5a31cb['status'](_0x3d7e93)[_0xff8a('0x14')]();};}function respondWithResult(_0x35eca7,_0x252271){_0x252271=_0x252271||0xc8;return function(_0x40bf06){if(_0x40bf06){return _0x35eca7[_0xff8a('0x15')](_0x252271)['json'](_0x40bf06);}};}function respondWithFilteredResult(_0x2e72a7,_0x4236c5){return function(_0xf81533){if(_0xf81533){var _0x1cd47d=typeof _0x4236c5['offset']==='undefined'&&typeof _0x4236c5['limit']==='undefined';var _0x2f83df=_0xf81533['count'];var _0x279441=_0x1cd47d?0x0:_0x4236c5[_0xff8a('0x16')];var _0x4e98b0=_0x1cd47d?_0xf81533[_0xff8a('0x17')]:_0x4236c5['offset']+_0x4236c5['limit'];var _0x392f43;if(_0x4e98b0>=_0x2f83df){_0x4e98b0=_0x2f83df;_0x392f43=0xc8;}else{_0x392f43=0xce;}_0x2e72a7[_0xff8a('0x15')](_0x392f43);return _0x2e72a7[_0xff8a('0x18')]('Content-Range',_0x279441+'-'+_0x4e98b0+'/'+_0x2f83df)[_0xff8a('0x19')](_0xf81533);}return null;};}function saveUpdates(_0x5c4349){return function(_0x1d3767){if(_0x1d3767){return _0x1d3767['update'](_0x5c4349)[_0xff8a('0x1a')](function(_0x1b4272){return _0x1b4272;});}return null;};}function removeEntity(_0x794015){return function(_0xdb1027){if(_0xdb1027){return _0xdb1027[_0xff8a('0x1b')]()[_0xff8a('0x1a')](function(){_0x794015[_0xff8a('0x15')](0xcc)[_0xff8a('0x14')]();});}};}function handleEntityNotFound(_0xead978){return function(_0xe2ed2b){if(!_0xe2ed2b){_0xead978[_0xff8a('0x13')](0x194);}return _0xe2ed2b;};}function handleError(_0x2d0fc2,_0x3bb4ac){_0x3bb4ac=_0x3bb4ac||0x1f4;return function(_0x1d9a9b){logger[_0xff8a('0x1c')](_0x1d9a9b['stack']);if(_0x1d9a9b[_0xff8a('0x1d')]){delete _0x1d9a9b[_0xff8a('0x1d')];}_0x2d0fc2[_0xff8a('0x15')](_0x3bb4ac)[_0xff8a('0x1e')](_0x1d9a9b);};}function getInteractionUsers(_0x518d33,_0x2370f1){return new BPromise(function(_0x49b441,_0x1c9ecc){try{if(_0x2370f1[_0x518d33['id']]){_0x518d33[_0xff8a('0x1f')]=_[_0xff8a('0x20')](_0x2370f1[_0x518d33['id']],function(_0x3fdce3){return{'id':_0x3fdce3['id'],'fullname':_0x3fdce3[_0xff8a('0x21')]};});}}catch(_0x55b267){_0x1c9ecc(_0x55b267);}_0x49b441(_0x518d33);});}function getInteractionTags(_0x2c57c9,_0x178f73){return new BPromise(function(_0x3063b1,_0x5153f6){try{if(_0x2c57c9[_0xff8a('0x22')]){_0x2c57c9[_0xff8a('0x23')]=[];_0x2c57c9[_0xff8a('0x22')][_0xff8a('0x24')](',')[_0xff8a('0x25')](function(_0xba33b6){_0x2c57c9[_0xff8a('0x23')]['push'](_0x178f73[_0xba33b6]);});}delete _0x2c57c9['TagIds'];}catch(_0x1fc2a8){_0x5153f6(_0x1fc2a8);}_0x3063b1(_0x2c57c9);});}function getLastMessageText(_0x3849df){return new BPromise(function(_0x15d5c2,_0x279347){return db[_0xff8a('0x26')][_0xff8a('0x27')]({'where':{'$and':[{'MailInteractionId':_0x3849df['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':'out'},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':[_0xff8a('0x28')],'order':_0xff8a('0x29'),'raw':!![]})['then'](function(_0x422410){if(_0x422410&&_0x422410[_0xff8a('0x28')]){_0x3849df[_0xff8a('0x2a')]=_['trimStart'](_0x422410[_0xff8a('0x28')]);}_0x15d5c2(_0x3849df);})[_0xff8a('0x2b')](function(_0x5a1c84){_0x279347(_0x5a1c84);});});}function updateMailInteraction(_0x231d1c,_0x37d035,_0x3ad597,_0x3355db){return new BPromise(function(_0x203546,_0x3b90be){return getInteractionUsers(_0x231d1c,_0x3ad597)[_0xff8a('0x1a')](function(_0x3b894e){return getInteractionTags(_0x3b894e,_0x37d035);})[_0xff8a('0x1a')](function(_0x4dff27){return getStateInteraction(_0x4dff27);})[_0xff8a('0x1a')](function(_0x1330ea){if(_0x3355db){_0x203546(getLastMessageText(_0x1330ea));}else{_0x203546(_0x1330ea);}})['catch'](function(_0x2e3829){_0x3b90be(_0x2e3829);});});}function getStateInteraction(_0x3a82c2){return new BPromise(function(_0xfc4000){_0x3a82c2[_0xff8a('0x2c')]=0x0;_0x3a82c2[_0xff8a('0x2d')]=0x0;_0x3a82c2[_0xff8a('0x2e')]=0x0;_0x3a82c2[_0xff8a('0x2f')]=0x0;_0x3a82c2[_0xff8a('0x30')]=0x0;if(!_0x3a82c2[_0xff8a('0x31')]&&!_0x3a82c2['UserId']){_0x3a82c2['waiting']+=0x1;}if(!_0x3a82c2[_0xff8a('0x31')]&&_0x3a82c2[_0xff8a('0x32')]){_0x3a82c2['talking']+=0x1;if(_0x3a82c2[_0xff8a('0x2c')]){_0x3a82c2[_0xff8a('0x2c')]-=0x1;}}if(_0x3a82c2['closed']&&_0x3a82c2['UserId']){_0x3a82c2['answered']+=0x1;if(_0x3a82c2[_0xff8a('0x2d')]){_0x3a82c2[_0xff8a('0x2d')]-=0x1;}}if(_0x3a82c2['closed']&&!_0x3a82c2[_0xff8a('0x32')]){_0x3a82c2[_0xff8a('0x2f')]+=0x1;if(_0x3a82c2[_0xff8a('0x2c')]){_0x3a82c2['waiting']-=0x1;}}_0x3a82c2[_0xff8a('0x30')]+=0x1;_0xfc4000(_0x3a82c2);});}exports['index']=function(_0x2e7ac7,_0x128936){var _0x5ed49e={},_0x3769b3={},_0x5c1bea={'count':0x0,'rows':[]};var _0x4c263e=_[_0xff8a('0x20')](db[_0xff8a('0x33')][_0xff8a('0x34')],function(_0x4291c3){return{'name':_0x4291c3[_0xff8a('0x35')],'type':_0x4291c3['type'][_0xff8a('0x36')]};});_0x3769b3['model']=_[_0xff8a('0x20')](_0x4c263e,_0xff8a('0x1d'));_0x3769b3[_0xff8a('0x37')]=_[_0xff8a('0x38')](_0x2e7ac7[_0xff8a('0x37')]);_0x3769b3[_0xff8a('0x39')]=_[_0xff8a('0x3a')](_0x3769b3['model'],_0x3769b3[_0xff8a('0x37')]);_0x5ed49e[_0xff8a('0x3b')]=_[_0xff8a('0x3a')](_0x3769b3[_0xff8a('0x3c')],qs[_0xff8a('0x3d')](_0x2e7ac7[_0xff8a('0x37')][_0xff8a('0x3d')]));_0x5ed49e[_0xff8a('0x3b')]=_0x5ed49e[_0xff8a('0x3b')]['length']?_0x5ed49e[_0xff8a('0x3b')]:_0x3769b3['model'];if(!_0x2e7ac7[_0xff8a('0x37')][_0xff8a('0x3e')](_0xff8a('0x3f'))){_0x5ed49e[_0xff8a('0x40')]=qs[_0xff8a('0x40')](_0x2e7ac7[_0xff8a('0x37')][_0xff8a('0x40')]);_0x5ed49e[_0xff8a('0x16')]=qs[_0xff8a('0x16')](_0x2e7ac7[_0xff8a('0x37')][_0xff8a('0x16')]);}_0x5ed49e['order']=qs[_0xff8a('0x41')](_0x2e7ac7[_0xff8a('0x37')][_0xff8a('0x41')]);_0x5ed49e[_0xff8a('0x42')]=qs[_0xff8a('0x39')](_['pick'](_0x2e7ac7[_0xff8a('0x37')],_0x3769b3[_0xff8a('0x39')]),_0x4c263e);var _0x21ef6d=[];var _0x579664=squel['select']()[_0xff8a('0x43')]('id')[_0xff8a('0x43')](_0xff8a('0x1d'))[_0xff8a('0x43')]('color')[_0xff8a('0x44')](_0xff8a('0x45'));var _0x342873=squel[_0xff8a('0x46')]()[_0xff8a('0x43')](_0xff8a('0x47'))[_0xff8a('0x43')](_0xff8a('0x48'))[_0xff8a('0x43')](_0xff8a('0x49'))[_0xff8a('0x44')]('user_has_mail_interactions','ui')[_0xff8a('0x4a')](_0xff8a('0x4b'),'u','u.id\x20=\x20ui.UserId');var _0x1a7973=squel[_0xff8a('0x46')]()['from'](_0xff8a('0x4c'),'i')[_0xff8a('0x4a')](_0xff8a('0x4d'),'c',_0xff8a('0x4e'))[_0xff8a('0x4a')](_0xff8a('0x4b'),'o',_0xff8a('0x4f'))[_0xff8a('0x4a')](_0xff8a('0x50'),'a',_0xff8a('0x51'))[_0xff8a('0x4a')](_0xff8a('0x52'),'me',_0xff8a('0x53'))[_0xff8a('0x4a')]('mail_interaction_has_tags','it',_0xff8a('0x54'))[_0xff8a('0x4a')](_0xff8a('0x45'),'t','t.id\x20=\x20it.TagId');var _0x3b52d0=squel[_0xff8a('0x55')]();var _0x2c274b=[];var _0xb2eea9=squel[_0xff8a('0x55')]();var _0x8cd263;if(_0x2e7ac7[_0xff8a('0x37')][_0xff8a('0x56')]){_0x8cd263=as[_0xff8a('0x57')](_0x2e7ac7[_0xff8a('0x37')][_0xff8a('0x56')]);var _0x54240e=_0x8cd263[_0xff8a('0x58')];for(var _0xfec238=0x0;_0xfec238<_0x8cd263[_0xff8a('0x59')][_0xff8a('0x5a')];_0xfec238++){var _0x139be3=_0x8cd263[_0xff8a('0x59')][_0xfec238];var _0x1534f1='i';var _0x5b77f8=_[_0xff8a('0x5b')](_0x4c263e,[_0xff8a('0x1d'),_0x139be3['field']]);if(!_0x5b77f8){switch(_0x139be3[_0xff8a('0x43')]){case _0xff8a('0x5c'):if(_0x139be3[_0xff8a('0x5d')]==0x1){_0x1a7973[_0xff8a('0x5e')]('`'+_0x139be3[_0xff8a('0x43')]+_0xff8a('0x5f'));}else{_0x1a7973[_0xff8a('0x5e')]('`'+_0x139be3['field']+_0xff8a('0x60'));}break;case'Contact':if(_0x139be3[_0xff8a('0x61')]===_0xff8a('0x62')){if(_0x139be3[_0xff8a('0x5d')]['split']('\x20')[_0xff8a('0x5a')]>0x1){_0x3b52d0[_0x54240e](_0xff8a('0x63'),qs[_0xff8a('0x64')](_0x139be3[_0xff8a('0x5d')]),null);}else{var _0x2e9675='%'+_0x139be3[_0xff8a('0x5d')]+'%';_0x3b52d0[_0x54240e](_0xff8a('0x65'),_0x2e9675,_0x2e9675,_0x2e9675);}}else{_0x5b77f8=_['find'](_0x4c263e,[_0xff8a('0x1d'),'ContactId']);_0x139be3[_0xff8a('0x43')]=_0xff8a('0x66');_0x143b12=as['buildExpression'](_0x1534f1,_0x5b77f8['type'],_0x139be3);_0x3b52d0[_0x54240e](_0x143b12[_0xff8a('0x67')],_0x143b12[_0xff8a('0x5d')][_0xff8a('0x68')],_0x143b12['value'][_0xff8a('0x14')]);}break;case'Tag':var _0x3fcd5d=_0x139be3[_0xff8a('0x5d')][_0xff8a('0x24')](',')['map'](function(_0x57410a){return Number(_0x57410a);});_0x3fcd5d[_0xff8a('0x25')](function(_0x1aca5e){_0xb2eea9['or'](_0xff8a('0x69'),'%,'+_0x1aca5e+',%');});_0x2c274b=_[_0xff8a('0x6a')](_0x2c274b,_0x3fcd5d);break;case'User':if(_0x139be3[_0xff8a('0x61')]===_0xff8a('0x62')){_0x3b52d0[_0x54240e]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x139be3[_0xff8a('0x5d')]+'%',null);}else{_0x5b77f8=_['find'](_0x4c263e,[_0xff8a('0x1d'),_0xff8a('0x32')]);_0x139be3[_0xff8a('0x43')]=_0xff8a('0x32');_0x143b12=as[_0xff8a('0x6b')](_0x1534f1,_0x5b77f8['type'],_0x139be3);_0x3b52d0[_0x54240e](_0x143b12[_0xff8a('0x67')],_0x143b12[_0xff8a('0x5d')]['start'],_0x143b12['value'][_0xff8a('0x14')]);}break;case _0xff8a('0x28'):_0x143b12=as['buildExpression']('me',null,_0x139be3);_0x3b52d0[_0x54240e](_0x143b12['text'],_0x143b12[_0xff8a('0x5d')]['start'],_0x143b12[_0xff8a('0x5d')][_0xff8a('0x14')]);break;}}else{var _0x143b12=as[_0xff8a('0x6b')](_0x1534f1,_0x5b77f8[_0xff8a('0x6c')],_0x139be3);_0x3b52d0[_0x54240e](_0x143b12[_0xff8a('0x67')],_0x143b12[_0xff8a('0x5d')][_0xff8a('0x68')],_0x143b12[_0xff8a('0x5d')][_0xff8a('0x14')]);}}}else{var _0x182026=_(_0x2e7ac7['query'])[_0xff8a('0x38')]()[_0xff8a('0x20')](function(_0x3df16f){return _['some'](_0x4c263e,[_0xff8a('0x1d'),_0x3df16f])?_0x3df16f:undefined;})[_0xff8a('0x6d')]()['value']();if(!_[_0xff8a('0x6e')](_0x182026)){_0x182026['forEach'](function(_0x19d9a0){if(_0x19d9a0===_0xff8a('0x6f')){_0x1a7973[_0xff8a('0x42')](_0xff8a('0x70'),[][_0xff8a('0x71')](_0x2e7ac7[_0xff8a('0x37')][_0x19d9a0]));}else if(_0x19d9a0===_0xff8a('0x72')){var _0x397197=JSON[_0xff8a('0x73')](_0x2e7ac7['query'][_0x19d9a0])[_0xff8a('0x74')];var _0x22caf3=JSON[_0xff8a('0x73')](_0x2e7ac7[_0xff8a('0x37')][_0x19d9a0])['$lte'];_0x1a7973[_0xff8a('0x42')](_0xff8a('0x75'),_0x397197,_0x22caf3);}else{if(_0x2e7ac7[_0xff8a('0x37')][_0x19d9a0]===_0xff8a('0x76')){_0x1a7973[_0xff8a('0x42')]('i.'+_0x19d9a0+_0xff8a('0x77'));}else{_0x1a7973[_0xff8a('0x42')]('i.'+_0x19d9a0+_0xff8a('0x78'),_0x2e7ac7[_0xff8a('0x37')][_0x19d9a0]);}}});}if(_0x2e7ac7[_0xff8a('0x37')][_0xff8a('0x79')]){if(_0x2e7ac7[_0xff8a('0x37')][_0xff8a('0x79')]==0x1){_0x1a7973[_0xff8a('0x5e')]('`unreadMessages`\x20=\x200');}else{_0x1a7973['having'](_0xff8a('0x7a'));}}if(_0x2e7ac7[_0xff8a('0x37')]['tag']){_0x2c274b=_[_0xff8a('0x7b')](_0x2e7ac7[_0xff8a('0x37')]['tag'])?_0x2e7ac7[_0xff8a('0x37')][_0xff8a('0x7c')]:new Array(_0x2e7ac7[_0xff8a('0x37')][_0xff8a('0x7c')]);_0x2c274b[_0xff8a('0x25')](function(_0xa7f21c){_0xb2eea9['or'](_0xff8a('0x69'),'%,'+_0xa7f21c+',%');});}if(_0x2e7ac7['query'][_0xff8a('0x7d')]){var _0x43cc0e=_0x2e7ac7[_0xff8a('0x37')][_0xff8a('0x7d')][_0xff8a('0x7e')]('\x5c','\x5c\x5c')[_0xff8a('0x7e')](/'/g,'\x27\x27');if(qs[_0xff8a('0x7f')](_0x43cc0e)){_0x3b52d0['or'](_0xff8a('0x80'),_0x43cc0e+'%');}else if(qs['isEmail'](_0x43cc0e)){_0x3b52d0['or']('c.email\x20LIKE\x20?',_0x43cc0e+'%');}else{_0x3b52d0['or'](_0xff8a('0x81'),qs[_0xff8a('0x64')](_0x43cc0e))['or'](_0xff8a('0x82'),qs[_0xff8a('0x64')](_0x43cc0e));}}}_0x1a7973['where'](_0x3b52d0);_0x1a7973[_0xff8a('0x83')](_0xff8a('0x84'));var _0x5667dc={'type':db['Sequelize']['QueryTypes'][_0xff8a('0x85')],'raw':!![]};var _0x4b8abb=_0x1a7973['clone']();_0x4b8abb[_0xff8a('0x43')](_0xff8a('0x84'));_0x4b8abb['field']('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0xff8a('0x5c'));if(_0x5ed49e[_0xff8a('0x86')]){_0x5ed49e[_0xff8a('0x86')][_0xff8a('0x25')](function(_0x55caa2){var _0x44d4c7=_0x55caa2[0x0]==='contactName'?_0x55caa2[0x0]:'i.'+_0x55caa2[0x0];_0x1a7973[_0xff8a('0x86')](_0x44d4c7,_0x55caa2[0x1]===_0xff8a('0x87')?![]:!![]);});}if(!_[_0xff8a('0x6e')](_0x2c274b)){_0x1a7973[_0xff8a('0x5e')](_0xb2eea9);_0x4b8abb[_0xff8a('0x42')]('t.id\x20IN\x20?',_0x2c274b);}BPromise[_0xff8a('0x88')]()['then'](function(){if(!_0x8cd263){if(_0x2e7ac7['query'][_0xff8a('0x6f')])return;_0x4b8abb[_0xff8a('0x42')](_0xff8a('0x89'));_0x1a7973[_0xff8a('0x42')](_0xff8a('0x89'));return;}if(_0x2e7ac7[_0xff8a('0x8a')][_0xff8a('0x8b')]!==_0xff8a('0x8c'))return;return _0x2e7ac7[_0xff8a('0x8a')][_0xff8a('0x8d')]({'attributes':['id'],'raw':!![]})['then'](function(_0x4bbb86){if(_[_0xff8a('0x6e')](_0x4bbb86)){_0x4b8abb[_0xff8a('0x42')](_0xff8a('0x8e'));_0x1a7973[_0xff8a('0x42')](_0xff8a('0x8e'));}else{_0x4b8abb[_0xff8a('0x42')](_0xff8a('0x70'),_[_0xff8a('0x20')](_0x4bbb86,'id'));_0x1a7973[_0xff8a('0x42')]('i.MailAccountId\x20IN\x20?',_[_0xff8a('0x20')](_0x4bbb86,'id'));}});})[_0xff8a('0x1a')](function(){if(_0x2e7ac7[_0xff8a('0x8a')][_0xff8a('0x8b')]==='agent'&&!_0x8cd263&&!_0x2e7ac7['query'][_0xff8a('0x6f')])return[];return db['sequelize'][_0xff8a('0x37')](_0x4b8abb[_0xff8a('0x8f')](),_0x5667dc);})[_0xff8a('0x1a')](function(_0x2510dc){_0x5c1bea['count']=_0x2510dc[_0xff8a('0x5a')];if(_0x5c1bea[_0xff8a('0x17')]===0x0)return[];return db['sequelize']['query'](_0x579664[_0xff8a('0x8f')](),_0x5667dc)[_0xff8a('0x1a')](function(_0x23994e){_0x21ef6d=_[_0xff8a('0x90')](_0x23994e,'id');_0x5667dc=_['merge'](_0x5667dc,{'model':db[_0xff8a('0x33')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x2e7ac7[_0xff8a('0x37')][_0xff8a('0x3d')]){_0x5ed49e[_0xff8a('0x3b')][_0xff8a('0x25')](function(_0x5a3919){_0x1a7973[_0xff8a('0x43')]('i.'+_0x5a3919);});}else{_0x1a7973[_0xff8a('0x43')](_0xff8a('0x91'),'unreadMessages');_0x1a7973[_0xff8a('0x43')](_0xff8a('0x92'),'Account.key');_0x1a7973[_0xff8a('0x43')]('a.mandatoryDisposition',_0xff8a('0x93'));_0x1a7973[_0xff8a('0x43')](_0xff8a('0x94'),_0xff8a('0x95'));_0x1a7973[_0xff8a('0x43')](_0xff8a('0x84'));_0x1a7973[_0xff8a('0x43')](_0xff8a('0x96'));_0x1a7973[_0xff8a('0x43')](_0xff8a('0x97'));_0x1a7973[_0xff8a('0x43')]('i.closed');_0x1a7973['field'](_0xff8a('0x98'));_0x1a7973[_0xff8a('0x43')](_0xff8a('0x99'));_0x1a7973[_0xff8a('0x43')]('i.lastMsgAt');_0x1a7973[_0xff8a('0x43')]('i.lastMsgDirection');_0x1a7973[_0xff8a('0x43')](_0xff8a('0x9a'));_0x1a7973[_0xff8a('0x43')]('i.disposition');_0x1a7973[_0xff8a('0x43')]('i.secondDisposition');_0x1a7973[_0xff8a('0x43')]('i.thirdDisposition');_0x1a7973[_0xff8a('0x43')](_0xff8a('0x9b'));_0x1a7973[_0xff8a('0x43')](_0xff8a('0x9c'));_0x1a7973[_0xff8a('0x43')](_0xff8a('0x9d'));_0x1a7973[_0xff8a('0x43')](_0xff8a('0x9e'));_0x1a7973[_0xff8a('0x43')]('i.UserId');_0x1a7973[_0xff8a('0x43')](_0xff8a('0x9f'),'Contact.firstName');_0x1a7973[_0xff8a('0x43')]('c.lastName',_0xff8a('0xa0'));_0x1a7973['field'](_0xff8a('0xa1'),_0xff8a('0xa2'));_0x1a7973['field'](_0xff8a('0xa3'),_0xff8a('0xa4'));_0x1a7973[_0xff8a('0x43')](_0xff8a('0xa5'),'Contact.mobile');_0x1a7973[_0xff8a('0x43')](_0xff8a('0xa6'),'Contact.fax');_0x1a7973[_0xff8a('0x43')](_0xff8a('0xa7'),'Owner.fullname');_0x1a7973[_0xff8a('0x43')](_0xff8a('0xa8'),_0xff8a('0xa9'));_0x1a7973['field'](_0xff8a('0xaa'),'TagIds');}if(_0x5ed49e['limit'])_0x1a7973[_0xff8a('0x40')](_0x5ed49e[_0xff8a('0x40')]);if(_0x5ed49e['offset'])_0x1a7973['offset'](_0x5ed49e['offset']);return db[_0xff8a('0xab')][_0xff8a('0x37')](_0x1a7973[_0xff8a('0x8f')](),_0x5667dc);})[_0xff8a('0x1a')](function(_0xc1d78){if(_0xc1d78[_0xff8a('0x5a')]>0x0)_0x342873[_0xff8a('0x42')](_0xff8a('0xac'),_['map'](_0xc1d78,'id'));return db[_0xff8a('0xab')][_0xff8a('0x37')](_0x342873[_0xff8a('0x8f')](),_0x5667dc)[_0xff8a('0x1a')](function(_0x5ae102){var _0x55a003=_[_0xff8a('0xad')](_0x5ae102,'MailInteractionId');var _0x14f280=[];return db[_0xff8a('0xae')][_0xff8a('0x27')]({'attributes':['enableEmailPreview'],'raw':!![]})[_0xff8a('0x1a')](function(_0x27e158){var _0x4cbb77=_0x27e158[_0xff8a('0xaf')];_0xc1d78[_0xff8a('0x25')](function(_0x3aede0){_0x14f280[_0xff8a('0xb0')](updateMailInteraction(_0x3aede0,_0x21ef6d,_0x55a003,_0x4cbb77));});return BPromise[_0xff8a('0xb1')](_0x14f280);});});});})[_0xff8a('0x1a')](function(_0x508189){_0x5c1bea[_0xff8a('0xb2')]=_0x508189;return _0x5c1bea;})[_0xff8a('0x1a')](respondWithFilteredResult(_0x128936,_0x5ed49e))['catch'](handleError(_0x128936,null));};exports[_0xff8a('0xb3')]=function(_0x1e9ffa,_0xd4ec24){var _0x545cb1={'raw':![],'where':{'id':_0x1e9ffa[_0xff8a('0xb4')]['id']}},_0x34efdb={};_0x34efdb[_0xff8a('0x3c')]=_[_0xff8a('0x38')](db[_0xff8a('0x33')]['rawAttributes']);_0x34efdb['query']=_[_0xff8a('0x38')](_0x1e9ffa[_0xff8a('0x37')]);_0x34efdb['filters']=_[_0xff8a('0x3a')](_0x34efdb[_0xff8a('0x3c')],_0x34efdb[_0xff8a('0x37')]);_0x545cb1[_0xff8a('0x3b')]=_[_0xff8a('0x3a')](_0x34efdb['model'],qs['fields'](_0x1e9ffa[_0xff8a('0x37')][_0xff8a('0x3d')]));_0x545cb1[_0xff8a('0x3b')]=_0x545cb1[_0xff8a('0x3b')][_0xff8a('0x5a')]?_0x545cb1['attributes']:_0x34efdb[_0xff8a('0x3c')];if(_0x1e9ffa[_0xff8a('0x37')][_0xff8a('0xb5')]){_0x545cb1[_0xff8a('0xb6')]=[{'all':!![]}];}_0x545cb1=_[_0xff8a('0xb7')]({},_0x545cb1,_0x1e9ffa[_0xff8a('0xb8')]);return db[_0xff8a('0x33')][_0xff8a('0x5b')](_0x545cb1)[_0xff8a('0x1a')](handleEntityNotFound(_0xd4ec24,null))[_0xff8a('0x1a')](respondWithResult(_0xd4ec24,null))[_0xff8a('0x2b')](handleError(_0xd4ec24,null));};exports[_0xff8a('0xb9')]=function(_0x483094,_0x3ed9fd){return db[_0xff8a('0x33')][_0xff8a('0xb9')](_0x483094[_0xff8a('0xba')],{})[_0xff8a('0x1a')](respondWithResult(_0x3ed9fd,0xc9))[_0xff8a('0x2b')](handleError(_0x3ed9fd,null));};exports[_0xff8a('0xbb')]=function(_0x345cfe,_0x40ef95){if(_0x345cfe['body']['id']){delete _0x345cfe[_0xff8a('0xba')]['id'];}return db['MailInteraction'][_0xff8a('0x5b')]({'where':{'id':_0x345cfe[_0xff8a('0xb4')]['id']}})[_0xff8a('0x1a')](handleEntityNotFound(_0x40ef95,null))[_0xff8a('0x1a')](saveUpdates(_0x345cfe['body'],null))['then'](respondWithResult(_0x40ef95,null))[_0xff8a('0x2b')](handleError(_0x40ef95,null));};exports['destroy']=function(_0x2b7830,_0x21973a){return db[_0xff8a('0x33')]['find']({'where':{'id':_0x2b7830[_0xff8a('0xb4')]['id']}})[_0xff8a('0x1a')](handleEntityNotFound(_0x21973a,null))[_0xff8a('0x1a')](removeEntity(_0x21973a,null))[_0xff8a('0x2b')](handleError(_0x21973a,null));};exports[_0xff8a('0xbc')]=function(_0x4b2a18,_0x50c558){return db[_0xff8a('0x33')][_0xff8a('0xbc')]()[_0xff8a('0x1a')](respondWithResult(_0x50c558,null))['catch'](handleError(_0x50c558,null));};exports[_0xff8a('0xbd')]=function(_0x2ffe0b,_0x37c831){return db[_0xff8a('0x26')][_0xff8a('0x5b')]({'where':{'id':_0x2ffe0b[_0xff8a('0xb4')]['id']}})[_0xff8a('0x1a')](handleEntityNotFound(_0x37c831,null))['then'](function(_0x12d71c){if(_0x12d71c){return _0x12d71c['addMessage'](_0x2ffe0b[_0xff8a('0xba')][_0xff8a('0xbe')],_[_0xff8a('0xbf')](_0x2ffe0b[_0xff8a('0xba')],['ids','id'])||{});}})[_0xff8a('0x1a')](respondWithResult(_0x37c831,null))[_0xff8a('0x2b')](handleError(_0x37c831,null));};exports['getMessages']=function(_0x5ed7c0,_0x524069){var _0x380830={'raw':![],'where':{}};var _0x3220f9={};var _0x387d7d={'count':0x0,'rows':[]};return db[_0xff8a('0x33')][_0xff8a('0x27')]({'where':{'id':_0x5ed7c0[_0xff8a('0xb4')]['id']}})['then'](handleEntityNotFound(_0x524069,null))['then'](function(_0x2b48f0){if(_0x2b48f0){_0x3220f9[_0xff8a('0x3c')]=_[_0xff8a('0x38')](db[_0xff8a('0x26')][_0xff8a('0x34')]);_0x3220f9['query']=_[_0xff8a('0x38')](_0x5ed7c0[_0xff8a('0x37')]);_0x3220f9['filters']=_[_0xff8a('0x3a')](_0x3220f9[_0xff8a('0x3c')],_0x3220f9[_0xff8a('0x37')]);_0x380830['attributes']=_[_0xff8a('0x3a')](_0x3220f9['model'],qs[_0xff8a('0x3d')](_0x5ed7c0[_0xff8a('0x37')][_0xff8a('0x3d')]));_0x380830[_0xff8a('0x3b')]=_0x380830[_0xff8a('0x3b')][_0xff8a('0x5a')]?_0x380830[_0xff8a('0x3b')]:_0x3220f9['model'];if(!_0x5ed7c0[_0xff8a('0x37')][_0xff8a('0x3e')](_0xff8a('0x3f'))){_0x380830['limit']=qs['limit'](_0x5ed7c0['query']['limit']);_0x380830[_0xff8a('0x16')]=qs[_0xff8a('0x16')](_0x5ed7c0[_0xff8a('0x37')][_0xff8a('0x16')]);}_0x380830[_0xff8a('0x86')]=qs[_0xff8a('0x41')](_0x5ed7c0['query']['sort']);_0x380830[_0xff8a('0x42')]=qs[_0xff8a('0x39')](_[_0xff8a('0xc0')](_0x5ed7c0[_0xff8a('0x37')],_0x3220f9[_0xff8a('0x39')]));_0x380830[_0xff8a('0x42')][_0xff8a('0xc1')]=_0x2b48f0['id'];if(_0x5ed7c0[_0xff8a('0x37')]['filter']){_0x380830[_0xff8a('0x42')]=_['merge'](_0x380830[_0xff8a('0x42')],{'$or':_[_0xff8a('0x20')](_0x380830[_0xff8a('0x3b')],function(_0x218271){var _0x5729cd={};_0x5729cd[_0x218271]={'$like':'%'+_0x5ed7c0[_0xff8a('0x37')][_0xff8a('0x7d')]+'%'};return _0x5729cd;})});}if(_0x5ed7c0[_0xff8a('0x37')][_0xff8a('0x74')]){var _0x427c55=_0x5ed7c0['query'][_0xff8a('0x74')][_0xff8a('0x24')](',');var _0x178bbe={};_0x178bbe[_0x427c55[0x0]]={'$gte':moment(_0x427c55[0x1])[_0xff8a('0xc2')]('YYYY-MM-DD\x20HH:mm:ss')};_0x380830[_0xff8a('0x42')]=_[_0xff8a('0xb7')](_0x380830['where'],_0x178bbe);}_0x380830=_[_0xff8a('0xb7')]({},_0x380830,_0x5ed7c0['options']);return db[_0xff8a('0x26')][_0xff8a('0x17')]({'where':_0x380830[_0xff8a('0x42')]})['then'](function(_0x1c4606){_0x387d7d['count']=_0x1c4606;if(_0x5ed7c0[_0xff8a('0x37')][_0xff8a('0xb5')]){_0x380830[_0xff8a('0xb6')]=[{'all':!![]}];}return db[_0xff8a('0x26')][_0xff8a('0xc3')](_0x380830);})[_0xff8a('0x1a')](function(_0x5c190a){if(_0x5ed7c0[_0xff8a('0x37')]['inlineCss']===_0xff8a('0xc4')){for(var _0x479ef3=0x0;_0x479ef3<_0x5c190a[_0xff8a('0x5a')];_0x479ef3++){_0x5c190a[_0x479ef3]['body']=juice(_0x5c190a[_0x479ef3][_0xff8a('0xba')]);}}_0x387d7d['rows']=_0x5c190a;return _0x387d7d;});}})[_0xff8a('0x1a')](respondWithFilteredResult(_0x524069,_0x380830))['catch'](handleError(_0x524069,null));};exports[_0xff8a('0xc5')]=function(_0x3db9e9,_0x5ccc46){return db[_0xff8a('0x33')]['find']({'where':{'id':_0x3db9e9[_0xff8a('0xb4')]['id']}})['then'](handleEntityNotFound(_0x5ccc46,null))[_0xff8a('0x1a')](function(_0x3934a5){if(_0x3934a5){return _0x3934a5[_0xff8a('0xc6')](_0x3db9e9[_0xff8a('0xba')][_0xff8a('0xbe')],_[_0xff8a('0xbf')](_0x3db9e9['body'],[_0xff8a('0xbe'),'id'])||{})['spread'](function(){return db[_0xff8a('0xc7')][_0xff8a('0xc3')]({'attributes':['id',_0xff8a('0x1d'),_0xff8a('0xc8')],'where':{'id':_0x3db9e9[_0xff8a('0xba')][_0xff8a('0xbe')]}});})[_0xff8a('0x1a')](function(_0x250b60){socket[_0xff8a('0xc9')]('mailInteractionTags:save',{'id':Number(_0x3db9e9[_0xff8a('0xb4')]['id']),'tags':_0x250b60||[]});return{'id':Number(_0x3db9e9[_0xff8a('0xb4')]['id']),'tags':_0x250b60||[]};});}})[_0xff8a('0x1a')](respondWithResult(_0x5ccc46,null))[_0xff8a('0x2b')](handleError(_0x5ccc46,null));};exports[_0xff8a('0xca')]=function(_0x1326a9,_0x7fcde8){return db['MailInteraction']['find']({'where':{'id':_0x1326a9[_0xff8a('0xb4')]['id']}})[_0xff8a('0x1a')](handleEntityNotFound(_0x7fcde8,null))[_0xff8a('0x1a')](function(_0x178eb4){if(_0x178eb4){return _0x178eb4[_0xff8a('0xca')](_0x1326a9[_0xff8a('0x37')]['ids']);}})[_0xff8a('0x1a')](respondWithStatusCode(_0x7fcde8,null))['catch'](handleError(_0x7fcde8,null));};exports[_0xff8a('0xcb')]=function(_0x311d68,_0x404909){var _0x2fdd6e=moment()[_0xff8a('0xcc')]()[_0xff8a('0x8f')]();var _0x45247f=path[_0xff8a('0xcd')](config[_0xff8a('0xce')],_0xff8a('0xcf'),_0xff8a('0xd0'),_0xff8a('0xd1'));var _0x1ba8c3=path[_0xff8a('0xcd')](config[_0xff8a('0xce')],_0xff8a('0xcf'),_0xff8a('0xd0'),'attachments');var _0x236eb2=path[_0xff8a('0xcd')](_0x45247f,_0x2fdd6e);var _0xeb9e6c=util['format']('transcript-%d-%s.zip',_0x311d68[_0xff8a('0xb4')]['id'],_0x2fdd6e);var _0x283e17=path[_0xff8a('0xcd')](_0x45247f,_0xeb9e6c);var _0x2b24ca=[];if(_0x311d68['query'][_0xff8a('0xd2')]){_0x2b24ca[_0xff8a('0xb0')]({'model':db[_0xff8a('0xd3')],'as':_0xff8a('0xd4'),'raw':!![]});}var _0x5c9682=[{'model':db[_0xff8a('0x26')],'as':_0xff8a('0xd5'),'attributes':['id',_0xff8a('0xba'),'from','to','cc',_0xff8a('0xd6'),_0xff8a('0xd7'),'createdAt'],'where':{'secret':![]},'order':qs[_0xff8a('0x41')]('id'),'include':_0x2b24ca}];return db[_0xff8a('0x33')][_0xff8a('0x5b')]({'where':{'id':_0x311d68[_0xff8a('0xb4')]['id']},'include':_0x5c9682})[_0xff8a('0x1a')](handleEntityNotFound(_0x404909,null))[_0xff8a('0x1a')](function(_0x27a29a){if(_0x27a29a&&_0x27a29a[_0xff8a('0xd5')]){var _0x4b8636=_0x27a29a['get']({'plain':!![]});fs[_0xff8a('0xd8')](_0x236eb2);return BPromise[_0xff8a('0xd9')](_0x4b8636[_0xff8a('0xd5')],function(_0x1a1945,_0x504443){var _0x2bdb43={'from':_0x1a1945[_0xff8a('0x44')],'to':_0x1a1945['to'],'subject':_0x1a1945[_0xff8a('0xd7')],'html':htmlEntities[_0xff8a('0xda')](_0x1a1945['body']),'headers':{'Date':moment(_0x1a1945[_0xff8a('0x72')])[_0xff8a('0xc2')](_0xff8a('0xdb'))},'attachments':[]};if(_0x1a1945['cc']){_0x2bdb43[_0xff8a('0xdc')]['Cc']=_0x1a1945['cc'];}if(_0x1a1945[_0xff8a('0xd6')]){_0x2bdb43[_0xff8a('0xdc')][_0xff8a('0xdd')]=_0x1a1945[_0xff8a('0xd6')];}return new BPromise(function(_0x428ed3,_0x30233b){if(_0x1a1945[_0xff8a('0xd4')]){for(var _0x362fca=0x0;_0x362fca<_0x1a1945[_0xff8a('0xd4')][_0xff8a('0x5a')];_0x362fca++){var _0x1a7772=_0x1a1945[_0xff8a('0xd4')][_0x362fca];var _0x1cb1fa=path[_0xff8a('0xcd')](_0x1ba8c3,_0x1a7772['basename']);if(fs['existsSync'](_0x1cb1fa)){_0x2bdb43[_0xff8a('0xd2')][_0xff8a('0xb0')]({'name':_0x1a7772[_0xff8a('0x1d')],'contentType':_0x1a7772[_0xff8a('0x6c')],'data':fs['readFileSync'](_0x1cb1fa)});}}}emlformat['build'](_0x2bdb43,function(_0x456e4a,_0x3ac259){if(_0x456e4a)return _0x30233b(_0x456e4a);fs[_0xff8a('0xde')](path[_0xff8a('0xcd')](_0x236eb2,util['format'](_0xff8a('0xdf'),_0x504443)),_0x3ac259);return _0x428ed3(_0x3ac259);});});})[_0xff8a('0x1a')](function(){return new BPromise(function(_0x30edca,_0x3ce848){zipdir(_0x236eb2,{'saveTo':_0x283e17},function(_0xca22eb,_0x6c0634){if(_0xca22eb)return _0x3ce848(_0xca22eb);return _0x30edca(_0x6c0634);});})[_0xff8a('0x1a')](function(){return new BPromise(function(_0x59734,_0x4657ef){rimraf(_0x236eb2,function(_0x1a9e9e){if(_0x1a9e9e)_0x4657ef(_0x1a9e9e);return _0x59734();});});})['then'](function(){return _0x404909[_0xff8a('0xcb')](_0x283e17,_0xeb9e6c,function(_0x25f412){if(!_0x25f412)fs[_0xff8a('0xe0')](_0x283e17);});});});}else{return _0x404909['sendStatus'](0xc8);}})['catch'](handleError(_0x404909,null));};