Built motion from commit 25580385.|2.6.2
[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 _0x1228=['merge','Account.key','a.mandatoryDisposition','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','i.createdAt','i.closed','i.closedAt','i.attach','i.disposition','i.secondDisposition','i.substatus','i.to','i.ContactId','i.MailAccountId','i.UserId','Contact.firstName','c.lastName','Contact.lastName','c.email','c.phone','Contact.phone','c.mobile','c.fax','o.fullname','o.internal','ui.MailInteractionId\x20IN\x20?','MailInteractionId','Setting','findOne','enableEmailPreview','rows','show','keys','rawAttributes','includeAll','include','options','create','body','params','describe','ids','omit','format','YYYY-MM-DD\x20HH:mm:ss','inlineCss','true','addTags','setTags','spread','findAll','mailInteractionTags:save','removeTags','unix','join','root','server','files','attachments','Attachment','Attachments','Messages','createdAt','get','mkdirSync','subject','decode','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','bcc','existsSync','readFileSync','build','writeFileSync','message%d.eml','download','unlinkSync','eml-format','zip-dir','bluebird','util','path','squel','juice','../../components/parsers/qs','../../components/parsers/advancedSearch','api','../../config/environment','html-entities','redis','localhost','sendStatus','status','json','offset','undefined','limit','update','then','destroy','end','error','name','send','Users','map','TagIds','Tags','split','forEach','push','MailMessage','plainBody','-id','lastMsgText','trimStart','catch','talking','answered','total','UserId','closed','waiting','MailInteraction','fieldName','key','model','query','filters','intersection','fields','attributes','length','hasOwnProperty','nolimit','sort','where','pick','select','field','color','from','u.id','u.fullname','ui.MailInteractionId','user_has_mail_interactions','users','u.id\x20=\x20ui.UserId','mail_interactions','left_join','cm_contacts','o.id\x20=\x20i.UserId','mail_accounts','mail_messages','me.MailInteractionId\x20=\x20i.id','mail_interaction_has_tags','it.MailInteractionId\x20=\x20i.id','tools_tags','expr','search','parseSearch','sqlOperator','conditions','unreadMessages','value','having','`\x20=\x200','`\x20>\x200','Contact','operator','getFullTextValue','find','ContactId','buildExpression','type','text','start','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','$substring','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','some','compact','isEmpty','i.MailAccountId\x20IN\x20?','concat','parse','$gte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','read','`unreadMessages`\x20=\x200','tag','isArray','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','Sequelize','QueryTypes','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','order','contactName','DESC','t.id\x20IN\x20?','MailAccountId','i.MailAccountId\x20IS\x20NOT\x20NULL','user','role','agent','getMailAccounts','i.MailAccountId\x20IS\x20NULL','toString','count','sequelize','keyBy'];(function(_0x82b2d6,_0x12b83e){var _0x47df09=function(_0x3520f1){while(--_0x3520f1){_0x82b2d6['push'](_0x82b2d6['shift']());}};_0x47df09(++_0x12b83e);}(_0x1228,0x12f));var _0x8122=function(_0xc27aef,_0x5bd885){_0xc27aef=_0xc27aef-0x0;var _0x20c546=_0x1228[_0xc27aef];return _0x20c546;};'use strict';var emlformat=require(_0x8122('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x8122('0x1'));var moment=require('moment');var BPromise=require(_0x8122('0x2'));var util=require(_0x8122('0x3'));var path=require(_0x8122('0x4'));var fs=require('fs');var _=require('lodash');var squel=require(_0x8122('0x5'));var juice=require(_0x8122('0x6'));var Redis=require('ioredis');var qs=require(_0x8122('0x7'));var as=require(_0x8122('0x8'));var logger=require('../../config/logger')(_0x8122('0x9'));var config=require(_0x8122('0xa'));var db=require('../../mysqldb')['db'];var htmlEntities=require(_0x8122('0xb'));config[_0x8122('0xc')]=_['defaults'](config[_0x8122('0xc')],{'host':_0x8122('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require('./mailInteraction.socket')['register'](socket);function respondWithStatusCode(_0x208043,_0x49ea1e){_0x49ea1e=_0x49ea1e||0xcc;return function(_0x352ba1){if(_0x352ba1){return _0x208043[_0x8122('0xe')](_0x49ea1e);}return _0x208043[_0x8122('0xf')](_0x49ea1e)['end']();};}function respondWithResult(_0x2e325f,_0x565f6e){_0x565f6e=_0x565f6e||0xc8;return function(_0x162ed4){if(_0x162ed4){return _0x2e325f[_0x8122('0xf')](_0x565f6e)[_0x8122('0x10')](_0x162ed4);}};}function respondWithFilteredResult(_0x2d2560,_0x961f9d){return function(_0x266feb){if(_0x266feb){var _0x1fa431=typeof _0x961f9d[_0x8122('0x11')]===_0x8122('0x12')&&typeof _0x961f9d[_0x8122('0x13')]===_0x8122('0x12');var _0x6baf37=_0x266feb['count'];var _0x3ed5d1=_0x1fa431?0x0:_0x961f9d['offset'];var _0x23594=_0x1fa431?_0x266feb['count']:_0x961f9d[_0x8122('0x11')]+_0x961f9d[_0x8122('0x13')];var _0x394b27;if(_0x23594>=_0x6baf37){_0x23594=_0x6baf37;_0x394b27=0xc8;}else{_0x394b27=0xce;}_0x2d2560[_0x8122('0xf')](_0x394b27);return _0x2d2560['set']('Content-Range',_0x3ed5d1+'-'+_0x23594+'/'+_0x6baf37)['json'](_0x266feb);}return null;};}function saveUpdates(_0x56a926){return function(_0x463ab2){if(_0x463ab2){return _0x463ab2[_0x8122('0x14')](_0x56a926)[_0x8122('0x15')](function(_0x5a5a57){return _0x5a5a57;});}return null;};}function removeEntity(_0x5df55f){return function(_0x1162a8){if(_0x1162a8){return _0x1162a8[_0x8122('0x16')]()[_0x8122('0x15')](function(){_0x5df55f['status'](0xcc)[_0x8122('0x17')]();});}};}function handleEntityNotFound(_0x1c0189){return function(_0x27f204){if(!_0x27f204){_0x1c0189[_0x8122('0xe')](0x194);}return _0x27f204;};}function handleError(_0x3c6226,_0x130e1b){_0x130e1b=_0x130e1b||0x1f4;return function(_0x230954){logger[_0x8122('0x18')](_0x230954['stack']);if(_0x230954[_0x8122('0x19')]){delete _0x230954['name'];}_0x3c6226[_0x8122('0xf')](_0x130e1b)[_0x8122('0x1a')](_0x230954);};}function getInteractionUsers(_0x37baf3,_0x2f04d5){return new BPromise(function(_0x1c80f9,_0x240a6d){try{if(_0x2f04d5[_0x37baf3['id']]){_0x37baf3[_0x8122('0x1b')]=_[_0x8122('0x1c')](_0x2f04d5[_0x37baf3['id']],function(_0x22f094){return{'id':_0x22f094['id'],'fullname':_0x22f094['fullname']};});}}catch(_0x1258d7){_0x240a6d(_0x1258d7);}_0x1c80f9(_0x37baf3);});}function getInteractionTags(_0xa79602,_0x25cd87){return new BPromise(function(_0xc90a18,_0x2f8d73){try{if(_0xa79602[_0x8122('0x1d')]){_0xa79602[_0x8122('0x1e')]=[];_0xa79602[_0x8122('0x1d')][_0x8122('0x1f')](',')[_0x8122('0x20')](function(_0x4c70f4){_0xa79602['Tags'][_0x8122('0x21')](_0x25cd87[_0x4c70f4]);});}delete _0xa79602[_0x8122('0x1d')];}catch(_0x5263ca){_0x2f8d73(_0x5263ca);}_0xc90a18(_0xa79602);});}function getLastMessageText(_0x480f91){return new BPromise(function(_0x12da0c,_0x2ca3f6){return db[_0x8122('0x22')]['findOne']({'where':{'$and':[{'MailInteractionId':_0x480f91['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':'out'},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':[_0x8122('0x23')],'order':_0x8122('0x24'),'raw':!![]})[_0x8122('0x15')](function(_0x14d77b){if(_0x14d77b&&_0x14d77b[_0x8122('0x23')]){_0x480f91[_0x8122('0x25')]=_[_0x8122('0x26')](_0x14d77b[_0x8122('0x23')]);}_0x12da0c(_0x480f91);})[_0x8122('0x27')](function(_0x27252b){_0x2ca3f6(_0x27252b);});});}function updateMailInteraction(_0x51af4d,_0x275e8b,_0x160052,_0x24c8a0){return new BPromise(function(_0x3f6d51,_0x24481a){return getInteractionUsers(_0x51af4d,_0x160052)[_0x8122('0x15')](function(_0x1e079c){return getInteractionTags(_0x1e079c,_0x275e8b);})[_0x8122('0x15')](function(_0x4c0e2e){return getStateInteraction(_0x4c0e2e);})['then'](function(_0x273152){if(_0x24c8a0){_0x3f6d51(getLastMessageText(_0x273152));}else{_0x3f6d51(_0x273152);}})['catch'](function(_0x5362fe){_0x24481a(_0x5362fe);});});}function getStateInteraction(_0xf3dd36){return new BPromise(function(_0x49e091){_0xf3dd36['waiting']=0x0;_0xf3dd36[_0x8122('0x28')]=0x0;_0xf3dd36[_0x8122('0x29')]=0x0;_0xf3dd36['unmanaged']=0x0;_0xf3dd36[_0x8122('0x2a')]=0x0;if(!_0xf3dd36['closed']&&!_0xf3dd36[_0x8122('0x2b')]){_0xf3dd36['waiting']+=0x1;}if(!_0xf3dd36[_0x8122('0x2c')]&&_0xf3dd36[_0x8122('0x2b')]){_0xf3dd36['talking']+=0x1;if(_0xf3dd36['waiting']){_0xf3dd36['waiting']-=0x1;}}if(_0xf3dd36[_0x8122('0x2c')]&&_0xf3dd36[_0x8122('0x2b')]){_0xf3dd36['answered']+=0x1;if(_0xf3dd36[_0x8122('0x28')]){_0xf3dd36[_0x8122('0x28')]-=0x1;}}if(_0xf3dd36[_0x8122('0x2c')]&&!_0xf3dd36[_0x8122('0x2b')]){_0xf3dd36['unmanaged']+=0x1;if(_0xf3dd36[_0x8122('0x2d')]){_0xf3dd36[_0x8122('0x2d')]-=0x1;}}_0xf3dd36[_0x8122('0x2a')]+=0x1;_0x49e091(_0xf3dd36);});}exports['index']=function(_0x3805ec,_0x4f795a){var _0x3ab96a={},_0x5f4cde={},_0xf64d85={'count':0x0,'rows':[]};var _0x2afa58=_[_0x8122('0x1c')](db[_0x8122('0x2e')]['rawAttributes'],function(_0x38eabd){return{'name':_0x38eabd[_0x8122('0x2f')],'type':_0x38eabd['type'][_0x8122('0x30')]};});_0x5f4cde[_0x8122('0x31')]=_[_0x8122('0x1c')](_0x2afa58,'name');_0x5f4cde[_0x8122('0x32')]=_['keys'](_0x3805ec[_0x8122('0x32')]);_0x5f4cde[_0x8122('0x33')]=_[_0x8122('0x34')](_0x5f4cde[_0x8122('0x31')],_0x5f4cde[_0x8122('0x32')]);_0x3ab96a['attributes']=_[_0x8122('0x34')](_0x5f4cde[_0x8122('0x31')],qs['fields'](_0x3805ec[_0x8122('0x32')][_0x8122('0x35')]));_0x3ab96a[_0x8122('0x36')]=_0x3ab96a[_0x8122('0x36')][_0x8122('0x37')]?_0x3ab96a[_0x8122('0x36')]:_0x5f4cde[_0x8122('0x31')];if(!_0x3805ec['query'][_0x8122('0x38')](_0x8122('0x39'))){_0x3ab96a[_0x8122('0x13')]=qs['limit'](_0x3805ec[_0x8122('0x32')][_0x8122('0x13')]);_0x3ab96a[_0x8122('0x11')]=qs['offset'](_0x3805ec['query'][_0x8122('0x11')]);}_0x3ab96a['order']=qs['sort'](_0x3805ec[_0x8122('0x32')][_0x8122('0x3a')]);_0x3ab96a[_0x8122('0x3b')]=qs['filters'](_[_0x8122('0x3c')](_0x3805ec[_0x8122('0x32')],_0x5f4cde['filters']),_0x2afa58);var _0x2160d1=[];var _0x215ca3=squel[_0x8122('0x3d')]()[_0x8122('0x3e')]('id')['field'](_0x8122('0x19'))['field'](_0x8122('0x3f'))[_0x8122('0x40')]('tools_tags');var _0x321707=squel[_0x8122('0x3d')]()['field'](_0x8122('0x41'))[_0x8122('0x3e')](_0x8122('0x42'))[_0x8122('0x3e')](_0x8122('0x43'))[_0x8122('0x40')](_0x8122('0x44'),'ui')['left_join'](_0x8122('0x45'),'u',_0x8122('0x46'));var _0xa3bee5=squel[_0x8122('0x3d')]()['from'](_0x8122('0x47'),'i')[_0x8122('0x48')](_0x8122('0x49'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')[_0x8122('0x48')](_0x8122('0x45'),'o',_0x8122('0x4a'))[_0x8122('0x48')](_0x8122('0x4b'),'a','a.id\x20=\x20i.MailAccountId')[_0x8122('0x48')](_0x8122('0x4c'),'me',_0x8122('0x4d'))[_0x8122('0x48')](_0x8122('0x4e'),'it',_0x8122('0x4f'))[_0x8122('0x48')](_0x8122('0x50'),'t','t.id\x20=\x20it.TagId');var _0x12b0b8=squel['expr']();var _0x414e67=[];var _0x3ad874=squel[_0x8122('0x51')]();var _0x170e63;if(_0x3805ec[_0x8122('0x32')][_0x8122('0x52')]){_0x170e63=as[_0x8122('0x53')](_0x3805ec[_0x8122('0x32')][_0x8122('0x52')]);var _0x3d63fb=_0x170e63[_0x8122('0x54')];for(var _0x512b23=0x0;_0x512b23<_0x170e63[_0x8122('0x55')][_0x8122('0x37')];_0x512b23++){var _0x5cecb6=_0x170e63[_0x8122('0x55')][_0x512b23];var _0x2cffaf='i';var _0x118a81=_['find'](_0x2afa58,[_0x8122('0x19'),_0x5cecb6[_0x8122('0x3e')]]);if(!_0x118a81){switch(_0x5cecb6['field']){case _0x8122('0x56'):if(_0x5cecb6[_0x8122('0x57')]==0x1){_0xa3bee5[_0x8122('0x58')]('`'+_0x5cecb6['field']+_0x8122('0x59'));}else{_0xa3bee5[_0x8122('0x58')]('`'+_0x5cecb6[_0x8122('0x3e')]+_0x8122('0x5a'));}break;case _0x8122('0x5b'):if(_0x5cecb6[_0x8122('0x5c')]==='$substring'){if(_0x5cecb6[_0x8122('0x57')][_0x8122('0x1f')]('\x20')[_0x8122('0x37')]>0x1){_0x12b0b8[_0x3d63fb]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x8122('0x5d')](_0x5cecb6[_0x8122('0x57')]),null);}else{var _0x418911='%'+_0x5cecb6[_0x8122('0x57')]+'%';_0x12b0b8[_0x3d63fb]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x418911,_0x418911,_0x418911);}}else{_0x118a81=_[_0x8122('0x5e')](_0x2afa58,[_0x8122('0x19'),_0x8122('0x5f')]);_0x5cecb6[_0x8122('0x3e')]='ContactId';_0x508dc2=as[_0x8122('0x60')](_0x2cffaf,_0x118a81[_0x8122('0x61')],_0x5cecb6);_0x12b0b8[_0x3d63fb](_0x508dc2[_0x8122('0x62')],_0x508dc2[_0x8122('0x57')][_0x8122('0x63')],_0x508dc2[_0x8122('0x57')]['end']);}break;case _0x8122('0x64'):var _0x28e0f0=_0x5cecb6['value']['split'](',')['map'](function(_0x42338d){return Number(_0x42338d);});_0x28e0f0[_0x8122('0x20')](function(_0x35eab0){_0x3ad874['or'](_0x8122('0x65'),'%,'+_0x35eab0+',%');});_0x414e67=_[_0x8122('0x66')](_0x414e67,_0x28e0f0);break;case _0x8122('0x67'):if(_0x5cecb6[_0x8122('0x5c')]===_0x8122('0x68')){_0x12b0b8[_0x3d63fb](_0x8122('0x69'),'%'+_0x5cecb6['value']+'%',null);}else{_0x118a81=_[_0x8122('0x5e')](_0x2afa58,[_0x8122('0x19'),_0x8122('0x2b')]);_0x5cecb6[_0x8122('0x3e')]=_0x8122('0x2b');_0x508dc2=as[_0x8122('0x60')](_0x2cffaf,_0x118a81['type'],_0x5cecb6);_0x12b0b8[_0x3d63fb](_0x508dc2[_0x8122('0x62')],_0x508dc2[_0x8122('0x57')][_0x8122('0x63')],_0x508dc2['value'][_0x8122('0x17')]);}break;case _0x8122('0x23'):_0x508dc2=as[_0x8122('0x60')]('me',null,_0x5cecb6);_0x12b0b8[_0x3d63fb](_0x508dc2[_0x8122('0x62')],_0x508dc2['value'][_0x8122('0x63')],_0x508dc2[_0x8122('0x57')]['end']);break;}}else{var _0x508dc2=as[_0x8122('0x60')](_0x2cffaf,_0x118a81[_0x8122('0x61')],_0x5cecb6);_0x12b0b8[_0x3d63fb](_0x508dc2['text'],_0x508dc2[_0x8122('0x57')][_0x8122('0x63')],_0x508dc2[_0x8122('0x57')][_0x8122('0x17')]);}}}else{var _0x5541d7=_(_0x3805ec[_0x8122('0x32')])['keys']()['map'](function(_0x54a229){return _[_0x8122('0x6a')](_0x2afa58,[_0x8122('0x19'),_0x54a229])?_0x54a229:undefined;})[_0x8122('0x6b')]()['value']();if(!_[_0x8122('0x6c')](_0x5541d7)){_0x5541d7[_0x8122('0x20')](function(_0x276875){if(_0x276875==='MailAccountId'){_0xa3bee5['where'](_0x8122('0x6d'),[][_0x8122('0x6e')](_0x3805ec['query'][_0x276875]));}else if(_0x276875==='createdAt'){var _0x17bf1b=JSON[_0x8122('0x6f')](_0x3805ec['query'][_0x276875])[_0x8122('0x70')];var _0x5d803b=JSON[_0x8122('0x6f')](_0x3805ec[_0x8122('0x32')][_0x276875])['$lte'];_0xa3bee5[_0x8122('0x3b')](_0x8122('0x71'),_0x17bf1b,_0x5d803b);}else{if(_0x3805ec[_0x8122('0x32')][_0x276875]===_0x8122('0x72')){_0xa3bee5[_0x8122('0x3b')]('i.'+_0x276875+_0x8122('0x73'));}else{_0xa3bee5['where']('i.'+_0x276875+'\x20=\x20?',_0x3805ec[_0x8122('0x32')][_0x276875]);}}});}if(_0x3805ec['query'][_0x8122('0x74')]){if(_0x3805ec[_0x8122('0x32')]['read']==0x1){_0xa3bee5[_0x8122('0x58')](_0x8122('0x75'));}else{_0xa3bee5['having']('`unreadMessages`\x20>\x200');}}if(_0x3805ec[_0x8122('0x32')][_0x8122('0x76')]){_0x414e67=_[_0x8122('0x77')](_0x3805ec[_0x8122('0x32')]['tag'])?_0x3805ec[_0x8122('0x32')][_0x8122('0x76')]:new Array(_0x3805ec[_0x8122('0x32')][_0x8122('0x76')]);_0x414e67[_0x8122('0x20')](function(_0x1a7260){_0x3ad874['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x1a7260+',%');});}if(_0x3805ec[_0x8122('0x32')][_0x8122('0x78')]){var _0xd3d712=_0x3805ec[_0x8122('0x32')][_0x8122('0x78')][_0x8122('0x79')]('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(qs[_0x8122('0x7a')](_0xd3d712)){_0x12b0b8['or'](_0x8122('0x7b'),_0xd3d712+'%');}else if(qs['isEmail'](_0xd3d712)){_0x12b0b8['or']('c.email\x20LIKE\x20?',_0xd3d712+'%');}else{_0x12b0b8['or'](_0x8122('0x7c'),qs[_0x8122('0x5d')](_0xd3d712))['or'](_0x8122('0x7d'),qs[_0x8122('0x5d')](_0xd3d712));}}}_0xa3bee5['where'](_0x12b0b8);_0xa3bee5[_0x8122('0x7e')](_0x8122('0x7f'));var _0x50b43b={'type':db[_0x8122('0x80')][_0x8122('0x81')]['SELECT'],'raw':!![]};var _0x20116e=_0xa3bee5[_0x8122('0x82')]();_0x20116e['field'](_0x8122('0x7f'));_0x20116e[_0x8122('0x3e')](_0x8122('0x83'),'unreadMessages');if(_0x3ab96a[_0x8122('0x84')]){_0x3ab96a[_0x8122('0x84')][_0x8122('0x20')](function(_0x5191e1){var _0x4ae28e=_0x5191e1[0x0]===_0x8122('0x85')?_0x5191e1[0x0]:'i.'+_0x5191e1[0x0];_0xa3bee5['order'](_0x4ae28e,_0x5191e1[0x1]===_0x8122('0x86')?![]:!![]);});}if(!_[_0x8122('0x6c')](_0x414e67)){_0xa3bee5['having'](_0x3ad874);_0x20116e[_0x8122('0x3b')](_0x8122('0x87'),_0x414e67);}BPromise['resolve']()[_0x8122('0x15')](function(){if(!_0x170e63){if(_0x3805ec[_0x8122('0x32')][_0x8122('0x88')])return;_0x20116e[_0x8122('0x3b')](_0x8122('0x89'));_0xa3bee5[_0x8122('0x3b')]('i.MailAccountId\x20IS\x20NOT\x20NULL');return;}if(_0x3805ec[_0x8122('0x8a')][_0x8122('0x8b')]!==_0x8122('0x8c'))return;return _0x3805ec[_0x8122('0x8a')][_0x8122('0x8d')]({'attributes':['id'],'raw':!![]})[_0x8122('0x15')](function(_0x231d1b){if(_[_0x8122('0x6c')](_0x231d1b)){_0x20116e[_0x8122('0x3b')]('i.MailAccountId\x20IS\x20NULL');_0xa3bee5[_0x8122('0x3b')](_0x8122('0x8e'));}else{_0x20116e[_0x8122('0x3b')]('i.MailAccountId\x20IN\x20?',_['map'](_0x231d1b,'id'));_0xa3bee5[_0x8122('0x3b')](_0x8122('0x6d'),_[_0x8122('0x1c')](_0x231d1b,'id'));}});})['then'](function(){if(_0x3805ec[_0x8122('0x8a')][_0x8122('0x8b')]==='agent'&&!_0x170e63&&!_0x3805ec[_0x8122('0x32')][_0x8122('0x88')])return[];return db['sequelize'][_0x8122('0x32')](_0x20116e[_0x8122('0x8f')](),_0x50b43b);})['then'](function(_0x5617cd){_0xf64d85[_0x8122('0x90')]=_0x5617cd[_0x8122('0x37')];if(_0xf64d85[_0x8122('0x90')]===0x0)return[];return db[_0x8122('0x91')][_0x8122('0x32')](_0x215ca3['toString'](),_0x50b43b)['then'](function(_0x2ba19e){_0x2160d1=_[_0x8122('0x92')](_0x2ba19e,'id');_0x50b43b=_[_0x8122('0x93')](_0x50b43b,{'model':db[_0x8122('0x2e')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x3805ec['query']['fields']){_0x3ab96a[_0x8122('0x36')][_0x8122('0x20')](function(_0x20f910){_0xa3bee5[_0x8122('0x3e')]('i.'+_0x20f910);});}else{_0xa3bee5[_0x8122('0x3e')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','unreadMessages');_0xa3bee5[_0x8122('0x3e')]('a.key',_0x8122('0x94'));_0xa3bee5[_0x8122('0x3e')](_0x8122('0x95'),_0x8122('0x96'));_0xa3bee5[_0x8122('0x3e')](_0x8122('0x97'),'contactName');_0xa3bee5[_0x8122('0x3e')]('i.id');_0xa3bee5[_0x8122('0x3e')](_0x8122('0x98'));_0xa3bee5[_0x8122('0x3e')]('i.updatedAt');_0xa3bee5[_0x8122('0x3e')](_0x8122('0x99'));_0xa3bee5[_0x8122('0x3e')](_0x8122('0x9a'));_0xa3bee5[_0x8122('0x3e')](_0x8122('0x9b'));_0xa3bee5['field']('i.lastMsgAt');_0xa3bee5['field']('i.lastMsgDirection');_0xa3bee5[_0x8122('0x3e')]('i.subject');_0xa3bee5[_0x8122('0x3e')](_0x8122('0x9c'));_0xa3bee5[_0x8122('0x3e')](_0x8122('0x9d'));_0xa3bee5[_0x8122('0x3e')]('i.thirdDisposition');_0xa3bee5['field'](_0x8122('0x9e'));_0xa3bee5[_0x8122('0x3e')](_0x8122('0x9f'));_0xa3bee5['field'](_0x8122('0xa0'));_0xa3bee5[_0x8122('0x3e')](_0x8122('0xa1'));_0xa3bee5[_0x8122('0x3e')](_0x8122('0xa2'));_0xa3bee5[_0x8122('0x3e')]('c.firstName',_0x8122('0xa3'));_0xa3bee5[_0x8122('0x3e')](_0x8122('0xa4'),_0x8122('0xa5'));_0xa3bee5[_0x8122('0x3e')](_0x8122('0xa6'),'Contact.email');_0xa3bee5[_0x8122('0x3e')](_0x8122('0xa7'),_0x8122('0xa8'));_0xa3bee5['field'](_0x8122('0xa9'),'Contact.mobile');_0xa3bee5[_0x8122('0x3e')](_0x8122('0xaa'),'Contact.fax');_0xa3bee5[_0x8122('0x3e')](_0x8122('0xab'),'Owner.fullname');_0xa3bee5['field'](_0x8122('0xac'),'Owner.internal');_0xa3bee5[_0x8122('0x3e')]('GROUP_CONCAT(DISTINCT\x20t.id)',_0x8122('0x1d'));}if(_0x3ab96a['limit'])_0xa3bee5[_0x8122('0x13')](_0x3ab96a['limit']);if(_0x3ab96a['offset'])_0xa3bee5['offset'](_0x3ab96a['offset']);return db[_0x8122('0x91')][_0x8122('0x32')](_0xa3bee5['toString'](),_0x50b43b);})[_0x8122('0x15')](function(_0x13a953){if(_0x13a953[_0x8122('0x37')]>0x0)_0x321707[_0x8122('0x3b')](_0x8122('0xad'),_[_0x8122('0x1c')](_0x13a953,'id'));return db[_0x8122('0x91')][_0x8122('0x32')](_0x321707[_0x8122('0x8f')](),_0x50b43b)[_0x8122('0x15')](function(_0x377ed2){var _0xd6c031=_['groupBy'](_0x377ed2,_0x8122('0xae'));var _0x5084c6=[];return db[_0x8122('0xaf')][_0x8122('0xb0')]({'attributes':[_0x8122('0xb1')],'raw':!![]})[_0x8122('0x15')](function(_0x5e2cc7){var _0x4df6ab=_0x5e2cc7['enableEmailPreview'];_0x13a953[_0x8122('0x20')](function(_0x25a8f7){_0x5084c6[_0x8122('0x21')](updateMailInteraction(_0x25a8f7,_0x2160d1,_0xd6c031,_0x4df6ab));});return BPromise['all'](_0x5084c6);});});});})[_0x8122('0x15')](function(_0x465832){_0xf64d85[_0x8122('0xb2')]=_0x465832;return _0xf64d85;})[_0x8122('0x15')](respondWithFilteredResult(_0x4f795a,_0x3ab96a))[_0x8122('0x27')](handleError(_0x4f795a,null));};exports[_0x8122('0xb3')]=function(_0x492421,_0x25379c){var _0x58181f={'raw':![],'where':{'id':_0x492421['params']['id']}},_0x5c64bb={};_0x5c64bb['model']=_[_0x8122('0xb4')](db['MailInteraction'][_0x8122('0xb5')]);_0x5c64bb['query']=_[_0x8122('0xb4')](_0x492421[_0x8122('0x32')]);_0x5c64bb['filters']=_['intersection'](_0x5c64bb[_0x8122('0x31')],_0x5c64bb[_0x8122('0x32')]);_0x58181f[_0x8122('0x36')]=_[_0x8122('0x34')](_0x5c64bb[_0x8122('0x31')],qs[_0x8122('0x35')](_0x492421[_0x8122('0x32')][_0x8122('0x35')]));_0x58181f[_0x8122('0x36')]=_0x58181f[_0x8122('0x36')][_0x8122('0x37')]?_0x58181f['attributes']:_0x5c64bb[_0x8122('0x31')];if(_0x492421[_0x8122('0x32')][_0x8122('0xb6')]){_0x58181f[_0x8122('0xb7')]=[{'all':!![]}];}_0x58181f=_[_0x8122('0x93')]({},_0x58181f,_0x492421[_0x8122('0xb8')]);return db[_0x8122('0x2e')][_0x8122('0x5e')](_0x58181f)[_0x8122('0x15')](handleEntityNotFound(_0x25379c,null))[_0x8122('0x15')](respondWithResult(_0x25379c,null))[_0x8122('0x27')](handleError(_0x25379c,null));};exports[_0x8122('0xb9')]=function(_0x3dea52,_0x25da55){return db[_0x8122('0x2e')]['create'](_0x3dea52[_0x8122('0xba')],{})[_0x8122('0x15')](respondWithResult(_0x25da55,0xc9))[_0x8122('0x27')](handleError(_0x25da55,null));};exports['update']=function(_0x4f200b,_0x1be974){if(_0x4f200b[_0x8122('0xba')]['id']){delete _0x4f200b[_0x8122('0xba')]['id'];}return db[_0x8122('0x2e')]['find']({'where':{'id':_0x4f200b['params']['id']}})[_0x8122('0x15')](handleEntityNotFound(_0x1be974,null))[_0x8122('0x15')](saveUpdates(_0x4f200b['body'],null))[_0x8122('0x15')](respondWithResult(_0x1be974,null))[_0x8122('0x27')](handleError(_0x1be974,null));};exports['destroy']=function(_0x332c1e,_0x1e38cb){return db[_0x8122('0x2e')][_0x8122('0x5e')]({'where':{'id':_0x332c1e[_0x8122('0xbb')]['id']}})['then'](handleEntityNotFound(_0x1e38cb,null))[_0x8122('0x15')](removeEntity(_0x1e38cb,null))[_0x8122('0x27')](handleError(_0x1e38cb,null));};exports['describe']=function(_0x55e141,_0x562689){return db[_0x8122('0x2e')][_0x8122('0xbc')]()['then'](respondWithResult(_0x562689,null))[_0x8122('0x27')](handleError(_0x562689,null));};exports['addMessage']=function(_0x1efa99,_0x5a1f42){return db[_0x8122('0x22')]['find']({'where':{'id':_0x1efa99[_0x8122('0xbb')]['id']}})[_0x8122('0x15')](handleEntityNotFound(_0x5a1f42,null))[_0x8122('0x15')](function(_0x129857){if(_0x129857){return _0x129857['addMessage'](_0x1efa99[_0x8122('0xba')][_0x8122('0xbd')],_[_0x8122('0xbe')](_0x1efa99[_0x8122('0xba')],[_0x8122('0xbd'),'id'])||{});}})[_0x8122('0x15')](respondWithResult(_0x5a1f42,null))['catch'](handleError(_0x5a1f42,null));};exports['getMessages']=function(_0xd5bfcb,_0x4538d9){var _0x5b7a02={'raw':![],'where':{}};var _0x331af0={};var _0x55d2de={'count':0x0,'rows':[]};return db[_0x8122('0x2e')][_0x8122('0xb0')]({'where':{'id':_0xd5bfcb[_0x8122('0xbb')]['id']}})[_0x8122('0x15')](handleEntityNotFound(_0x4538d9,null))[_0x8122('0x15')](function(_0x4631c4){if(_0x4631c4){_0x331af0[_0x8122('0x31')]=_['keys'](db[_0x8122('0x22')][_0x8122('0xb5')]);_0x331af0[_0x8122('0x32')]=_['keys'](_0xd5bfcb[_0x8122('0x32')]);_0x331af0['filters']=_[_0x8122('0x34')](_0x331af0['model'],_0x331af0['query']);_0x5b7a02[_0x8122('0x36')]=_[_0x8122('0x34')](_0x331af0[_0x8122('0x31')],qs[_0x8122('0x35')](_0xd5bfcb['query'][_0x8122('0x35')]));_0x5b7a02[_0x8122('0x36')]=_0x5b7a02[_0x8122('0x36')][_0x8122('0x37')]?_0x5b7a02[_0x8122('0x36')]:_0x331af0[_0x8122('0x31')];if(!_0xd5bfcb['query'][_0x8122('0x38')](_0x8122('0x39'))){_0x5b7a02[_0x8122('0x13')]=qs['limit'](_0xd5bfcb['query'][_0x8122('0x13')]);_0x5b7a02[_0x8122('0x11')]=qs[_0x8122('0x11')](_0xd5bfcb[_0x8122('0x32')][_0x8122('0x11')]);}_0x5b7a02[_0x8122('0x84')]=qs['sort'](_0xd5bfcb[_0x8122('0x32')]['sort']);_0x5b7a02['where']=qs['filters'](_[_0x8122('0x3c')](_0xd5bfcb[_0x8122('0x32')],_0x331af0[_0x8122('0x33')]));_0x5b7a02[_0x8122('0x3b')]['MailInteractionId']=_0x4631c4['id'];if(_0xd5bfcb['query'][_0x8122('0x78')]){_0x5b7a02[_0x8122('0x3b')]=_[_0x8122('0x93')](_0x5b7a02[_0x8122('0x3b')],{'$or':_['map'](_0x5b7a02['attributes'],function(_0x5ec13f){var _0x6f5072={};_0x6f5072[_0x5ec13f]={'$like':'%'+_0xd5bfcb[_0x8122('0x32')][_0x8122('0x78')]+'%'};return _0x6f5072;})});}if(_0xd5bfcb[_0x8122('0x32')][_0x8122('0x70')]){var _0x1cf56b=_0xd5bfcb[_0x8122('0x32')][_0x8122('0x70')]['split'](',');var _0x342be7={};_0x342be7[_0x1cf56b[0x0]]={'$gte':moment(_0x1cf56b[0x1])[_0x8122('0xbf')](_0x8122('0xc0'))};_0x5b7a02[_0x8122('0x3b')]=_['merge'](_0x5b7a02[_0x8122('0x3b')],_0x342be7);}_0x5b7a02=_[_0x8122('0x93')]({},_0x5b7a02,_0xd5bfcb[_0x8122('0xb8')]);return db[_0x8122('0x22')][_0x8122('0x90')]({'where':_0x5b7a02[_0x8122('0x3b')]})[_0x8122('0x15')](function(_0x526bc0){_0x55d2de[_0x8122('0x90')]=_0x526bc0;if(_0xd5bfcb[_0x8122('0x32')][_0x8122('0xb6')]){_0x5b7a02['include']=[{'all':!![]}];}return db[_0x8122('0x22')]['findAll'](_0x5b7a02);})[_0x8122('0x15')](function(_0x2ca894){if(_0xd5bfcb[_0x8122('0x32')][_0x8122('0xc1')]===_0x8122('0xc2')){for(var _0x2fc6c0=0x0;_0x2fc6c0<_0x2ca894['length'];_0x2fc6c0++){_0x2ca894[_0x2fc6c0]['body']=juice(_0x2ca894[_0x2fc6c0][_0x8122('0xba')]);}}_0x55d2de[_0x8122('0xb2')]=_0x2ca894;return _0x55d2de;});}})[_0x8122('0x15')](respondWithFilteredResult(_0x4538d9,_0x5b7a02))[_0x8122('0x27')](handleError(_0x4538d9,null));};exports[_0x8122('0xc3')]=function(_0x360559,_0x1764e1){return db[_0x8122('0x2e')][_0x8122('0x5e')]({'where':{'id':_0x360559[_0x8122('0xbb')]['id']}})['then'](handleEntityNotFound(_0x1764e1,null))['then'](function(_0x40c8eb){if(_0x40c8eb){return _0x40c8eb[_0x8122('0xc4')](_0x360559['body'][_0x8122('0xbd')],_[_0x8122('0xbe')](_0x360559[_0x8122('0xba')],[_0x8122('0xbd'),'id'])||{})[_0x8122('0xc5')](function(){return db[_0x8122('0x64')][_0x8122('0xc6')]({'attributes':['id',_0x8122('0x19'),_0x8122('0x3f')],'where':{'id':_0x360559[_0x8122('0xba')][_0x8122('0xbd')]}});})[_0x8122('0x15')](function(_0x26ca76){socket['emit'](_0x8122('0xc7'),{'id':Number(_0x360559[_0x8122('0xbb')]['id']),'tags':_0x26ca76||[]});return{'id':Number(_0x360559[_0x8122('0xbb')]['id']),'tags':_0x26ca76||[]};});}})['then'](respondWithResult(_0x1764e1,null))[_0x8122('0x27')](handleError(_0x1764e1,null));};exports['removeTags']=function(_0x4547d4,_0x5e2d3c){return db[_0x8122('0x2e')][_0x8122('0x5e')]({'where':{'id':_0x4547d4['params']['id']}})[_0x8122('0x15')](handleEntityNotFound(_0x5e2d3c,null))[_0x8122('0x15')](function(_0xafc636){if(_0xafc636){return _0xafc636[_0x8122('0xc8')](_0x4547d4['query'][_0x8122('0xbd')]);}})['then'](respondWithStatusCode(_0x5e2d3c,null))[_0x8122('0x27')](handleError(_0x5e2d3c,null));};exports['download']=function(_0x50892c,_0x2ee5bf){var _0x313d25=moment()[_0x8122('0xc9')]()[_0x8122('0x8f')]();var _0xc32470=path[_0x8122('0xca')](config[_0x8122('0xcb')],_0x8122('0xcc'),_0x8122('0xcd'),'tmp');var _0x30ccd7=path[_0x8122('0xca')](config['root'],_0x8122('0xcc'),'files',_0x8122('0xce'));var _0x64a3b4=path[_0x8122('0xca')](_0xc32470,_0x313d25);var _0x1abb2a=util[_0x8122('0xbf')]('transcript-%d-%s.zip',_0x50892c[_0x8122('0xbb')]['id'],_0x313d25);var _0x79cc2e=path[_0x8122('0xca')](_0xc32470,_0x1abb2a);var _0x528610=[];if(_0x50892c[_0x8122('0x32')][_0x8122('0xce')]){_0x528610[_0x8122('0x21')]({'model':db[_0x8122('0xcf')],'as':_0x8122('0xd0'),'raw':!![]});}var _0x90d7b5=[{'model':db[_0x8122('0x22')],'as':_0x8122('0xd1'),'attributes':['id','body',_0x8122('0x40'),'to','cc','bcc','subject',_0x8122('0xd2')],'where':{'secret':![]},'order':qs[_0x8122('0x3a')]('id'),'include':_0x528610}];return db['MailInteraction'][_0x8122('0x5e')]({'where':{'id':_0x50892c[_0x8122('0xbb')]['id']},'include':_0x90d7b5})[_0x8122('0x15')](handleEntityNotFound(_0x2ee5bf,null))[_0x8122('0x15')](function(_0x301209){if(_0x301209&&_0x301209[_0x8122('0xd1')]){var _0xd1b4f9=_0x301209[_0x8122('0xd3')]({'plain':!![]});fs[_0x8122('0xd4')](_0x64a3b4);return BPromise['each'](_0xd1b4f9[_0x8122('0xd1')],function(_0x3e7ce3,_0x14d8cd){var _0x26f625={'from':_0x3e7ce3[_0x8122('0x40')],'to':_0x3e7ce3['to'],'subject':_0x3e7ce3[_0x8122('0xd5')],'html':htmlEntities[_0x8122('0xd6')](_0x3e7ce3[_0x8122('0xba')]),'headers':{'Date':moment(_0x3e7ce3['createdAt'])[_0x8122('0xbf')](_0x8122('0xd7'))},'attachments':[]};if(_0x3e7ce3['cc']){_0x26f625[_0x8122('0xd8')]['Cc']=_0x3e7ce3['cc'];}if(_0x3e7ce3[_0x8122('0xd9')]){_0x26f625['headers']['Bcc']=_0x3e7ce3[_0x8122('0xd9')];}return new BPromise(function(_0x3baf18,_0x44d72a){if(_0x3e7ce3[_0x8122('0xd0')]){for(var _0x4f5584=0x0;_0x4f5584<_0x3e7ce3[_0x8122('0xd0')][_0x8122('0x37')];_0x4f5584++){var _0x5f0de9=_0x3e7ce3[_0x8122('0xd0')][_0x4f5584];var _0x3ba61c=path['join'](_0x30ccd7,_0x5f0de9['basename']);if(fs[_0x8122('0xda')](_0x3ba61c)){_0x26f625[_0x8122('0xce')][_0x8122('0x21')]({'name':_0x5f0de9[_0x8122('0x19')],'contentType':_0x5f0de9['type'],'data':fs[_0x8122('0xdb')](_0x3ba61c)});}}}emlformat[_0x8122('0xdc')](_0x26f625,function(_0x16d68c,_0x1a4bc6){if(_0x16d68c)return _0x44d72a(_0x16d68c);fs[_0x8122('0xdd')](path[_0x8122('0xca')](_0x64a3b4,util['format'](_0x8122('0xde'),_0x14d8cd)),_0x1a4bc6);return _0x3baf18(_0x1a4bc6);});});})['then'](function(){return new BPromise(function(_0x7c9a6d,_0x5ccfa3){zipdir(_0x64a3b4,{'saveTo':_0x79cc2e},function(_0x420f00,_0x4fb49a){if(_0x420f00)return _0x5ccfa3(_0x420f00);return _0x7c9a6d(_0x4fb49a);});})[_0x8122('0x15')](function(){return new BPromise(function(_0x971670,_0x2af0d5){rimraf(_0x64a3b4,function(_0xacf972){if(_0xacf972)_0x2af0d5(_0xacf972);return _0x971670();});});})[_0x8122('0x15')](function(){return _0x2ee5bf[_0x8122('0xdf')](_0x79cc2e,_0x1abb2a,function(_0xa70565){if(!_0xa70565)fs[_0x8122('0xe0')](_0x79cc2e);});});});}else{return _0x2ee5bf['sendStatus'](0xc8);}})[_0x8122('0x27')](handleError(_0x2ee5bf,null));};