4b4ecd661ea9bd261f69b3f485ecb480b9c5f029
[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 _0x6636=['start','Tag','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','buildExpression','isEmpty','MailAccountId','i.MailAccountId\x20IN\x20?','createdAt','parse','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20=\x20?','read','`unreadMessages`\x20>\x200','isArray','tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','filter','replace','isNumeric','isEmail','MATCH\x20(i.to,\x20i.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','MATCH\x20(me.plainBody,\x20me.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','group','QueryTypes','i.id','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','contactName','DESC','i.MailAccountId\x20IS\x20NOT\x20NULL','user','role','agent','getMailAccounts','i.MailAccountId\x20IS\x20NULL','sequelize','toString','keyBy','merge','a.key','Account.key','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.to','i.ContactId','i.MailAccountId','c.firstName','c.lastName','Contact.lastName','c.email','Contact.email','Contact.phone','Contact.mobile','Contact.fax','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','groupBy','MailInteractionId','enableEmailPreview','all','params','rawAttributes','includeAll','options','create','body','describe','addMessage','MailMessage','ids','omit','getMessages','hasOwnProperty','nolimit','YYYY-MM-DD\x20HH:mm:ss','include','findAll','rows','addTags','setTags','spread','emit','mailInteractionTags:save','removeTags','unix','join','root','server','files','tmp','attachments','format','Attachment','Attachments','Messages','bcc','get','mkdirSync','each','subject','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','basename','existsSync','readFileSync','build','writeFileSync','download','log','err','unlinkSync','html-pdf','rimraf','fast-json-patch','request-promise','moment','bluebird','mustache','sox','to-csv','lodash','squel','crypto','jsforce','desk.js','papaparse','html-to-text','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','register','sendStatus','status','end','count','offset','limit','apply','reject','save','update','then','destroy','error','stack','name','send','map','fullname','Tags','TagIds','forEach','push','findOne','lastMsgText','fromString','lastMsgBody','catch','index','MailInteraction','fieldName','type','key','query','keys','filters','intersection','model','attributes','fields','length','order','sort','where','pick','field','color','tools_tags','select','u.id','u.fullname','ui.MailInteractionId','from','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','mail_accounts','a.id\x20=\x20i.MailAccountId','mail_messages','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','Contact','operator','$substring','split','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','text'];(function(_0x4e7e3e,_0x91a51f){var _0x574885=function(_0x17f3b2){while(--_0x17f3b2){_0x4e7e3e['push'](_0x4e7e3e['shift']());}};_0x574885(++_0x91a51f);}(_0x6636,0x7e));var _0x6663=function(_0x17e5b2,_0x40b594){_0x17e5b2=_0x17e5b2-0x0;var _0x5f292e=_0x6636[_0x17e5b2];return _0x5f292e;};'use strict';var pdf=require(_0x6663('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x6663('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x6663('0x2'));var rp=require(_0x6663('0x3'));var moment=require(_0x6663('0x4'));var BPromise=require(_0x6663('0x5'));var Mustache=require(_0x6663('0x6'));var util=require('util');var path=require('path');var sox=require(_0x6663('0x7'));var csv=require(_0x6663('0x8'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x6663('0x9'));var squel=require(_0x6663('0xa'));var crypto=require(_0x6663('0xb'));var jsforce=require(_0x6663('0xc'));var deskjs=require(_0x6663('0xd'));var toCsv=require(_0x6663('0x8'));var querystring=require('querystring');var Papa=require(_0x6663('0xe'));var htmlToText=require(_0x6663('0xf'));var Redis=require(_0x6663('0x10'));var authService=require(_0x6663('0x11'));var qs=require(_0x6663('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x6663('0x13'));var logger=require(_0x6663('0x14'))('api');var utils=require(_0x6663('0x15'));var config=require(_0x6663('0x16'));var licenseUtil=require(_0x6663('0x17'));var db=require(_0x6663('0x18'))['db'];config[_0x6663('0x19')]=_[_0x6663('0x1a')](config['redis'],{'host':_0x6663('0x1b'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x6663('0x19')]));require('./mailInteraction.socket')[_0x6663('0x1c')](socket);function respondWithStatusCode(_0x4d7995,_0x306e6c){_0x306e6c=_0x306e6c||0xcc;return function(_0x543aad){if(_0x543aad){return _0x4d7995[_0x6663('0x1d')](_0x306e6c);}return _0x4d7995[_0x6663('0x1e')](_0x306e6c)[_0x6663('0x1f')]();};}function respondWithResult(_0xd82466,_0x19670a){_0x19670a=_0x19670a||0xc8;return function(_0xfe1573){if(_0xfe1573){return _0xd82466[_0x6663('0x1e')](_0x19670a)['json'](_0xfe1573);}};}function respondWithFilteredResult(_0x10b23f,_0x3b7512){return function(_0x5e8b55){if(_0x5e8b55){var _0x2e9d88=_0x5e8b55[_0x6663('0x20')],_0xe6dd27=_0x3b7512['offset'],_0x4358f0=_0x3b7512[_0x6663('0x21')]+_0x3b7512[_0x6663('0x22')],_0xf70a07;if(_0x4358f0>=_0x2e9d88){_0x4358f0=_0x2e9d88;_0xf70a07=0xc8;}else{_0xf70a07=0xce;}_0x10b23f[_0x6663('0x1e')](_0xf70a07);return _0x10b23f['set']('Content-Range',_0xe6dd27+'-'+_0x4358f0+'/'+_0x2e9d88)['json'](_0x5e8b55);}return null;};}function patchUpdates(_0x1b51ca){return function(_0x3621e0){try{jsonpatch[_0x6663('0x23')](_0x3621e0,_0x1b51ca,!![]);}catch(_0x2a7f9c){return BPromise[_0x6663('0x24')](_0x2a7f9c);}return _0x3621e0[_0x6663('0x25')]();};}function saveUpdates(_0x276654,_0x4506e4){return function(_0x56ce80){if(_0x56ce80){return _0x56ce80[_0x6663('0x26')](_0x276654)[_0x6663('0x27')](function(_0x194305){return _0x194305;});}return null;};}function removeEntity(_0x8628a3,_0x4ce3e9){return function(_0x38f62e){if(_0x38f62e){return _0x38f62e[_0x6663('0x28')]()['then'](function(){_0x8628a3[_0x6663('0x1e')](0xcc)[_0x6663('0x1f')]();});}};}function handleEntityNotFound(_0x1ec2fa,_0x89068c){return function(_0x42a1e8){if(!_0x42a1e8){_0x1ec2fa['sendStatus'](0x194);}return _0x42a1e8;};}function handleError(_0x4d4c59,_0x487ed2){_0x487ed2=_0x487ed2||0x1f4;return function(_0x4644ea){logger[_0x6663('0x29')](_0x4644ea[_0x6663('0x2a')]);if(_0x4644ea[_0x6663('0x2b')]){delete _0x4644ea[_0x6663('0x2b')];}_0x4d4c59[_0x6663('0x1e')](_0x487ed2)[_0x6663('0x2c')](_0x4644ea);};}function getInteractionUsers(_0x57fcf4,_0x27b755){return new BPromise(function(_0x3b78c9,_0x261ba4){try{if(_0x27b755[_0x57fcf4['id']]){_0x57fcf4['Users']=_[_0x6663('0x2d')](_0x27b755[_0x57fcf4['id']],function(_0x4bdb4c){return{'id':_0x4bdb4c['id'],'fullname':_0x4bdb4c[_0x6663('0x2e')]};});}}catch(_0x2b7d3e){_0x261ba4(_0x2b7d3e);}_0x3b78c9(_0x57fcf4);});}function getInteractionTags(_0x24b124,_0x20584a){return new BPromise(function(_0x3615d1,_0x10ae17){try{if(_0x24b124['TagIds']){_0x24b124[_0x6663('0x2f')]=[];_0x24b124[_0x6663('0x30')]['split'](',')[_0x6663('0x31')](function(_0x47b256){_0x24b124[_0x6663('0x2f')][_0x6663('0x32')](_0x20584a[_0x47b256]);});}delete _0x24b124['TagIds'];}catch(_0x366868){_0x10ae17(_0x366868);}_0x3615d1(_0x24b124);});}function getLastMessageText(_0x456e79){return new BPromise(function(_0x351522,_0x338aac){return db['MailInteraction'][_0x6663('0x33')]({'where':{'id':_0x456e79['id']},'attributes':['lastMsgBody',_0x6663('0x34')],'raw':!![]})[_0x6663('0x27')](function(_0x36b1d7){if(!_0x36b1d7[_0x6663('0x34')]){_0x456e79['lastMsgText']=_['trimStart'](htmlToText[_0x6663('0x35')](_0x36b1d7[_0x6663('0x36')],{'preserveNewlines':!![],'singleNewLineParagraphs':!![],'uppercaseHeadings':![],'noLinkBrackets':!![],'ignoreImage':!![]}));}else{_0x456e79['lastMsgText']=_0x36b1d7[_0x6663('0x34')];}_0x351522(_0x456e79);})[_0x6663('0x37')](function(_0x4266d2){_0x338aac(_0x4266d2);});});}function updateMailInteraction(_0x257924,_0x14fe5c,_0x11d78c,_0x5926c9){return new BPromise(function(_0x12aa0d,_0x156b86){return getInteractionUsers(_0x257924,_0x11d78c)['then'](function(_0x347d97){return getInteractionTags(_0x347d97,_0x14fe5c);})[_0x6663('0x27')](function(_0x2926a1){if(_0x5926c9){_0x12aa0d(getLastMessageText(_0x2926a1));}else{_0x12aa0d(_0x2926a1);}})[_0x6663('0x37')](function(_0x2cfe18){_0x156b86(_0x2cfe18);});});}exports[_0x6663('0x38')]=function(_0x29a90a,_0x16a782){var _0x18008a={},_0x1e13d9={},_0x2c9240={'count':0x0,'rows':[]};var _0xff9eb8=_[_0x6663('0x2d')](db[_0x6663('0x39')]['rawAttributes'],function(_0x3c4ff5){return{'name':_0x3c4ff5[_0x6663('0x3a')],'type':_0x3c4ff5[_0x6663('0x3b')][_0x6663('0x3c')]};});_0x1e13d9['model']=_['map'](_0xff9eb8,_0x6663('0x2b'));_0x1e13d9[_0x6663('0x3d')]=_[_0x6663('0x3e')](_0x29a90a[_0x6663('0x3d')]);_0x1e13d9[_0x6663('0x3f')]=_[_0x6663('0x40')](_0x1e13d9[_0x6663('0x41')],_0x1e13d9[_0x6663('0x3d')]);_0x18008a[_0x6663('0x42')]=_[_0x6663('0x40')](_0x1e13d9['model'],qs[_0x6663('0x43')](_0x29a90a[_0x6663('0x3d')][_0x6663('0x43')]));_0x18008a[_0x6663('0x42')]=_0x18008a[_0x6663('0x42')][_0x6663('0x44')]?_0x18008a[_0x6663('0x42')]:_0x1e13d9[_0x6663('0x41')];if(!_0x29a90a[_0x6663('0x3d')]['hasOwnProperty']('nolimit')){_0x18008a[_0x6663('0x22')]=qs[_0x6663('0x22')](_0x29a90a[_0x6663('0x3d')][_0x6663('0x22')]);_0x18008a[_0x6663('0x21')]=qs[_0x6663('0x21')](_0x29a90a[_0x6663('0x3d')]['offset']);}_0x18008a[_0x6663('0x45')]=qs[_0x6663('0x46')](_0x29a90a[_0x6663('0x3d')]['sort']);_0x18008a[_0x6663('0x47')]=qs[_0x6663('0x3f')](_[_0x6663('0x48')](_0x29a90a[_0x6663('0x3d')],_0x1e13d9['filters']),_0xff9eb8);var _0x3c2b8c=[];var _0x3e79e0=squel['select']()['field']('id')[_0x6663('0x49')](_0x6663('0x2b'))['field'](_0x6663('0x4a'))['from'](_0x6663('0x4b'));var _0x399f0b=squel[_0x6663('0x4c')]()['field'](_0x6663('0x4d'))['field'](_0x6663('0x4e'))['field'](_0x6663('0x4f'))[_0x6663('0x50')](_0x6663('0x51'),'ui')[_0x6663('0x52')](_0x6663('0x53'),'u',_0x6663('0x54'));var _0x437242=squel[_0x6663('0x4c')]()[_0x6663('0x50')](_0x6663('0x55'),'i')[_0x6663('0x52')](_0x6663('0x56'),'c',_0x6663('0x57'))[_0x6663('0x52')](_0x6663('0x53'),'o',_0x6663('0x58'))[_0x6663('0x52')](_0x6663('0x59'),'a',_0x6663('0x5a'))[_0x6663('0x52')](_0x6663('0x5b'),'me','me.MailInteractionId\x20=\x20i.id')[_0x6663('0x52')](_0x6663('0x5c'),'it',_0x6663('0x5d'))[_0x6663('0x52')](_0x6663('0x4b'),'t',_0x6663('0x5e'));var _0x35d7ec=squel['expr']();var _0x43d225=[];var _0x764eae=squel[_0x6663('0x5f')]();var _0x39bcb2;if(_0x29a90a[_0x6663('0x3d')][_0x6663('0x60')]){_0x39bcb2=as[_0x6663('0x61')](_0x29a90a['query']['search']);var _0x2026ec=_0x39bcb2[_0x6663('0x62')];for(var _0x1f3452=0x0;_0x1f3452<_0x39bcb2['conditions']['length'];_0x1f3452++){var _0x3227ec=_0x39bcb2[_0x6663('0x63')][_0x1f3452];var _0x4ba289='i';var _0x2fe0eb=_[_0x6663('0x64')](_0xff9eb8,['name',_0x3227ec[_0x6663('0x49')]]);if(!_0x2fe0eb){switch(_0x3227ec[_0x6663('0x49')]){case _0x6663('0x65'):if(_0x3227ec[_0x6663('0x66')]==0x1){_0x437242[_0x6663('0x67')]('`'+_0x3227ec['field']+_0x6663('0x68'));}else{_0x437242['having']('`'+_0x3227ec[_0x6663('0x49')]+'`\x20>\x200');}break;case _0x6663('0x69'):if(_0x3227ec[_0x6663('0x6a')]===_0x6663('0x6b')){if(_0x3227ec[_0x6663('0x66')][_0x6663('0x6c')]('\x20')[_0x6663('0x44')]>0x1){_0x35d7ec[_0x2026ec]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x6663('0x6d')](_0x3227ec['value']),null);}else{var _0x58fea1='%'+_0x3227ec[_0x6663('0x66')]+'%';_0x35d7ec[_0x2026ec](_0x6663('0x6e'),_0x58fea1,_0x58fea1,_0x58fea1);}}else{_0x2fe0eb=_[_0x6663('0x64')](_0xff9eb8,['name',_0x6663('0x6f')]);_0x3227ec[_0x6663('0x49')]='ContactId';_0x3546de=as['buildExpression'](_0x4ba289,_0x2fe0eb['type'],_0x3227ec);_0x35d7ec[_0x2026ec](_0x3546de[_0x6663('0x70')],_0x3546de['value'][_0x6663('0x71')],_0x3546de['value'][_0x6663('0x1f')]);}break;case _0x6663('0x72'):var _0x5e95f0=_0x3227ec[_0x6663('0x66')][_0x6663('0x6c')](',')['map'](function(_0x4126c1){return Number(_0x4126c1);});_0x5e95f0[_0x6663('0x31')](function(_0x18b440){_0x764eae['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x18b440+',%');});_0x43d225=_[_0x6663('0x73')](_0x43d225,_0x5e95f0);break;case _0x6663('0x74'):if(_0x3227ec[_0x6663('0x6a')]==='$substring'){_0x35d7ec[_0x2026ec](_0x6663('0x75'),'%'+_0x3227ec[_0x6663('0x66')]+'%',null);}else{_0x2fe0eb=_[_0x6663('0x64')](_0xff9eb8,[_0x6663('0x2b'),_0x6663('0x76')]);_0x3227ec['field']=_0x6663('0x76');_0x3546de=as[_0x6663('0x77')](_0x4ba289,_0x2fe0eb['type'],_0x3227ec);_0x35d7ec[_0x2026ec](_0x3546de['text'],_0x3546de[_0x6663('0x66')][_0x6663('0x71')],_0x3546de[_0x6663('0x66')][_0x6663('0x1f')]);}break;case'plainBody':_0x3546de=as['buildExpression']('me',null,_0x3227ec);_0x35d7ec[_0x2026ec](_0x3546de[_0x6663('0x70')],_0x3546de[_0x6663('0x66')]['start'],_0x3546de[_0x6663('0x66')]['end']);break;}}else{var _0x3546de=as['buildExpression'](_0x4ba289,_0x2fe0eb[_0x6663('0x3b')],_0x3227ec);_0x35d7ec[_0x2026ec](_0x3546de[_0x6663('0x70')],_0x3546de[_0x6663('0x66')][_0x6663('0x71')],_0x3546de[_0x6663('0x66')][_0x6663('0x1f')]);}}}else{var _0x561ba5=_(_0x29a90a[_0x6663('0x3d')])[_0x6663('0x3e')]()['map'](function(_0x574aed){return _['some'](_0xff9eb8,['name',_0x574aed])?_0x574aed:undefined;})['compact']()[_0x6663('0x66')]();if(!_[_0x6663('0x78')](_0x561ba5)){_0x561ba5[_0x6663('0x31')](function(_0x25a3e4){if(_0x25a3e4===_0x6663('0x79')){_0x437242[_0x6663('0x47')](_0x6663('0x7a'),[]['concat'](_0x29a90a['query'][_0x25a3e4]));}else if(_0x25a3e4===_0x6663('0x7b')){var _0x4506af=JSON[_0x6663('0x7c')](_0x29a90a[_0x6663('0x3d')][_0x25a3e4])['$gte'];var _0x18d0bf=JSON[_0x6663('0x7c')](_0x29a90a[_0x6663('0x3d')][_0x25a3e4])[_0x6663('0x7d')];_0x437242[_0x6663('0x47')](_0x6663('0x7e'),_0x4506af,_0x18d0bf);}else{if(_0x29a90a[_0x6663('0x3d')][_0x25a3e4]===_0x6663('0x7f')){_0x437242[_0x6663('0x47')]('i.'+_0x25a3e4+'\x20IS\x20NULL');}else{_0x437242[_0x6663('0x47')]('i.'+_0x25a3e4+_0x6663('0x80'),_0x29a90a[_0x6663('0x3d')][_0x25a3e4]);}}});}if(_0x29a90a['query'][_0x6663('0x81')]){if(_0x29a90a[_0x6663('0x3d')][_0x6663('0x81')]==0x1){_0x437242[_0x6663('0x67')]('`unreadMessages`\x20=\x200');}else{_0x437242[_0x6663('0x67')](_0x6663('0x82'));}}if(_0x29a90a[_0x6663('0x3d')]['tag']){_0x43d225=_[_0x6663('0x83')](_0x29a90a[_0x6663('0x3d')][_0x6663('0x84')])?_0x29a90a['query']['tag']:new Array(_0x29a90a[_0x6663('0x3d')][_0x6663('0x84')]);_0x43d225['forEach'](function(_0x1938f9){_0x764eae['or'](_0x6663('0x85'),'%,'+_0x1938f9+',%');});}if(_0x29a90a[_0x6663('0x3d')][_0x6663('0x86')]){var _0x2e1a3e=_0x29a90a['query'][_0x6663('0x86')][_0x6663('0x87')]('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(qs[_0x6663('0x88')](_0x2e1a3e)){_0x35d7ec['or']('i.id\x20LIKE\x20?',_0x2e1a3e+'%');}else if(qs[_0x6663('0x89')](_0x2e1a3e)){_0x35d7ec['or']('c.email\x20LIKE\x20?',_0x2e1a3e+'%');}else{_0x35d7ec['or'](_0x6663('0x8a'),qs[_0x6663('0x6d')](_0x2e1a3e))['or'](_0x6663('0x8b'),qs['getFullTextValue'](_0x2e1a3e));}}}_0x437242[_0x6663('0x47')](_0x35d7ec);_0x437242[_0x6663('0x8c')]('i.id');var _0xc4513a={'type':db['Sequelize'][_0x6663('0x8d')]['SELECT'],'raw':!![]};var _0xdcc4d7=_0x437242['clone']();_0xdcc4d7[_0x6663('0x49')](_0x6663('0x8e'));_0xdcc4d7[_0x6663('0x49')](_0x6663('0x8f'),_0x6663('0x65'));if(_0x18008a['order']){_0x18008a['order'][_0x6663('0x31')](function(_0x2a207e){var _0xa4a499=_0x2a207e[0x0]===_0x6663('0x90')?_0x2a207e[0x0]:'i.'+_0x2a207e[0x0];_0x437242[_0x6663('0x45')](_0xa4a499,_0x2a207e[0x1]===_0x6663('0x91')?![]:!![]);});}if(!_[_0x6663('0x78')](_0x43d225)){_0x437242[_0x6663('0x67')](_0x764eae);_0xdcc4d7[_0x6663('0x47')]('t.id\x20IN\x20?',_0x43d225);}BPromise['resolve']()[_0x6663('0x27')](function(){if(!_0x39bcb2){if(_0x29a90a['query'][_0x6663('0x79')])return;_0xdcc4d7[_0x6663('0x47')](_0x6663('0x92'));_0x437242[_0x6663('0x47')](_0x6663('0x92'));return;}if(_0x29a90a[_0x6663('0x93')][_0x6663('0x94')]!==_0x6663('0x95'))return;return _0x29a90a[_0x6663('0x93')][_0x6663('0x96')]({'attributes':['id'],'raw':!![]})[_0x6663('0x27')](function(_0x4f3c7a){if(_[_0x6663('0x78')](_0x4f3c7a)){_0xdcc4d7[_0x6663('0x47')](_0x6663('0x97'));_0x437242['where'](_0x6663('0x97'));}else{_0xdcc4d7[_0x6663('0x47')](_0x6663('0x7a'),_[_0x6663('0x2d')](_0x4f3c7a,'id'));_0x437242[_0x6663('0x47')](_0x6663('0x7a'),_[_0x6663('0x2d')](_0x4f3c7a,'id'));}});})[_0x6663('0x27')](function(){if(_0x29a90a[_0x6663('0x93')][_0x6663('0x94')]===_0x6663('0x95')&&!_0x39bcb2&&!_0x29a90a[_0x6663('0x3d')]['MailAccountId'])return[];return db[_0x6663('0x98')][_0x6663('0x3d')](_0xdcc4d7[_0x6663('0x99')](),_0xc4513a);})[_0x6663('0x27')](function(_0x26ec48){_0x2c9240[_0x6663('0x20')]=_0x26ec48[_0x6663('0x44')];if(_0x2c9240[_0x6663('0x20')]===0x0)return[];return db[_0x6663('0x98')]['query'](_0x3e79e0['toString'](),_0xc4513a)[_0x6663('0x27')](function(_0x9ccf36){_0x3c2b8c=_[_0x6663('0x9a')](_0x9ccf36,'id');_0xc4513a=_[_0x6663('0x9b')](_0xc4513a,{'model':db['MailInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x29a90a['query']['fields']){_0x18008a['attributes']['forEach'](function(_0x2a0e6d){_0x437242[_0x6663('0x49')]('i.'+_0x2a0e6d);});}else{_0x437242['field'](_0x6663('0x8f'),_0x6663('0x65'));_0x437242[_0x6663('0x49')](_0x6663('0x9c'),_0x6663('0x9d'));_0x437242[_0x6663('0x49')]('a.mandatoryDisposition','Account.mandatoryDisposition');_0x437242['field'](_0x6663('0x9e'),_0x6663('0x90'));_0x437242['field'](_0x6663('0x8e'));_0x437242[_0x6663('0x49')](_0x6663('0x9f'));_0x437242['field'](_0x6663('0xa0'));_0x437242[_0x6663('0x49')](_0x6663('0xa1'));_0x437242[_0x6663('0x49')](_0x6663('0xa2'));_0x437242['field'](_0x6663('0xa3'));_0x437242[_0x6663('0x49')](_0x6663('0xa4'));_0x437242['field'](_0x6663('0xa5'));_0x437242[_0x6663('0x49')](_0x6663('0xa6'));_0x437242[_0x6663('0x49')](_0x6663('0xa7'));_0x437242[_0x6663('0x49')](_0x6663('0xa8'));_0x437242[_0x6663('0x49')]('i.thirdDisposition');_0x437242['field']('i.substatus');_0x437242[_0x6663('0x49')](_0x6663('0xa9'));_0x437242[_0x6663('0x49')](_0x6663('0xaa'));_0x437242[_0x6663('0x49')](_0x6663('0xab'));_0x437242['field']('i.UserId');_0x437242[_0x6663('0x49')](_0x6663('0xac'),'Contact.firstName');_0x437242[_0x6663('0x49')](_0x6663('0xad'),_0x6663('0xae'));_0x437242[_0x6663('0x49')](_0x6663('0xaf'),_0x6663('0xb0'));_0x437242[_0x6663('0x49')]('c.phone',_0x6663('0xb1'));_0x437242[_0x6663('0x49')]('c.mobile',_0x6663('0xb2'));_0x437242['field']('c.fax',_0x6663('0xb3'));_0x437242[_0x6663('0x49')]('o.fullname','Owner.fullname');_0x437242[_0x6663('0x49')](_0x6663('0xb4'),_0x6663('0xb5'));_0x437242[_0x6663('0x49')](_0x6663('0xb6'),_0x6663('0x30'));}if(_0x18008a['limit'])_0x437242[_0x6663('0x22')](_0x18008a['limit']);if(_0x18008a[_0x6663('0x21')])_0x437242[_0x6663('0x21')](_0x18008a[_0x6663('0x21')]);return db[_0x6663('0x98')][_0x6663('0x3d')](_0x437242[_0x6663('0x99')](),_0xc4513a);})[_0x6663('0x27')](function(_0x3d3552){_0x399f0b[_0x6663('0x47')]('ui.MailInteractionId\x20IN\x20?',_['map'](_0x3d3552,'id'));return db[_0x6663('0x98')]['query'](_0x399f0b[_0x6663('0x99')](),_0xc4513a)['then'](function(_0x1be0ed){var _0x451c7e=_[_0x6663('0xb7')](_0x1be0ed,_0x6663('0xb8'));var _0x325bae=[];return db['Setting'][_0x6663('0x33')]({'attributes':[_0x6663('0xb9')],'raw':!![]})[_0x6663('0x27')](function(_0x424363){var _0x5e5b98=_0x424363[_0x6663('0xb9')];_0x3d3552[_0x6663('0x31')](function(_0x443fa4){_0x325bae[_0x6663('0x32')](updateMailInteraction(_0x443fa4,_0x3c2b8c,_0x451c7e,_0x5e5b98));});return BPromise[_0x6663('0xba')](_0x325bae);});});});})[_0x6663('0x27')](function(_0x142ecf){_0x2c9240['rows']=_0x142ecf;return _0x2c9240;})['then'](respondWithFilteredResult(_0x16a782,_0x18008a))[_0x6663('0x37')](handleError(_0x16a782,null));};exports['show']=function(_0x4c6fad,_0x524955){var _0x280b78={'raw':![],'where':{'id':_0x4c6fad[_0x6663('0xbb')]['id']}},_0x474f31={};_0x474f31['model']=_[_0x6663('0x3e')](db[_0x6663('0x39')][_0x6663('0xbc')]);_0x474f31[_0x6663('0x3d')]=_[_0x6663('0x3e')](_0x4c6fad[_0x6663('0x3d')]);_0x474f31[_0x6663('0x3f')]=_[_0x6663('0x40')](_0x474f31[_0x6663('0x41')],_0x474f31[_0x6663('0x3d')]);_0x280b78[_0x6663('0x42')]=_[_0x6663('0x40')](_0x474f31[_0x6663('0x41')],qs[_0x6663('0x43')](_0x4c6fad['query']['fields']));_0x280b78[_0x6663('0x42')]=_0x280b78[_0x6663('0x42')][_0x6663('0x44')]?_0x280b78[_0x6663('0x42')]:_0x474f31['model'];if(_0x4c6fad[_0x6663('0x3d')][_0x6663('0xbd')]){_0x280b78['include']=[{'all':!![]}];}_0x280b78=_[_0x6663('0x9b')]({},_0x280b78,_0x4c6fad[_0x6663('0xbe')]);return db['MailInteraction'][_0x6663('0x64')](_0x280b78)[_0x6663('0x27')](handleEntityNotFound(_0x524955,null))[_0x6663('0x27')](respondWithResult(_0x524955,null))['catch'](handleError(_0x524955,null));};exports['create']=function(_0x1798f4,_0x463946){return db['MailInteraction'][_0x6663('0xbf')](_0x1798f4[_0x6663('0xc0')],{})[_0x6663('0x27')](respondWithResult(_0x463946,0xc9))[_0x6663('0x37')](handleError(_0x463946,null));};exports[_0x6663('0x26')]=function(_0x506b62,_0x4c7749){if(_0x506b62['body']['id']){delete _0x506b62[_0x6663('0xc0')]['id'];}return db[_0x6663('0x39')]['find']({'where':{'id':_0x506b62['params']['id']}})[_0x6663('0x27')](handleEntityNotFound(_0x4c7749,null))[_0x6663('0x27')](saveUpdates(_0x506b62['body'],null))[_0x6663('0x27')](respondWithResult(_0x4c7749,null))[_0x6663('0x37')](handleError(_0x4c7749,null));};exports[_0x6663('0x28')]=function(_0x540a13,_0x53a535){return db['MailInteraction']['find']({'where':{'id':_0x540a13[_0x6663('0xbb')]['id']}})['then'](handleEntityNotFound(_0x53a535,null))[_0x6663('0x27')](removeEntity(_0x53a535,null))['catch'](handleError(_0x53a535,null));};exports[_0x6663('0xc1')]=function(_0x444768,_0x3ef1e1){return db[_0x6663('0x39')]['describe']()[_0x6663('0x27')](respondWithResult(_0x3ef1e1,null))[_0x6663('0x37')](handleError(_0x3ef1e1,null));};exports[_0x6663('0xc2')]=function(_0x21e225,_0x5094c0,_0x17ba08){return db[_0x6663('0xc3')]['find']({'where':{'id':_0x21e225[_0x6663('0xbb')]['id']}})[_0x6663('0x27')](handleEntityNotFound(_0x5094c0,null))[_0x6663('0x27')](function(_0xbad3ca){if(_0xbad3ca){return _0xbad3ca[_0x6663('0xc2')](_0x21e225[_0x6663('0xc0')][_0x6663('0xc4')],_[_0x6663('0xc5')](_0x21e225[_0x6663('0xc0')],['ids','id'])||{});}})[_0x6663('0x27')](respondWithResult(_0x5094c0,null))['catch'](handleError(_0x5094c0,null));};exports[_0x6663('0xc6')]=function(_0x1be061,_0x1873f2,_0x3270b3){var _0x3bb35d={'raw':![],'where':{}};var _0xfed472={};var _0x25b6b1={'count':0x0,'rows':[]};return db['MailInteraction'][_0x6663('0x33')]({'where':{'id':_0x1be061[_0x6663('0xbb')]['id']}})[_0x6663('0x27')](handleEntityNotFound(_0x1873f2,null))['then'](function(_0xeebaf4){if(_0xeebaf4){_0xfed472[_0x6663('0x41')]=_[_0x6663('0x3e')](db[_0x6663('0xc3')][_0x6663('0xbc')]);_0xfed472[_0x6663('0x3d')]=_[_0x6663('0x3e')](_0x1be061['query']);_0xfed472[_0x6663('0x3f')]=_['intersection'](_0xfed472[_0x6663('0x41')],_0xfed472[_0x6663('0x3d')]);_0x3bb35d[_0x6663('0x42')]=_['intersection'](_0xfed472[_0x6663('0x41')],qs[_0x6663('0x43')](_0x1be061['query'][_0x6663('0x43')]));_0x3bb35d['attributes']=_0x3bb35d[_0x6663('0x42')]['length']?_0x3bb35d[_0x6663('0x42')]:_0xfed472['model'];if(!_0x1be061[_0x6663('0x3d')][_0x6663('0xc7')](_0x6663('0xc8'))){_0x3bb35d[_0x6663('0x22')]=qs['limit'](_0x1be061[_0x6663('0x3d')][_0x6663('0x22')]);_0x3bb35d[_0x6663('0x21')]=qs['offset'](_0x1be061[_0x6663('0x3d')][_0x6663('0x21')]);}_0x3bb35d[_0x6663('0x45')]=qs['sort'](_0x1be061[_0x6663('0x3d')]['sort']);_0x3bb35d[_0x6663('0x47')]=qs['filters'](_['pick'](_0x1be061[_0x6663('0x3d')],_0xfed472['filters']));_0x3bb35d[_0x6663('0x47')]['MailInteractionId']=_0xeebaf4['id'];if(_0x1be061['query'][_0x6663('0x86')]){_0x3bb35d[_0x6663('0x47')]=_[_0x6663('0x9b')](_0x3bb35d['where'],{'$or':_[_0x6663('0x2d')](_0x3bb35d[_0x6663('0x42')],function(_0x4bae72){var _0xbcf00e={};_0xbcf00e[_0x4bae72]={'$like':'%'+_0x1be061[_0x6663('0x3d')][_0x6663('0x86')]+'%'};return _0xbcf00e;})});}if(_0x1be061[_0x6663('0x3d')]['$gte']){var _0x3a4165=_0x1be061[_0x6663('0x3d')]['$gte']['split'](',');var _0x4e5c4e={};_0x4e5c4e[_0x3a4165[0x0]]={'$gte':moment(_0x3a4165[0x1])['format'](_0x6663('0xc9'))};_0x3bb35d['where']=_[_0x6663('0x9b')](_0x3bb35d[_0x6663('0x47')],_0x4e5c4e);}_0x3bb35d=_['merge']({},_0x3bb35d,_0x1be061[_0x6663('0xbe')]);return db[_0x6663('0xc3')][_0x6663('0x20')]({'where':_0x3bb35d[_0x6663('0x47')]})['then'](function(_0x2952b0){_0x25b6b1[_0x6663('0x20')]=_0x2952b0;if(_0x1be061['query']['includeAll']){_0x3bb35d[_0x6663('0xca')]=[{'all':!![]}];}return db['MailMessage'][_0x6663('0xcb')](_0x3bb35d);})['then'](function(_0xb6c752){_0x25b6b1[_0x6663('0xcc')]=_0xb6c752;return _0x25b6b1;});}})['then'](respondWithFilteredResult(_0x1873f2,_0x3bb35d))['catch'](handleError(_0x1873f2,null));};exports[_0x6663('0xcd')]=function(_0x358e40,_0x39f441,_0x41d81e){return db[_0x6663('0x39')][_0x6663('0x64')]({'where':{'id':_0x358e40[_0x6663('0xbb')]['id']}})[_0x6663('0x27')](handleEntityNotFound(_0x39f441,null))[_0x6663('0x27')](function(_0x6aabea){if(_0x6aabea){return _0x6aabea[_0x6663('0xce')](_0x358e40[_0x6663('0xc0')][_0x6663('0xc4')],_['omit'](_0x358e40['body'],[_0x6663('0xc4'),'id'])||{})[_0x6663('0xcf')](function(){return db[_0x6663('0x72')][_0x6663('0xcb')]({'attributes':['id',_0x6663('0x2b'),'color'],'where':{'id':_0x358e40[_0x6663('0xc0')][_0x6663('0xc4')]}});})[_0x6663('0x27')](function(_0x677c07){socket[_0x6663('0xd0')](_0x6663('0xd1'),{'id':Number(_0x358e40[_0x6663('0xbb')]['id']),'tags':_0x677c07||[]});return{'id':Number(_0x358e40[_0x6663('0xbb')]['id']),'tags':_0x677c07||[]};});}})['then'](respondWithResult(_0x39f441,null))[_0x6663('0x37')](handleError(_0x39f441,null));};exports['removeTags']=function(_0x22b170,_0x1d8bda,_0x3116de){return db[_0x6663('0x39')]['find']({'where':{'id':_0x22b170[_0x6663('0xbb')]['id']}})['then'](handleEntityNotFound(_0x1d8bda,null))[_0x6663('0x27')](function(_0x418050){if(_0x418050){return _0x418050[_0x6663('0xd2')](_0x22b170['query']['ids']);}})['then'](respondWithStatusCode(_0x1d8bda,null))[_0x6663('0x37')](handleError(_0x1d8bda,null));};exports['download']=function(_0x32c1fa,_0x1a0a0b){var _0x303d46=moment()[_0x6663('0xd3')]()[_0x6663('0x99')]();var _0x450df6=path[_0x6663('0xd4')](config[_0x6663('0xd5')],_0x6663('0xd6'),_0x6663('0xd7'),_0x6663('0xd8'));var _0xc7d5d1=path[_0x6663('0xd4')](config['root'],_0x6663('0xd6'),'files',_0x6663('0xd9'));var _0x81122e=path[_0x6663('0xd4')](_0x450df6,_0x303d46);var _0x549858=util[_0x6663('0xda')]('transcript-%d-%s.zip',_0x32c1fa[_0x6663('0xbb')]['id'],_0x303d46);var _0x5daac4=path[_0x6663('0xd4')](_0x450df6,_0x549858);var _0x8dac0b=[];if(_0x32c1fa['query'][_0x6663('0xd9')]){_0x8dac0b[_0x6663('0x32')]({'model':db[_0x6663('0xdb')],'as':_0x6663('0xdc'),'raw':!![]});}var _0x566a38=[{'model':db['MailMessage'],'as':_0x6663('0xdd'),'attributes':['id','body',_0x6663('0x50'),'to','cc',_0x6663('0xde'),'subject','createdAt'],'where':{'secret':![]},'order':qs[_0x6663('0x46')]('id'),'include':_0x8dac0b}];return db[_0x6663('0x39')][_0x6663('0x64')]({'where':{'id':_0x32c1fa['params']['id']},'include':_0x566a38})[_0x6663('0x27')](handleEntityNotFound(_0x1a0a0b,null))[_0x6663('0x27')](function(_0x9c35e4){if(_0x9c35e4&&_0x9c35e4['Messages']){var _0x1c933e=_0x9c35e4[_0x6663('0xdf')]({'plain':!![]});fs[_0x6663('0xe0')](_0x81122e);return BPromise[_0x6663('0xe1')](_0x1c933e['Messages'],function(_0x1fe889,_0x4eb686){var _0x4f8511={'from':_0x1fe889[_0x6663('0x50')],'to':_0x1fe889['to'],'subject':_0x1fe889[_0x6663('0xe2')],'html':_0x1fe889[_0x6663('0xc0')],'headers':{'Date':moment(_0x1fe889['createdAt'])[_0x6663('0xda')](_0x6663('0xe3'))},'attachments':[]};if(_0x1fe889['cc']){_0x4f8511[_0x6663('0xe4')]['Cc']=_0x1fe889['cc'];}if(_0x1fe889['bcc']){_0x4f8511['headers'][_0x6663('0xe5')]=_0x1fe889[_0x6663('0xde')];}return new BPromise(function(_0x510f6c,_0x385a5d){if(_0x1fe889[_0x6663('0xdc')]){for(var _0x337537=0x0;_0x337537<_0x1fe889[_0x6663('0xdc')]['length'];_0x337537++){var _0xcd2abb=_0x1fe889[_0x6663('0xdc')][_0x337537];var _0x4be205=path[_0x6663('0xd4')](_0xc7d5d1,_0xcd2abb[_0x6663('0xe6')]);if(fs[_0x6663('0xe7')](_0x4be205)){_0x4f8511[_0x6663('0xd9')][_0x6663('0x32')]({'name':_0xcd2abb[_0x6663('0x2b')],'contentType':_0xcd2abb[_0x6663('0x3b')],'data':fs[_0x6663('0xe8')](_0x4be205)});}}}emlformat[_0x6663('0xe9')](_0x4f8511,function(_0x454ab4,_0x14f998){if(_0x454ab4)return _0x385a5d(_0x454ab4);fs[_0x6663('0xea')](path[_0x6663('0xd4')](_0x81122e,util['format']('message%d.eml',_0x4eb686)),_0x14f998);return _0x510f6c(_0x14f998);});});})[_0x6663('0x27')](function(){return new BPromise(function(_0x49d402,_0x3596e2){zipdir(_0x81122e,{'saveTo':_0x5daac4},function(_0x41e1d9,_0x30dd17){if(_0x41e1d9)return _0x3596e2(_0x41e1d9);return _0x49d402(_0x30dd17);});})['then'](function(){return new BPromise(function(_0x5dac45,_0x4a91ad){rimraf(_0x81122e,function(_0x32aaf5){if(_0x32aaf5)_0x4a91ad(_0x32aaf5);return _0x5dac45();});});})['then'](function(){return _0x1a0a0b[_0x6663('0xeb')](_0x5daac4,_0x549858,function(_0x4b4320){if(_0x4b4320){console[_0x6663('0xec')](_0x6663('0xed'),_0x4b4320);}else{fs[_0x6663('0xee')](_0x5daac4);}});});});}else{return _0x1a0a0b[_0x6663('0x1d')](0xc8);}})[_0x6663('0x37')](handleError(_0x1a0a0b,null));};