385a7454e9362b6da1bd24358be2f0b33cdb54ee
[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 _0xc4aa=['destroy','then','error','stack','name','send','Users','map','fullname','TagIds','split','forEach','Tags','findOne','out','plainBody','-id','trimStart','catch','waiting','talking','total','closed','UserId','unmanaged','index','MailInteraction','rawAttributes','fieldName','type','key','model','filters','intersection','query','attributes','fields','length','nolimit','order','sort','where','pick','select','field','color','tools_tags','from','left_join','users','u.id\x20=\x20ui.UserId','mail_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','mail_accounts','mail_messages','me.MailInteractionId\x20=\x20i.id','it.MailInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','parseSearch','sqlOperator','conditions','find','unreadMessages','value','having','`\x20=\x200','`\x20>\x200','Contact','operator','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','text','start','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','buildExpression','some','compact','isEmpty','MailAccountId','i.MailAccountId\x20IN\x20?','concat','createdAt','parse','$lte','null','`unreadMessages`\x20>\x200','tag','filter','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','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','DESC','t.id\x20IN\x20?','resolve','i.MailAccountId\x20IS\x20NOT\x20NULL','user','agent','getMailAccounts','i.MailAccountId\x20IS\x20NULL','sequelize','toString','keyBy','merge','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.updatedAt','i.closed','i.closedAt','i.attach','i.lastMsgAt','i.lastMsgDirection','i.subject','i.disposition','i.secondDisposition','i.substatus','i.ContactId','i.MailAccountId','i.UserId','c.firstName','Contact.firstName','Contact.lastName','c.email','Contact.email','c.phone','c.mobile','Contact.fax','Owner.fullname','o.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.MailInteractionId\x20IN\x20?','groupBy','Setting','enableEmailPreview','all','show','params','keys','includeAll','include','options','create','body','describe','addMessage','MailMessage','ids','omit','getMessages','MailInteractionId','$gte','format','YYYY-MM-DD\x20HH:mm:ss','findAll','inlineCss','true','rows','addTags','setTags','spread','mailInteractionTags:save','removeTags','unix','join','root','server','files','tmp','transcript-%d-%s.zip','attachments','push','Attachment','Attachments','Messages','bcc','subject','get','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','basename','existsSync','readFileSync','build','writeFileSync','download','unlinkSync','eml-format','rimraf','zip-dir','moment','bluebird','util','juice','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/logger','api','../../config/environment','../../mysqldb','defaults','redis','localhost','./mailInteraction.socket','register','sendStatus','end','status','json','offset','undefined','limit','count','set','update'];(function(_0x599d7f,_0xc586e8){var _0x3346d3=function(_0x56b820){while(--_0x56b820){_0x599d7f['push'](_0x599d7f['shift']());}};_0x3346d3(++_0xc586e8);}(_0xc4aa,0x1b7));var _0xac4a=function(_0x46698a,_0x8de1e4){_0x46698a=_0x46698a-0x0;var _0x356db0=_0xc4aa[_0x46698a];return _0x356db0;};'use strict';var emlformat=require(_0xac4a('0x0'));var rimraf=require(_0xac4a('0x1'));var zipdir=require(_0xac4a('0x2'));var moment=require(_0xac4a('0x3'));var BPromise=require(_0xac4a('0x4'));var util=require(_0xac4a('0x5'));var path=require('path');var fs=require('fs');var _=require('lodash');var squel=require('squel');var juice=require(_0xac4a('0x6'));var Redis=require(_0xac4a('0x7'));var qs=require(_0xac4a('0x8'));var as=require(_0xac4a('0x9'));var logger=require(_0xac4a('0xa'))(_0xac4a('0xb'));var config=require(_0xac4a('0xc'));var db=require(_0xac4a('0xd'))['db'];var htmlEntities=require('html-entities');config['redis']=_[_0xac4a('0xe')](config[_0xac4a('0xf')],{'host':_0xac4a('0x10'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xac4a('0xf')]));require(_0xac4a('0x11'))[_0xac4a('0x12')](socket);function respondWithStatusCode(_0x4d4acc,_0x30135d){_0x30135d=_0x30135d||0xcc;return function(_0x488e3c){if(_0x488e3c){return _0x4d4acc[_0xac4a('0x13')](_0x30135d);}return _0x4d4acc['status'](_0x30135d)[_0xac4a('0x14')]();};}function respondWithResult(_0x2a0776,_0x24291d){_0x24291d=_0x24291d||0xc8;return function(_0x5e16aa){if(_0x5e16aa){return _0x2a0776[_0xac4a('0x15')](_0x24291d)[_0xac4a('0x16')](_0x5e16aa);}};}function respondWithFilteredResult(_0x247b78,_0x6e00d4){return function(_0x1b4313){if(_0x1b4313){var _0x3b71c0=typeof _0x6e00d4[_0xac4a('0x17')]===_0xac4a('0x18')&&typeof _0x6e00d4[_0xac4a('0x19')]===_0xac4a('0x18');var _0x11e101=_0x1b4313[_0xac4a('0x1a')];var _0x4a2119=_0x3b71c0?0x0:_0x6e00d4[_0xac4a('0x17')];var _0x34d797=_0x3b71c0?_0x1b4313[_0xac4a('0x1a')]:_0x6e00d4[_0xac4a('0x17')]+_0x6e00d4[_0xac4a('0x19')];var _0x387a54;if(_0x34d797>=_0x11e101){_0x34d797=_0x11e101;_0x387a54=0xc8;}else{_0x387a54=0xce;}_0x247b78[_0xac4a('0x15')](_0x387a54);return _0x247b78[_0xac4a('0x1b')]('Content-Range',_0x4a2119+'-'+_0x34d797+'/'+_0x11e101)['json'](_0x1b4313);}return null;};}function saveUpdates(_0x21a729){return function(_0x13c8eb){if(_0x13c8eb){return _0x13c8eb[_0xac4a('0x1c')](_0x21a729)['then'](function(_0x39e83e){return _0x39e83e;});}return null;};}function removeEntity(_0x15c223){return function(_0x3752e4){if(_0x3752e4){return _0x3752e4[_0xac4a('0x1d')]()[_0xac4a('0x1e')](function(){_0x15c223[_0xac4a('0x15')](0xcc)[_0xac4a('0x14')]();});}};}function handleEntityNotFound(_0x3ca790){return function(_0x534092){if(!_0x534092){_0x3ca790[_0xac4a('0x13')](0x194);}return _0x534092;};}function handleError(_0x3204ad,_0x599787){_0x599787=_0x599787||0x1f4;return function(_0x3d7ce0){logger[_0xac4a('0x1f')](_0x3d7ce0[_0xac4a('0x20')]);if(_0x3d7ce0[_0xac4a('0x21')]){delete _0x3d7ce0['name'];}_0x3204ad[_0xac4a('0x15')](_0x599787)[_0xac4a('0x22')](_0x3d7ce0);};}function getInteractionUsers(_0x15435c,_0x412494){return new BPromise(function(_0x594f36,_0x2b0dc2){try{if(_0x412494[_0x15435c['id']]){_0x15435c[_0xac4a('0x23')]=_[_0xac4a('0x24')](_0x412494[_0x15435c['id']],function(_0x3e2c69){return{'id':_0x3e2c69['id'],'fullname':_0x3e2c69[_0xac4a('0x25')]};});}}catch(_0x1d0539){_0x2b0dc2(_0x1d0539);}_0x594f36(_0x15435c);});}function getInteractionTags(_0x215a31,_0x14832b){return new BPromise(function(_0x472c57,_0x1c13dc){try{if(_0x215a31[_0xac4a('0x26')]){_0x215a31['Tags']=[];_0x215a31[_0xac4a('0x26')][_0xac4a('0x27')](',')[_0xac4a('0x28')](function(_0x2772fe){_0x215a31[_0xac4a('0x29')]['push'](_0x14832b[_0x2772fe]);});}delete _0x215a31['TagIds'];}catch(_0xdb7e){_0x1c13dc(_0xdb7e);}_0x472c57(_0x215a31);});}function getLastMessageText(_0x7a948b){return new BPromise(function(_0x1f12d5,_0x546b65){return db['MailMessage'][_0xac4a('0x2a')]({'where':{'$and':[{'MailInteractionId':_0x7a948b['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':_0xac4a('0x2b')},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':[_0xac4a('0x2c')],'order':_0xac4a('0x2d'),'raw':!![]})[_0xac4a('0x1e')](function(_0x53d3a5){if(_0x53d3a5&&_0x53d3a5[_0xac4a('0x2c')]){_0x7a948b['lastMsgText']=_[_0xac4a('0x2e')](_0x53d3a5['plainBody']);}_0x1f12d5(_0x7a948b);})[_0xac4a('0x2f')](function(_0xfbe355){_0x546b65(_0xfbe355);});});}function updateMailInteraction(_0x31501b,_0x228aa7,_0x34577f,_0x61e552){return new BPromise(function(_0xbd4591,_0x1f13f3){return getInteractionUsers(_0x31501b,_0x34577f)[_0xac4a('0x1e')](function(_0xfd7c16){return getInteractionTags(_0xfd7c16,_0x228aa7);})[_0xac4a('0x1e')](function(_0x1634df){return getStateInteraction(_0x1634df);})[_0xac4a('0x1e')](function(_0x1a9d4e){if(_0x61e552){_0xbd4591(getLastMessageText(_0x1a9d4e));}else{_0xbd4591(_0x1a9d4e);}})['catch'](function(_0x30442d){_0x1f13f3(_0x30442d);});});}function getStateInteraction(_0x1c41fb){return new BPromise(function(_0x5a4e2b){_0x1c41fb[_0xac4a('0x30')]=0x0;_0x1c41fb[_0xac4a('0x31')]=0x0;_0x1c41fb['answered']=0x0;_0x1c41fb['unmanaged']=0x0;_0x1c41fb[_0xac4a('0x32')]=0x0;if(!_0x1c41fb[_0xac4a('0x33')]&&!_0x1c41fb[_0xac4a('0x34')]){_0x1c41fb[_0xac4a('0x30')]+=0x1;}if(!_0x1c41fb['closed']&&_0x1c41fb[_0xac4a('0x34')]){_0x1c41fb[_0xac4a('0x31')]+=0x1;if(_0x1c41fb['waiting']){_0x1c41fb[_0xac4a('0x30')]-=0x1;}}if(_0x1c41fb[_0xac4a('0x33')]&&_0x1c41fb[_0xac4a('0x34')]){_0x1c41fb['answered']+=0x1;if(_0x1c41fb[_0xac4a('0x31')]){_0x1c41fb[_0xac4a('0x31')]-=0x1;}}if(_0x1c41fb[_0xac4a('0x33')]&&!_0x1c41fb['UserId']){_0x1c41fb[_0xac4a('0x35')]+=0x1;if(_0x1c41fb[_0xac4a('0x30')]){_0x1c41fb['waiting']-=0x1;}}_0x1c41fb['total']+=0x1;_0x5a4e2b(_0x1c41fb);});}exports[_0xac4a('0x36')]=function(_0x5e0926,_0x50e03e){var _0x5f0af0={},_0x4fee3a={},_0x41b757={'count':0x0,'rows':[]};var _0x2bf8e8=_[_0xac4a('0x24')](db[_0xac4a('0x37')][_0xac4a('0x38')],function(_0x415f31){return{'name':_0x415f31[_0xac4a('0x39')],'type':_0x415f31[_0xac4a('0x3a')][_0xac4a('0x3b')]};});_0x4fee3a[_0xac4a('0x3c')]=_[_0xac4a('0x24')](_0x2bf8e8,_0xac4a('0x21'));_0x4fee3a['query']=_['keys'](_0x5e0926['query']);_0x4fee3a[_0xac4a('0x3d')]=_[_0xac4a('0x3e')](_0x4fee3a[_0xac4a('0x3c')],_0x4fee3a[_0xac4a('0x3f')]);_0x5f0af0[_0xac4a('0x40')]=_[_0xac4a('0x3e')](_0x4fee3a[_0xac4a('0x3c')],qs[_0xac4a('0x41')](_0x5e0926[_0xac4a('0x3f')][_0xac4a('0x41')]));_0x5f0af0['attributes']=_0x5f0af0[_0xac4a('0x40')][_0xac4a('0x42')]?_0x5f0af0[_0xac4a('0x40')]:_0x4fee3a[_0xac4a('0x3c')];if(!_0x5e0926[_0xac4a('0x3f')]['hasOwnProperty'](_0xac4a('0x43'))){_0x5f0af0[_0xac4a('0x19')]=qs['limit'](_0x5e0926[_0xac4a('0x3f')]['limit']);_0x5f0af0[_0xac4a('0x17')]=qs[_0xac4a('0x17')](_0x5e0926[_0xac4a('0x3f')][_0xac4a('0x17')]);}_0x5f0af0[_0xac4a('0x44')]=qs[_0xac4a('0x45')](_0x5e0926[_0xac4a('0x3f')][_0xac4a('0x45')]);_0x5f0af0[_0xac4a('0x46')]=qs[_0xac4a('0x3d')](_[_0xac4a('0x47')](_0x5e0926[_0xac4a('0x3f')],_0x4fee3a['filters']),_0x2bf8e8);var _0x1646ea=[];var _0x41d11d=squel[_0xac4a('0x48')]()['field']('id')[_0xac4a('0x49')](_0xac4a('0x21'))['field'](_0xac4a('0x4a'))['from'](_0xac4a('0x4b'));var _0xe620f6=squel[_0xac4a('0x48')]()['field']('u.id')[_0xac4a('0x49')]('u.fullname')[_0xac4a('0x49')]('ui.MailInteractionId')[_0xac4a('0x4c')]('user_has_mail_interactions','ui')[_0xac4a('0x4d')](_0xac4a('0x4e'),'u',_0xac4a('0x4f'));var _0x1c8c39=squel['select']()[_0xac4a('0x4c')](_0xac4a('0x50'),'i')[_0xac4a('0x4d')](_0xac4a('0x51'),'c',_0xac4a('0x52'))[_0xac4a('0x4d')](_0xac4a('0x4e'),'o','o.id\x20=\x20i.UserId')[_0xac4a('0x4d')](_0xac4a('0x53'),'a','a.id\x20=\x20i.MailAccountId')[_0xac4a('0x4d')](_0xac4a('0x54'),'me',_0xac4a('0x55'))[_0xac4a('0x4d')]('mail_interaction_has_tags','it',_0xac4a('0x56'))[_0xac4a('0x4d')](_0xac4a('0x4b'),'t',_0xac4a('0x57'));var _0x890910=squel['expr']();var _0x179373=[];var _0x564b10=squel[_0xac4a('0x58')]();var _0x2c04af;if(_0x5e0926['query']['search']){_0x2c04af=as[_0xac4a('0x59')](_0x5e0926[_0xac4a('0x3f')]['search']);var _0x18d29c=_0x2c04af[_0xac4a('0x5a')];for(var _0x26b582=0x0;_0x26b582<_0x2c04af[_0xac4a('0x5b')]['length'];_0x26b582++){var _0x3057d6=_0x2c04af[_0xac4a('0x5b')][_0x26b582];var _0xb43fdb='i';var _0xb5897b=_[_0xac4a('0x5c')](_0x2bf8e8,[_0xac4a('0x21'),_0x3057d6[_0xac4a('0x49')]]);if(!_0xb5897b){switch(_0x3057d6['field']){case _0xac4a('0x5d'):if(_0x3057d6[_0xac4a('0x5e')]==0x1){_0x1c8c39[_0xac4a('0x5f')]('`'+_0x3057d6[_0xac4a('0x49')]+_0xac4a('0x60'));}else{_0x1c8c39[_0xac4a('0x5f')]('`'+_0x3057d6[_0xac4a('0x49')]+_0xac4a('0x61'));}break;case _0xac4a('0x62'):if(_0x3057d6[_0xac4a('0x63')]===_0xac4a('0x64')){if(_0x3057d6[_0xac4a('0x5e')][_0xac4a('0x27')]('\x20')[_0xac4a('0x42')]>0x1){_0x890910[_0x18d29c](_0xac4a('0x65'),qs[_0xac4a('0x66')](_0x3057d6['value']),null);}else{var _0x13a577='%'+_0x3057d6['value']+'%';_0x890910[_0x18d29c](_0xac4a('0x67'),_0x13a577,_0x13a577,_0x13a577);}}else{_0xb5897b=_['find'](_0x2bf8e8,[_0xac4a('0x21'),'ContactId']);_0x3057d6[_0xac4a('0x49')]='ContactId';_0x11bb54=as['buildExpression'](_0xb43fdb,_0xb5897b[_0xac4a('0x3a')],_0x3057d6);_0x890910[_0x18d29c](_0x11bb54[_0xac4a('0x68')],_0x11bb54[_0xac4a('0x5e')][_0xac4a('0x69')],_0x11bb54[_0xac4a('0x5e')][_0xac4a('0x14')]);}break;case'Tag':var _0x1e1ffa=_0x3057d6['value'][_0xac4a('0x27')](',')['map'](function(_0x347880){return Number(_0x347880);});_0x1e1ffa[_0xac4a('0x28')](function(_0x3da7e7){_0x564b10['or'](_0xac4a('0x6a'),'%,'+_0x3da7e7+',%');});_0x179373=_[_0xac4a('0x6b')](_0x179373,_0x1e1ffa);break;case _0xac4a('0x6c'):if(_0x3057d6[_0xac4a('0x63')]===_0xac4a('0x64')){_0x890910[_0x18d29c](_0xac4a('0x6d'),'%'+_0x3057d6[_0xac4a('0x5e')]+'%',null);}else{_0xb5897b=_[_0xac4a('0x5c')](_0x2bf8e8,[_0xac4a('0x21'),_0xac4a('0x34')]);_0x3057d6[_0xac4a('0x49')]=_0xac4a('0x34');_0x11bb54=as[_0xac4a('0x6e')](_0xb43fdb,_0xb5897b[_0xac4a('0x3a')],_0x3057d6);_0x890910[_0x18d29c](_0x11bb54['text'],_0x11bb54[_0xac4a('0x5e')][_0xac4a('0x69')],_0x11bb54['value'][_0xac4a('0x14')]);}break;case _0xac4a('0x2c'):_0x11bb54=as[_0xac4a('0x6e')]('me',null,_0x3057d6);_0x890910[_0x18d29c](_0x11bb54[_0xac4a('0x68')],_0x11bb54[_0xac4a('0x5e')]['start'],_0x11bb54['value'][_0xac4a('0x14')]);break;}}else{var _0x11bb54=as[_0xac4a('0x6e')](_0xb43fdb,_0xb5897b[_0xac4a('0x3a')],_0x3057d6);_0x890910[_0x18d29c](_0x11bb54[_0xac4a('0x68')],_0x11bb54[_0xac4a('0x5e')][_0xac4a('0x69')],_0x11bb54[_0xac4a('0x5e')][_0xac4a('0x14')]);}}}else{var _0x295f21=_(_0x5e0926[_0xac4a('0x3f')])['keys']()['map'](function(_0x1ee825){return _[_0xac4a('0x6f')](_0x2bf8e8,[_0xac4a('0x21'),_0x1ee825])?_0x1ee825:undefined;})[_0xac4a('0x70')]()[_0xac4a('0x5e')]();if(!_[_0xac4a('0x71')](_0x295f21)){_0x295f21[_0xac4a('0x28')](function(_0x34e42f){if(_0x34e42f===_0xac4a('0x72')){_0x1c8c39[_0xac4a('0x46')](_0xac4a('0x73'),[][_0xac4a('0x74')](_0x5e0926['query'][_0x34e42f]));}else if(_0x34e42f===_0xac4a('0x75')){var _0xc74ce8=JSON[_0xac4a('0x76')](_0x5e0926[_0xac4a('0x3f')][_0x34e42f])['$gte'];var _0xc61e94=JSON['parse'](_0x5e0926[_0xac4a('0x3f')][_0x34e42f])[_0xac4a('0x77')];_0x1c8c39['where']('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0xc74ce8,_0xc61e94);}else{if(_0x5e0926[_0xac4a('0x3f')][_0x34e42f]===_0xac4a('0x78')){_0x1c8c39[_0xac4a('0x46')]('i.'+_0x34e42f+'\x20IS\x20NULL');}else{_0x1c8c39[_0xac4a('0x46')]('i.'+_0x34e42f+'\x20=\x20?',_0x5e0926[_0xac4a('0x3f')][_0x34e42f]);}}});}if(_0x5e0926['query']['read']){if(_0x5e0926[_0xac4a('0x3f')]['read']==0x1){_0x1c8c39[_0xac4a('0x5f')]('`unreadMessages`\x20=\x200');}else{_0x1c8c39[_0xac4a('0x5f')](_0xac4a('0x79'));}}if(_0x5e0926['query'][_0xac4a('0x7a')]){_0x179373=_['isArray'](_0x5e0926[_0xac4a('0x3f')][_0xac4a('0x7a')])?_0x5e0926['query'][_0xac4a('0x7a')]:new Array(_0x5e0926['query']['tag']);_0x179373[_0xac4a('0x28')](function(_0x4e3129){_0x564b10['or'](_0xac4a('0x6a'),'%,'+_0x4e3129+',%');});}if(_0x5e0926['query']['filter']){var _0x1588e2=_0x5e0926[_0xac4a('0x3f')][_0xac4a('0x7b')]['replace']('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(qs[_0xac4a('0x7c')](_0x1588e2)){_0x890910['or'](_0xac4a('0x7d'),_0x1588e2+'%');}else if(qs['isEmail'](_0x1588e2)){_0x890910['or']('c.email\x20LIKE\x20?',_0x1588e2+'%');}else{_0x890910['or'](_0xac4a('0x7e'),qs[_0xac4a('0x66')](_0x1588e2))['or'](_0xac4a('0x7f'),qs[_0xac4a('0x66')](_0x1588e2));}}}_0x1c8c39[_0xac4a('0x46')](_0x890910);_0x1c8c39[_0xac4a('0x80')](_0xac4a('0x81'));var _0x13833b={'type':db[_0xac4a('0x82')]['QueryTypes'][_0xac4a('0x83')],'raw':!![]};var _0x440dc4=_0x1c8c39[_0xac4a('0x84')]();_0x440dc4['field'](_0xac4a('0x81'));_0x440dc4[_0xac4a('0x49')](_0xac4a('0x85'),_0xac4a('0x5d'));if(_0x5f0af0[_0xac4a('0x44')]){_0x5f0af0['order'][_0xac4a('0x28')](function(_0x19ce24){var _0xc9d040=_0x19ce24[0x0]===_0xac4a('0x86')?_0x19ce24[0x0]:'i.'+_0x19ce24[0x0];_0x1c8c39[_0xac4a('0x44')](_0xc9d040,_0x19ce24[0x1]===_0xac4a('0x87')?![]:!![]);});}if(!_[_0xac4a('0x71')](_0x179373)){_0x1c8c39['having'](_0x564b10);_0x440dc4[_0xac4a('0x46')](_0xac4a('0x88'),_0x179373);}BPromise[_0xac4a('0x89')]()[_0xac4a('0x1e')](function(){if(!_0x2c04af){if(_0x5e0926[_0xac4a('0x3f')][_0xac4a('0x72')])return;_0x440dc4['where'](_0xac4a('0x8a'));_0x1c8c39[_0xac4a('0x46')](_0xac4a('0x8a'));return;}if(_0x5e0926[_0xac4a('0x8b')]['role']!==_0xac4a('0x8c'))return;return _0x5e0926['user'][_0xac4a('0x8d')]({'attributes':['id'],'raw':!![]})[_0xac4a('0x1e')](function(_0x53a371){if(_['isEmpty'](_0x53a371)){_0x440dc4[_0xac4a('0x46')](_0xac4a('0x8e'));_0x1c8c39[_0xac4a('0x46')]('i.MailAccountId\x20IS\x20NULL');}else{_0x440dc4[_0xac4a('0x46')]('i.MailAccountId\x20IN\x20?',_[_0xac4a('0x24')](_0x53a371,'id'));_0x1c8c39[_0xac4a('0x46')](_0xac4a('0x73'),_[_0xac4a('0x24')](_0x53a371,'id'));}});})[_0xac4a('0x1e')](function(){if(_0x5e0926['user']['role']===_0xac4a('0x8c')&&!_0x2c04af&&!_0x5e0926[_0xac4a('0x3f')][_0xac4a('0x72')])return[];return db[_0xac4a('0x8f')][_0xac4a('0x3f')](_0x440dc4[_0xac4a('0x90')](),_0x13833b);})[_0xac4a('0x1e')](function(_0x186410){_0x41b757['count']=_0x186410['length'];if(_0x41b757[_0xac4a('0x1a')]===0x0)return[];return db[_0xac4a('0x8f')][_0xac4a('0x3f')](_0x41d11d[_0xac4a('0x90')](),_0x13833b)[_0xac4a('0x1e')](function(_0x2ea4a4){_0x1646ea=_[_0xac4a('0x91')](_0x2ea4a4,'id');_0x13833b=_[_0xac4a('0x92')](_0x13833b,{'model':db['MailInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x5e0926['query'][_0xac4a('0x41')]){_0x5f0af0[_0xac4a('0x40')][_0xac4a('0x28')](function(_0x371e06){_0x1c8c39[_0xac4a('0x49')]('i.'+_0x371e06);});}else{_0x1c8c39[_0xac4a('0x49')](_0xac4a('0x85'),'unreadMessages');_0x1c8c39[_0xac4a('0x49')](_0xac4a('0x93'),_0xac4a('0x94'));_0x1c8c39['field'](_0xac4a('0x95'),_0xac4a('0x96'));_0x1c8c39[_0xac4a('0x49')](_0xac4a('0x97'),_0xac4a('0x86'));_0x1c8c39[_0xac4a('0x49')](_0xac4a('0x81'));_0x1c8c39[_0xac4a('0x49')](_0xac4a('0x98'));_0x1c8c39['field'](_0xac4a('0x99'));_0x1c8c39['field'](_0xac4a('0x9a'));_0x1c8c39[_0xac4a('0x49')](_0xac4a('0x9b'));_0x1c8c39[_0xac4a('0x49')](_0xac4a('0x9c'));_0x1c8c39[_0xac4a('0x49')](_0xac4a('0x9d'));_0x1c8c39['field'](_0xac4a('0x9e'));_0x1c8c39[_0xac4a('0x49')](_0xac4a('0x9f'));_0x1c8c39[_0xac4a('0x49')](_0xac4a('0xa0'));_0x1c8c39['field'](_0xac4a('0xa1'));_0x1c8c39[_0xac4a('0x49')]('i.thirdDisposition');_0x1c8c39['field'](_0xac4a('0xa2'));_0x1c8c39[_0xac4a('0x49')]('i.to');_0x1c8c39[_0xac4a('0x49')](_0xac4a('0xa3'));_0x1c8c39[_0xac4a('0x49')](_0xac4a('0xa4'));_0x1c8c39[_0xac4a('0x49')](_0xac4a('0xa5'));_0x1c8c39['field'](_0xac4a('0xa6'),_0xac4a('0xa7'));_0x1c8c39[_0xac4a('0x49')]('c.lastName',_0xac4a('0xa8'));_0x1c8c39[_0xac4a('0x49')](_0xac4a('0xa9'),_0xac4a('0xaa'));_0x1c8c39[_0xac4a('0x49')](_0xac4a('0xab'),'Contact.phone');_0x1c8c39[_0xac4a('0x49')](_0xac4a('0xac'),'Contact.mobile');_0x1c8c39[_0xac4a('0x49')]('c.fax',_0xac4a('0xad'));_0x1c8c39[_0xac4a('0x49')]('o.fullname',_0xac4a('0xae'));_0x1c8c39['field'](_0xac4a('0xaf'),'Owner.internal');_0x1c8c39[_0xac4a('0x49')](_0xac4a('0xb0'),_0xac4a('0x26'));}if(_0x5f0af0[_0xac4a('0x19')])_0x1c8c39[_0xac4a('0x19')](_0x5f0af0[_0xac4a('0x19')]);if(_0x5f0af0[_0xac4a('0x17')])_0x1c8c39[_0xac4a('0x17')](_0x5f0af0[_0xac4a('0x17')]);return db[_0xac4a('0x8f')][_0xac4a('0x3f')](_0x1c8c39[_0xac4a('0x90')](),_0x13833b);})[_0xac4a('0x1e')](function(_0x4217df){if(_0x4217df['length']>0x0)_0xe620f6[_0xac4a('0x46')](_0xac4a('0xb1'),_['map'](_0x4217df,'id'));return db[_0xac4a('0x8f')][_0xac4a('0x3f')](_0xe620f6[_0xac4a('0x90')](),_0x13833b)[_0xac4a('0x1e')](function(_0x3fea6e){var _0x5d5bb3=_[_0xac4a('0xb2')](_0x3fea6e,'MailInteractionId');var _0x46d3d9=[];return db[_0xac4a('0xb3')][_0xac4a('0x2a')]({'attributes':[_0xac4a('0xb4')],'raw':!![]})['then'](function(_0x1adf17){var _0x55866d=_0x1adf17[_0xac4a('0xb4')];_0x4217df[_0xac4a('0x28')](function(_0x279950){_0x46d3d9['push'](updateMailInteraction(_0x279950,_0x1646ea,_0x5d5bb3,_0x55866d));});return BPromise[_0xac4a('0xb5')](_0x46d3d9);});});});})[_0xac4a('0x1e')](function(_0x127ede){_0x41b757['rows']=_0x127ede;return _0x41b757;})[_0xac4a('0x1e')](respondWithFilteredResult(_0x50e03e,_0x5f0af0))[_0xac4a('0x2f')](handleError(_0x50e03e,null));};exports[_0xac4a('0xb6')]=function(_0x2d3a3b,_0x25cd36){var _0x467461={'raw':![],'where':{'id':_0x2d3a3b[_0xac4a('0xb7')]['id']}},_0x3b4183={};_0x3b4183['model']=_[_0xac4a('0xb8')](db['MailInteraction']['rawAttributes']);_0x3b4183['query']=_['keys'](_0x2d3a3b['query']);_0x3b4183[_0xac4a('0x3d')]=_[_0xac4a('0x3e')](_0x3b4183[_0xac4a('0x3c')],_0x3b4183[_0xac4a('0x3f')]);_0x467461[_0xac4a('0x40')]=_['intersection'](_0x3b4183[_0xac4a('0x3c')],qs[_0xac4a('0x41')](_0x2d3a3b[_0xac4a('0x3f')][_0xac4a('0x41')]));_0x467461[_0xac4a('0x40')]=_0x467461[_0xac4a('0x40')][_0xac4a('0x42')]?_0x467461[_0xac4a('0x40')]:_0x3b4183['model'];if(_0x2d3a3b[_0xac4a('0x3f')][_0xac4a('0xb9')]){_0x467461[_0xac4a('0xba')]=[{'all':!![]}];}_0x467461=_[_0xac4a('0x92')]({},_0x467461,_0x2d3a3b[_0xac4a('0xbb')]);return db[_0xac4a('0x37')][_0xac4a('0x5c')](_0x467461)['then'](handleEntityNotFound(_0x25cd36,null))['then'](respondWithResult(_0x25cd36,null))[_0xac4a('0x2f')](handleError(_0x25cd36,null));};exports[_0xac4a('0xbc')]=function(_0x51993a,_0x2d8b23){return db[_0xac4a('0x37')]['create'](_0x51993a['body'],{})[_0xac4a('0x1e')](respondWithResult(_0x2d8b23,0xc9))[_0xac4a('0x2f')](handleError(_0x2d8b23,null));};exports[_0xac4a('0x1c')]=function(_0x8b988c,_0x1741f5){if(_0x8b988c['body']['id']){delete _0x8b988c[_0xac4a('0xbd')]['id'];}return db['MailInteraction']['find']({'where':{'id':_0x8b988c['params']['id']}})[_0xac4a('0x1e')](handleEntityNotFound(_0x1741f5,null))[_0xac4a('0x1e')](saveUpdates(_0x8b988c[_0xac4a('0xbd')],null))[_0xac4a('0x1e')](respondWithResult(_0x1741f5,null))[_0xac4a('0x2f')](handleError(_0x1741f5,null));};exports[_0xac4a('0x1d')]=function(_0xcad25d,_0x43f82b){return db['MailInteraction']['find']({'where':{'id':_0xcad25d['params']['id']}})[_0xac4a('0x1e')](handleEntityNotFound(_0x43f82b,null))[_0xac4a('0x1e')](removeEntity(_0x43f82b,null))[_0xac4a('0x2f')](handleError(_0x43f82b,null));};exports[_0xac4a('0xbe')]=function(_0x214d74,_0xcd140e){return db[_0xac4a('0x37')][_0xac4a('0xbe')]()[_0xac4a('0x1e')](respondWithResult(_0xcd140e,null))[_0xac4a('0x2f')](handleError(_0xcd140e,null));};exports[_0xac4a('0xbf')]=function(_0x37cb49,_0xe0fd57){return db[_0xac4a('0xc0')][_0xac4a('0x5c')]({'where':{'id':_0x37cb49[_0xac4a('0xb7')]['id']}})[_0xac4a('0x1e')](handleEntityNotFound(_0xe0fd57,null))[_0xac4a('0x1e')](function(_0x41cdb5){if(_0x41cdb5){return _0x41cdb5[_0xac4a('0xbf')](_0x37cb49[_0xac4a('0xbd')][_0xac4a('0xc1')],_[_0xac4a('0xc2')](_0x37cb49['body'],[_0xac4a('0xc1'),'id'])||{});}})[_0xac4a('0x1e')](respondWithResult(_0xe0fd57,null))[_0xac4a('0x2f')](handleError(_0xe0fd57,null));};exports[_0xac4a('0xc3')]=function(_0x237312,_0x31afd2){var _0x2652f5={'raw':![],'where':{}};var _0x2f108d={};var _0x58b69f={'count':0x0,'rows':[]};return db['MailInteraction'][_0xac4a('0x2a')]({'where':{'id':_0x237312[_0xac4a('0xb7')]['id']}})[_0xac4a('0x1e')](handleEntityNotFound(_0x31afd2,null))['then'](function(_0x4e0eeb){if(_0x4e0eeb){_0x2f108d['model']=_[_0xac4a('0xb8')](db['MailMessage'][_0xac4a('0x38')]);_0x2f108d[_0xac4a('0x3f')]=_['keys'](_0x237312[_0xac4a('0x3f')]);_0x2f108d['filters']=_[_0xac4a('0x3e')](_0x2f108d[_0xac4a('0x3c')],_0x2f108d[_0xac4a('0x3f')]);_0x2652f5[_0xac4a('0x40')]=_[_0xac4a('0x3e')](_0x2f108d[_0xac4a('0x3c')],qs['fields'](_0x237312[_0xac4a('0x3f')][_0xac4a('0x41')]));_0x2652f5[_0xac4a('0x40')]=_0x2652f5['attributes'][_0xac4a('0x42')]?_0x2652f5[_0xac4a('0x40')]:_0x2f108d[_0xac4a('0x3c')];if(!_0x237312[_0xac4a('0x3f')]['hasOwnProperty'](_0xac4a('0x43'))){_0x2652f5[_0xac4a('0x19')]=qs[_0xac4a('0x19')](_0x237312[_0xac4a('0x3f')][_0xac4a('0x19')]);_0x2652f5[_0xac4a('0x17')]=qs['offset'](_0x237312['query'][_0xac4a('0x17')]);}_0x2652f5[_0xac4a('0x44')]=qs[_0xac4a('0x45')](_0x237312[_0xac4a('0x3f')][_0xac4a('0x45')]);_0x2652f5[_0xac4a('0x46')]=qs['filters'](_[_0xac4a('0x47')](_0x237312['query'],_0x2f108d[_0xac4a('0x3d')]));_0x2652f5['where'][_0xac4a('0xc4')]=_0x4e0eeb['id'];if(_0x237312[_0xac4a('0x3f')][_0xac4a('0x7b')]){_0x2652f5[_0xac4a('0x46')]=_['merge'](_0x2652f5[_0xac4a('0x46')],{'$or':_[_0xac4a('0x24')](_0x2652f5[_0xac4a('0x40')],function(_0x45dff4){var _0x3692cb={};_0x3692cb[_0x45dff4]={'$like':'%'+_0x237312['query'][_0xac4a('0x7b')]+'%'};return _0x3692cb;})});}if(_0x237312[_0xac4a('0x3f')][_0xac4a('0xc5')]){var _0x33a9b7=_0x237312[_0xac4a('0x3f')]['$gte'][_0xac4a('0x27')](',');var _0x4f8908={};_0x4f8908[_0x33a9b7[0x0]]={'$gte':moment(_0x33a9b7[0x1])[_0xac4a('0xc6')](_0xac4a('0xc7'))};_0x2652f5[_0xac4a('0x46')]=_['merge'](_0x2652f5['where'],_0x4f8908);}_0x2652f5=_['merge']({},_0x2652f5,_0x237312['options']);return db[_0xac4a('0xc0')][_0xac4a('0x1a')]({'where':_0x2652f5[_0xac4a('0x46')]})[_0xac4a('0x1e')](function(_0xa8b5bb){_0x58b69f['count']=_0xa8b5bb;if(_0x237312[_0xac4a('0x3f')][_0xac4a('0xb9')]){_0x2652f5['include']=[{'all':!![]}];}return db[_0xac4a('0xc0')][_0xac4a('0xc8')](_0x2652f5);})[_0xac4a('0x1e')](function(_0x512111){if(_0x237312[_0xac4a('0x3f')][_0xac4a('0xc9')]===_0xac4a('0xca')){for(var _0x1b88a7=0x0;_0x1b88a7<_0x512111[_0xac4a('0x42')];_0x1b88a7++){_0x512111[_0x1b88a7][_0xac4a('0xbd')]=juice(_0x512111[_0x1b88a7][_0xac4a('0xbd')]);}}_0x58b69f[_0xac4a('0xcb')]=_0x512111;return _0x58b69f;});}})[_0xac4a('0x1e')](respondWithFilteredResult(_0x31afd2,_0x2652f5))['catch'](handleError(_0x31afd2,null));};exports[_0xac4a('0xcc')]=function(_0xbdae39,_0x579181){return db[_0xac4a('0x37')]['find']({'where':{'id':_0xbdae39[_0xac4a('0xb7')]['id']}})[_0xac4a('0x1e')](handleEntityNotFound(_0x579181,null))['then'](function(_0x7506d){if(_0x7506d){return _0x7506d[_0xac4a('0xcd')](_0xbdae39[_0xac4a('0xbd')][_0xac4a('0xc1')],_[_0xac4a('0xc2')](_0xbdae39[_0xac4a('0xbd')],[_0xac4a('0xc1'),'id'])||{})[_0xac4a('0xce')](function(){return db['Tag']['findAll']({'attributes':['id',_0xac4a('0x21'),'color'],'where':{'id':_0xbdae39['body'][_0xac4a('0xc1')]}});})[_0xac4a('0x1e')](function(_0x3254c3){socket['emit'](_0xac4a('0xcf'),{'id':Number(_0xbdae39[_0xac4a('0xb7')]['id']),'tags':_0x3254c3||[]});return{'id':Number(_0xbdae39['params']['id']),'tags':_0x3254c3||[]};});}})['then'](respondWithResult(_0x579181,null))[_0xac4a('0x2f')](handleError(_0x579181,null));};exports[_0xac4a('0xd0')]=function(_0x172fc4,_0x368546){return db['MailInteraction'][_0xac4a('0x5c')]({'where':{'id':_0x172fc4[_0xac4a('0xb7')]['id']}})[_0xac4a('0x1e')](handleEntityNotFound(_0x368546,null))['then'](function(_0x3d9ddc){if(_0x3d9ddc){return _0x3d9ddc[_0xac4a('0xd0')](_0x172fc4[_0xac4a('0x3f')][_0xac4a('0xc1')]);}})[_0xac4a('0x1e')](respondWithStatusCode(_0x368546,null))['catch'](handleError(_0x368546,null));};exports['download']=function(_0x9051e7,_0x3e1be8){var _0x1774e5=moment()[_0xac4a('0xd1')]()[_0xac4a('0x90')]();var _0xcef6af=path[_0xac4a('0xd2')](config[_0xac4a('0xd3')],_0xac4a('0xd4'),_0xac4a('0xd5'),_0xac4a('0xd6'));var _0x5bb7df=path[_0xac4a('0xd2')](config['root'],_0xac4a('0xd4'),'files','attachments');var _0x2376bb=path[_0xac4a('0xd2')](_0xcef6af,_0x1774e5);var _0x25ce44=util[_0xac4a('0xc6')](_0xac4a('0xd7'),_0x9051e7[_0xac4a('0xb7')]['id'],_0x1774e5);var _0xd320da=path[_0xac4a('0xd2')](_0xcef6af,_0x25ce44);var _0x1c337c=[];if(_0x9051e7['query'][_0xac4a('0xd8')]){_0x1c337c[_0xac4a('0xd9')]({'model':db[_0xac4a('0xda')],'as':_0xac4a('0xdb'),'raw':!![]});}var _0x5c0bb8=[{'model':db['MailMessage'],'as':_0xac4a('0xdc'),'attributes':['id',_0xac4a('0xbd'),_0xac4a('0x4c'),'to','cc',_0xac4a('0xdd'),_0xac4a('0xde'),_0xac4a('0x75')],'where':{'secret':![]},'order':qs[_0xac4a('0x45')]('id'),'include':_0x1c337c}];return db[_0xac4a('0x37')][_0xac4a('0x5c')]({'where':{'id':_0x9051e7['params']['id']},'include':_0x5c0bb8})[_0xac4a('0x1e')](handleEntityNotFound(_0x3e1be8,null))[_0xac4a('0x1e')](function(_0x3061f2){if(_0x3061f2&&_0x3061f2[_0xac4a('0xdc')]){var _0x2e2460=_0x3061f2[_0xac4a('0xdf')]({'plain':!![]});fs['mkdirSync'](_0x2376bb);return BPromise['each'](_0x2e2460['Messages'],function(_0x1e235a,_0x321072){var _0x4f5453={'from':_0x1e235a['from'],'to':_0x1e235a['to'],'subject':_0x1e235a[_0xac4a('0xde')],'html':htmlEntities['decode'](_0x1e235a[_0xac4a('0xbd')]),'headers':{'Date':moment(_0x1e235a['createdAt'])[_0xac4a('0xc6')](_0xac4a('0xe0'))},'attachments':[]};if(_0x1e235a['cc']){_0x4f5453[_0xac4a('0xe1')]['Cc']=_0x1e235a['cc'];}if(_0x1e235a['bcc']){_0x4f5453[_0xac4a('0xe1')][_0xac4a('0xe2')]=_0x1e235a['bcc'];}return new BPromise(function(_0x208f15,_0x1ae287){if(_0x1e235a['Attachments']){for(var _0x48a75c=0x0;_0x48a75c<_0x1e235a[_0xac4a('0xdb')][_0xac4a('0x42')];_0x48a75c++){var _0x43df37=_0x1e235a[_0xac4a('0xdb')][_0x48a75c];var _0x367254=path[_0xac4a('0xd2')](_0x5bb7df,_0x43df37[_0xac4a('0xe3')]);if(fs[_0xac4a('0xe4')](_0x367254)){_0x4f5453[_0xac4a('0xd8')][_0xac4a('0xd9')]({'name':_0x43df37[_0xac4a('0x21')],'contentType':_0x43df37[_0xac4a('0x3a')],'data':fs[_0xac4a('0xe5')](_0x367254)});}}}emlformat[_0xac4a('0xe6')](_0x4f5453,function(_0x1d02de,_0x136680){if(_0x1d02de)return _0x1ae287(_0x1d02de);fs[_0xac4a('0xe7')](path['join'](_0x2376bb,util[_0xac4a('0xc6')]('message%d.eml',_0x321072)),_0x136680);return _0x208f15(_0x136680);});});})[_0xac4a('0x1e')](function(){return new BPromise(function(_0x901233,_0x19a6d3){zipdir(_0x2376bb,{'saveTo':_0xd320da},function(_0x442702,_0x23c577){if(_0x442702)return _0x19a6d3(_0x442702);return _0x901233(_0x23c577);});})[_0xac4a('0x1e')](function(){return new BPromise(function(_0x8281c9,_0x5c7b5f){rimraf(_0x2376bb,function(_0x368eae){if(_0x368eae)_0x5c7b5f(_0x368eae);return _0x8281c9();});});})['then'](function(){return _0x3e1be8[_0xac4a('0xe8')](_0xd320da,_0x25ce44,function(_0x9b3caf){if(!_0x9b3caf)fs[_0xac4a('0xe9')](_0xd320da);});});});}else{return _0x3e1be8[_0xac4a('0x13')](0xc8);}})[_0xac4a('0x2f')](handleError(_0x3e1be8,null));};