482799ef895f82f8d11fda790f2eb1fc4640f34e
[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 _0x7674=['findOne','lastMsgBody','lastMsgText','fromString','catch','index','fieldName','type','keys','query','model','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filters','pick','field','color','from','tools_tags','select','u.id','u.fullname','ui.MailInteractionId','user_has_mail_interactions','left_join','u.id\x20=\x20ui.UserId','mail_interactions','users','o.id\x20=\x20i.UserId','mail_accounts','a.id\x20=\x20i.MailAccountId','mail_messages','me.MailInteractionId\x20=\x20i.id','mail_interaction_has_tags','expr','parseSearch','search','sqlOperator','conditions','find','value','having','Contact','$substring','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','ContactId','text','union','operator','UserId','buildExpression','start','plainBody','some','compact','isEmpty','i.MailAccountId\x20IN\x20?','concat','parse','$gte','$lte','null','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','replace','\x27\x27\x27\x27','isNumeric','i.id\x20LIKE\x20?','isEmail','c.email\x20LIKE\x20?','MATCH\x20(i.to,\x20i.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','group','i.id','Sequelize','QueryTypes','SELECT','clone','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','unreadMessages','t.id\x20IN\x20?','resolve','MailAccountId','journey','i.MailAccountId\x20IS\x20NOT\x20NULL','user','i.MailAccountId\x20IS\x20NULL','sequelize','toString','keyBy','merge','a.key','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','i.createdAt','i.updatedAt','i.closed','i.closedAt','i.subject','i.secondDisposition','i.thirdDisposition','i.substatus','i.to','i.ContactId','i.UserId','c.firstName','Contact.firstName','c.lastName','Contact.lastName','Contact.email','c.phone','c.mobile','Contact.mobile','c.fax','Contact.fax','o.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.MailInteractionId\x20IN\x20?','groupBy','MailInteractionId','enableEmailPreview','push','rows','show','params','rawAttributes','filtears','intersection','include','create','update','body','destroy','describe','addMessage','MailMessage','omit','ids','getMessages','format','options','includeAll','findAll','setTags','spread','Tag','emit','mailInteractionTags:save','removeTags','download','join','root','server','files','tmp','attachments','Attachment','Attachments','subject','createdAt','Messages','get','mkdirSync','each','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','bcc','Bcc','basename','existsSync','readFileSync','build','writeFileSync','message%d.eml','log','err','unlinkSync','html-pdf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','../../config/utils','redis','socket.io-emitter','./mailInteraction.socket','sendStatus','end','status','json','count','offset','limit','Content-Range','apply','reject','save','then','error','stack','name','send','map','fullname','Tags','split','forEach','TagIds','MailInteraction'];(function(_0x3d0880,_0x4822f5){var _0x1d69e2=function(_0xd72d50){while(--_0xd72d50){_0x3d0880['push'](_0x3d0880['shift']());}};_0x1d69e2(++_0x4822f5);}(_0x7674,0xbd));var _0x4767=function(_0x2a2799,_0x5e25a8){_0x2a2799=_0x2a2799-0x0;var _0x17f761=_0x7674[_0x2a2799];return _0x17f761;};'use strict';var pdf=require(_0x4767('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x4767('0x1'));var jsonpatch=require(_0x4767('0x2'));var rp=require(_0x4767('0x3'));var moment=require(_0x4767('0x4'));var BPromise=require(_0x4767('0x5'));var Mustache=require(_0x4767('0x6'));var util=require(_0x4767('0x7'));var path=require(_0x4767('0x8'));var sox=require(_0x4767('0x9'));var csv=require('to-csv');var ejs=require(_0x4767('0xa'));var fs=require('fs');var _=require(_0x4767('0xb'));var squel=require(_0x4767('0xc'));var crypto=require(_0x4767('0xd'));var jsforce=require(_0x4767('0xe'));var deskjs=require(_0x4767('0xf'));var toCsv=require(_0x4767('0x10'));var querystring=require(_0x4767('0x11'));var Papa=require(_0x4767('0x12'));var htmlToText=require('html-to-text');var Redis=require(_0x4767('0x13'));var authService=require(_0x4767('0x14'));var qs=require(_0x4767('0x15'));var as=require(_0x4767('0x16'));var hardwareService=require(_0x4767('0x17'));var logger=require(_0x4767('0x18'))('api');var utils=require(_0x4767('0x19'));var config=require('../../config/environment');var licenseUtil=require('../../config/license/util');var db=require('../../mysqldb')['db'];config[_0x4767('0x1a')]=_['defaults'](config[_0x4767('0x1a')],{'host':'localhost','port':0x18eb});var socket=require(_0x4767('0x1b'))(new Redis(config['redis']));require(_0x4767('0x1c'))['register'](socket);function respondWithStatusCode(_0x596d0a,_0xfb3014){_0xfb3014=_0xfb3014||0xcc;return function(_0x487feb){if(_0x487feb){return _0x596d0a[_0x4767('0x1d')](_0xfb3014);}return _0x596d0a['status'](_0xfb3014)[_0x4767('0x1e')]();};}function respondWithResult(_0x56b010,_0x139f65){_0x139f65=_0x139f65||0xc8;return function(_0x33d0ae){if(_0x33d0ae){return _0x56b010[_0x4767('0x1f')](_0x139f65)[_0x4767('0x20')](_0x33d0ae);}};}function respondWithFilteredResult(_0x10560c,_0x5813fb){return function(_0x297308){if(_0x297308){var _0x1ca06b=_0x297308[_0x4767('0x21')],_0x283f90=_0x5813fb['offset'],_0x4725f4=_0x5813fb[_0x4767('0x22')]+_0x5813fb[_0x4767('0x23')],_0x4177af;if(_0x4725f4>=_0x1ca06b){_0x4725f4=_0x1ca06b;_0x4177af=0xc8;}else{_0x4177af=0xce;}_0x10560c[_0x4767('0x1f')](_0x4177af);return _0x10560c['set'](_0x4767('0x24'),_0x283f90+'-'+_0x4725f4+'/'+_0x1ca06b)[_0x4767('0x20')](_0x297308);}return null;};}function patchUpdates(_0x81f530){return function(_0x1562ab){try{jsonpatch[_0x4767('0x25')](_0x1562ab,_0x81f530,!![]);}catch(_0x4685a1){return BPromise[_0x4767('0x26')](_0x4685a1);}return _0x1562ab[_0x4767('0x27')]();};}function saveUpdates(_0x236346,_0x5e2830){return function(_0x484f36){if(_0x484f36){return _0x484f36['update'](_0x236346)['then'](function(_0x418fef){return _0x418fef;});}return null;};}function removeEntity(_0x55bc2c,_0x49c0b4){return function(_0x1bdbb0){if(_0x1bdbb0){return _0x1bdbb0['destroy']()[_0x4767('0x28')](function(){_0x55bc2c[_0x4767('0x1f')](0xcc)['end']();});}};}function handleEntityNotFound(_0x21dd23,_0x2c21af){return function(_0x3d6115){if(!_0x3d6115){_0x21dd23[_0x4767('0x1d')](0x194);}return _0x3d6115;};}function handleError(_0x1b7178,_0x54c39d){_0x54c39d=_0x54c39d||0x1f4;return function(_0x32604e){logger[_0x4767('0x29')](_0x32604e[_0x4767('0x2a')]);if(_0x32604e[_0x4767('0x2b')]){delete _0x32604e[_0x4767('0x2b')];}_0x1b7178[_0x4767('0x1f')](_0x54c39d)[_0x4767('0x2c')](_0x32604e);};}function getInteractionUsers(_0x4df333,_0x5a2d95){return new BPromise(function(_0x2090fe,_0x4466f0){try{if(_0x5a2d95[_0x4df333['id']]){_0x4df333['Users']=_[_0x4767('0x2d')](_0x5a2d95[_0x4df333['id']],function(_0x29a915){return{'id':_0x29a915['id'],'fullname':_0x29a915[_0x4767('0x2e')]};});}}catch(_0x130a97){_0x4466f0(_0x130a97);}_0x2090fe(_0x4df333);});}function getInteractionTags(_0x12751d,_0x5685e4){return new BPromise(function(_0xd75d9e,_0x46e51f){try{if(_0x12751d['TagIds']){_0x12751d[_0x4767('0x2f')]=[];_0x12751d['TagIds'][_0x4767('0x30')](',')[_0x4767('0x31')](function(_0x563586){_0x12751d[_0x4767('0x2f')]['push'](_0x5685e4[_0x563586]);});}delete _0x12751d[_0x4767('0x32')];}catch(_0x400707){_0x46e51f(_0x400707);}_0xd75d9e(_0x12751d);});}function getLastMessageText(_0x5a96b4){return new BPromise(function(_0x31f1f5,_0x5505c7){return db[_0x4767('0x33')][_0x4767('0x34')]({'where':{'id':_0x5a96b4['id']},'attributes':[_0x4767('0x35'),'lastMsgText'],'raw':!![]})[_0x4767('0x28')](function(_0x58fbd6){if(!_0x58fbd6['lastMsgText']){_0x5a96b4[_0x4767('0x36')]=_['trimStart'](htmlToText[_0x4767('0x37')](_0x58fbd6[_0x4767('0x35')],{'preserveNewlines':!![],'singleNewLineParagraphs':!![],'uppercaseHeadings':![],'noLinkBrackets':!![],'ignoreImage':!![]}));}else{_0x5a96b4[_0x4767('0x36')]=_0x58fbd6[_0x4767('0x36')];}_0x31f1f5(_0x5a96b4);})[_0x4767('0x38')](function(_0x21b66d){_0x5505c7(_0x21b66d);});});}function updateMailInteraction(_0x3a7cd2,_0x371e71,_0x2b5382,_0x11465f){return new BPromise(function(_0xfde5d5,_0x4182d7){return getInteractionUsers(_0x3a7cd2,_0x2b5382)[_0x4767('0x28')](function(_0x1b5d82){return getInteractionTags(_0x1b5d82,_0x371e71);})['then'](function(_0x15f352){if(_0x11465f){_0xfde5d5(getLastMessageText(_0x15f352));}else{_0xfde5d5(_0x15f352);}})[_0x4767('0x38')](function(_0x5b1012){_0x4182d7(_0x5b1012);});});}exports[_0x4767('0x39')]=function(_0x111616,_0x287486){var _0x3d216e={},_0x320bb3={},_0x2ac119={'count':0x0,'rows':[]};var _0x18d875=_[_0x4767('0x2d')](db['MailInteraction']['rawAttributes'],function(_0x299d49){return{'name':_0x299d49[_0x4767('0x3a')],'type':_0x299d49[_0x4767('0x3b')]['key']};});_0x320bb3['model']=_[_0x4767('0x2d')](_0x18d875,_0x4767('0x2b'));_0x320bb3['query']=_[_0x4767('0x3c')](_0x111616[_0x4767('0x3d')]);_0x320bb3['filters']=_['intersection'](_0x320bb3[_0x4767('0x3e')],_0x320bb3[_0x4767('0x3d')]);_0x3d216e[_0x4767('0x3f')]=_['intersection'](_0x320bb3[_0x4767('0x3e')],qs[_0x4767('0x40')](_0x111616['query'][_0x4767('0x40')]));_0x3d216e['attributes']=_0x3d216e['attributes'][_0x4767('0x41')]?_0x3d216e[_0x4767('0x3f')]:_0x320bb3[_0x4767('0x3e')];if(!_0x111616[_0x4767('0x3d')][_0x4767('0x42')](_0x4767('0x43'))){_0x3d216e['limit']=qs['limit'](_0x111616[_0x4767('0x3d')]['limit']);_0x3d216e['offset']=qs[_0x4767('0x22')](_0x111616['query'][_0x4767('0x22')]);}_0x3d216e[_0x4767('0x44')]=qs[_0x4767('0x45')](_0x111616['query'][_0x4767('0x45')]);_0x3d216e[_0x4767('0x46')]=qs[_0x4767('0x47')](_[_0x4767('0x48')](_0x111616[_0x4767('0x3d')],_0x320bb3[_0x4767('0x47')]),_0x18d875);var _0x554e83=[];var _0x372f43=squel['select']()[_0x4767('0x49')]('id')[_0x4767('0x49')](_0x4767('0x2b'))[_0x4767('0x49')](_0x4767('0x4a'))[_0x4767('0x4b')](_0x4767('0x4c'));var _0xae73df=squel[_0x4767('0x4d')]()['field'](_0x4767('0x4e'))['field'](_0x4767('0x4f'))[_0x4767('0x49')](_0x4767('0x50'))[_0x4767('0x4b')](_0x4767('0x51'),'ui')[_0x4767('0x52')]('users','u',_0x4767('0x53'));var _0x16d0f9=squel[_0x4767('0x4d')]()['from'](_0x4767('0x54'),'i')[_0x4767('0x52')]('cm_contacts','c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')[_0x4767('0x52')](_0x4767('0x55'),'o',_0x4767('0x56'))[_0x4767('0x52')](_0x4767('0x57'),'a',_0x4767('0x58'))[_0x4767('0x52')](_0x4767('0x59'),'me',_0x4767('0x5a'))[_0x4767('0x52')](_0x4767('0x5b'),'it','it.MailInteractionId\x20=\x20i.id')[_0x4767('0x52')](_0x4767('0x4c'),'t','t.id\x20=\x20it.TagId');var _0xd67382=squel['expr']();var _0x5125e2=[];var _0x444c74=squel[_0x4767('0x5c')]();var _0x23292e;if(_0x111616['query']['search']){_0x23292e=as[_0x4767('0x5d')](_0x111616[_0x4767('0x3d')][_0x4767('0x5e')]);var _0x564791=_0x23292e[_0x4767('0x5f')];for(var _0x50937f=0x0;_0x50937f<_0x23292e[_0x4767('0x60')][_0x4767('0x41')];_0x50937f++){var _0x1b6272=_0x23292e[_0x4767('0x60')][_0x50937f];var _0x4a9469='i';var _0x53e83a=_[_0x4767('0x61')](_0x18d875,[_0x4767('0x2b'),_0x1b6272['field']]);if(!_0x53e83a){switch(_0x1b6272[_0x4767('0x49')]){case'unreadMessages':if(_0x1b6272[_0x4767('0x62')]==0x1){_0x16d0f9[_0x4767('0x63')]('`'+_0x1b6272[_0x4767('0x49')]+'`\x20=\x200');}else{_0x16d0f9['having']('`'+_0x1b6272[_0x4767('0x49')]+'`\x20>\x200');}break;case _0x4767('0x64'):if(_0x1b6272['operator']===_0x4767('0x65')){if(_0x1b6272[_0x4767('0x62')][_0x4767('0x30')]('\x20')[_0x4767('0x41')]>0x1){_0xd67382[_0x564791](_0x4767('0x66'),qs[_0x4767('0x67')](_0x1b6272[_0x4767('0x62')]),null);}else{var _0x1a5abb='%'+_0x1b6272[_0x4767('0x62')]+'%';_0xd67382[_0x564791]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x1a5abb,_0x1a5abb,_0x1a5abb);}}else{_0x53e83a=_[_0x4767('0x61')](_0x18d875,[_0x4767('0x2b'),_0x4767('0x68')]);_0x1b6272[_0x4767('0x49')]='ContactId';_0x3ac90b=as['buildExpression'](_0x4a9469,_0x53e83a[_0x4767('0x3b')],_0x1b6272);_0xd67382[_0x564791](_0x3ac90b[_0x4767('0x69')],_0x3ac90b['value']['start'],_0x3ac90b[_0x4767('0x62')][_0x4767('0x1e')]);}break;case'Tag':var _0x26392f=_0x1b6272[_0x4767('0x62')]['split'](',')[_0x4767('0x2d')](function(_0x36916b){return Number(_0x36916b);});_0x26392f[_0x4767('0x31')](function(_0x36ccd1){_0x444c74['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x36ccd1+',%');});_0x5125e2=_[_0x4767('0x6a')](_0x5125e2,_0x26392f);break;case'User':if(_0x1b6272[_0x4767('0x6b')]===_0x4767('0x65')){_0xd67382[_0x564791]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x1b6272[_0x4767('0x62')]+'%',null);}else{_0x53e83a=_['find'](_0x18d875,[_0x4767('0x2b'),_0x4767('0x6c')]);_0x1b6272[_0x4767('0x49')]=_0x4767('0x6c');_0x3ac90b=as[_0x4767('0x6d')](_0x4a9469,_0x53e83a[_0x4767('0x3b')],_0x1b6272);_0xd67382[_0x564791](_0x3ac90b[_0x4767('0x69')],_0x3ac90b[_0x4767('0x62')][_0x4767('0x6e')],_0x3ac90b[_0x4767('0x62')]['end']);}break;case _0x4767('0x6f'):_0x3ac90b=as[_0x4767('0x6d')]('me',null,_0x1b6272);_0xd67382[_0x564791](_0x3ac90b[_0x4767('0x69')],_0x3ac90b[_0x4767('0x62')][_0x4767('0x6e')],_0x3ac90b[_0x4767('0x62')][_0x4767('0x1e')]);break;}}else{var _0x3ac90b=as[_0x4767('0x6d')](_0x4a9469,_0x53e83a[_0x4767('0x3b')],_0x1b6272);_0xd67382[_0x564791](_0x3ac90b[_0x4767('0x69')],_0x3ac90b['value'][_0x4767('0x6e')],_0x3ac90b['value'][_0x4767('0x1e')]);}}}else{var _0x2113bc=_(_0x111616[_0x4767('0x3d')])['keys']()[_0x4767('0x2d')](function(_0xc8ed71){return _[_0x4767('0x70')](_0x18d875,[_0x4767('0x2b'),_0xc8ed71])?_0xc8ed71:undefined;})[_0x4767('0x71')]()['value']();if(!_[_0x4767('0x72')](_0x2113bc)){_0x2113bc[_0x4767('0x31')](function(_0x38ea92){if(_0x38ea92==='MailAccountId'){_0x16d0f9[_0x4767('0x46')](_0x4767('0x73'),[][_0x4767('0x74')](_0x111616[_0x4767('0x3d')][_0x38ea92]));}else if(_0x38ea92==='createdAt'){var _0x2b455a=JSON[_0x4767('0x75')](_0x111616[_0x4767('0x3d')][_0x38ea92])[_0x4767('0x76')];var _0x4646be=JSON[_0x4767('0x75')](_0x111616[_0x4767('0x3d')][_0x38ea92])[_0x4767('0x77')];_0x16d0f9['where']('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x2b455a,_0x4646be);}else{if(_0x111616['query'][_0x38ea92]===_0x4767('0x78')){_0x16d0f9[_0x4767('0x46')]('i.'+_0x38ea92+'\x20IS\x20NULL');}else{_0x16d0f9[_0x4767('0x46')]('i.'+_0x38ea92+'\x20=\x20?',_0x111616[_0x4767('0x3d')][_0x38ea92]);}}});}if(_0x111616[_0x4767('0x3d')][_0x4767('0x79')]){if(_0x111616[_0x4767('0x3d')]['read']==0x1){_0x16d0f9[_0x4767('0x63')](_0x4767('0x7a'));}else{_0x16d0f9[_0x4767('0x63')](_0x4767('0x7b'));}}if(_0x111616[_0x4767('0x3d')][_0x4767('0x7c')]){_0x5125e2=_[_0x4767('0x7d')](_0x111616[_0x4767('0x3d')][_0x4767('0x7c')])?_0x111616[_0x4767('0x3d')]['tag']:new Array(_0x111616['query'][_0x4767('0x7c')]);_0x5125e2[_0x4767('0x31')](function(_0x40b4da){_0x444c74['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x40b4da+',%');});}if(_0x111616[_0x4767('0x3d')]['filter']){var _0x334dbf=_0x111616[_0x4767('0x3d')]['filter'][_0x4767('0x7e')]('\x5c','\x5c\x5c')[_0x4767('0x7e')]('\x27\x27',_0x4767('0x7f'));if(qs[_0x4767('0x80')](_0x334dbf)){_0xd67382['or'](_0x4767('0x81'),_0x334dbf+'%');}else if(qs[_0x4767('0x82')](_0x334dbf)){_0xd67382['or'](_0x4767('0x83'),_0x334dbf+'%');}else{_0xd67382['or'](_0x4767('0x84'),qs['getFullTextValue'](_0x334dbf))['or']('MATCH\x20(me.plainBody,\x20me.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x4767('0x67')](_0x334dbf));}}}_0x16d0f9[_0x4767('0x46')](_0xd67382);_0x16d0f9[_0x4767('0x85')](_0x4767('0x86'));var _0x939ee2={'type':db[_0x4767('0x87')][_0x4767('0x88')][_0x4767('0x89')],'raw':!![]};var _0x5cf5c1=_0x16d0f9[_0x4767('0x8a')]();_0x5cf5c1['field'](_0x4767('0x86'));_0x5cf5c1[_0x4767('0x49')](_0x4767('0x8b'),_0x4767('0x8c'));if(_0x3d216e['order']){_0x3d216e[_0x4767('0x44')][_0x4767('0x31')](function(_0x24f95d){_0x16d0f9[_0x4767('0x44')]('i.'+_0x24f95d[0x0],_0x24f95d[0x1]==='DESC'?![]:!![]);});}if(!_[_0x4767('0x72')](_0x5125e2)){_0x16d0f9[_0x4767('0x63')](_0x444c74);_0x5cf5c1[_0x4767('0x46')](_0x4767('0x8d'),_0x5125e2);}BPromise[_0x4767('0x8e')]()[_0x4767('0x28')](function(){if(!_0x23292e){if(_0x111616['query'][_0x4767('0x8f')]||_0x111616[_0x4767('0x3d')][_0x4767('0x90')])return;_0x5cf5c1[_0x4767('0x46')](_0x4767('0x91'));_0x16d0f9[_0x4767('0x46')](_0x4767('0x91'));return;}return _0x111616[_0x4767('0x92')]['getMailAccounts']({'attributes':['id'],'raw':!![]})[_0x4767('0x28')](function(_0x40ec68){if(_['isEmpty'](_0x40ec68)){_0x5cf5c1[_0x4767('0x46')](_0x4767('0x93'));_0x16d0f9[_0x4767('0x46')](_0x4767('0x93'));}else{_0x5cf5c1['where'](_0x4767('0x73'),_['map'](_0x40ec68,'id'));_0x16d0f9[_0x4767('0x46')](_0x4767('0x73'),_['map'](_0x40ec68,'id'));}});})[_0x4767('0x28')](function(){db[_0x4767('0x94')][_0x4767('0x3d')](_0x5cf5c1[_0x4767('0x95')](),_0x939ee2)[_0x4767('0x28')](function(_0x40a5d6){_0x2ac119[_0x4767('0x21')]=_0x40a5d6[_0x4767('0x41')];if(_0x2ac119[_0x4767('0x21')]===0x0)return[];return db[_0x4767('0x94')][_0x4767('0x3d')](_0x372f43[_0x4767('0x95')](),_0x939ee2)[_0x4767('0x28')](function(_0x1be556){_0x554e83=_[_0x4767('0x96')](_0x1be556,'id');_0x939ee2=_[_0x4767('0x97')](_0x939ee2,{'model':db[_0x4767('0x33')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x111616[_0x4767('0x3d')][_0x4767('0x40')]){_0x3d216e['attributes'][_0x4767('0x31')](function(_0x29c18c){_0x16d0f9[_0x4767('0x49')]('i.'+_0x29c18c);});}else{_0x16d0f9[_0x4767('0x49')](_0x4767('0x8b'),_0x4767('0x8c'));_0x16d0f9['field'](_0x4767('0x98'),_0x4767('0x99'));_0x16d0f9[_0x4767('0x49')](_0x4767('0x9a'),_0x4767('0x9b'));_0x16d0f9[_0x4767('0x49')](_0x4767('0x86'));_0x16d0f9[_0x4767('0x49')](_0x4767('0x9c'));_0x16d0f9[_0x4767('0x49')](_0x4767('0x9d'));_0x16d0f9[_0x4767('0x49')](_0x4767('0x9e'));_0x16d0f9['field'](_0x4767('0x9f'));_0x16d0f9['field']('i.attach');_0x16d0f9[_0x4767('0x49')]('i.lastMsgAt');_0x16d0f9[_0x4767('0x49')]('i.lastMsgDirection');_0x16d0f9['field'](_0x4767('0xa0'));_0x16d0f9[_0x4767('0x49')]('i.disposition');_0x16d0f9[_0x4767('0x49')](_0x4767('0xa1'));_0x16d0f9['field'](_0x4767('0xa2'));_0x16d0f9[_0x4767('0x49')](_0x4767('0xa3'));_0x16d0f9[_0x4767('0x49')](_0x4767('0xa4'));_0x16d0f9[_0x4767('0x49')](_0x4767('0xa5'));_0x16d0f9[_0x4767('0x49')]('i.MailAccountId');_0x16d0f9[_0x4767('0x49')](_0x4767('0xa6'));_0x16d0f9[_0x4767('0x49')](_0x4767('0xa7'),_0x4767('0xa8'));_0x16d0f9[_0x4767('0x49')](_0x4767('0xa9'),_0x4767('0xaa'));_0x16d0f9['field']('c.email',_0x4767('0xab'));_0x16d0f9[_0x4767('0x49')](_0x4767('0xac'),'Contact.phone');_0x16d0f9['field'](_0x4767('0xad'),_0x4767('0xae'));_0x16d0f9[_0x4767('0x49')](_0x4767('0xaf'),_0x4767('0xb0'));_0x16d0f9['field'](_0x4767('0xb1'),'Owner.fullname');_0x16d0f9['field'](_0x4767('0xb2'),_0x4767('0xb3'));_0x16d0f9[_0x4767('0x49')](_0x4767('0xb4'),_0x4767('0x32'));}if(_0x3d216e[_0x4767('0x23')])_0x16d0f9[_0x4767('0x23')](_0x3d216e['limit']);if(_0x3d216e[_0x4767('0x22')])_0x16d0f9[_0x4767('0x22')](_0x3d216e[_0x4767('0x22')]);return db[_0x4767('0x94')][_0x4767('0x3d')](_0x16d0f9[_0x4767('0x95')](),_0x939ee2);})[_0x4767('0x28')](function(_0x5c499e){_0xae73df[_0x4767('0x46')](_0x4767('0xb5'),_[_0x4767('0x2d')](_0x5c499e,'id'));return db['sequelize']['query'](_0xae73df['toString'](),_0x939ee2)['then'](function(_0x47e9d8){var _0x1f6d89=_[_0x4767('0xb6')](_0x47e9d8,_0x4767('0xb7'));var _0x2361eb=[];return db['Setting']['findOne']({'attributes':[_0x4767('0xb8')],'raw':!![]})[_0x4767('0x28')](function(_0x24eb49){var _0x1caeed=_0x24eb49[_0x4767('0xb8')];_0x5c499e[_0x4767('0x31')](function(_0x1b8ced){_0x2361eb[_0x4767('0xb9')](updateMailInteraction(_0x1b8ced,_0x554e83,_0x1f6d89,_0x1caeed));});return BPromise['all'](_0x2361eb);});});});})[_0x4767('0x28')](function(_0x918f8b){_0x2ac119[_0x4767('0xba')]=_0x918f8b;return _0x2ac119;})['then'](respondWithFilteredResult(_0x287486,_0x3d216e));})[_0x4767('0x38')](handleError(_0x287486,null));};exports[_0x4767('0xbb')]=function(_0x2c56e2,_0x151225){var _0x175611={'raw':![],'where':{'id':_0x2c56e2[_0x4767('0xbc')]['id']}},_0x2ccc8c={};_0x2ccc8c[_0x4767('0x3e')]=_[_0x4767('0x3c')](db['MailInteraction'][_0x4767('0xbd')]);_0x2ccc8c[_0x4767('0x3d')]=_[_0x4767('0x3c')](_0x2c56e2[_0x4767('0x3d')]);_0x2ccc8c[_0x4767('0xbe')]=_[_0x4767('0xbf')](_0x2ccc8c[_0x4767('0x3e')],_0x2ccc8c[_0x4767('0x3d')]);_0x175611['attributes']=_[_0x4767('0xbf')](_0x2ccc8c[_0x4767('0x3e')],qs[_0x4767('0x40')](_0x2c56e2[_0x4767('0x3d')][_0x4767('0x40')]));_0x175611[_0x4767('0x3f')]=_0x175611['attributes'][_0x4767('0x41')]?_0x175611[_0x4767('0x3f')]:_0x2ccc8c['model'];if(_0x2c56e2['query']['includeAll']){_0x175611[_0x4767('0xc0')]=[{'all':!![]}];}_0x175611=_[_0x4767('0x97')]({},_0x175611,_0x2c56e2['options']);return db[_0x4767('0x33')][_0x4767('0x61')](_0x175611)[_0x4767('0x28')](handleEntityNotFound(_0x151225,null))[_0x4767('0x28')](respondWithResult(_0x151225,null))[_0x4767('0x38')](handleError(_0x151225,null));};exports[_0x4767('0xc1')]=function(_0x4aaefb,_0x1b20e6){return db[_0x4767('0x33')][_0x4767('0xc1')](_0x4aaefb['body'],{})[_0x4767('0x28')](respondWithResult(_0x1b20e6,0xc9))[_0x4767('0x38')](handleError(_0x1b20e6,null));};exports[_0x4767('0xc2')]=function(_0x806924,_0x5c472d){if(_0x806924[_0x4767('0xc3')]['id']){delete _0x806924[_0x4767('0xc3')]['id'];}return db['MailInteraction'][_0x4767('0x61')]({'where':{'id':_0x806924['params']['id']}})['then'](handleEntityNotFound(_0x5c472d,null))['then'](saveUpdates(_0x806924[_0x4767('0xc3')],null))[_0x4767('0x28')](respondWithResult(_0x5c472d,null))[_0x4767('0x38')](handleError(_0x5c472d,null));};exports[_0x4767('0xc4')]=function(_0x77b960,_0xf2f020){return db[_0x4767('0x33')]['find']({'where':{'id':_0x77b960['params']['id']}})[_0x4767('0x28')](handleEntityNotFound(_0xf2f020,null))[_0x4767('0x28')](removeEntity(_0xf2f020,null))[_0x4767('0x38')](handleError(_0xf2f020,null));};exports[_0x4767('0xc5')]=function(_0x41902d,_0x15410c){return db['MailInteraction'][_0x4767('0xc5')]()[_0x4767('0x28')](respondWithResult(_0x15410c,null))[_0x4767('0x38')](handleError(_0x15410c,null));};exports[_0x4767('0xc6')]=function(_0x239053,_0x203a40,_0x35f68f){return db[_0x4767('0xc7')][_0x4767('0x61')]({'where':{'id':_0x239053[_0x4767('0xbc')]['id']}})[_0x4767('0x28')](handleEntityNotFound(_0x203a40,null))['then'](function(_0x26fb7e){if(_0x26fb7e){return _0x26fb7e[_0x4767('0xc6')](_0x239053[_0x4767('0xc3')]['ids'],_[_0x4767('0xc8')](_0x239053[_0x4767('0xc3')],[_0x4767('0xc9'),'id'])||{});}})[_0x4767('0x28')](respondWithResult(_0x203a40,null))[_0x4767('0x38')](handleError(_0x203a40,null));};exports[_0x4767('0xca')]=function(_0x41ca5b,_0x1cde7a,_0x201666){var _0x561510={'raw':![],'where':{}};var _0x1baa95={};var _0x15b638={'count':0x0,'rows':[]};return db[_0x4767('0x33')][_0x4767('0x34')]({'where':{'id':_0x41ca5b[_0x4767('0xbc')]['id']}})[_0x4767('0x28')](handleEntityNotFound(_0x1cde7a,null))[_0x4767('0x28')](function(_0x94a927){if(_0x94a927){_0x1baa95[_0x4767('0x3e')]=_[_0x4767('0x3c')](db[_0x4767('0xc7')][_0x4767('0xbd')]);_0x1baa95[_0x4767('0x3d')]=_['keys'](_0x41ca5b[_0x4767('0x3d')]);_0x1baa95[_0x4767('0x47')]=_['intersection'](_0x1baa95[_0x4767('0x3e')],_0x1baa95[_0x4767('0x3d')]);_0x561510[_0x4767('0x3f')]=_[_0x4767('0xbf')](_0x1baa95[_0x4767('0x3e')],qs['fields'](_0x41ca5b[_0x4767('0x3d')][_0x4767('0x40')]));_0x561510[_0x4767('0x3f')]=_0x561510[_0x4767('0x3f')]['length']?_0x561510[_0x4767('0x3f')]:_0x1baa95[_0x4767('0x3e')];if(!_0x41ca5b[_0x4767('0x3d')][_0x4767('0x42')](_0x4767('0x43'))){_0x561510[_0x4767('0x23')]=qs['limit'](_0x41ca5b[_0x4767('0x3d')]['limit']);_0x561510[_0x4767('0x22')]=qs[_0x4767('0x22')](_0x41ca5b[_0x4767('0x3d')][_0x4767('0x22')]);}_0x561510[_0x4767('0x44')]=qs[_0x4767('0x45')](_0x41ca5b[_0x4767('0x3d')][_0x4767('0x45')]);_0x561510['where']=qs[_0x4767('0x47')](_[_0x4767('0x48')](_0x41ca5b[_0x4767('0x3d')],_0x1baa95['filters']));_0x561510[_0x4767('0x46')]['MailInteractionId']=_0x94a927['id'];if(_0x41ca5b[_0x4767('0x3d')]['filter']){_0x561510[_0x4767('0x46')]=_[_0x4767('0x97')](_0x561510['where'],{'$or':_['map'](_0x561510[_0x4767('0x3f')],function(_0x338e14){var _0x3d0f25={};_0x3d0f25[_0x338e14]={'$like':'%'+_0x41ca5b[_0x4767('0x3d')]['filter']+'%'};return _0x3d0f25;})});}if(_0x41ca5b[_0x4767('0x3d')]['$gte']){var _0x16104d=_0x41ca5b[_0x4767('0x3d')]['$gte'][_0x4767('0x30')](',');var _0x4d0a80={};_0x4d0a80[_0x16104d[0x0]]={'$gte':moment(_0x16104d[0x1])[_0x4767('0xcb')]('YYYY-MM-DD\x20HH:mm:ss')};_0x561510['where']=_[_0x4767('0x97')](_0x561510['where'],_0x4d0a80);}_0x561510=_['merge']({},_0x561510,_0x41ca5b[_0x4767('0xcc')]);return db[_0x4767('0xc7')]['count']({'where':_0x561510[_0x4767('0x46')]})[_0x4767('0x28')](function(_0x390a7f){_0x15b638[_0x4767('0x21')]=_0x390a7f;if(_0x41ca5b[_0x4767('0x3d')][_0x4767('0xcd')]){_0x561510[_0x4767('0xc0')]=[{'all':!![]}];}return db[_0x4767('0xc7')][_0x4767('0xce')](_0x561510);})['then'](function(_0x3f56bd){_0x15b638[_0x4767('0xba')]=_0x3f56bd;return _0x15b638;});}})[_0x4767('0x28')](respondWithFilteredResult(_0x1cde7a,_0x561510))[_0x4767('0x38')](handleError(_0x1cde7a,null));};exports['addTags']=function(_0x1ac9ec,_0x2bcffa,_0x11d07c){return db['MailInteraction']['find']({'where':{'id':_0x1ac9ec[_0x4767('0xbc')]['id']}})['then'](handleEntityNotFound(_0x2bcffa,null))[_0x4767('0x28')](function(_0x22aa56){if(_0x22aa56){return _0x22aa56[_0x4767('0xcf')](_0x1ac9ec[_0x4767('0xc3')][_0x4767('0xc9')],_[_0x4767('0xc8')](_0x1ac9ec[_0x4767('0xc3')],[_0x4767('0xc9'),'id'])||{})[_0x4767('0xd0')](function(){return db[_0x4767('0xd1')][_0x4767('0xce')]({'attributes':['id',_0x4767('0x2b'),_0x4767('0x4a')],'where':{'id':_0x1ac9ec['body'][_0x4767('0xc9')]}});})['then'](function(_0x5e44e7){socket[_0x4767('0xd2')](_0x4767('0xd3'),{'id':Number(_0x1ac9ec[_0x4767('0xbc')]['id']),'tags':_0x5e44e7||[]});return{'id':Number(_0x1ac9ec['params']['id']),'tags':_0x5e44e7||[]};});}})[_0x4767('0x28')](respondWithResult(_0x2bcffa,null))[_0x4767('0x38')](handleError(_0x2bcffa,null));};exports[_0x4767('0xd4')]=function(_0x427b8c,_0x316d19,_0x553462){return db[_0x4767('0x33')][_0x4767('0x61')]({'where':{'id':_0x427b8c[_0x4767('0xbc')]['id']}})['then'](handleEntityNotFound(_0x316d19,null))[_0x4767('0x28')](function(_0x349093){if(_0x349093){return _0x349093[_0x4767('0xd4')](_0x427b8c['query']['ids']);}})['then'](respondWithStatusCode(_0x316d19,null))[_0x4767('0x38')](handleError(_0x316d19,null));};exports[_0x4767('0xd5')]=function(_0x26b23b,_0x5a0ce6){var _0x3207f0=moment()['unix']()[_0x4767('0x95')]();var _0x2f6eec=path[_0x4767('0xd6')](config[_0x4767('0xd7')],_0x4767('0xd8'),_0x4767('0xd9'),_0x4767('0xda'));var _0x332434=path[_0x4767('0xd6')](config[_0x4767('0xd7')],'server',_0x4767('0xd9'),'attachments');var _0x1605f4=path['join'](_0x2f6eec,_0x3207f0);var _0x11c8a0=util['format']('transcript-%d-%s.zip',_0x26b23b['params']['id'],_0x3207f0);var _0xb1d82f=path['join'](_0x2f6eec,_0x11c8a0);var _0x5909d4=[];if(_0x26b23b[_0x4767('0x3d')][_0x4767('0xdb')]){_0x5909d4[_0x4767('0xb9')]({'model':db[_0x4767('0xdc')],'as':_0x4767('0xdd'),'raw':!![]});}var _0xe479d5=[{'model':db[_0x4767('0xc7')],'as':'Messages','attributes':['id',_0x4767('0xc3'),_0x4767('0x4b'),'to','cc','bcc',_0x4767('0xde'),_0x4767('0xdf')],'where':{'secret':![]},'order':qs[_0x4767('0x45')]('id'),'include':_0x5909d4}];return db['MailInteraction']['find']({'where':{'id':_0x26b23b['params']['id']},'include':_0xe479d5})[_0x4767('0x28')](handleEntityNotFound(_0x5a0ce6,null))[_0x4767('0x28')](function(_0x4d1b6a){if(_0x4d1b6a&&_0x4d1b6a[_0x4767('0xe0')]){var _0x13cb5a=_0x4d1b6a[_0x4767('0xe1')]({'plain':!![]});fs[_0x4767('0xe2')](_0x1605f4);return BPromise[_0x4767('0xe3')](_0x13cb5a[_0x4767('0xe0')],function(_0x3d086c,_0x23c6fb){var _0x56d577={'from':_0x3d086c[_0x4767('0x4b')],'to':_0x3d086c['to'],'subject':_0x3d086c[_0x4767('0xde')],'html':_0x3d086c[_0x4767('0xc3')],'headers':{'Date':moment(_0x3d086c['createdAt'])[_0x4767('0xcb')](_0x4767('0xe4'))},'attachments':[]};if(_0x3d086c['cc']){_0x56d577[_0x4767('0xe5')]['Cc']=_0x3d086c['cc'];}if(_0x3d086c[_0x4767('0xe6')]){_0x56d577[_0x4767('0xe5')][_0x4767('0xe7')]=_0x3d086c['bcc'];}return new BPromise(function(_0x224c8c,_0x16a328){if(_0x3d086c[_0x4767('0xdd')]){for(var _0x38ca2e=0x0;_0x38ca2e<_0x3d086c[_0x4767('0xdd')]['length'];_0x38ca2e++){var _0x4828a0=_0x3d086c[_0x4767('0xdd')][_0x38ca2e];var _0x5e08bb=path['join'](_0x332434,_0x4828a0[_0x4767('0xe8')]);if(fs[_0x4767('0xe9')](_0x5e08bb)){_0x56d577['attachments'][_0x4767('0xb9')]({'name':_0x4828a0[_0x4767('0x2b')],'contentType':_0x4828a0[_0x4767('0x3b')],'data':fs[_0x4767('0xea')](_0x5e08bb)});}}}emlformat[_0x4767('0xeb')](_0x56d577,function(_0x6f14ab,_0x4d71f4){if(_0x6f14ab)return _0x16a328(_0x6f14ab);fs[_0x4767('0xec')](path[_0x4767('0xd6')](_0x1605f4,util[_0x4767('0xcb')](_0x4767('0xed'),_0x23c6fb)),_0x4d71f4);return _0x224c8c(_0x4d71f4);});});})['then'](function(){return new BPromise(function(_0x4d8db6,_0x5ee003){zipdir(_0x1605f4,{'saveTo':_0xb1d82f},function(_0x531c4a,_0x558c74){if(_0x531c4a)return _0x5ee003(_0x531c4a);return _0x4d8db6(_0x558c74);});})[_0x4767('0x28')](function(){return new BPromise(function(_0xa627ff,_0x2aae24){rimraf(_0x1605f4,function(_0x16ca1a){if(_0x16ca1a)_0x2aae24(_0x16ca1a);return _0xa627ff();});});})['then'](function(){return _0x5a0ce6[_0x4767('0xd5')](_0xb1d82f,_0x11c8a0,function(_0x474a6e){if(_0x474a6e){console[_0x4767('0xee')](_0x4767('0xef'),_0x474a6e);}else{fs[_0x4767('0xf0')](_0xb1d82f);}});});});}else{return _0x5a0ce6[_0x4767('0x1d')](0xc8);}})['catch'](handleError(_0x5a0ce6,null));};