Built motion from commit (unavailable).|2.4.4
[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 _0xfb57=['\x20>\x20?','\x20<\x20?','c.lastName','c.email','filter','isNil','isEmpty','MailAccountId','i.MailAccountId\x20IN\x20?','concat','$gte','$lte','null','replace','isNumeric','i.id\x20LIKE\x20?','join','MATCH\x20(i.to,\x20i.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','DESC','i.id','Sequelize','QueryTypes','clone','read','having','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','mail_interaction_has_tags','t.id\x20=\x20it.TagId','it.MailInteractionId\x20=\x20i.id','t.id\x20IN\x20?','sequelize','keyBy','merge','Account.key','i.createdAt','i.updatedAt','i.closed','i.closedAt','i.attach','i.subject','i.disposition','i.substatus','i.to','i.ContactId','i.MailAccountId','i.UserId','Contact.firstName','Contact.lastName','Contact.email','Contact.phone','c.mobile','Contact.mobile','c.fax','Contact.fax','GROUP_CONCAT(DISTINCT\x20t.id)','toString','ui.MailInteractionId\x20IN\x20?','MailInteractionId','enableEmailPreview','all','rows','show','params','includeAll','include','options','find','create','body','addMessage','MailMessage','ids','omit','getMessages','YYYY-MM-DD\x20HH:mm:ss','spread','Tag','findAll','emit','mailInteractionTags:save','removeTags','unix','root','server','attachments','tmp','interaction-%s.zip','from','subject','Attachments','mkdirSync','each','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','bcc','Bcc','basename','existsSync','type','writeFileSync','message%d.eml','download','log','err','unlinkSync','sendStatus','eml-format','rimraf','fast-json-patch','request-promise','moment','bluebird','util','sox','to-csv','ejs','lodash','jsforce','desk.js','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','api','../../config/utils','../../mysqldb','redis','defaults','localhost','./mailInteraction.socket','register','status','end','json','count','offset','limit','Content-Range','apply','save','update','destroy','stack','name','Users','map','TagIds','split','forEach','Tags','push','MailInteraction','findOne','lastMsgBody','lastMsgText','trimStart','fromString','catch','then','rawAttributes','model','keys','query','filters','attributes','intersection','fields','length','hasOwnProperty','order','sort','where','pick','select','field','color','tools_tags','COUNT(*)','mail_messages','me.direction\x20=\x20\x27in\x27','me.read\x20=\x20false','u.id','ui.MailInteractionId','user_has_mail_interactions','users','u.id\x20=\x20ui.UserId','mail_interactions','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','left_join','a.id\x20=\x20i.MailAccountId','expr','parse','advancedFilter','createdAt','dateStart','startOf','day','utc','format','endOf','and','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','isArray','condition','value','TagId','unreadMessages','tableAlias','\x20IN\x20?','\x20=\x20?','LIKE','ContactId','\x20LIKE\x20?'];(function(_0x5b19b1,_0x2a06fd){var _0x1fc25d=function(_0x53c56c){while(--_0x53c56c){_0x5b19b1['push'](_0x5b19b1['shift']());}};_0x1fc25d(++_0x2a06fd);}(_0xfb57,0x6d));var _0x7fb5=function(_0x3b2f28,_0xef1370){_0x3b2f28=_0x3b2f28-0x0;var _0x192dd4=_0xfb57[_0x3b2f28];return _0x192dd4;};'use strict';var pdf=require('html-pdf');var emlformat=require(_0x7fb5('0x0'));var rimraf=require(_0x7fb5('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x7fb5('0x2'));var rp=require(_0x7fb5('0x3'));var moment=require(_0x7fb5('0x4'));var BPromise=require(_0x7fb5('0x5'));var Mustache=require('mustache');var util=require(_0x7fb5('0x6'));var path=require('path');var sox=require(_0x7fb5('0x7'));var csv=require(_0x7fb5('0x8'));var ejs=require(_0x7fb5('0x9'));var fs=require('fs');var _=require(_0x7fb5('0xa'));var squel=require('squel');var crypto=require('crypto');var jsforce=require(_0x7fb5('0xb'));var deskjs=require(_0x7fb5('0xc'));var toCsv=require(_0x7fb5('0x8'));var querystring=require('querystring');var Papa=require(_0x7fb5('0xd'));var htmlToText=require('html-to-text');var Redis=require('ioredis');var authService=require(_0x7fb5('0xe'));var qs=require(_0x7fb5('0xf'));var hardwareService=require(_0x7fb5('0x10'));var logger=require('../../config/logger')(_0x7fb5('0x11'));var utils=require(_0x7fb5('0x12'));var config=require('../../config/environment');var db=require(_0x7fb5('0x13'))['db'];config[_0x7fb5('0x14')]=_[_0x7fb5('0x15')](config['redis'],{'host':_0x7fb5('0x16'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x7fb5('0x17'))[_0x7fb5('0x18')](socket);function respondWithStatusCode(_0x51fa19,_0x498f80){_0x498f80=_0x498f80||0xcc;return function(_0x3950f2){if(_0x3950f2){return _0x51fa19['sendStatus'](_0x498f80);}return _0x51fa19[_0x7fb5('0x19')](_0x498f80)[_0x7fb5('0x1a')]();};}function respondWithResult(_0x122e19,_0x5eb924){_0x5eb924=_0x5eb924||0xc8;return function(_0x294fce){if(_0x294fce){return _0x122e19[_0x7fb5('0x19')](_0x5eb924)[_0x7fb5('0x1b')](_0x294fce);}};}function respondWithFilteredResult(_0x1335c3,_0x561bfe){return function(_0x286513){if(_0x286513){var _0x3acdd8=_0x286513[_0x7fb5('0x1c')],_0x2f3c7f=_0x561bfe[_0x7fb5('0x1d')],_0x1731d7=_0x561bfe['offset']+_0x561bfe[_0x7fb5('0x1e')],_0x4fb55d;if(_0x1731d7>=_0x3acdd8){_0x1731d7=_0x3acdd8;_0x4fb55d=0xc8;}else{_0x4fb55d=0xce;}_0x1335c3[_0x7fb5('0x19')](_0x4fb55d);return _0x1335c3['set'](_0x7fb5('0x1f'),_0x2f3c7f+'-'+_0x1731d7+'/'+_0x3acdd8)['json'](_0x286513);}return null;};}function patchUpdates(_0x27bb6f){return function(_0x524078){try{jsonpatch[_0x7fb5('0x20')](_0x524078,_0x27bb6f,!![]);}catch(_0x58ba36){return BPromise['reject'](_0x58ba36);}return _0x524078[_0x7fb5('0x21')]();};}function saveUpdates(_0x5096c0,_0x351531){return function(_0x80b80b){if(_0x80b80b){return _0x80b80b[_0x7fb5('0x22')](_0x5096c0)['then'](function(_0x47cc93){return _0x47cc93;});}return null;};}function removeEntity(_0x3cfe0c,_0x5eecba){return function(_0x577d76){if(_0x577d76){return _0x577d76[_0x7fb5('0x23')]()['then'](function(){_0x3cfe0c[_0x7fb5('0x19')](0xcc)['end']();});}};}function handleEntityNotFound(_0xe48992,_0x203b3e){return function(_0x26aced){if(!_0x26aced){_0xe48992['sendStatus'](0x194);}return _0x26aced;};}function handleError(_0x1565e0,_0x1b87dc){_0x1b87dc=_0x1b87dc||0x1f4;return function(_0x5b9f7c){logger['error'](_0x5b9f7c[_0x7fb5('0x24')]);if(_0x5b9f7c[_0x7fb5('0x25')]){delete _0x5b9f7c['name'];}_0x1565e0[_0x7fb5('0x19')](_0x1b87dc)['send'](_0x5b9f7c);};}function getInteractionUsers(_0x521279,_0x5923ca){return new BPromise(function(_0x249db1,_0x86afe0){try{if(_0x5923ca[_0x521279['id']]){_0x521279[_0x7fb5('0x26')]=_[_0x7fb5('0x27')](_0x5923ca[_0x521279['id']],function(_0x1777b4){return{'id':_0x1777b4['id']};});}}catch(_0x178b5e){_0x86afe0(_0x178b5e);}_0x249db1(_0x521279);});}function getInteractionTags(_0x5aca3e,_0x1ea994){return new BPromise(function(_0x5dae4f,_0x436e34){try{if(_0x5aca3e['TagIds']){_0x5aca3e['Tags']=[];_0x5aca3e[_0x7fb5('0x28')][_0x7fb5('0x29')](',')[_0x7fb5('0x2a')](function(_0x5f3ec1){_0x5aca3e[_0x7fb5('0x2b')][_0x7fb5('0x2c')](_0x1ea994[_0x5f3ec1]);});}delete _0x5aca3e[_0x7fb5('0x28')];}catch(_0x1876ed){_0x436e34(_0x1876ed);}_0x5dae4f(_0x5aca3e);});}function getLastMessageText(_0x5dd67e){return new BPromise(function(_0x2ce7a4,_0x184809){return db[_0x7fb5('0x2d')][_0x7fb5('0x2e')]({'where':{'id':_0x5dd67e['id']},'attributes':[_0x7fb5('0x2f'),'lastMsgText'],'raw':!![]})['then'](function(_0x15e021){if(!_0x15e021[_0x7fb5('0x30')]){_0x5dd67e[_0x7fb5('0x30')]=_[_0x7fb5('0x31')](htmlToText[_0x7fb5('0x32')](_0x15e021[_0x7fb5('0x2f')],{'preserveNewlines':!![],'singleNewLineParagraphs':!![],'uppercaseHeadings':![],'noLinkBrackets':!![],'ignoreImage':!![]}));}else{_0x5dd67e[_0x7fb5('0x30')]=_0x15e021[_0x7fb5('0x30')];}_0x2ce7a4(_0x5dd67e);})[_0x7fb5('0x33')](function(_0x8cbcb8){_0x184809(_0x8cbcb8);});});}function updateMailInteraction(_0x29de8d,_0x5f28e6,_0x28f733,_0x1a022d){return new BPromise(function(_0x3693bd,_0x41822d){return getInteractionUsers(_0x29de8d,_0x28f733)[_0x7fb5('0x34')](function(_0x1894f7){return getInteractionTags(_0x1894f7,_0x5f28e6);})[_0x7fb5('0x34')](function(_0x48bb40){if(_0x1a022d){_0x3693bd(getLastMessageText(_0x48bb40));}else{_0x3693bd(_0x48bb40);}})[_0x7fb5('0x33')](function(_0x451f9e){_0x41822d(_0x451f9e);});});}exports['index']=function(_0x3da399,_0xcb211d){var _0x226455={},_0x3eab5a={},_0x1c1daa={'count':0x0,'rows':[]};var _0x465c64=db[_0x7fb5('0x2d')][_0x7fb5('0x35')];_0x3eab5a[_0x7fb5('0x36')]=_[_0x7fb5('0x37')](_0x465c64);_0x3eab5a['query']=_[_0x7fb5('0x37')](_0x3da399[_0x7fb5('0x38')]);_0x3eab5a[_0x7fb5('0x39')]=_['intersection'](_0x3eab5a['model'],_0x3eab5a[_0x7fb5('0x38')]);_0x226455[_0x7fb5('0x3a')]=_[_0x7fb5('0x3b')](_0x3eab5a['model'],qs[_0x7fb5('0x3c')](_0x3da399['query'][_0x7fb5('0x3c')]));_0x226455['attributes']=_0x226455['attributes'][_0x7fb5('0x3d')]?_0x226455[_0x7fb5('0x3a')]:_0x3eab5a[_0x7fb5('0x36')];if(!_0x3da399[_0x7fb5('0x38')][_0x7fb5('0x3e')]('nolimit')){_0x226455[_0x7fb5('0x1e')]=qs[_0x7fb5('0x1e')](_0x3da399[_0x7fb5('0x38')][_0x7fb5('0x1e')]);_0x226455[_0x7fb5('0x1d')]=qs['offset'](_0x3da399[_0x7fb5('0x38')]['offset']);}_0x226455[_0x7fb5('0x3f')]=qs[_0x7fb5('0x40')](_0x3da399[_0x7fb5('0x38')][_0x7fb5('0x40')]);_0x226455[_0x7fb5('0x41')]=qs[_0x7fb5('0x39')](_[_0x7fb5('0x42')](_0x3da399[_0x7fb5('0x38')],_0x3eab5a[_0x7fb5('0x39')]));var _0x488a8b=[];var _0x3c4516=squel[_0x7fb5('0x43')]()[_0x7fb5('0x44')]('id')['field'](_0x7fb5('0x25'))[_0x7fb5('0x44')](_0x7fb5('0x45'))['from'](_0x7fb5('0x46'));var _0x5d6495=squel[_0x7fb5('0x43')]()[_0x7fb5('0x44')](_0x7fb5('0x47'))['from'](_0x7fb5('0x48'),'me')[_0x7fb5('0x41')]('me.MailInteractionId\x20=\x20i.id')['where'](_0x7fb5('0x49'))[_0x7fb5('0x41')](_0x7fb5('0x4a'));var _0x325443=squel[_0x7fb5('0x43')]()[_0x7fb5('0x44')](_0x7fb5('0x4b'))[_0x7fb5('0x44')](_0x7fb5('0x4c'))['from'](_0x7fb5('0x4d'),'ui')['left_join'](_0x7fb5('0x4e'),'u',_0x7fb5('0x4f'));var _0x2e48b2=squel['select']()['from'](_0x7fb5('0x50'),'i')['left_join']('cm_contacts','c',_0x7fb5('0x51'))['left_join']('users','o','o.id\x20=\x20i.UserId')[_0x7fb5('0x52')]('mail_accounts','a',_0x7fb5('0x53'))[_0x7fb5('0x52')](_0x7fb5('0x48'),'me','me.MailInteractionId\x20=\x20i.id\x20AND\x20me.direction\x20=\x20\x27in\x27\x20AND\x20me.read\x20=\x20false');var _0x28ce0c=squel[_0x7fb5('0x54')]();if(_0x3da399['query']['advancedFilter']){var _0x3ab758=JSON[_0x7fb5('0x55')](_0x3da399[_0x7fb5('0x38')][_0x7fb5('0x56')]);_[_0x7fb5('0x37')](_0x3ab758)[_0x7fb5('0x2a')](function(_0x559a60){var _0x26681c=_0x3ab758[_0x559a60];if(_0x559a60===_0x7fb5('0x57')){var _0x2f5b61=moment(_0x26681c['value'][_0x7fb5('0x58')])[_0x7fb5('0x59')](_0x7fb5('0x5a'))[_0x7fb5('0x5b')]()[_0x7fb5('0x5c')]();var _0x3d42f1=moment(_0x3d42f1)[_0x7fb5('0x5b')]()[_0x7fb5('0x5d')](_0x7fb5('0x5a'))[_0x7fb5('0x5c')]();_0x28ce0c[_0x7fb5('0x5e')](_0x7fb5('0x5f'),_0x2f5b61,_0x3d42f1);}else{if(_[_0x7fb5('0x60')](_0x26681c[_0x7fb5('0x61')])){_0x26681c[_0x7fb5('0x61')][_0x7fb5('0x2a')](function(_0xbd1171){switch(_0x26681c[_0x7fb5('0x61')][_0x7fb5('0x62')]){case'IS':if(_0x559a60!==_0x7fb5('0x63')&&_0x559a60!==_0x7fb5('0x64')){if(_[_0x7fb5('0x60')](_0x26681c[_0x7fb5('0x62')])&&_0x26681c[_0x7fb5('0x62')][_0x7fb5('0x3d')]>0x1){_0x28ce0c[_0x7fb5('0x5e')](_0x26681c[_0x7fb5('0x65')]+'.'+_0x559a60+_0x7fb5('0x66'),_0x26681c[_0x7fb5('0x62')]);}else{_0x28ce0c['and'](_0x26681c[_0x7fb5('0x65')]+'.'+_0x559a60+_0x7fb5('0x67'),_0x26681c[_0x7fb5('0x62')][0x0]);}}break;case'=':_0x28ce0c['and'](_0x26681c['tableAlias']+'.'+_0x559a60+'\x20=\x20?',_0x26681c[_0x7fb5('0x62')]);break;case _0x7fb5('0x68'):if(_0x559a60===_0x7fb5('0x69')){_0x28ce0c['and']('c.firstName'+_0x7fb5('0x6a'),'%'+_0x26681c[_0x7fb5('0x62')]+'%');_0x28ce0c['or']('c.lastName'+_0x7fb5('0x6a'),'%'+_0x26681c[_0x7fb5('0x62')]+'%');_0x28ce0c['or']('c.email'+'\x20LIKE\x20?','%'+_0x26681c[_0x7fb5('0x62')]+'%');}else{_0x28ce0c[_0x7fb5('0x5e')](_0x26681c['tableAlias']+'.'+_0x559a60+_0x7fb5('0x6a'),'%'+_0x26681c[_0x7fb5('0x62')]+'%');}break;case'>':_0x28ce0c['and'](_0x26681c['tableAlias']+'.'+_0x559a60+_0x7fb5('0x6b'),_0x26681c[_0x7fb5('0x62')]);break;case'<':_0x28ce0c[_0x7fb5('0x5e')](_0x26681c[_0x7fb5('0x65')]+'.'+_0x559a60+_0x7fb5('0x6c'),_0x26681c['value']);break;}});}else{switch(_0x26681c['condition'][_0x7fb5('0x62')]){case'IS':if(_0x559a60!==_0x7fb5('0x63')&&_0x559a60!==_0x7fb5('0x64')){if(_[_0x7fb5('0x60')](_0x26681c[_0x7fb5('0x62')])&&_0x26681c['value']['length']>0x1){_0x28ce0c[_0x7fb5('0x5e')](_0x26681c[_0x7fb5('0x65')]+'.'+_0x559a60+_0x7fb5('0x66'),_0x26681c['value']);}else{_0x28ce0c[_0x7fb5('0x5e')](_0x26681c['tableAlias']+'.'+_0x559a60+_0x7fb5('0x67'),_0x26681c[_0x7fb5('0x62')][0x0]);}}break;case'=':_0x28ce0c['and'](_0x26681c['tableAlias']+'.'+_0x559a60+_0x7fb5('0x67'),_0x26681c[_0x7fb5('0x62')]);break;case _0x7fb5('0x68'):if(_0x559a60===_0x7fb5('0x69')){_0x28ce0c[_0x7fb5('0x5e')]('c.firstName'+'\x20LIKE\x20?','%'+_0x26681c[_0x7fb5('0x62')]+'%');_0x28ce0c['or'](_0x7fb5('0x6d')+_0x7fb5('0x6a'),'%'+_0x26681c[_0x7fb5('0x62')]+'%');_0x28ce0c['or'](_0x7fb5('0x6e')+'\x20LIKE\x20?','%'+_0x26681c[_0x7fb5('0x62')]+'%');}else{_0x28ce0c[_0x7fb5('0x5e')](_0x26681c[_0x7fb5('0x65')]+'.'+_0x559a60+'\x20LIKE\x20?','%'+_0x26681c[_0x7fb5('0x62')]+'%');}break;case'>':_0x28ce0c[_0x7fb5('0x5e')](_0x26681c[_0x7fb5('0x65')]+'.'+_0x559a60+_0x7fb5('0x6b'),_0x26681c['value']);break;case'<':_0x28ce0c[_0x7fb5('0x5e')](_0x26681c[_0x7fb5('0x65')]+'.'+_0x559a60+_0x7fb5('0x6c'),_0x26681c[_0x7fb5('0x62')]);break;}}}});}else{var _0x447e80=_(Object[_0x7fb5('0x37')](_0x3da399['query']))[_0x7fb5('0x27')](function(_0x26ce8c){return _0x465c64[_0x7fb5('0x3e')](_0x26ce8c)?_0x26ce8c:undefined;})[_0x7fb5('0x6f')](function(_0x4c7611){return!_[_0x7fb5('0x70')](_0x4c7611);})[_0x7fb5('0x62')]();if(!_[_0x7fb5('0x71')](_0x447e80)){_0x447e80[_0x7fb5('0x2a')](function(_0xfc95c0){if(_0xfc95c0===_0x7fb5('0x72')){_0x2e48b2['where'](_0x7fb5('0x73'),[][_0x7fb5('0x74')](_0x3da399['query'][_0xfc95c0]));}else if(_0xfc95c0===_0x7fb5('0x57')){var _0x5a1f33=JSON['parse'](_0x3da399[_0x7fb5('0x38')][_0xfc95c0])[_0x7fb5('0x75')];var _0x18be15=JSON['parse'](_0x3da399[_0x7fb5('0x38')][_0xfc95c0])[_0x7fb5('0x76')];_0x2e48b2['where'](_0x7fb5('0x5f'),_0x5a1f33,_0x18be15);}else{if(_0x3da399[_0x7fb5('0x38')][_0xfc95c0]===_0x7fb5('0x77')){_0x2e48b2[_0x7fb5('0x41')]('i.'+_0xfc95c0+'\x20IS\x20NULL');}else{_0x2e48b2[_0x7fb5('0x41')]('i.'+_0xfc95c0+_0x7fb5('0x67'),_0x3da399['query'][_0xfc95c0]);}}});}if(_0x3da399[_0x7fb5('0x38')][_0x7fb5('0x6f')]){var _0xba62b1=_0x3da399[_0x7fb5('0x38')]['filter'][_0x7fb5('0x78')]('\x5c','\x5c\x5c')[_0x7fb5('0x78')]('\x27\x27','\x27\x27\x27\x27');if(qs[_0x7fb5('0x79')](_0xba62b1)){_0x28ce0c['or'](_0x7fb5('0x7a'),_0xba62b1+'%');}else if(qs['isEmail'](_0xba62b1)){_0x28ce0c['or']('c.email\x20LIKE\x20?',_0xba62b1+'%');}else{var _0x51b0ec=[];_0xba62b1[_0x7fb5('0x29')]('\x20')[_0x7fb5('0x2a')](function(_0x4108a0){_0x51b0ec[_0x7fb5('0x2c')]('+'+_0x4108a0['toString']());});var _0x29956b=_0x51b0ec[_0x7fb5('0x7b')]('\x20');_0x28ce0c['or'](_0x7fb5('0x7c'),_0x29956b)['or']('MATCH\x20(me.plainBody,\x20me.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',_0x29956b);}}}_0x2e48b2[_0x7fb5('0x41')](_0x28ce0c);if(_0x226455[_0x7fb5('0x3f')]){_0x226455['order'][_0x7fb5('0x2a')](function(_0x1f5f6d){_0x2e48b2['order']('i.'+_0x1f5f6d[0x0],_0x1f5f6d[0x1]===_0x7fb5('0x7d')?![]:!![]);});}_0x2e48b2['group'](_0x7fb5('0x7e'));var _0x32aeff={'type':db[_0x7fb5('0x7f')][_0x7fb5('0x80')]['SELECT'],'raw':!![]};var _0x209aa7=_0x2e48b2[_0x7fb5('0x81')]()[_0x7fb5('0x44')](_0x7fb5('0x47'))['field']('COUNT(me.id)',_0x7fb5('0x64'));if(!_0x3da399[_0x7fb5('0x38')][_0x7fb5('0x56')]){if(_0x3da399['query'][_0x7fb5('0x82')]){if(_0x3da399['query'][_0x7fb5('0x82')]==0x1){_0x209aa7[_0x7fb5('0x83')](_0x7fb5('0x84'));_0x2e48b2['having']('`unreadMessages`\x20=\x200');}else{_0x209aa7[_0x7fb5('0x83')]('`unreadMessages`\x20>\x200');_0x2e48b2[_0x7fb5('0x83')](_0x7fb5('0x85'));}}if(_0x3da399[_0x7fb5('0x38')][_0x7fb5('0x86')]){var _0x2376c7=_[_0x7fb5('0x60')](_0x3da399[_0x7fb5('0x38')][_0x7fb5('0x86')])?_0x3da399['query'][_0x7fb5('0x86')]:new Array(_0x3da399['query']['tag']);var _0x587988=squel[_0x7fb5('0x54')]();_0x2376c7['forEach'](function(_0xa1aed8){_0x587988['or'](_0x7fb5('0x87'),'%,'+_0xa1aed8+',%');});_0x2e48b2['having'](_0x587988);_0x209aa7[_0x7fb5('0x52')](_0x7fb5('0x88'),'it','it.MailInteractionId\x20=\x20i.id');_0x209aa7[_0x7fb5('0x52')]('tools_tags','t',_0x7fb5('0x89'));_0x209aa7[_0x7fb5('0x41')]('t.id\x20IN\x20?',_0x2376c7);}}else{var _0x3ab758=JSON[_0x7fb5('0x55')](_0x3da399[_0x7fb5('0x38')][_0x7fb5('0x56')]);_[_0x7fb5('0x37')](_0x3ab758)[_0x7fb5('0x2a')](function(_0x1ec7f2){var _0x4ce490=_0x3ab758[_0x1ec7f2];if(_0x1ec7f2===_0x7fb5('0x63')){var _0x2e29c9=_0x4ce490[_0x7fb5('0x62')];var _0x493d75=squel[_0x7fb5('0x54')]();_0x2e29c9[_0x7fb5('0x2a')](function(_0x1f9fd3){_0x493d75['or'](_0x7fb5('0x87'),'%,'+_0x1f9fd3+',%');});_0x2e48b2['having'](_0x493d75);_0x209aa7[_0x7fb5('0x52')](_0x7fb5('0x88'),'it',_0x7fb5('0x8a'));_0x209aa7[_0x7fb5('0x52')]('tools_tags','t','t.id\x20=\x20it.TagId');_0x209aa7[_0x7fb5('0x41')](_0x7fb5('0x8b'),_0x2e29c9);}else if(_0x1ec7f2===_0x7fb5('0x64')){if(_0x4ce490[_0x7fb5('0x62')][_0x7fb5('0x3d')]===0x1){if(_0x4ce490[_0x7fb5('0x62')][0x0]===0x1){_0x209aa7[_0x7fb5('0x83')](_0x7fb5('0x84'));_0x2e48b2['having'](_0x7fb5('0x84'));}else{_0x209aa7[_0x7fb5('0x83')](_0x7fb5('0x85'));_0x2e48b2[_0x7fb5('0x83')](_0x7fb5('0x85'));}}}});}db[_0x7fb5('0x8c')][_0x7fb5('0x38')](_0x209aa7['toString'](),_0x32aeff)['then'](function(_0x175e31){_0x1c1daa[_0x7fb5('0x1c')]=_0x175e31['length'];if(_0x1c1daa[_0x7fb5('0x1c')]===0x0)return[];return db[_0x7fb5('0x8c')][_0x7fb5('0x38')](_0x3c4516['toString'](),_0x32aeff)[_0x7fb5('0x34')](function(_0x183b2e){_0x488a8b=_[_0x7fb5('0x8d')](_0x183b2e,'id');_0x32aeff=_[_0x7fb5('0x8e')](_0x32aeff,{'model':db['MailInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});_0x2e48b2['field']('COUNT(me.id)',_0x7fb5('0x64'));_0x2e48b2[_0x7fb5('0x44')]('a.key',_0x7fb5('0x8f'));_0x2e48b2['field'](_0x7fb5('0x7e'));_0x2e48b2[_0x7fb5('0x44')](_0x7fb5('0x90'));_0x2e48b2['field'](_0x7fb5('0x91'));_0x2e48b2[_0x7fb5('0x44')](_0x7fb5('0x92'));_0x2e48b2[_0x7fb5('0x44')](_0x7fb5('0x93'));_0x2e48b2[_0x7fb5('0x44')](_0x7fb5('0x94'));_0x2e48b2[_0x7fb5('0x44')]('i.lastMsgAt');_0x2e48b2[_0x7fb5('0x44')]('i.lastMsgDirection');_0x2e48b2[_0x7fb5('0x44')](_0x7fb5('0x95'));_0x2e48b2['field'](_0x7fb5('0x96'));_0x2e48b2['field'](_0x7fb5('0x97'));_0x2e48b2[_0x7fb5('0x44')](_0x7fb5('0x98'));_0x2e48b2[_0x7fb5('0x44')](_0x7fb5('0x99'));_0x2e48b2[_0x7fb5('0x44')](_0x7fb5('0x9a'));_0x2e48b2[_0x7fb5('0x44')](_0x7fb5('0x9b'));_0x2e48b2[_0x7fb5('0x44')]('c.firstName',_0x7fb5('0x9c'));_0x2e48b2[_0x7fb5('0x44')](_0x7fb5('0x6d'),_0x7fb5('0x9d'));_0x2e48b2['field'](_0x7fb5('0x6e'),_0x7fb5('0x9e'));_0x2e48b2['field']('c.phone',_0x7fb5('0x9f'));_0x2e48b2[_0x7fb5('0x44')](_0x7fb5('0xa0'),_0x7fb5('0xa1'));_0x2e48b2[_0x7fb5('0x44')](_0x7fb5('0xa2'),_0x7fb5('0xa3'));_0x2e48b2[_0x7fb5('0x44')](_0x7fb5('0xa4'),_0x7fb5('0x28'));_0x2e48b2[_0x7fb5('0x52')](_0x7fb5('0x88'),'it',_0x7fb5('0x8a'));_0x2e48b2['left_join']('tools_tags','t',_0x7fb5('0x89'));_0x2e48b2['limit'](_0x226455[_0x7fb5('0x1e')]);_0x2e48b2[_0x7fb5('0x1d')](_0x226455['offset']);return db['sequelize'][_0x7fb5('0x38')](_0x2e48b2[_0x7fb5('0xa5')](),_0x32aeff);})['then'](function(_0x292df3){_0x325443[_0x7fb5('0x41')](_0x7fb5('0xa6'),_[_0x7fb5('0x27')](_0x292df3,'id'));return db[_0x7fb5('0x8c')][_0x7fb5('0x38')](_0x325443[_0x7fb5('0xa5')](),_0x32aeff)[_0x7fb5('0x34')](function(_0xbe5a39){var _0x2d6e45=_['groupBy'](_0xbe5a39,_0x7fb5('0xa7'));var _0x32ea5c=[];return db['Setting']['findOne']({'attributes':[_0x7fb5('0xa8')],'raw':!![]})['then'](function(_0x524a37){var _0x503a3b=_0x524a37[_0x7fb5('0xa8')];_0x292df3[_0x7fb5('0x2a')](function(_0x567c7a){_0x32ea5c['push'](updateMailInteraction(_0x567c7a,_0x488a8b,_0x2d6e45,_0x503a3b));});return BPromise[_0x7fb5('0xa9')](_0x32ea5c);});});});})[_0x7fb5('0x34')](function(_0x2388bf){_0x1c1daa[_0x7fb5('0xaa')]=_0x2388bf;return _0x1c1daa;})['then'](respondWithFilteredResult(_0xcb211d,_0x226455))[_0x7fb5('0x33')](handleError(_0xcb211d,null));};exports[_0x7fb5('0xab')]=function(_0x11ea84,_0x486b97){var _0x30a448={'raw':![],'where':{'id':_0x11ea84[_0x7fb5('0xac')]['id']}},_0x148c57={};_0x148c57[_0x7fb5('0x36')]=_[_0x7fb5('0x37')](db[_0x7fb5('0x2d')][_0x7fb5('0x35')]);_0x148c57[_0x7fb5('0x38')]=_[_0x7fb5('0x37')](_0x11ea84['query']);_0x148c57[_0x7fb5('0x39')]=_[_0x7fb5('0x3b')](_0x148c57['model'],_0x148c57[_0x7fb5('0x38')]);_0x30a448[_0x7fb5('0x3a')]=_[_0x7fb5('0x3b')](_0x148c57[_0x7fb5('0x36')],qs[_0x7fb5('0x3c')](_0x11ea84[_0x7fb5('0x38')]['fields']));_0x30a448[_0x7fb5('0x3a')]=_0x30a448[_0x7fb5('0x3a')][_0x7fb5('0x3d')]?_0x30a448[_0x7fb5('0x3a')]:_0x148c57[_0x7fb5('0x36')];if(_0x11ea84['query'][_0x7fb5('0xad')]){_0x30a448[_0x7fb5('0xae')]=[{'all':!![]}];}_0x30a448=_[_0x7fb5('0x8e')]({},_0x30a448,_0x11ea84[_0x7fb5('0xaf')]);return db[_0x7fb5('0x2d')][_0x7fb5('0xb0')](_0x30a448)[_0x7fb5('0x34')](handleEntityNotFound(_0x486b97,null))[_0x7fb5('0x34')](respondWithResult(_0x486b97,null))[_0x7fb5('0x33')](handleError(_0x486b97,null));};exports[_0x7fb5('0xb1')]=function(_0x81a26,_0x5892ef){return db[_0x7fb5('0x2d')][_0x7fb5('0xb1')](_0x81a26['body'],{})['then'](respondWithResult(_0x5892ef,0xc9))['catch'](handleError(_0x5892ef,null));};exports[_0x7fb5('0x22')]=function(_0x550a9a,_0x3eb25d){if(_0x550a9a[_0x7fb5('0xb2')]['id']){delete _0x550a9a['body']['id'];}return db[_0x7fb5('0x2d')][_0x7fb5('0xb0')]({'where':{'id':_0x550a9a[_0x7fb5('0xac')]['id']}})[_0x7fb5('0x34')](handleEntityNotFound(_0x3eb25d,null))[_0x7fb5('0x34')](saveUpdates(_0x550a9a[_0x7fb5('0xb2')],null))['then'](respondWithResult(_0x3eb25d,null))[_0x7fb5('0x33')](handleError(_0x3eb25d,null));};exports[_0x7fb5('0x23')]=function(_0x421ae1,_0x5a3ed7){return db[_0x7fb5('0x2d')]['find']({'where':{'id':_0x421ae1[_0x7fb5('0xac')]['id']}})[_0x7fb5('0x34')](handleEntityNotFound(_0x5a3ed7,null))[_0x7fb5('0x34')](removeEntity(_0x5a3ed7,null))[_0x7fb5('0x33')](handleError(_0x5a3ed7,null));};exports['describe']=function(_0x51a0fd,_0x574f87){return db[_0x7fb5('0x2d')]['describe']()[_0x7fb5('0x34')](respondWithResult(_0x574f87,null))['catch'](handleError(_0x574f87,null));};exports[_0x7fb5('0xb3')]=function(_0x58a153,_0x4ad743,_0x5be5d3){return db[_0x7fb5('0xb4')][_0x7fb5('0xb0')]({'where':{'id':_0x58a153[_0x7fb5('0xac')]['id']}})['then'](handleEntityNotFound(_0x4ad743,null))[_0x7fb5('0x34')](function(_0x216d5c){if(_0x216d5c){return _0x216d5c[_0x7fb5('0xb3')](_0x58a153['body'][_0x7fb5('0xb5')],_[_0x7fb5('0xb6')](_0x58a153[_0x7fb5('0xb2')],[_0x7fb5('0xb5'),'id'])||{});}})[_0x7fb5('0x34')](respondWithResult(_0x4ad743,null))[_0x7fb5('0x33')](handleError(_0x4ad743,null));};exports[_0x7fb5('0xb7')]=function(_0x57a1f7,_0x2f7979,_0x5aeb45){var _0x59f27b={'raw':![],'where':{}};var _0x595954={};var _0x3f9227={'count':0x0,'rows':[]};return db[_0x7fb5('0x2d')]['findOne']({'where':{'id':_0x57a1f7[_0x7fb5('0xac')]['id']}})[_0x7fb5('0x34')](handleEntityNotFound(_0x2f7979,null))[_0x7fb5('0x34')](function(_0x156320){if(_0x156320){_0x595954[_0x7fb5('0x36')]=_[_0x7fb5('0x37')](db['MailMessage']['rawAttributes']);_0x595954[_0x7fb5('0x38')]=_[_0x7fb5('0x37')](_0x57a1f7[_0x7fb5('0x38')]);_0x595954[_0x7fb5('0x39')]=_['intersection'](_0x595954[_0x7fb5('0x36')],_0x595954[_0x7fb5('0x38')]);_0x59f27b['attributes']=_[_0x7fb5('0x3b')](_0x595954[_0x7fb5('0x36')],qs['fields'](_0x57a1f7[_0x7fb5('0x38')][_0x7fb5('0x3c')]));_0x59f27b[_0x7fb5('0x3a')]=_0x59f27b['attributes'][_0x7fb5('0x3d')]?_0x59f27b['attributes']:_0x595954[_0x7fb5('0x36')];if(!_0x57a1f7[_0x7fb5('0x38')][_0x7fb5('0x3e')]('nolimit')){_0x59f27b[_0x7fb5('0x1e')]=qs[_0x7fb5('0x1e')](_0x57a1f7[_0x7fb5('0x38')][_0x7fb5('0x1e')]);_0x59f27b['offset']=qs[_0x7fb5('0x1d')](_0x57a1f7[_0x7fb5('0x38')][_0x7fb5('0x1d')]);}_0x59f27b[_0x7fb5('0x3f')]=qs[_0x7fb5('0x40')](_0x57a1f7[_0x7fb5('0x38')][_0x7fb5('0x40')]);_0x59f27b[_0x7fb5('0x41')]=qs['filters'](_[_0x7fb5('0x42')](_0x57a1f7[_0x7fb5('0x38')],_0x595954[_0x7fb5('0x39')]));_0x59f27b['where'][_0x7fb5('0xa7')]=_0x156320['id'];if(_0x57a1f7['query']['filter']){_0x59f27b['where']=_[_0x7fb5('0x8e')](_0x59f27b[_0x7fb5('0x41')],{'$or':_[_0x7fb5('0x27')](_0x59f27b[_0x7fb5('0x3a')],function(_0xb1a6ae){var _0x16e598={};_0x16e598[_0xb1a6ae]={'$like':'%'+_0x57a1f7[_0x7fb5('0x38')][_0x7fb5('0x6f')]+'%'};return _0x16e598;})});}if(_0x57a1f7[_0x7fb5('0x38')][_0x7fb5('0x75')]){var _0x5e08b8=_0x57a1f7[_0x7fb5('0x38')][_0x7fb5('0x75')][_0x7fb5('0x29')](',');var _0x596b7d={};_0x596b7d[_0x5e08b8[0x0]]={'$gte':moment(_0x5e08b8[0x1])[_0x7fb5('0x5c')](_0x7fb5('0xb8'))};_0x59f27b['where']=_[_0x7fb5('0x8e')](_0x59f27b[_0x7fb5('0x41')],_0x596b7d);}_0x59f27b=_[_0x7fb5('0x8e')]({},_0x59f27b,_0x57a1f7['options']);return db['MailMessage'][_0x7fb5('0x1c')]({'where':_0x59f27b[_0x7fb5('0x41')]})[_0x7fb5('0x34')](function(_0x5a9405){_0x3f9227['count']=_0x5a9405;if(_0x57a1f7['query'][_0x7fb5('0xad')]){_0x59f27b['include']=[{'all':!![]}];}return db[_0x7fb5('0xb4')]['findAll'](_0x59f27b);})[_0x7fb5('0x34')](function(_0x12d968){_0x3f9227[_0x7fb5('0xaa')]=_0x12d968;return _0x3f9227;});}})[_0x7fb5('0x34')](respondWithFilteredResult(_0x2f7979,_0x59f27b))[_0x7fb5('0x33')](handleError(_0x2f7979,null));};exports['addTags']=function(_0x2093ca,_0x4d338d,_0x273237){return db[_0x7fb5('0x2d')][_0x7fb5('0xb0')]({'where':{'id':_0x2093ca[_0x7fb5('0xac')]['id']}})[_0x7fb5('0x34')](handleEntityNotFound(_0x4d338d,null))[_0x7fb5('0x34')](function(_0x3c39fd){if(_0x3c39fd){return _0x3c39fd['setTags'](_0x2093ca[_0x7fb5('0xb2')][_0x7fb5('0xb5')],_[_0x7fb5('0xb6')](_0x2093ca['body'],[_0x7fb5('0xb5'),'id'])||{})[_0x7fb5('0xb9')](function(){return db[_0x7fb5('0xba')][_0x7fb5('0xbb')]({'attributes':['id',_0x7fb5('0x25'),_0x7fb5('0x45')],'where':{'id':_0x2093ca[_0x7fb5('0xb2')][_0x7fb5('0xb5')]}});})[_0x7fb5('0x34')](function(_0x22db66){socket[_0x7fb5('0xbc')](_0x7fb5('0xbd'),{'id':Number(_0x2093ca[_0x7fb5('0xac')]['id']),'tags':_0x22db66||[]});return{'id':Number(_0x2093ca['params']['id']),'tags':_0x22db66||[]};});}})['then'](respondWithResult(_0x4d338d,null))[_0x7fb5('0x33')](handleError(_0x4d338d,null));};exports[_0x7fb5('0xbe')]=function(_0x2dbaff,_0x4d9531,_0x41c9c0){return db[_0x7fb5('0x2d')][_0x7fb5('0xb0')]({'where':{'id':_0x2dbaff[_0x7fb5('0xac')]['id']}})[_0x7fb5('0x34')](handleEntityNotFound(_0x4d9531,null))['then'](function(_0x24fa39){if(_0x24fa39){return _0x24fa39['removeTags'](_0x2dbaff[_0x7fb5('0x38')][_0x7fb5('0xb5')]);}})[_0x7fb5('0x34')](respondWithStatusCode(_0x4d9531,null))[_0x7fb5('0x33')](handleError(_0x4d9531,null));};exports['download']=function(_0x4370c1,_0x4ee6cb){var _0x5e0c96=moment()[_0x7fb5('0xbf')]()[_0x7fb5('0xa5')]();var _0x38fa4d=path[_0x7fb5('0x7b')](config[_0x7fb5('0xc0')],_0x7fb5('0xc1'),'files',_0x7fb5('0xc2'));var _0x40e9e3=path[_0x7fb5('0x7b')](config[_0x7fb5('0xc0')],'server','files',_0x7fb5('0xc3'));var _0x56d338=path['join'](_0x40e9e3,_0x5e0c96);var _0x3f32f4=util[_0x7fb5('0x5c')](_0x7fb5('0xc4'),_0x5e0c96);var _0x189d93=path[_0x7fb5('0x7b')](_0x40e9e3,_0x3f32f4);var _0xe18a35=![];return db[_0x7fb5('0x2d')][_0x7fb5('0xb0')]({'where':{'id':_0x4370c1[_0x7fb5('0xac')]['id']}})['then'](handleEntityNotFound(_0x4ee6cb,null))[_0x7fb5('0x34')](function(_0x385bbf){if(_0x385bbf){return _0x385bbf[_0x7fb5('0xb7')]({'attributes':['id',_0x7fb5('0xb2'),_0x7fb5('0xc5'),'to','cc','bcc',_0x7fb5('0xc6'),_0x7fb5('0x57')],'where':{'secret':![]},'include':_0x4370c1[_0x7fb5('0x38')]['attachments']?[{'model':db['Attachment'],'as':_0x7fb5('0xc7')}]:undefined,'order':qs[_0x7fb5('0x40')]('id')});}return[];})[_0x7fb5('0x34')](function(_0x2b0f63){_0xe18a35=_0x2b0f63[_0x7fb5('0x3d')];if(_0x2b0f63[_0x7fb5('0x3d')]){fs[_0x7fb5('0xc8')](_0x56d338);return BPromise[_0x7fb5('0xc9')](_0x2b0f63,function(_0x41a39c,_0x4cb5ca){var _0x6731d1=_0x41a39c;var _0x5f04da={'from':_0x6731d1[_0x7fb5('0xc5')],'to':_0x6731d1['to'],'subject':_0x6731d1[_0x7fb5('0xc6')],'html':_0x6731d1[_0x7fb5('0xb2')],'headers':{'Date':moment(_0x6731d1[_0x7fb5('0x57')])[_0x7fb5('0x5c')](_0x7fb5('0xca'))},'attachments':[]};if(_0x41a39c['cc']){_0x5f04da[_0x7fb5('0xcb')]['Cc']=_0x41a39c['cc'];}if(_0x41a39c[_0x7fb5('0xcc')]){_0x5f04da[_0x7fb5('0xcb')][_0x7fb5('0xcd')]=_0x41a39c[_0x7fb5('0xcc')];}return new BPromise(function(_0x23161d,_0x178b2d){if(_0x41a39c[_0x7fb5('0xc7')]){for(var _0x237ef9=0x0;_0x237ef9<_0x41a39c[_0x7fb5('0xc7')]['length'];_0x237ef9++){var _0x107f5c=_0x41a39c[_0x7fb5('0xc7')][_0x237ef9];var _0xeb54b6=path[_0x7fb5('0x7b')](_0x38fa4d,_0x107f5c[_0x7fb5('0xce')]);if(fs[_0x7fb5('0xcf')](_0xeb54b6)){_0x5f04da['attachments']['push']({'name':_0x107f5c[_0x7fb5('0x25')],'contentType':_0x107f5c[_0x7fb5('0xd0')],'data':fs['readFileSync'](_0xeb54b6)});}}}emlformat['build'](_0x5f04da,function(_0x38777f,_0x956002){if(_0x38777f)return _0x178b2d(_0x38777f);fs[_0x7fb5('0xd1')](path[_0x7fb5('0x7b')](_0x56d338,util[_0x7fb5('0x5c')](_0x7fb5('0xd2'),_0x4cb5ca)),_0x956002);return _0x23161d(_0x956002);});});});}})[_0x7fb5('0x34')](function(){if(_0xe18a35){return new BPromise(function(_0x35b365,_0x5a7d97){zipdir(_0x56d338,{'saveTo':_0x189d93},function(_0x228e44,_0x213c7e){if(_0x228e44)return _0x5a7d97(_0x228e44);return _0x35b365(_0x213c7e);});});}})['then'](function(){if(_0xe18a35){return new BPromise(function(_0x4c550b,_0x232faa){rimraf(_0x56d338,function(_0x2548d8){if(_0x2548d8)_0x232faa(_0x2548d8);return _0x4c550b();});});}})[_0x7fb5('0x34')](function(){if(_0xe18a35){return _0x4ee6cb[_0x7fb5('0xd3')](_0x189d93,_0x3f32f4,function(_0x292e17){if(_0x292e17){console[_0x7fb5('0xd4')](_0x7fb5('0xd5'),_0x292e17);}else{fs[_0x7fb5('0xd6')](_0x189d93);}});}else{return _0x4ee6cb[_0x7fb5('0xd7')](0xc8);}})[_0x7fb5('0x33')](handleError(_0x4ee6cb,null));};