3fbb6f003ccad15abb39836c4cef372998fb7ea9
[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 _0x0be0=['moment','bluebird','mustache','util','to-csv','ejs','lodash','squel','desk.js','html-to-text','juice','../../components/auth/service','../../components/parsers/qs','../../config/logger','api','../../config/utils','../../config/environment','redis','defaults','localhost','socket.io-emitter','./mailInteraction.socket','register','sendStatus','status','end','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','error','name','send','Users','TagIds','Tags','split','forEach','push','MailMessage','findOne','out','-id','plainBody','catch','index','map','rawAttributes','key','model','query','intersection','fields','attributes','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','select','field','color','from','tools_tags','u.id','u.fullname','user_has_mail_interactions','left_join','users','u.id\x20=\x20ui.UserId','mail_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','a.id\x20=\x20i.MailAccountId','me.MailInteractionId\x20=\x20i.id','mail_interaction_has_tags','it.MailInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','sqlOperator','conditions','find','unreadMessages','`\x20=\x200','having','`\x20>\x200','Contact','operator','$substring','value','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','ContactId','buildExpression','type','text','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','start','some','compact','isEmpty','MailAccountId','i.MailAccountId\x20IN\x20?','concat','createdAt','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','tag','isArray','filter','replace','isNumeric','i.id\x20LIKE\x20?','isEmail','c.email\x20LIKE\x20?','getFullTextValue','MATCH\x20(me.plainBody,\x20me.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','i.id','Sequelize','QueryTypes','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','t.id\x20IN\x20?','resolve','i.MailAccountId\x20IS\x20NOT\x20NULL','user','role','agent','getMailAccounts','i.MailAccountId\x20IS\x20NULL','toString','sequelize','keyBy','merge','MailInteraction','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.closed','i.closedAt','i.attach','i.lastMsgAt','i.lastMsgDirection','i.subject','i.disposition','i.secondDisposition','i.thirdDisposition','i.to','i.ContactId','i.MailAccountId','c.firstName','c.lastName','Contact.lastName','Contact.email','c.phone','Contact.phone','c.mobile','Contact.mobile','c.fax','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.MailInteractionId\x20IN\x20?','MailInteractionId','Setting','enableEmailPreview','all','rows','show','keys','includeAll','include','options','create','body','params','destroy','describe','addMessage','omit','ids','getMessages','format','YYYY-MM-DD\x20HH:mm:ss','inlineCss','true','setTags','spread','Tag','findAll','emit','mailInteractionTags:save','removeTags','download','unix','join','root','server','files','tmp','transcript-%d-%s.zip','attachments','Attachment','Attachments','bcc','subject','Messages','get','mkdirSync','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','writeFileSync','log','err','unlinkSync','eml-format','zip-dir','fast-json-patch','request-promise'];(function(_0x240261,_0x4fe66c){var _0x45c332=function(_0x4f367a){while(--_0x4f367a){_0x240261['push'](_0x240261['shift']());}};_0x45c332(++_0x4fe66c);}(_0x0be0,0x1e4));var _0x00be=function(_0x15bc81,_0x4d4f77){_0x15bc81=_0x15bc81-0x0;var _0x59440e=_0x0be0[_0x15bc81];return _0x59440e;};'use strict';var emlformat=require(_0x00be('0x0'));var rimraf=require('rimraf');var zipdir=require(_0x00be('0x1'));var jsonpatch=require(_0x00be('0x2'));var rp=require(_0x00be('0x3'));var moment=require(_0x00be('0x4'));var BPromise=require(_0x00be('0x5'));var Mustache=require(_0x00be('0x6'));var util=require(_0x00be('0x7'));var path=require('path');var sox=require('sox');var csv=require(_0x00be('0x8'));var ejs=require(_0x00be('0x9'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require(_0x00be('0xa'));var squel=require(_0x00be('0xb'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x00be('0xc'));var toCsv=require(_0x00be('0x8'));var querystring=require('querystring');var Papa=require('papaparse');var htmlToText=require(_0x00be('0xd'));var juice=require(_0x00be('0xe'));var Redis=require('ioredis');var authService=require(_0x00be('0xf'));var qs=require(_0x00be('0x10'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require('../../config/license/hardware');var logger=require(_0x00be('0x11'))(_0x00be('0x12'));var utils=require(_0x00be('0x13'));var config=require(_0x00be('0x14'));var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x00be('0x15')]=_[_0x00be('0x16')](config[_0x00be('0x15')],{'host':_0x00be('0x17'),'port':0x18eb});var socket=require(_0x00be('0x18'))(new Redis(config[_0x00be('0x15')]));require(_0x00be('0x19'))[_0x00be('0x1a')](socket);function respondWithStatusCode(_0x2a2dbe,_0x14b8b3){_0x14b8b3=_0x14b8b3||0xcc;return function(_0x321dc1){if(_0x321dc1){return _0x2a2dbe[_0x00be('0x1b')](_0x14b8b3);}return _0x2a2dbe[_0x00be('0x1c')](_0x14b8b3)[_0x00be('0x1d')]();};}function respondWithResult(_0x59d8ad,_0x1ca855){_0x1ca855=_0x1ca855||0xc8;return function(_0x57ccc5){if(_0x57ccc5){return _0x59d8ad[_0x00be('0x1c')](_0x1ca855)[_0x00be('0x1e')](_0x57ccc5);}};}function respondWithFilteredResult(_0x269163,_0x5e44aa){return function(_0x3a78bf){if(_0x3a78bf){var _0x4ea7fe=typeof _0x5e44aa[_0x00be('0x1f')]===_0x00be('0x20')&&typeof _0x5e44aa[_0x00be('0x21')]===_0x00be('0x20');var _0x1ca475=_0x3a78bf[_0x00be('0x22')];var _0x195858=_0x4ea7fe?0x0:_0x5e44aa[_0x00be('0x1f')];var _0x339733=_0x4ea7fe?_0x3a78bf[_0x00be('0x22')]:_0x5e44aa[_0x00be('0x1f')]+_0x5e44aa[_0x00be('0x21')];var _0x1fade6;if(_0x339733>=_0x1ca475){_0x339733=_0x1ca475;_0x1fade6=0xc8;}else{_0x1fade6=0xce;}_0x269163[_0x00be('0x1c')](_0x1fade6);return _0x269163[_0x00be('0x23')](_0x00be('0x24'),_0x195858+'-'+_0x339733+'/'+_0x1ca475)[_0x00be('0x1e')](_0x3a78bf);}return null;};}function patchUpdates(_0x56dec4){return function(_0x5153f0){try{jsonpatch[_0x00be('0x25')](_0x5153f0,_0x56dec4,!![]);}catch(_0x1b467e){return BPromise['reject'](_0x1b467e);}return _0x5153f0[_0x00be('0x26')]();};}function saveUpdates(_0x9bebfc,_0x1d5047){return function(_0x53f1a3){if(_0x53f1a3){return _0x53f1a3[_0x00be('0x27')](_0x9bebfc)[_0x00be('0x28')](function(_0x5dd872){return _0x5dd872;});}return null;};}function removeEntity(_0x26b87a,_0x517ceb){return function(_0x3e4ec3){if(_0x3e4ec3){return _0x3e4ec3['destroy']()[_0x00be('0x28')](function(){_0x26b87a[_0x00be('0x1c')](0xcc)[_0x00be('0x1d')]();});}};}function handleEntityNotFound(_0x4535a3,_0x40f8b8){return function(_0x38df16){if(!_0x38df16){_0x4535a3[_0x00be('0x1b')](0x194);}return _0x38df16;};}function handleError(_0x1616df,_0x5a6f84){_0x5a6f84=_0x5a6f84||0x1f4;return function(_0x2c619e){logger[_0x00be('0x29')](_0x2c619e['stack']);if(_0x2c619e[_0x00be('0x2a')]){delete _0x2c619e[_0x00be('0x2a')];}_0x1616df['status'](_0x5a6f84)[_0x00be('0x2b')](_0x2c619e);};}function getInteractionUsers(_0x110ba7,_0x2430ca){return new BPromise(function(_0x2ee693,_0xc4c83d){try{if(_0x2430ca[_0x110ba7['id']]){_0x110ba7[_0x00be('0x2c')]=_['map'](_0x2430ca[_0x110ba7['id']],function(_0x17176f){return{'id':_0x17176f['id'],'fullname':_0x17176f['fullname']};});}}catch(_0x3c5b91){_0xc4c83d(_0x3c5b91);}_0x2ee693(_0x110ba7);});}function getInteractionTags(_0x39938e,_0x2a0e0e){return new BPromise(function(_0x58dd63,_0x59172d){try{if(_0x39938e[_0x00be('0x2d')]){_0x39938e[_0x00be('0x2e')]=[];_0x39938e['TagIds'][_0x00be('0x2f')](',')[_0x00be('0x30')](function(_0x54fcea){_0x39938e['Tags'][_0x00be('0x31')](_0x2a0e0e[_0x54fcea]);});}delete _0x39938e[_0x00be('0x2d')];}catch(_0x38af23){_0x59172d(_0x38af23);}_0x58dd63(_0x39938e);});}function getLastMessageText(_0x4a5485){return new BPromise(function(_0x1ef497,_0x4375e9){return db[_0x00be('0x32')][_0x00be('0x33')]({'where':{'$and':[{'MailInteractionId':_0x4a5485['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':_0x00be('0x34')},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':['plainBody'],'order':_0x00be('0x35'),'raw':!![]})[_0x00be('0x28')](function(_0x17d819){if(_0x17d819&&_0x17d819[_0x00be('0x36')]){_0x4a5485['lastMsgText']=_['trimStart'](_0x17d819[_0x00be('0x36')]);}_0x1ef497(_0x4a5485);})[_0x00be('0x37')](function(_0x5c80d8){_0x4375e9(_0x5c80d8);});});}function updateMailInteraction(_0x24d3f1,_0x5bdc88,_0x5d200e,_0xd331ef){return new BPromise(function(_0x365b81,_0x2e9a41){return getInteractionUsers(_0x24d3f1,_0x5d200e)['then'](function(_0x1b7cfe){return getInteractionTags(_0x1b7cfe,_0x5bdc88);})[_0x00be('0x28')](function(_0x2bd6fb){if(_0xd331ef){_0x365b81(getLastMessageText(_0x2bd6fb));}else{_0x365b81(_0x2bd6fb);}})[_0x00be('0x37')](function(_0x38485d){_0x2e9a41(_0x38485d);});});}exports[_0x00be('0x38')]=function(_0x395b6e,_0x2a752f){var _0x2311d9={},_0x32347a={},_0x4c894a={'count':0x0,'rows':[]};var _0x2ab3b0=_[_0x00be('0x39')](db['MailInteraction'][_0x00be('0x3a')],function(_0x4ecd0b){return{'name':_0x4ecd0b['fieldName'],'type':_0x4ecd0b['type'][_0x00be('0x3b')]};});_0x32347a[_0x00be('0x3c')]=_[_0x00be('0x39')](_0x2ab3b0,_0x00be('0x2a'));_0x32347a[_0x00be('0x3d')]=_['keys'](_0x395b6e[_0x00be('0x3d')]);_0x32347a['filters']=_['intersection'](_0x32347a[_0x00be('0x3c')],_0x32347a[_0x00be('0x3d')]);_0x2311d9['attributes']=_[_0x00be('0x3e')](_0x32347a[_0x00be('0x3c')],qs[_0x00be('0x3f')](_0x395b6e[_0x00be('0x3d')]['fields']));_0x2311d9[_0x00be('0x40')]=_0x2311d9[_0x00be('0x40')][_0x00be('0x41')]?_0x2311d9[_0x00be('0x40')]:_0x32347a[_0x00be('0x3c')];if(!_0x395b6e['query'][_0x00be('0x42')](_0x00be('0x43'))){_0x2311d9['limit']=qs['limit'](_0x395b6e[_0x00be('0x3d')]['limit']);_0x2311d9['offset']=qs[_0x00be('0x1f')](_0x395b6e[_0x00be('0x3d')][_0x00be('0x1f')]);}_0x2311d9[_0x00be('0x44')]=qs[_0x00be('0x45')](_0x395b6e[_0x00be('0x3d')][_0x00be('0x45')]);_0x2311d9[_0x00be('0x46')]=qs[_0x00be('0x47')](_[_0x00be('0x48')](_0x395b6e[_0x00be('0x3d')],_0x32347a[_0x00be('0x47')]),_0x2ab3b0);var _0x56fdce=[];var _0x286206=squel[_0x00be('0x49')]()[_0x00be('0x4a')]('id')[_0x00be('0x4a')](_0x00be('0x2a'))[_0x00be('0x4a')](_0x00be('0x4b'))[_0x00be('0x4c')](_0x00be('0x4d'));var _0x3b0cef=squel[_0x00be('0x49')]()[_0x00be('0x4a')](_0x00be('0x4e'))[_0x00be('0x4a')](_0x00be('0x4f'))[_0x00be('0x4a')]('ui.MailInteractionId')[_0x00be('0x4c')](_0x00be('0x50'),'ui')[_0x00be('0x51')](_0x00be('0x52'),'u',_0x00be('0x53'));var _0x5e392e=squel[_0x00be('0x49')]()[_0x00be('0x4c')](_0x00be('0x54'),'i')[_0x00be('0x51')](_0x00be('0x55'),'c',_0x00be('0x56'))['left_join']('users','o',_0x00be('0x57'))[_0x00be('0x51')]('mail_accounts','a',_0x00be('0x58'))['left_join']('mail_messages','me',_0x00be('0x59'))[_0x00be('0x51')](_0x00be('0x5a'),'it',_0x00be('0x5b'))[_0x00be('0x51')](_0x00be('0x4d'),'t',_0x00be('0x5c'));var _0x3e2688=squel['expr']();var _0x89329f=[];var _0x5cdbef=squel[_0x00be('0x5d')]();var _0x578fa7;if(_0x395b6e['query'][_0x00be('0x5e')]){_0x578fa7=as['parseSearch'](_0x395b6e[_0x00be('0x3d')][_0x00be('0x5e')]);var _0x11a3af=_0x578fa7[_0x00be('0x5f')];for(var _0xbdc688=0x0;_0xbdc688<_0x578fa7[_0x00be('0x60')][_0x00be('0x41')];_0xbdc688++){var _0x113dcd=_0x578fa7[_0x00be('0x60')][_0xbdc688];var _0xada7c1='i';var _0x5493f4=_[_0x00be('0x61')](_0x2ab3b0,[_0x00be('0x2a'),_0x113dcd['field']]);if(!_0x5493f4){switch(_0x113dcd['field']){case _0x00be('0x62'):if(_0x113dcd['value']==0x1){_0x5e392e['having']('`'+_0x113dcd[_0x00be('0x4a')]+_0x00be('0x63'));}else{_0x5e392e[_0x00be('0x64')]('`'+_0x113dcd[_0x00be('0x4a')]+_0x00be('0x65'));}break;case _0x00be('0x66'):if(_0x113dcd[_0x00be('0x67')]===_0x00be('0x68')){if(_0x113dcd[_0x00be('0x69')][_0x00be('0x2f')]('\x20')[_0x00be('0x41')]>0x1){_0x3e2688[_0x11a3af](_0x00be('0x6a'),qs['getFullTextValue'](_0x113dcd[_0x00be('0x69')]),null);}else{var _0x5e9130='%'+_0x113dcd[_0x00be('0x69')]+'%';_0x3e2688[_0x11a3af]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x5e9130,_0x5e9130,_0x5e9130);}}else{_0x5493f4=_['find'](_0x2ab3b0,[_0x00be('0x2a'),_0x00be('0x6b')]);_0x113dcd[_0x00be('0x4a')]=_0x00be('0x6b');_0x51e913=as[_0x00be('0x6c')](_0xada7c1,_0x5493f4[_0x00be('0x6d')],_0x113dcd);_0x3e2688[_0x11a3af](_0x51e913[_0x00be('0x6e')],_0x51e913[_0x00be('0x69')]['start'],_0x51e913[_0x00be('0x69')]['end']);}break;case'Tag':var _0x9d5ba=_0x113dcd[_0x00be('0x69')]['split'](',')[_0x00be('0x39')](function(_0x9b9106){return Number(_0x9b9106);});_0x9d5ba[_0x00be('0x30')](function(_0x1dcfe2){_0x5cdbef['or'](_0x00be('0x6f'),'%,'+_0x1dcfe2+',%');});_0x89329f=_[_0x00be('0x70')](_0x89329f,_0x9d5ba);break;case'User':if(_0x113dcd[_0x00be('0x67')]==='$substring'){_0x3e2688[_0x11a3af](_0x00be('0x71'),'%'+_0x113dcd[_0x00be('0x69')]+'%',null);}else{_0x5493f4=_[_0x00be('0x61')](_0x2ab3b0,[_0x00be('0x2a'),_0x00be('0x72')]);_0x113dcd[_0x00be('0x4a')]=_0x00be('0x72');_0x51e913=as['buildExpression'](_0xada7c1,_0x5493f4[_0x00be('0x6d')],_0x113dcd);_0x3e2688[_0x11a3af](_0x51e913[_0x00be('0x6e')],_0x51e913[_0x00be('0x69')]['start'],_0x51e913[_0x00be('0x69')]['end']);}break;case _0x00be('0x36'):_0x51e913=as['buildExpression']('me',null,_0x113dcd);_0x3e2688[_0x11a3af](_0x51e913[_0x00be('0x6e')],_0x51e913[_0x00be('0x69')][_0x00be('0x73')],_0x51e913[_0x00be('0x69')]['end']);break;}}else{var _0x51e913=as['buildExpression'](_0xada7c1,_0x5493f4[_0x00be('0x6d')],_0x113dcd);_0x3e2688[_0x11a3af](_0x51e913[_0x00be('0x6e')],_0x51e913[_0x00be('0x69')][_0x00be('0x73')],_0x51e913[_0x00be('0x69')][_0x00be('0x1d')]);}}}else{var _0x949f78=_(_0x395b6e['query'])['keys']()[_0x00be('0x39')](function(_0x10bc91){return _[_0x00be('0x74')](_0x2ab3b0,[_0x00be('0x2a'),_0x10bc91])?_0x10bc91:undefined;})[_0x00be('0x75')]()['value']();if(!_[_0x00be('0x76')](_0x949f78)){_0x949f78[_0x00be('0x30')](function(_0x405786){if(_0x405786===_0x00be('0x77')){_0x5e392e['where'](_0x00be('0x78'),[][_0x00be('0x79')](_0x395b6e[_0x00be('0x3d')][_0x405786]));}else if(_0x405786===_0x00be('0x7a')){var _0x5b200b=JSON[_0x00be('0x7b')](_0x395b6e[_0x00be('0x3d')][_0x405786])[_0x00be('0x7c')];var _0x8c7b31=JSON[_0x00be('0x7b')](_0x395b6e[_0x00be('0x3d')][_0x405786])[_0x00be('0x7d')];_0x5e392e[_0x00be('0x46')](_0x00be('0x7e'),_0x5b200b,_0x8c7b31);}else{if(_0x395b6e[_0x00be('0x3d')][_0x405786]===_0x00be('0x7f')){_0x5e392e['where']('i.'+_0x405786+_0x00be('0x80'));}else{_0x5e392e[_0x00be('0x46')]('i.'+_0x405786+_0x00be('0x81'),_0x395b6e[_0x00be('0x3d')][_0x405786]);}}});}if(_0x395b6e[_0x00be('0x3d')][_0x00be('0x82')]){if(_0x395b6e['query'][_0x00be('0x82')]==0x1){_0x5e392e[_0x00be('0x64')](_0x00be('0x83'));}else{_0x5e392e[_0x00be('0x64')]('`unreadMessages`\x20>\x200');}}if(_0x395b6e[_0x00be('0x3d')][_0x00be('0x84')]){_0x89329f=_[_0x00be('0x85')](_0x395b6e[_0x00be('0x3d')]['tag'])?_0x395b6e[_0x00be('0x3d')][_0x00be('0x84')]:new Array(_0x395b6e[_0x00be('0x3d')][_0x00be('0x84')]);_0x89329f[_0x00be('0x30')](function(_0x8d651){_0x5cdbef['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x8d651+',%');});}if(_0x395b6e[_0x00be('0x3d')]['filter']){var _0x106cc8=_0x395b6e[_0x00be('0x3d')][_0x00be('0x86')][_0x00be('0x87')]('\x5c','\x5c\x5c')[_0x00be('0x87')](/'/g,'\x27\x27');if(qs[_0x00be('0x88')](_0x106cc8)){_0x3e2688['or'](_0x00be('0x89'),_0x106cc8+'%');}else if(qs[_0x00be('0x8a')](_0x106cc8)){_0x3e2688['or'](_0x00be('0x8b'),_0x106cc8+'%');}else{_0x3e2688['or']('MATCH\x20(i.to,\x20i.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x00be('0x8c')](_0x106cc8))['or'](_0x00be('0x8d'),qs[_0x00be('0x8c')](_0x106cc8));}}}_0x5e392e[_0x00be('0x46')](_0x3e2688);_0x5e392e['group'](_0x00be('0x8e'));var _0x46368a={'type':db[_0x00be('0x8f')][_0x00be('0x90')]['SELECT'],'raw':!![]};var _0x236ac4=_0x5e392e[_0x00be('0x91')]();_0x236ac4[_0x00be('0x4a')]('i.id');_0x236ac4[_0x00be('0x4a')](_0x00be('0x92'),_0x00be('0x62'));if(_0x2311d9[_0x00be('0x44')]){_0x2311d9[_0x00be('0x44')]['forEach'](function(_0x5b87ff){var _0xbdc037=_0x5b87ff[0x0]===_0x00be('0x93')?_0x5b87ff[0x0]:'i.'+_0x5b87ff[0x0];_0x5e392e['order'](_0xbdc037,_0x5b87ff[0x1]==='DESC'?![]:!![]);});}if(!_[_0x00be('0x76')](_0x89329f)){_0x5e392e['having'](_0x5cdbef);_0x236ac4[_0x00be('0x46')](_0x00be('0x94'),_0x89329f);}BPromise[_0x00be('0x95')]()['then'](function(){if(!_0x578fa7){if(_0x395b6e[_0x00be('0x3d')][_0x00be('0x77')])return;_0x236ac4['where'](_0x00be('0x96'));_0x5e392e[_0x00be('0x46')](_0x00be('0x96'));return;}if(_0x395b6e[_0x00be('0x97')][_0x00be('0x98')]!==_0x00be('0x99'))return;return _0x395b6e[_0x00be('0x97')][_0x00be('0x9a')]({'attributes':['id'],'raw':!![]})['then'](function(_0x40490b){if(_[_0x00be('0x76')](_0x40490b)){_0x236ac4['where'](_0x00be('0x9b'));_0x5e392e[_0x00be('0x46')](_0x00be('0x9b'));}else{_0x236ac4[_0x00be('0x46')](_0x00be('0x78'),_['map'](_0x40490b,'id'));_0x5e392e[_0x00be('0x46')](_0x00be('0x78'),_['map'](_0x40490b,'id'));}});})[_0x00be('0x28')](function(){if(_0x395b6e['user']['role']===_0x00be('0x99')&&!_0x578fa7&&!_0x395b6e['query'][_0x00be('0x77')])return[];return db['sequelize'][_0x00be('0x3d')](_0x236ac4[_0x00be('0x9c')](),_0x46368a);})['then'](function(_0x1cce4b){_0x4c894a[_0x00be('0x22')]=_0x1cce4b[_0x00be('0x41')];if(_0x4c894a[_0x00be('0x22')]===0x0)return[];return db[_0x00be('0x9d')][_0x00be('0x3d')](_0x286206[_0x00be('0x9c')](),_0x46368a)[_0x00be('0x28')](function(_0x2fc504){_0x56fdce=_[_0x00be('0x9e')](_0x2fc504,'id');_0x46368a=_[_0x00be('0x9f')](_0x46368a,{'model':db[_0x00be('0xa0')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x395b6e[_0x00be('0x3d')]['fields']){_0x2311d9['attributes']['forEach'](function(_0x5813ff){_0x5e392e[_0x00be('0x4a')]('i.'+_0x5813ff);});}else{_0x5e392e[_0x00be('0x4a')](_0x00be('0x92'),_0x00be('0x62'));_0x5e392e[_0x00be('0x4a')]('a.key',_0x00be('0xa1'));_0x5e392e[_0x00be('0x4a')](_0x00be('0xa2'),_0x00be('0xa3'));_0x5e392e[_0x00be('0x4a')](_0x00be('0xa4'),_0x00be('0x93'));_0x5e392e['field'](_0x00be('0x8e'));_0x5e392e[_0x00be('0x4a')]('i.createdAt');_0x5e392e[_0x00be('0x4a')]('i.updatedAt');_0x5e392e[_0x00be('0x4a')](_0x00be('0xa5'));_0x5e392e['field'](_0x00be('0xa6'));_0x5e392e[_0x00be('0x4a')](_0x00be('0xa7'));_0x5e392e[_0x00be('0x4a')](_0x00be('0xa8'));_0x5e392e[_0x00be('0x4a')](_0x00be('0xa9'));_0x5e392e[_0x00be('0x4a')](_0x00be('0xaa'));_0x5e392e[_0x00be('0x4a')](_0x00be('0xab'));_0x5e392e[_0x00be('0x4a')](_0x00be('0xac'));_0x5e392e['field'](_0x00be('0xad'));_0x5e392e[_0x00be('0x4a')]('i.substatus');_0x5e392e[_0x00be('0x4a')](_0x00be('0xae'));_0x5e392e[_0x00be('0x4a')](_0x00be('0xaf'));_0x5e392e['field'](_0x00be('0xb0'));_0x5e392e['field']('i.UserId');_0x5e392e[_0x00be('0x4a')](_0x00be('0xb1'),'Contact.firstName');_0x5e392e['field'](_0x00be('0xb2'),_0x00be('0xb3'));_0x5e392e[_0x00be('0x4a')]('c.email',_0x00be('0xb4'));_0x5e392e['field'](_0x00be('0xb5'),_0x00be('0xb6'));_0x5e392e[_0x00be('0x4a')](_0x00be('0xb7'),_0x00be('0xb8'));_0x5e392e[_0x00be('0x4a')](_0x00be('0xb9'),'Contact.fax');_0x5e392e[_0x00be('0x4a')]('o.fullname',_0x00be('0xba'));_0x5e392e[_0x00be('0x4a')](_0x00be('0xbb'),_0x00be('0xbc'));_0x5e392e['field'](_0x00be('0xbd'),_0x00be('0x2d'));}if(_0x2311d9['limit'])_0x5e392e[_0x00be('0x21')](_0x2311d9[_0x00be('0x21')]);if(_0x2311d9[_0x00be('0x1f')])_0x5e392e['offset'](_0x2311d9[_0x00be('0x1f')]);return db[_0x00be('0x9d')][_0x00be('0x3d')](_0x5e392e['toString'](),_0x46368a);})[_0x00be('0x28')](function(_0x4a9a7a){if(_0x4a9a7a[_0x00be('0x41')]>0x0)_0x3b0cef[_0x00be('0x46')](_0x00be('0xbe'),_[_0x00be('0x39')](_0x4a9a7a,'id'));return db['sequelize'][_0x00be('0x3d')](_0x3b0cef[_0x00be('0x9c')](),_0x46368a)[_0x00be('0x28')](function(_0x55c022){var _0x51ee3f=_['groupBy'](_0x55c022,_0x00be('0xbf'));var _0x4a256e=[];return db[_0x00be('0xc0')][_0x00be('0x33')]({'attributes':[_0x00be('0xc1')],'raw':!![]})['then'](function(_0x13ffc3){var _0x1758f2=_0x13ffc3[_0x00be('0xc1')];_0x4a9a7a['forEach'](function(_0x4b9265){_0x4a256e[_0x00be('0x31')](updateMailInteraction(_0x4b9265,_0x56fdce,_0x51ee3f,_0x1758f2));});return BPromise[_0x00be('0xc2')](_0x4a256e);});});});})[_0x00be('0x28')](function(_0x250def){_0x4c894a[_0x00be('0xc3')]=_0x250def;return _0x4c894a;})[_0x00be('0x28')](respondWithFilteredResult(_0x2a752f,_0x2311d9))[_0x00be('0x37')](handleError(_0x2a752f,null));};exports[_0x00be('0xc4')]=function(_0x316980,_0x299a01){var _0x544dd6={'raw':![],'where':{'id':_0x316980['params']['id']}},_0x3e77d2={};_0x3e77d2[_0x00be('0x3c')]=_[_0x00be('0xc5')](db[_0x00be('0xa0')]['rawAttributes']);_0x3e77d2[_0x00be('0x3d')]=_[_0x00be('0xc5')](_0x316980[_0x00be('0x3d')]);_0x3e77d2['filters']=_[_0x00be('0x3e')](_0x3e77d2[_0x00be('0x3c')],_0x3e77d2['query']);_0x544dd6['attributes']=_['intersection'](_0x3e77d2[_0x00be('0x3c')],qs[_0x00be('0x3f')](_0x316980[_0x00be('0x3d')]['fields']));_0x544dd6[_0x00be('0x40')]=_0x544dd6[_0x00be('0x40')][_0x00be('0x41')]?_0x544dd6[_0x00be('0x40')]:_0x3e77d2[_0x00be('0x3c')];if(_0x316980[_0x00be('0x3d')][_0x00be('0xc6')]){_0x544dd6[_0x00be('0xc7')]=[{'all':!![]}];}_0x544dd6=_[_0x00be('0x9f')]({},_0x544dd6,_0x316980[_0x00be('0xc8')]);return db[_0x00be('0xa0')]['find'](_0x544dd6)[_0x00be('0x28')](handleEntityNotFound(_0x299a01,null))['then'](respondWithResult(_0x299a01,null))['catch'](handleError(_0x299a01,null));};exports[_0x00be('0xc9')]=function(_0x1e7e0f,_0x2a7a93){return db[_0x00be('0xa0')][_0x00be('0xc9')](_0x1e7e0f[_0x00be('0xca')],{})['then'](respondWithResult(_0x2a7a93,0xc9))[_0x00be('0x37')](handleError(_0x2a7a93,null));};exports[_0x00be('0x27')]=function(_0x5e0f3c,_0x56da70){if(_0x5e0f3c['body']['id']){delete _0x5e0f3c[_0x00be('0xca')]['id'];}return db['MailInteraction'][_0x00be('0x61')]({'where':{'id':_0x5e0f3c[_0x00be('0xcb')]['id']}})[_0x00be('0x28')](handleEntityNotFound(_0x56da70,null))[_0x00be('0x28')](saveUpdates(_0x5e0f3c[_0x00be('0xca')],null))[_0x00be('0x28')](respondWithResult(_0x56da70,null))['catch'](handleError(_0x56da70,null));};exports[_0x00be('0xcc')]=function(_0x128f94,_0x34da5d){return db[_0x00be('0xa0')][_0x00be('0x61')]({'where':{'id':_0x128f94[_0x00be('0xcb')]['id']}})[_0x00be('0x28')](handleEntityNotFound(_0x34da5d,null))['then'](removeEntity(_0x34da5d,null))[_0x00be('0x37')](handleError(_0x34da5d,null));};exports['describe']=function(_0x9f0d0b,_0x410222){return db[_0x00be('0xa0')][_0x00be('0xcd')]()['then'](respondWithResult(_0x410222,null))[_0x00be('0x37')](handleError(_0x410222,null));};exports[_0x00be('0xce')]=function(_0x4bedc7,_0x353766,_0x40f285){return db[_0x00be('0x32')]['find']({'where':{'id':_0x4bedc7['params']['id']}})[_0x00be('0x28')](handleEntityNotFound(_0x353766,null))[_0x00be('0x28')](function(_0xf2a0d6){if(_0xf2a0d6){return _0xf2a0d6['addMessage'](_0x4bedc7[_0x00be('0xca')]['ids'],_[_0x00be('0xcf')](_0x4bedc7['body'],[_0x00be('0xd0'),'id'])||{});}})[_0x00be('0x28')](respondWithResult(_0x353766,null))[_0x00be('0x37')](handleError(_0x353766,null));};exports[_0x00be('0xd1')]=function(_0x1746d9,_0x5a0f42,_0x3b10fd){var _0x7fc1c6={'raw':![],'where':{}};var _0x4db21d={};var _0x173d15={'count':0x0,'rows':[]};return db[_0x00be('0xa0')][_0x00be('0x33')]({'where':{'id':_0x1746d9[_0x00be('0xcb')]['id']}})[_0x00be('0x28')](handleEntityNotFound(_0x5a0f42,null))[_0x00be('0x28')](function(_0x36f1da){if(_0x36f1da){_0x4db21d[_0x00be('0x3c')]=_[_0x00be('0xc5')](db[_0x00be('0x32')][_0x00be('0x3a')]);_0x4db21d[_0x00be('0x3d')]=_[_0x00be('0xc5')](_0x1746d9[_0x00be('0x3d')]);_0x4db21d['filters']=_[_0x00be('0x3e')](_0x4db21d[_0x00be('0x3c')],_0x4db21d[_0x00be('0x3d')]);_0x7fc1c6[_0x00be('0x40')]=_[_0x00be('0x3e')](_0x4db21d[_0x00be('0x3c')],qs[_0x00be('0x3f')](_0x1746d9['query']['fields']));_0x7fc1c6['attributes']=_0x7fc1c6[_0x00be('0x40')][_0x00be('0x41')]?_0x7fc1c6[_0x00be('0x40')]:_0x4db21d['model'];if(!_0x1746d9[_0x00be('0x3d')][_0x00be('0x42')](_0x00be('0x43'))){_0x7fc1c6[_0x00be('0x21')]=qs[_0x00be('0x21')](_0x1746d9['query'][_0x00be('0x21')]);_0x7fc1c6[_0x00be('0x1f')]=qs[_0x00be('0x1f')](_0x1746d9['query'][_0x00be('0x1f')]);}_0x7fc1c6[_0x00be('0x44')]=qs['sort'](_0x1746d9[_0x00be('0x3d')]['sort']);_0x7fc1c6['where']=qs['filters'](_['pick'](_0x1746d9[_0x00be('0x3d')],_0x4db21d[_0x00be('0x47')]));_0x7fc1c6[_0x00be('0x46')][_0x00be('0xbf')]=_0x36f1da['id'];if(_0x1746d9[_0x00be('0x3d')]['filter']){_0x7fc1c6[_0x00be('0x46')]=_['merge'](_0x7fc1c6[_0x00be('0x46')],{'$or':_[_0x00be('0x39')](_0x7fc1c6[_0x00be('0x40')],function(_0x4778e0){var _0x489a37={};_0x489a37[_0x4778e0]={'$like':'%'+_0x1746d9[_0x00be('0x3d')][_0x00be('0x86')]+'%'};return _0x489a37;})});}if(_0x1746d9[_0x00be('0x3d')][_0x00be('0x7c')]){var _0x59901f=_0x1746d9[_0x00be('0x3d')][_0x00be('0x7c')][_0x00be('0x2f')](',');var _0x5b987e={};_0x5b987e[_0x59901f[0x0]]={'$gte':moment(_0x59901f[0x1])[_0x00be('0xd2')](_0x00be('0xd3'))};_0x7fc1c6[_0x00be('0x46')]=_[_0x00be('0x9f')](_0x7fc1c6['where'],_0x5b987e);}_0x7fc1c6=_[_0x00be('0x9f')]({},_0x7fc1c6,_0x1746d9['options']);return db[_0x00be('0x32')][_0x00be('0x22')]({'where':_0x7fc1c6[_0x00be('0x46')]})[_0x00be('0x28')](function(_0xeab1e7){_0x173d15[_0x00be('0x22')]=_0xeab1e7;if(_0x1746d9[_0x00be('0x3d')][_0x00be('0xc6')]){_0x7fc1c6['include']=[{'all':!![]}];}return db['MailMessage']['findAll'](_0x7fc1c6);})[_0x00be('0x28')](function(_0x365e1f){if(_0x1746d9[_0x00be('0x3d')][_0x00be('0xd4')]===_0x00be('0xd5')){for(var _0x2dc48f=0x0;_0x2dc48f<_0x365e1f['length'];_0x2dc48f++){_0x365e1f[_0x2dc48f][_0x00be('0xca')]=juice(_0x365e1f[_0x2dc48f]['body']);}}_0x173d15[_0x00be('0xc3')]=_0x365e1f;return _0x173d15;});}})[_0x00be('0x28')](respondWithFilteredResult(_0x5a0f42,_0x7fc1c6))['catch'](handleError(_0x5a0f42,null));};exports['addTags']=function(_0x21f550,_0x45682e,_0x3487a3){return db['MailInteraction'][_0x00be('0x61')]({'where':{'id':_0x21f550[_0x00be('0xcb')]['id']}})['then'](handleEntityNotFound(_0x45682e,null))[_0x00be('0x28')](function(_0x3c2fab){if(_0x3c2fab){return _0x3c2fab[_0x00be('0xd6')](_0x21f550[_0x00be('0xca')][_0x00be('0xd0')],_[_0x00be('0xcf')](_0x21f550[_0x00be('0xca')],[_0x00be('0xd0'),'id'])||{})[_0x00be('0xd7')](function(){return db[_0x00be('0xd8')][_0x00be('0xd9')]({'attributes':['id','name',_0x00be('0x4b')],'where':{'id':_0x21f550[_0x00be('0xca')][_0x00be('0xd0')]}});})[_0x00be('0x28')](function(_0x41b2fc){socket[_0x00be('0xda')](_0x00be('0xdb'),{'id':Number(_0x21f550[_0x00be('0xcb')]['id']),'tags':_0x41b2fc||[]});return{'id':Number(_0x21f550['params']['id']),'tags':_0x41b2fc||[]};});}})[_0x00be('0x28')](respondWithResult(_0x45682e,null))['catch'](handleError(_0x45682e,null));};exports[_0x00be('0xdc')]=function(_0x2a2c7e,_0x4af879,_0x30fc15){return db[_0x00be('0xa0')][_0x00be('0x61')]({'where':{'id':_0x2a2c7e['params']['id']}})[_0x00be('0x28')](handleEntityNotFound(_0x4af879,null))[_0x00be('0x28')](function(_0x26e51d){if(_0x26e51d){return _0x26e51d[_0x00be('0xdc')](_0x2a2c7e[_0x00be('0x3d')][_0x00be('0xd0')]);}})[_0x00be('0x28')](respondWithStatusCode(_0x4af879,null))[_0x00be('0x37')](handleError(_0x4af879,null));};exports[_0x00be('0xdd')]=function(_0x561afd,_0x1eec27){var _0x2da778=moment()[_0x00be('0xde')]()[_0x00be('0x9c')]();var _0x50256d=path[_0x00be('0xdf')](config[_0x00be('0xe0')],_0x00be('0xe1'),_0x00be('0xe2'),_0x00be('0xe3'));var _0x1cc7e5=path[_0x00be('0xdf')](config[_0x00be('0xe0')],_0x00be('0xe1'),_0x00be('0xe2'),'attachments');var _0x2ddf1e=path['join'](_0x50256d,_0x2da778);var _0x3e0abe=util[_0x00be('0xd2')](_0x00be('0xe4'),_0x561afd[_0x00be('0xcb')]['id'],_0x2da778);var _0x6729ba=path[_0x00be('0xdf')](_0x50256d,_0x3e0abe);var _0x5443e0=[];if(_0x561afd[_0x00be('0x3d')][_0x00be('0xe5')]){_0x5443e0['push']({'model':db[_0x00be('0xe6')],'as':_0x00be('0xe7'),'raw':!![]});}var _0x3d2c82=[{'model':db[_0x00be('0x32')],'as':'Messages','attributes':['id','body',_0x00be('0x4c'),'to','cc',_0x00be('0xe8'),_0x00be('0xe9'),'createdAt'],'where':{'secret':![]},'order':qs[_0x00be('0x45')]('id'),'include':_0x5443e0}];return db[_0x00be('0xa0')]['find']({'where':{'id':_0x561afd[_0x00be('0xcb')]['id']},'include':_0x3d2c82})[_0x00be('0x28')](handleEntityNotFound(_0x1eec27,null))[_0x00be('0x28')](function(_0x9898f7){if(_0x9898f7&&_0x9898f7[_0x00be('0xea')]){var _0x3f48f2=_0x9898f7[_0x00be('0xeb')]({'plain':!![]});fs[_0x00be('0xec')](_0x2ddf1e);return BPromise['each'](_0x3f48f2[_0x00be('0xea')],function(_0x527283,_0x2df2b6){var _0x1ece4a={'from':_0x527283[_0x00be('0x4c')],'to':_0x527283['to'],'subject':_0x527283['subject'],'html':_0x527283[_0x00be('0xca')],'headers':{'Date':moment(_0x527283[_0x00be('0x7a')])[_0x00be('0xd2')](_0x00be('0xed'))},'attachments':[]};if(_0x527283['cc']){_0x1ece4a[_0x00be('0xee')]['Cc']=_0x527283['cc'];}if(_0x527283[_0x00be('0xe8')]){_0x1ece4a[_0x00be('0xee')][_0x00be('0xef')]=_0x527283[_0x00be('0xe8')];}return new BPromise(function(_0x408cdd,_0x350fe3){if(_0x527283[_0x00be('0xe7')]){for(var _0x16db9a=0x0;_0x16db9a<_0x527283[_0x00be('0xe7')][_0x00be('0x41')];_0x16db9a++){var _0x25ec78=_0x527283[_0x00be('0xe7')][_0x16db9a];var _0x39977f=path[_0x00be('0xdf')](_0x1cc7e5,_0x25ec78['basename']);if(fs['existsSync'](_0x39977f)){_0x1ece4a[_0x00be('0xe5')][_0x00be('0x31')]({'name':_0x25ec78['name'],'contentType':_0x25ec78[_0x00be('0x6d')],'data':fs['readFileSync'](_0x39977f)});}}}emlformat['build'](_0x1ece4a,function(_0x1e158d,_0x46c567){if(_0x1e158d)return _0x350fe3(_0x1e158d);fs[_0x00be('0xf0')](path[_0x00be('0xdf')](_0x2ddf1e,util[_0x00be('0xd2')]('message%d.eml',_0x2df2b6)),_0x46c567);return _0x408cdd(_0x46c567);});});})[_0x00be('0x28')](function(){return new BPromise(function(_0x3d50f6,_0x3ed22f){zipdir(_0x2ddf1e,{'saveTo':_0x6729ba},function(_0xcb7959,_0x3306a7){if(_0xcb7959)return _0x3ed22f(_0xcb7959);return _0x3d50f6(_0x3306a7);});})[_0x00be('0x28')](function(){return new BPromise(function(_0x216d25,_0x158387){rimraf(_0x2ddf1e,function(_0x3fc81e){if(_0x3fc81e)_0x158387(_0x3fc81e);return _0x216d25();});});})[_0x00be('0x28')](function(){return _0x1eec27['download'](_0x6729ba,_0x3e0abe,function(_0x4b87bc){if(_0x4b87bc){console[_0x00be('0xf1')](_0x00be('0xf2'),_0x4b87bc);}else{fs[_0x00be('0xf3')](_0x6729ba);}});});});}else{return _0x1eec27[_0x00be('0x1b')](0xc8);}})['catch'](handleError(_0x1eec27,null));};