Built motion from commit d9028345.|2.5.43
[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 _0xe626=['u.id','ui.MailInteractionId','user_has_mail_interactions','left_join','users','u.id\x20=\x20ui.UserId','mail_interactions','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','mail_accounts','me.MailInteractionId\x20=\x20i.id','mail_interaction_has_tags','it.MailInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','find','unreadMessages','value','having','`\x20=\x200','`\x20>\x200','operator','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','Tag','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','buildExpression','some','compact','MailAccountId','i.MailAccountId\x20IN\x20?','concat','createdAt','$gte','parse','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','tag','isArray','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','filter','replace','isNumeric','i.id\x20LIKE\x20?','isEmail','c.email\x20LIKE\x20?','MATCH\x20(me.plainBody,\x20me.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','group','i.id','Sequelize','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','DESC','isEmpty','t.id\x20IN\x20?','resolve','i.MailAccountId\x20IS\x20NOT\x20NULL','user','role','agent','getMailAccounts','i.MailAccountId\x20IS\x20NULL','sequelize','toString','keyBy','merge','fields','a.key','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.closedAt','i.attach','i.lastMsgAt','i.lastMsgDirection','i.subject','i.thirdDisposition','i.substatus','i.to','i.ContactId','i.MailAccountId','i.UserId','c.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','c.mobile','c.fax','Owner.fullname','o.internal','Owner.internal','ui.MailInteractionId\x20IN\x20?','groupBy','MailInteractionId','enableEmailPreview','all','params','includeAll','include','options','create','body','update','addMessage','ids','YYYY-MM-DD\x20HH:mm:ss','findAll','inlineCss','true','rows','addTags','setTags','spread','mailInteractionTags:save','removeTags','unix','join','root','server','attachments','format','transcript-%d-%s.zip','Attachment','Attachments','bcc','subject','get','Messages','decode','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','Bcc','push','readFileSync','download','unlinkSync','eml-format','rimraf','zip-dir','moment','util','path','lodash','squel','juice','../../config/logger','api','../../mysqldb','html-entities','redis','defaults','localhost','socket.io-emitter','./mailInteraction.socket','status','end','json','undefined','limit','offset','count','set','Content-Range','then','destroy','sendStatus','error','name','send','Users','map','fullname','TagIds','Tags','split','forEach','MailMessage','out','-id','trimStart','plainBody','catch','waiting','talking','answered','total','closed','UserId','unmanaged','index','MailInteraction','rawAttributes','type','query','keys','intersection','attributes','model','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','select','field','color','from'];(function(_0x3419b0,_0x255acd){var _0x2fddb6=function(_0x3de0a1){while(--_0x3de0a1){_0x3419b0['push'](_0x3419b0['shift']());}};_0x2fddb6(++_0x255acd);}(_0xe626,0x9d));var _0x6e62=function(_0x9d591,_0x5e29ed){_0x9d591=_0x9d591-0x0;var _0x3c2e52=_0xe626[_0x9d591];return _0x3c2e52;};'use strict';var emlformat=require(_0x6e62('0x0'));var rimraf=require(_0x6e62('0x1'));var zipdir=require(_0x6e62('0x2'));var moment=require(_0x6e62('0x3'));var BPromise=require('bluebird');var util=require(_0x6e62('0x4'));var path=require(_0x6e62('0x5'));var fs=require('fs');var _=require(_0x6e62('0x6'));var squel=require(_0x6e62('0x7'));var juice=require(_0x6e62('0x8'));var Redis=require('ioredis');var qs=require('../../components/parsers/qs');var as=require('../../components/parsers/advancedSearch');var logger=require(_0x6e62('0x9'))(_0x6e62('0xa'));var config=require('../../config/environment');var db=require(_0x6e62('0xb'))['db'];var htmlEntities=require(_0x6e62('0xc'));config[_0x6e62('0xd')]=_[_0x6e62('0xe')](config['redis'],{'host':_0x6e62('0xf'),'port':0x18eb});var socket=require(_0x6e62('0x10'))(new Redis(config['redis']));require(_0x6e62('0x11'))['register'](socket);function respondWithStatusCode(_0x1f2693,_0x543d09){_0x543d09=_0x543d09||0xcc;return function(_0x2d8894){if(_0x2d8894){return _0x1f2693['sendStatus'](_0x543d09);}return _0x1f2693[_0x6e62('0x12')](_0x543d09)[_0x6e62('0x13')]();};}function respondWithResult(_0x2a5d22,_0x43e3d4){_0x43e3d4=_0x43e3d4||0xc8;return function(_0x3c3af1){if(_0x3c3af1){return _0x2a5d22[_0x6e62('0x12')](_0x43e3d4)[_0x6e62('0x14')](_0x3c3af1);}};}function respondWithFilteredResult(_0x49be2d,_0x4e7917){return function(_0x44b131){if(_0x44b131){var _0x3b980d=typeof _0x4e7917['offset']===_0x6e62('0x15')&&typeof _0x4e7917[_0x6e62('0x16')]===_0x6e62('0x15');var _0x3f4e35=_0x44b131['count'];var _0x416158=_0x3b980d?0x0:_0x4e7917[_0x6e62('0x17')];var _0x8aef1b=_0x3b980d?_0x44b131[_0x6e62('0x18')]:_0x4e7917[_0x6e62('0x17')]+_0x4e7917[_0x6e62('0x16')];var _0x42c2ea;if(_0x8aef1b>=_0x3f4e35){_0x8aef1b=_0x3f4e35;_0x42c2ea=0xc8;}else{_0x42c2ea=0xce;}_0x49be2d[_0x6e62('0x12')](_0x42c2ea);return _0x49be2d[_0x6e62('0x19')](_0x6e62('0x1a'),_0x416158+'-'+_0x8aef1b+'/'+_0x3f4e35)['json'](_0x44b131);}return null;};}function saveUpdates(_0x1f5ee7){return function(_0x400bcc){if(_0x400bcc){return _0x400bcc['update'](_0x1f5ee7)[_0x6e62('0x1b')](function(_0x4ecdff){return _0x4ecdff;});}return null;};}function removeEntity(_0xf7d17f){return function(_0x24b133){if(_0x24b133){return _0x24b133[_0x6e62('0x1c')]()[_0x6e62('0x1b')](function(){_0xf7d17f[_0x6e62('0x12')](0xcc)[_0x6e62('0x13')]();});}};}function handleEntityNotFound(_0x1f3421){return function(_0x263c47){if(!_0x263c47){_0x1f3421[_0x6e62('0x1d')](0x194);}return _0x263c47;};}function handleError(_0x421d13,_0x1954dc){_0x1954dc=_0x1954dc||0x1f4;return function(_0x4dc760){logger[_0x6e62('0x1e')](_0x4dc760['stack']);if(_0x4dc760[_0x6e62('0x1f')]){delete _0x4dc760[_0x6e62('0x1f')];}_0x421d13[_0x6e62('0x12')](_0x1954dc)[_0x6e62('0x20')](_0x4dc760);};}function getInteractionUsers(_0x461eae,_0x425d1c){return new BPromise(function(_0x4373b5,_0x3a1683){try{if(_0x425d1c[_0x461eae['id']]){_0x461eae[_0x6e62('0x21')]=_[_0x6e62('0x22')](_0x425d1c[_0x461eae['id']],function(_0x5a6ffa){return{'id':_0x5a6ffa['id'],'fullname':_0x5a6ffa[_0x6e62('0x23')]};});}}catch(_0x555793){_0x3a1683(_0x555793);}_0x4373b5(_0x461eae);});}function getInteractionTags(_0x2f9c68,_0x2f9baf){return new BPromise(function(_0x318fc3,_0x17fee0){try{if(_0x2f9c68[_0x6e62('0x24')]){_0x2f9c68[_0x6e62('0x25')]=[];_0x2f9c68['TagIds'][_0x6e62('0x26')](',')[_0x6e62('0x27')](function(_0x14cd51){_0x2f9c68['Tags']['push'](_0x2f9baf[_0x14cd51]);});}delete _0x2f9c68[_0x6e62('0x24')];}catch(_0x50813d){_0x17fee0(_0x50813d);}_0x318fc3(_0x2f9c68);});}function getLastMessageText(_0x479b12){return new BPromise(function(_0x59c916,_0x5656d8){return db[_0x6e62('0x28')]['findOne']({'where':{'$and':[{'MailInteractionId':_0x479b12['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':_0x6e62('0x29')},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':['plainBody'],'order':_0x6e62('0x2a'),'raw':!![]})[_0x6e62('0x1b')](function(_0x2905d7){if(_0x2905d7&&_0x2905d7['plainBody']){_0x479b12['lastMsgText']=_[_0x6e62('0x2b')](_0x2905d7[_0x6e62('0x2c')]);}_0x59c916(_0x479b12);})['catch'](function(_0x5e2969){_0x5656d8(_0x5e2969);});});}function updateMailInteraction(_0x53dfaa,_0x1f2dd2,_0x537f37,_0xde2488){return new BPromise(function(_0x6af555,_0x3dc663){return getInteractionUsers(_0x53dfaa,_0x537f37)[_0x6e62('0x1b')](function(_0x190e7b){return getInteractionTags(_0x190e7b,_0x1f2dd2);})['then'](function(_0x4b8397){return getStateInteraction(_0x4b8397);})[_0x6e62('0x1b')](function(_0x3e33e5){if(_0xde2488){_0x6af555(getLastMessageText(_0x3e33e5));}else{_0x6af555(_0x3e33e5);}})[_0x6e62('0x2d')](function(_0x372f72){_0x3dc663(_0x372f72);});});}function getStateInteraction(_0xf650a){return new BPromise(function(_0xfe729c){_0xf650a[_0x6e62('0x2e')]=0x0;_0xf650a[_0x6e62('0x2f')]=0x0;_0xf650a[_0x6e62('0x30')]=0x0;_0xf650a['unmanaged']=0x0;_0xf650a[_0x6e62('0x31')]=0x0;if(!_0xf650a[_0x6e62('0x32')]&&!_0xf650a[_0x6e62('0x33')]){_0xf650a['waiting']+=0x1;}if(!_0xf650a[_0x6e62('0x32')]&&_0xf650a[_0x6e62('0x33')]){_0xf650a['talking']+=0x1;if(_0xf650a[_0x6e62('0x2e')]){_0xf650a[_0x6e62('0x2e')]-=0x1;}}if(_0xf650a[_0x6e62('0x32')]&&_0xf650a[_0x6e62('0x33')]){_0xf650a[_0x6e62('0x30')]+=0x1;if(_0xf650a['talking']){_0xf650a[_0x6e62('0x2f')]-=0x1;}}if(_0xf650a[_0x6e62('0x32')]&&!_0xf650a[_0x6e62('0x33')]){_0xf650a[_0x6e62('0x34')]+=0x1;if(_0xf650a[_0x6e62('0x2e')]){_0xf650a['waiting']-=0x1;}}_0xf650a[_0x6e62('0x31')]+=0x1;_0xfe729c(_0xf650a);});}exports[_0x6e62('0x35')]=function(_0x234710,_0x50b715){var _0x28af80={},_0x362944={},_0x5f3898={'count':0x0,'rows':[]};var _0x47996e=_[_0x6e62('0x22')](db[_0x6e62('0x36')][_0x6e62('0x37')],function(_0x5257be){return{'name':_0x5257be['fieldName'],'type':_0x5257be[_0x6e62('0x38')]['key']};});_0x362944['model']=_[_0x6e62('0x22')](_0x47996e,_0x6e62('0x1f'));_0x362944[_0x6e62('0x39')]=_[_0x6e62('0x3a')](_0x234710[_0x6e62('0x39')]);_0x362944['filters']=_[_0x6e62('0x3b')](_0x362944['model'],_0x362944['query']);_0x28af80[_0x6e62('0x3c')]=_[_0x6e62('0x3b')](_0x362944[_0x6e62('0x3d')],qs['fields'](_0x234710[_0x6e62('0x39')]['fields']));_0x28af80[_0x6e62('0x3c')]=_0x28af80[_0x6e62('0x3c')][_0x6e62('0x3e')]?_0x28af80[_0x6e62('0x3c')]:_0x362944[_0x6e62('0x3d')];if(!_0x234710[_0x6e62('0x39')][_0x6e62('0x3f')](_0x6e62('0x40'))){_0x28af80[_0x6e62('0x16')]=qs[_0x6e62('0x16')](_0x234710['query']['limit']);_0x28af80['offset']=qs[_0x6e62('0x17')](_0x234710['query'][_0x6e62('0x17')]);}_0x28af80[_0x6e62('0x41')]=qs['sort'](_0x234710[_0x6e62('0x39')][_0x6e62('0x42')]);_0x28af80[_0x6e62('0x43')]=qs[_0x6e62('0x44')](_[_0x6e62('0x45')](_0x234710[_0x6e62('0x39')],_0x362944[_0x6e62('0x44')]),_0x47996e);var _0x22f217=[];var _0x4381bf=squel[_0x6e62('0x46')]()[_0x6e62('0x47')]('id')[_0x6e62('0x47')](_0x6e62('0x1f'))['field'](_0x6e62('0x48'))[_0x6e62('0x49')]('tools_tags');var _0x3efbd4=squel['select']()[_0x6e62('0x47')](_0x6e62('0x4a'))[_0x6e62('0x47')]('u.fullname')[_0x6e62('0x47')](_0x6e62('0x4b'))[_0x6e62('0x49')](_0x6e62('0x4c'),'ui')[_0x6e62('0x4d')](_0x6e62('0x4e'),'u',_0x6e62('0x4f'));var _0x315ed4=squel[_0x6e62('0x46')]()[_0x6e62('0x49')](_0x6e62('0x50'),'i')['left_join']('cm_contacts','c',_0x6e62('0x51'))[_0x6e62('0x4d')](_0x6e62('0x4e'),'o',_0x6e62('0x52'))[_0x6e62('0x4d')](_0x6e62('0x53'),'a','a.id\x20=\x20i.MailAccountId')[_0x6e62('0x4d')]('mail_messages','me',_0x6e62('0x54'))[_0x6e62('0x4d')](_0x6e62('0x55'),'it',_0x6e62('0x56'))[_0x6e62('0x4d')]('tools_tags','t',_0x6e62('0x57'));var _0x3e7ea3=squel[_0x6e62('0x58')]();var _0x38bb69=[];var _0x5378b5=squel[_0x6e62('0x58')]();var _0x479728;if(_0x234710[_0x6e62('0x39')][_0x6e62('0x59')]){_0x479728=as[_0x6e62('0x5a')](_0x234710[_0x6e62('0x39')][_0x6e62('0x59')]);var _0x33d4cf=_0x479728[_0x6e62('0x5b')];for(var _0x520ca5=0x0;_0x520ca5<_0x479728[_0x6e62('0x5c')]['length'];_0x520ca5++){var _0x334db1=_0x479728[_0x6e62('0x5c')][_0x520ca5];var _0x2bcd17='i';var _0x3d5b60=_[_0x6e62('0x5d')](_0x47996e,['name',_0x334db1[_0x6e62('0x47')]]);if(!_0x3d5b60){switch(_0x334db1['field']){case _0x6e62('0x5e'):if(_0x334db1[_0x6e62('0x5f')]==0x1){_0x315ed4[_0x6e62('0x60')]('`'+_0x334db1['field']+_0x6e62('0x61'));}else{_0x315ed4[_0x6e62('0x60')]('`'+_0x334db1['field']+_0x6e62('0x62'));}break;case'Contact':if(_0x334db1[_0x6e62('0x63')]==='$substring'){if(_0x334db1[_0x6e62('0x5f')][_0x6e62('0x26')]('\x20')['length']>0x1){_0x3e7ea3[_0x33d4cf](_0x6e62('0x64'),qs[_0x6e62('0x65')](_0x334db1['value']),null);}else{var _0x5735b4='%'+_0x334db1[_0x6e62('0x5f')]+'%';_0x3e7ea3[_0x33d4cf](_0x6e62('0x66'),_0x5735b4,_0x5735b4,_0x5735b4);}}else{_0x3d5b60=_[_0x6e62('0x5d')](_0x47996e,[_0x6e62('0x1f'),_0x6e62('0x67')]);_0x334db1[_0x6e62('0x47')]=_0x6e62('0x67');_0x4e7ba3=as['buildExpression'](_0x2bcd17,_0x3d5b60[_0x6e62('0x38')],_0x334db1);_0x3e7ea3[_0x33d4cf](_0x4e7ba3[_0x6e62('0x68')],_0x4e7ba3[_0x6e62('0x5f')][_0x6e62('0x69')],_0x4e7ba3[_0x6e62('0x5f')]['end']);}break;case _0x6e62('0x6a'):var _0x197c1a=_0x334db1['value'][_0x6e62('0x26')](',')[_0x6e62('0x22')](function(_0x2700f3){return Number(_0x2700f3);});_0x197c1a[_0x6e62('0x27')](function(_0x50c785){_0x5378b5['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x50c785+',%');});_0x38bb69=_[_0x6e62('0x6b')](_0x38bb69,_0x197c1a);break;case _0x6e62('0x6c'):if(_0x334db1[_0x6e62('0x63')]==='$substring'){_0x3e7ea3[_0x33d4cf](_0x6e62('0x6d'),'%'+_0x334db1[_0x6e62('0x5f')]+'%',null);}else{_0x3d5b60=_['find'](_0x47996e,[_0x6e62('0x1f'),'UserId']);_0x334db1[_0x6e62('0x47')]=_0x6e62('0x33');_0x4e7ba3=as[_0x6e62('0x6e')](_0x2bcd17,_0x3d5b60['type'],_0x334db1);_0x3e7ea3[_0x33d4cf](_0x4e7ba3['text'],_0x4e7ba3[_0x6e62('0x5f')][_0x6e62('0x69')],_0x4e7ba3[_0x6e62('0x5f')][_0x6e62('0x13')]);}break;case _0x6e62('0x2c'):_0x4e7ba3=as[_0x6e62('0x6e')]('me',null,_0x334db1);_0x3e7ea3[_0x33d4cf](_0x4e7ba3[_0x6e62('0x68')],_0x4e7ba3[_0x6e62('0x5f')]['start'],_0x4e7ba3[_0x6e62('0x5f')][_0x6e62('0x13')]);break;}}else{var _0x4e7ba3=as[_0x6e62('0x6e')](_0x2bcd17,_0x3d5b60['type'],_0x334db1);_0x3e7ea3[_0x33d4cf](_0x4e7ba3[_0x6e62('0x68')],_0x4e7ba3[_0x6e62('0x5f')][_0x6e62('0x69')],_0x4e7ba3[_0x6e62('0x5f')]['end']);}}}else{var _0x597a20=_(_0x234710[_0x6e62('0x39')])[_0x6e62('0x3a')]()[_0x6e62('0x22')](function(_0x1ccbff){return _[_0x6e62('0x6f')](_0x47996e,[_0x6e62('0x1f'),_0x1ccbff])?_0x1ccbff:undefined;})[_0x6e62('0x70')]()[_0x6e62('0x5f')]();if(!_['isEmpty'](_0x597a20)){_0x597a20[_0x6e62('0x27')](function(_0x28fa70){if(_0x28fa70===_0x6e62('0x71')){_0x315ed4[_0x6e62('0x43')](_0x6e62('0x72'),[][_0x6e62('0x73')](_0x234710[_0x6e62('0x39')][_0x28fa70]));}else if(_0x28fa70===_0x6e62('0x74')){var _0x30c1e3=JSON['parse'](_0x234710[_0x6e62('0x39')][_0x28fa70])[_0x6e62('0x75')];var _0x3ddc7f=JSON[_0x6e62('0x76')](_0x234710[_0x6e62('0x39')][_0x28fa70])[_0x6e62('0x77')];_0x315ed4[_0x6e62('0x43')](_0x6e62('0x78'),_0x30c1e3,_0x3ddc7f);}else{if(_0x234710[_0x6e62('0x39')][_0x28fa70]===_0x6e62('0x79')){_0x315ed4[_0x6e62('0x43')]('i.'+_0x28fa70+_0x6e62('0x7a'));}else{_0x315ed4[_0x6e62('0x43')]('i.'+_0x28fa70+_0x6e62('0x7b'),_0x234710[_0x6e62('0x39')][_0x28fa70]);}}});}if(_0x234710[_0x6e62('0x39')][_0x6e62('0x7c')]){if(_0x234710['query'][_0x6e62('0x7c')]==0x1){_0x315ed4[_0x6e62('0x60')](_0x6e62('0x7d'));}else{_0x315ed4[_0x6e62('0x60')]('`unreadMessages`\x20>\x200');}}if(_0x234710[_0x6e62('0x39')][_0x6e62('0x7e')]){_0x38bb69=_[_0x6e62('0x7f')](_0x234710['query'][_0x6e62('0x7e')])?_0x234710[_0x6e62('0x39')][_0x6e62('0x7e')]:new Array(_0x234710[_0x6e62('0x39')]['tag']);_0x38bb69[_0x6e62('0x27')](function(_0x455197){_0x5378b5['or'](_0x6e62('0x80'),'%,'+_0x455197+',%');});}if(_0x234710[_0x6e62('0x39')][_0x6e62('0x81')]){var _0xb797da=_0x234710[_0x6e62('0x39')][_0x6e62('0x81')][_0x6e62('0x82')]('\x5c','\x5c\x5c')[_0x6e62('0x82')](/'/g,'\x27\x27');if(qs[_0x6e62('0x83')](_0xb797da)){_0x3e7ea3['or'](_0x6e62('0x84'),_0xb797da+'%');}else if(qs[_0x6e62('0x85')](_0xb797da)){_0x3e7ea3['or'](_0x6e62('0x86'),_0xb797da+'%');}else{_0x3e7ea3['or']('MATCH\x20(i.to,\x20i.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x6e62('0x65')](_0xb797da))['or'](_0x6e62('0x87'),qs[_0x6e62('0x65')](_0xb797da));}}}_0x315ed4[_0x6e62('0x43')](_0x3e7ea3);_0x315ed4[_0x6e62('0x88')](_0x6e62('0x89'));var _0x451dd1={'type':db[_0x6e62('0x8a')]['QueryTypes'][_0x6e62('0x8b')],'raw':!![]};var _0x2565d8=_0x315ed4[_0x6e62('0x8c')]();_0x2565d8[_0x6e62('0x47')](_0x6e62('0x89'));_0x2565d8[_0x6e62('0x47')](_0x6e62('0x8d'),'unreadMessages');if(_0x28af80[_0x6e62('0x41')]){_0x28af80[_0x6e62('0x41')][_0x6e62('0x27')](function(_0x12bf32){var _0x19dd3f=_0x12bf32[0x0]===_0x6e62('0x8e')?_0x12bf32[0x0]:'i.'+_0x12bf32[0x0];_0x315ed4[_0x6e62('0x41')](_0x19dd3f,_0x12bf32[0x1]===_0x6e62('0x8f')?![]:!![]);});}if(!_[_0x6e62('0x90')](_0x38bb69)){_0x315ed4[_0x6e62('0x60')](_0x5378b5);_0x2565d8[_0x6e62('0x43')](_0x6e62('0x91'),_0x38bb69);}BPromise[_0x6e62('0x92')]()[_0x6e62('0x1b')](function(){if(!_0x479728){if(_0x234710[_0x6e62('0x39')][_0x6e62('0x71')])return;_0x2565d8[_0x6e62('0x43')](_0x6e62('0x93'));_0x315ed4['where'](_0x6e62('0x93'));return;}if(_0x234710[_0x6e62('0x94')][_0x6e62('0x95')]!==_0x6e62('0x96'))return;return _0x234710[_0x6e62('0x94')][_0x6e62('0x97')]({'attributes':['id'],'raw':!![]})['then'](function(_0x2282e8){if(_[_0x6e62('0x90')](_0x2282e8)){_0x2565d8['where'](_0x6e62('0x98'));_0x315ed4['where']('i.MailAccountId\x20IS\x20NULL');}else{_0x2565d8[_0x6e62('0x43')](_0x6e62('0x72'),_[_0x6e62('0x22')](_0x2282e8,'id'));_0x315ed4[_0x6e62('0x43')]('i.MailAccountId\x20IN\x20?',_[_0x6e62('0x22')](_0x2282e8,'id'));}});})[_0x6e62('0x1b')](function(){if(_0x234710[_0x6e62('0x94')][_0x6e62('0x95')]==='agent'&&!_0x479728&&!_0x234710[_0x6e62('0x39')][_0x6e62('0x71')])return[];return db[_0x6e62('0x99')]['query'](_0x2565d8[_0x6e62('0x9a')](),_0x451dd1);})['then'](function(_0x4941ea){_0x5f3898[_0x6e62('0x18')]=_0x4941ea[_0x6e62('0x3e')];if(_0x5f3898[_0x6e62('0x18')]===0x0)return[];return db['sequelize']['query'](_0x4381bf[_0x6e62('0x9a')](),_0x451dd1)[_0x6e62('0x1b')](function(_0x15c205){_0x22f217=_[_0x6e62('0x9b')](_0x15c205,'id');_0x451dd1=_[_0x6e62('0x9c')](_0x451dd1,{'model':db['MailInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x234710[_0x6e62('0x39')][_0x6e62('0x9d')]){_0x28af80[_0x6e62('0x3c')][_0x6e62('0x27')](function(_0x5cc806){_0x315ed4['field']('i.'+_0x5cc806);});}else{_0x315ed4[_0x6e62('0x47')](_0x6e62('0x8d'),'unreadMessages');_0x315ed4['field'](_0x6e62('0x9e'),_0x6e62('0x9f'));_0x315ed4[_0x6e62('0x47')](_0x6e62('0xa0'),_0x6e62('0xa1'));_0x315ed4[_0x6e62('0x47')](_0x6e62('0xa2'),_0x6e62('0x8e'));_0x315ed4[_0x6e62('0x47')]('i.id');_0x315ed4[_0x6e62('0x47')](_0x6e62('0xa3'));_0x315ed4[_0x6e62('0x47')]('i.updatedAt');_0x315ed4[_0x6e62('0x47')]('i.closed');_0x315ed4[_0x6e62('0x47')](_0x6e62('0xa4'));_0x315ed4['field'](_0x6e62('0xa5'));_0x315ed4[_0x6e62('0x47')](_0x6e62('0xa6'));_0x315ed4[_0x6e62('0x47')](_0x6e62('0xa7'));_0x315ed4[_0x6e62('0x47')](_0x6e62('0xa8'));_0x315ed4['field']('i.disposition');_0x315ed4[_0x6e62('0x47')]('i.secondDisposition');_0x315ed4[_0x6e62('0x47')](_0x6e62('0xa9'));_0x315ed4['field'](_0x6e62('0xaa'));_0x315ed4['field'](_0x6e62('0xab'));_0x315ed4['field'](_0x6e62('0xac'));_0x315ed4['field'](_0x6e62('0xad'));_0x315ed4[_0x6e62('0x47')](_0x6e62('0xae'));_0x315ed4[_0x6e62('0x47')](_0x6e62('0xaf'),'Contact.firstName');_0x315ed4[_0x6e62('0x47')](_0x6e62('0xb0'),_0x6e62('0xb1'));_0x315ed4[_0x6e62('0x47')](_0x6e62('0xb2'),_0x6e62('0xb3'));_0x315ed4[_0x6e62('0x47')](_0x6e62('0xb4'),_0x6e62('0xb5'));_0x315ed4[_0x6e62('0x47')](_0x6e62('0xb6'),'Contact.mobile');_0x315ed4[_0x6e62('0x47')](_0x6e62('0xb7'),'Contact.fax');_0x315ed4['field']('o.fullname',_0x6e62('0xb8'));_0x315ed4[_0x6e62('0x47')](_0x6e62('0xb9'),_0x6e62('0xba'));_0x315ed4['field']('GROUP_CONCAT(DISTINCT\x20t.id)',_0x6e62('0x24'));}if(_0x28af80[_0x6e62('0x16')])_0x315ed4[_0x6e62('0x16')](_0x28af80[_0x6e62('0x16')]);if(_0x28af80[_0x6e62('0x17')])_0x315ed4[_0x6e62('0x17')](_0x28af80[_0x6e62('0x17')]);return db[_0x6e62('0x99')]['query'](_0x315ed4[_0x6e62('0x9a')](),_0x451dd1);})[_0x6e62('0x1b')](function(_0x2efd2f){if(_0x2efd2f[_0x6e62('0x3e')]>0x0)_0x3efbd4[_0x6e62('0x43')](_0x6e62('0xbb'),_['map'](_0x2efd2f,'id'));return db['sequelize'][_0x6e62('0x39')](_0x3efbd4[_0x6e62('0x9a')](),_0x451dd1)[_0x6e62('0x1b')](function(_0x56b2f4){var _0x366fc5=_[_0x6e62('0xbc')](_0x56b2f4,_0x6e62('0xbd'));var _0x397a11=[];return db['Setting']['findOne']({'attributes':[_0x6e62('0xbe')],'raw':!![]})[_0x6e62('0x1b')](function(_0x959380){var _0x491ab7=_0x959380['enableEmailPreview'];_0x2efd2f[_0x6e62('0x27')](function(_0x401e8c){_0x397a11['push'](updateMailInteraction(_0x401e8c,_0x22f217,_0x366fc5,_0x491ab7));});return BPromise[_0x6e62('0xbf')](_0x397a11);});});});})[_0x6e62('0x1b')](function(_0x5ef47f){_0x5f3898['rows']=_0x5ef47f;return _0x5f3898;})['then'](respondWithFilteredResult(_0x50b715,_0x28af80))['catch'](handleError(_0x50b715,null));};exports['show']=function(_0x52b65b,_0x45bb4a){var _0x58b1f2={'raw':![],'where':{'id':_0x52b65b[_0x6e62('0xc0')]['id']}},_0x2a9c39={};_0x2a9c39[_0x6e62('0x3d')]=_[_0x6e62('0x3a')](db[_0x6e62('0x36')][_0x6e62('0x37')]);_0x2a9c39[_0x6e62('0x39')]=_['keys'](_0x52b65b[_0x6e62('0x39')]);_0x2a9c39[_0x6e62('0x44')]=_['intersection'](_0x2a9c39['model'],_0x2a9c39[_0x6e62('0x39')]);_0x58b1f2[_0x6e62('0x3c')]=_['intersection'](_0x2a9c39[_0x6e62('0x3d')],qs[_0x6e62('0x9d')](_0x52b65b[_0x6e62('0x39')]['fields']));_0x58b1f2[_0x6e62('0x3c')]=_0x58b1f2['attributes'][_0x6e62('0x3e')]?_0x58b1f2[_0x6e62('0x3c')]:_0x2a9c39[_0x6e62('0x3d')];if(_0x52b65b[_0x6e62('0x39')][_0x6e62('0xc1')]){_0x58b1f2[_0x6e62('0xc2')]=[{'all':!![]}];}_0x58b1f2=_[_0x6e62('0x9c')]({},_0x58b1f2,_0x52b65b[_0x6e62('0xc3')]);return db['MailInteraction'][_0x6e62('0x5d')](_0x58b1f2)[_0x6e62('0x1b')](handleEntityNotFound(_0x45bb4a,null))['then'](respondWithResult(_0x45bb4a,null))[_0x6e62('0x2d')](handleError(_0x45bb4a,null));};exports[_0x6e62('0xc4')]=function(_0x6b9721,_0x5c7869){return db[_0x6e62('0x36')]['create'](_0x6b9721[_0x6e62('0xc5')],{})[_0x6e62('0x1b')](respondWithResult(_0x5c7869,0xc9))[_0x6e62('0x2d')](handleError(_0x5c7869,null));};exports[_0x6e62('0xc6')]=function(_0x17d49d,_0x5dc87a){if(_0x17d49d[_0x6e62('0xc5')]['id']){delete _0x17d49d[_0x6e62('0xc5')]['id'];}return db[_0x6e62('0x36')][_0x6e62('0x5d')]({'where':{'id':_0x17d49d[_0x6e62('0xc0')]['id']}})['then'](handleEntityNotFound(_0x5dc87a,null))['then'](saveUpdates(_0x17d49d['body'],null))[_0x6e62('0x1b')](respondWithResult(_0x5dc87a,null))[_0x6e62('0x2d')](handleError(_0x5dc87a,null));};exports[_0x6e62('0x1c')]=function(_0x2749f7,_0x5dd09a){return db['MailInteraction'][_0x6e62('0x5d')]({'where':{'id':_0x2749f7[_0x6e62('0xc0')]['id']}})['then'](handleEntityNotFound(_0x5dd09a,null))[_0x6e62('0x1b')](removeEntity(_0x5dd09a,null))['catch'](handleError(_0x5dd09a,null));};exports['describe']=function(_0x5f40db,_0x190415){return db[_0x6e62('0x36')]['describe']()[_0x6e62('0x1b')](respondWithResult(_0x190415,null))[_0x6e62('0x2d')](handleError(_0x190415,null));};exports[_0x6e62('0xc7')]=function(_0x52d28b,_0x112843){return db[_0x6e62('0x28')]['find']({'where':{'id':_0x52d28b[_0x6e62('0xc0')]['id']}})[_0x6e62('0x1b')](handleEntityNotFound(_0x112843,null))[_0x6e62('0x1b')](function(_0x58c908){if(_0x58c908){return _0x58c908[_0x6e62('0xc7')](_0x52d28b[_0x6e62('0xc5')][_0x6e62('0xc8')],_['omit'](_0x52d28b['body'],['ids','id'])||{});}})[_0x6e62('0x1b')](respondWithResult(_0x112843,null))[_0x6e62('0x2d')](handleError(_0x112843,null));};exports['getMessages']=function(_0x10c52c,_0x5b26ef){var _0x2f9f5e={'raw':![],'where':{}};var _0x5dc827={};var _0x1beae3={'count':0x0,'rows':[]};return db['MailInteraction']['findOne']({'where':{'id':_0x10c52c[_0x6e62('0xc0')]['id']}})[_0x6e62('0x1b')](handleEntityNotFound(_0x5b26ef,null))[_0x6e62('0x1b')](function(_0x16e292){if(_0x16e292){_0x5dc827[_0x6e62('0x3d')]=_[_0x6e62('0x3a')](db[_0x6e62('0x28')][_0x6e62('0x37')]);_0x5dc827[_0x6e62('0x39')]=_[_0x6e62('0x3a')](_0x10c52c[_0x6e62('0x39')]);_0x5dc827[_0x6e62('0x44')]=_['intersection'](_0x5dc827[_0x6e62('0x3d')],_0x5dc827['query']);_0x2f9f5e[_0x6e62('0x3c')]=_['intersection'](_0x5dc827['model'],qs['fields'](_0x10c52c[_0x6e62('0x39')][_0x6e62('0x9d')]));_0x2f9f5e[_0x6e62('0x3c')]=_0x2f9f5e['attributes'][_0x6e62('0x3e')]?_0x2f9f5e['attributes']:_0x5dc827['model'];if(!_0x10c52c[_0x6e62('0x39')][_0x6e62('0x3f')]('nolimit')){_0x2f9f5e[_0x6e62('0x16')]=qs[_0x6e62('0x16')](_0x10c52c['query']['limit']);_0x2f9f5e[_0x6e62('0x17')]=qs['offset'](_0x10c52c['query'][_0x6e62('0x17')]);}_0x2f9f5e[_0x6e62('0x41')]=qs[_0x6e62('0x42')](_0x10c52c[_0x6e62('0x39')]['sort']);_0x2f9f5e[_0x6e62('0x43')]=qs[_0x6e62('0x44')](_[_0x6e62('0x45')](_0x10c52c[_0x6e62('0x39')],_0x5dc827['filters']));_0x2f9f5e[_0x6e62('0x43')][_0x6e62('0xbd')]=_0x16e292['id'];if(_0x10c52c['query'][_0x6e62('0x81')]){_0x2f9f5e[_0x6e62('0x43')]=_[_0x6e62('0x9c')](_0x2f9f5e[_0x6e62('0x43')],{'$or':_['map'](_0x2f9f5e['attributes'],function(_0x2e839e){var _0x35bbf2={};_0x35bbf2[_0x2e839e]={'$like':'%'+_0x10c52c['query']['filter']+'%'};return _0x35bbf2;})});}if(_0x10c52c['query']['$gte']){var _0x12c942=_0x10c52c[_0x6e62('0x39')][_0x6e62('0x75')][_0x6e62('0x26')](',');var _0x1d89d7={};_0x1d89d7[_0x12c942[0x0]]={'$gte':moment(_0x12c942[0x1])['format'](_0x6e62('0xc9'))};_0x2f9f5e['where']=_[_0x6e62('0x9c')](_0x2f9f5e[_0x6e62('0x43')],_0x1d89d7);}_0x2f9f5e=_[_0x6e62('0x9c')]({},_0x2f9f5e,_0x10c52c['options']);return db[_0x6e62('0x28')][_0x6e62('0x18')]({'where':_0x2f9f5e['where']})[_0x6e62('0x1b')](function(_0x5d3f6c){_0x1beae3[_0x6e62('0x18')]=_0x5d3f6c;if(_0x10c52c[_0x6e62('0x39')][_0x6e62('0xc1')]){_0x2f9f5e[_0x6e62('0xc2')]=[{'all':!![]}];}return db[_0x6e62('0x28')][_0x6e62('0xca')](_0x2f9f5e);})['then'](function(_0x286e39){if(_0x10c52c[_0x6e62('0x39')][_0x6e62('0xcb')]===_0x6e62('0xcc')){for(var _0xf5e270=0x0;_0xf5e270<_0x286e39[_0x6e62('0x3e')];_0xf5e270++){_0x286e39[_0xf5e270]['body']=juice(_0x286e39[_0xf5e270]['body']);}}_0x1beae3[_0x6e62('0xcd')]=_0x286e39;return _0x1beae3;});}})[_0x6e62('0x1b')](respondWithFilteredResult(_0x5b26ef,_0x2f9f5e))['catch'](handleError(_0x5b26ef,null));};exports[_0x6e62('0xce')]=function(_0x389988,_0x51d89a){return db['MailInteraction'][_0x6e62('0x5d')]({'where':{'id':_0x389988[_0x6e62('0xc0')]['id']}})[_0x6e62('0x1b')](handleEntityNotFound(_0x51d89a,null))[_0x6e62('0x1b')](function(_0x584237){if(_0x584237){return _0x584237[_0x6e62('0xcf')](_0x389988[_0x6e62('0xc5')][_0x6e62('0xc8')],_['omit'](_0x389988[_0x6e62('0xc5')],[_0x6e62('0xc8'),'id'])||{})[_0x6e62('0xd0')](function(){return db[_0x6e62('0x6a')][_0x6e62('0xca')]({'attributes':['id',_0x6e62('0x1f'),_0x6e62('0x48')],'where':{'id':_0x389988[_0x6e62('0xc5')]['ids']}});})[_0x6e62('0x1b')](function(_0x4f2b9f){socket['emit'](_0x6e62('0xd1'),{'id':Number(_0x389988['params']['id']),'tags':_0x4f2b9f||[]});return{'id':Number(_0x389988['params']['id']),'tags':_0x4f2b9f||[]};});}})[_0x6e62('0x1b')](respondWithResult(_0x51d89a,null))['catch'](handleError(_0x51d89a,null));};exports[_0x6e62('0xd2')]=function(_0x3322a9,_0x4809fb){return db[_0x6e62('0x36')]['find']({'where':{'id':_0x3322a9[_0x6e62('0xc0')]['id']}})[_0x6e62('0x1b')](handleEntityNotFound(_0x4809fb,null))[_0x6e62('0x1b')](function(_0x2f7f5c){if(_0x2f7f5c){return _0x2f7f5c[_0x6e62('0xd2')](_0x3322a9[_0x6e62('0x39')][_0x6e62('0xc8')]);}})[_0x6e62('0x1b')](respondWithStatusCode(_0x4809fb,null))[_0x6e62('0x2d')](handleError(_0x4809fb,null));};exports['download']=function(_0x52ecf6,_0x4eb0f2){var _0x4aff57=moment()[_0x6e62('0xd3')]()[_0x6e62('0x9a')]();var _0x5864d2=path[_0x6e62('0xd4')](config['root'],'server','files','tmp');var _0x586660=path[_0x6e62('0xd4')](config[_0x6e62('0xd5')],_0x6e62('0xd6'),'files',_0x6e62('0xd7'));var _0x1c1e18=path[_0x6e62('0xd4')](_0x5864d2,_0x4aff57);var _0x172256=util[_0x6e62('0xd8')](_0x6e62('0xd9'),_0x52ecf6[_0x6e62('0xc0')]['id'],_0x4aff57);var _0x229a87=path[_0x6e62('0xd4')](_0x5864d2,_0x172256);var _0x40ad62=[];if(_0x52ecf6['query'][_0x6e62('0xd7')]){_0x40ad62['push']({'model':db[_0x6e62('0xda')],'as':_0x6e62('0xdb'),'raw':!![]});}var _0x14ba2d=[{'model':db[_0x6e62('0x28')],'as':'Messages','attributes':['id',_0x6e62('0xc5'),_0x6e62('0x49'),'to','cc',_0x6e62('0xdc'),_0x6e62('0xdd'),_0x6e62('0x74')],'where':{'secret':![]},'order':qs[_0x6e62('0x42')]('id'),'include':_0x40ad62}];return db[_0x6e62('0x36')][_0x6e62('0x5d')]({'where':{'id':_0x52ecf6[_0x6e62('0xc0')]['id']},'include':_0x14ba2d})['then'](handleEntityNotFound(_0x4eb0f2,null))[_0x6e62('0x1b')](function(_0x39bd9c){if(_0x39bd9c&&_0x39bd9c['Messages']){var _0x4e11de=_0x39bd9c[_0x6e62('0xde')]({'plain':!![]});fs['mkdirSync'](_0x1c1e18);return BPromise['each'](_0x4e11de[_0x6e62('0xdf')],function(_0x4459a2,_0x421a64){var _0xad25c6={'from':_0x4459a2[_0x6e62('0x49')],'to':_0x4459a2['to'],'subject':_0x4459a2[_0x6e62('0xdd')],'html':htmlEntities[_0x6e62('0xe0')](_0x4459a2[_0x6e62('0xc5')]),'headers':{'Date':moment(_0x4459a2[_0x6e62('0x74')])['format'](_0x6e62('0xe1'))},'attachments':[]};if(_0x4459a2['cc']){_0xad25c6['headers']['Cc']=_0x4459a2['cc'];}if(_0x4459a2[_0x6e62('0xdc')]){_0xad25c6['headers'][_0x6e62('0xe2')]=_0x4459a2[_0x6e62('0xdc')];}return new BPromise(function(_0x50e643,_0x4f02dd){if(_0x4459a2[_0x6e62('0xdb')]){for(var _0x8864c1=0x0;_0x8864c1<_0x4459a2['Attachments'][_0x6e62('0x3e')];_0x8864c1++){var _0x142aef=_0x4459a2[_0x6e62('0xdb')][_0x8864c1];var _0x483b6e=path[_0x6e62('0xd4')](_0x586660,_0x142aef['basename']);if(fs['existsSync'](_0x483b6e)){_0xad25c6[_0x6e62('0xd7')][_0x6e62('0xe3')]({'name':_0x142aef[_0x6e62('0x1f')],'contentType':_0x142aef[_0x6e62('0x38')],'data':fs[_0x6e62('0xe4')](_0x483b6e)});}}}emlformat['build'](_0xad25c6,function(_0x4c42d8,_0x18c2ca){if(_0x4c42d8)return _0x4f02dd(_0x4c42d8);fs['writeFileSync'](path[_0x6e62('0xd4')](_0x1c1e18,util[_0x6e62('0xd8')]('message%d.eml',_0x421a64)),_0x18c2ca);return _0x50e643(_0x18c2ca);});});})[_0x6e62('0x1b')](function(){return new BPromise(function(_0x5790f8,_0x2a730e){zipdir(_0x1c1e18,{'saveTo':_0x229a87},function(_0x5f5966,_0x3043d9){if(_0x5f5966)return _0x2a730e(_0x5f5966);return _0x5790f8(_0x3043d9);});})[_0x6e62('0x1b')](function(){return new BPromise(function(_0x45cb5a,_0x17438a){rimraf(_0x1c1e18,function(_0x3126a9){if(_0x3126a9)_0x17438a(_0x3126a9);return _0x45cb5a();});});})[_0x6e62('0x1b')](function(){return _0x4eb0f2[_0x6e62('0xe5')](_0x229a87,_0x172256,function(_0xab6cdf){if(!_0xab6cdf)fs[_0x6e62('0xe6')](_0x229a87);});});});}else{return _0x4eb0f2[_0x6e62('0x1d')](0xc8);}})[_0x6e62('0x2d')](handleError(_0x4eb0f2,null));};