c2fba47bab7b1295c9c2eb1cfebc1fd3702d2ed2
[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 _0xfef3=['download','unix','join','root','files','tmp','server','attachments','Attachment','Attachments','Messages','subject','get','each','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','bcc','basename','existsSync','readFileSync','build','writeFileSync','message%d.eml','log','err','html-pdf','rimraf','fast-json-patch','request-promise','bluebird','mustache','path','sox','ejs','lodash','squel','crypto','jsforce','desk.js','to-csv','querystring','papaparse','html-to-text','juice','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','./mailInteraction.socket','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','map','fullname','TagIds','Tags','split','forEach','push','MailInteraction','findOne','lastMsgBody','lastMsgText','trimStart','fromString','catch','index','rawAttributes','type','key','model','query','keys','intersection','attributes','fields','length','nolimit','order','sort','filters','pick','select','field','color','from','u.id','u.fullname','ui.MailInteractionId','left_join','mail_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','mail_accounts','mail_messages','me.MailInteractionId\x20=\x20i.id','mail_interaction_has_tags','tools_tags','t.id\x20=\x20it.TagId','expr','parseSearch','search','sqlOperator','conditions','unreadMessages','having','`\x20=\x200','`\x20>\x200','Contact','operator','MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?','ContactId','buildExpression','value','start','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','$substring','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','find','text','plainBody','some','compact','isEmpty','MailAccountId','where','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?','MATCH\x20(i.to,\x20i.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','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','DESC','t.id\x20IN\x20?','i.MailAccountId\x20IS\x20NOT\x20NULL','agent','user','getMailAccounts','i.MailAccountId\x20IS\x20NULL','role','sequelize','toString','keyBy','merge','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.updatedAt','i.closed','i.attach','i.lastMsgAt','i.lastMsgDirection','i.subject','i.disposition','i.secondDisposition','i.thirdDisposition','i.substatus','i.to','i.ContactId','i.MailAccountId','i.UserId','c.firstName','Contact.firstName','c.lastName','c.phone','Contact.phone','c.mobile','Contact.mobile','c.fax','Contact.fax','o.fullname','Owner.fullname','o.internal','ui.MailInteractionId\x20IN\x20?','groupBy','MailInteractionId','enableEmailPreview','all','rows','show','params','includeAll','options','create','body','describe','MailMessage','addMessage','omit','getMessages','hasOwnProperty','format','YYYY-MM-DD\x20HH:mm:ss','include','inlineCss','true','addTags','setTags','ids','spread','emit','mailInteractionTags:save','removeTags'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0xfef3,0x118));var _0x3fef=function(_0x36c5b0,_0x5001da){_0x36c5b0=_0x36c5b0-0x0;var _0xf19333=_0xfef3[_0x36c5b0];return _0xf19333;};'use strict';var pdf=require(_0x3fef('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x3fef('0x1'));var zipdir=require('zip-dir');var jsonpatch=require(_0x3fef('0x2'));var rp=require(_0x3fef('0x3'));var moment=require('moment');var BPromise=require(_0x3fef('0x4'));var Mustache=require(_0x3fef('0x5'));var util=require('util');var path=require(_0x3fef('0x6'));var sox=require(_0x3fef('0x7'));var csv=require('to-csv');var ejs=require(_0x3fef('0x8'));var fs=require('fs');var _=require(_0x3fef('0x9'));var squel=require(_0x3fef('0xa'));var crypto=require(_0x3fef('0xb'));var jsforce=require(_0x3fef('0xc'));var deskjs=require(_0x3fef('0xd'));var toCsv=require(_0x3fef('0xe'));var querystring=require(_0x3fef('0xf'));var Papa=require(_0x3fef('0x10'));var htmlToText=require(_0x3fef('0x11'));var juice=require(_0x3fef('0x12'));var Redis=require(_0x3fef('0x13'));var authService=require(_0x3fef('0x14'));var qs=require(_0x3fef('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x3fef('0x16'));var logger=require(_0x3fef('0x17'))(_0x3fef('0x18'));var utils=require('../../config/utils');var config=require(_0x3fef('0x19'));var licenseUtil=require('../../config/license/util');var db=require(_0x3fef('0x1a'))['db'];config[_0x3fef('0x1b')]=_[_0x3fef('0x1c')](config['redis'],{'host':_0x3fef('0x1d'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x3fef('0x1b')]));require(_0x3fef('0x1e'))['register'](socket);function respondWithStatusCode(_0x2dec1b,_0x177e28){_0x177e28=_0x177e28||0xcc;return function(_0x40b479){if(_0x40b479){return _0x2dec1b[_0x3fef('0x1f')](_0x177e28);}return _0x2dec1b[_0x3fef('0x20')](_0x177e28)[_0x3fef('0x21')]();};}function respondWithResult(_0x5c899f,_0x1cbdbb){_0x1cbdbb=_0x1cbdbb||0xc8;return function(_0x5b969a){if(_0x5b969a){return _0x5c899f[_0x3fef('0x20')](_0x1cbdbb)[_0x3fef('0x22')](_0x5b969a);}};}function respondWithFilteredResult(_0x1613ad,_0xaa0ae3){return function(_0x53d993){if(_0x53d993){var _0x36669d=_0x53d993[_0x3fef('0x23')],_0x3eb287=_0xaa0ae3[_0x3fef('0x24')],_0x53d4fd=_0xaa0ae3[_0x3fef('0x24')]+_0xaa0ae3[_0x3fef('0x25')],_0x2c7f36;if(_0x53d4fd>=_0x36669d){_0x53d4fd=_0x36669d;_0x2c7f36=0xc8;}else{_0x2c7f36=0xce;}_0x1613ad[_0x3fef('0x20')](_0x2c7f36);return _0x1613ad[_0x3fef('0x26')](_0x3fef('0x27'),_0x3eb287+'-'+_0x53d4fd+'/'+_0x36669d)[_0x3fef('0x22')](_0x53d993);}return null;};}function patchUpdates(_0xd64bf4){return function(_0x1f5aaf){try{jsonpatch[_0x3fef('0x28')](_0x1f5aaf,_0xd64bf4,!![]);}catch(_0x2eb578){return BPromise[_0x3fef('0x29')](_0x2eb578);}return _0x1f5aaf[_0x3fef('0x2a')]();};}function saveUpdates(_0x58f6cf,_0x5b56de){return function(_0x50025f){if(_0x50025f){return _0x50025f[_0x3fef('0x2b')](_0x58f6cf)[_0x3fef('0x2c')](function(_0xa16dc){return _0xa16dc;});}return null;};}function removeEntity(_0x5f047c,_0x4d462c){return function(_0x56c542){if(_0x56c542){return _0x56c542[_0x3fef('0x2d')]()[_0x3fef('0x2c')](function(){_0x5f047c[_0x3fef('0x20')](0xcc)[_0x3fef('0x21')]();});}};}function handleEntityNotFound(_0x30e17a,_0x492ea0){return function(_0x4b4dee){if(!_0x4b4dee){_0x30e17a['sendStatus'](0x194);}return _0x4b4dee;};}function handleError(_0x121ff0,_0x3baa52){_0x3baa52=_0x3baa52||0x1f4;return function(_0x4ea2ab){logger[_0x3fef('0x2e')](_0x4ea2ab[_0x3fef('0x2f')]);if(_0x4ea2ab['name']){delete _0x4ea2ab[_0x3fef('0x30')];}_0x121ff0[_0x3fef('0x20')](_0x3baa52)[_0x3fef('0x31')](_0x4ea2ab);};}function getInteractionUsers(_0x2b73fb,_0x3a1a0a){return new BPromise(function(_0x137849,_0x20abb6){try{if(_0x3a1a0a[_0x2b73fb['id']]){_0x2b73fb['Users']=_[_0x3fef('0x32')](_0x3a1a0a[_0x2b73fb['id']],function(_0xc20ce5){return{'id':_0xc20ce5['id'],'fullname':_0xc20ce5[_0x3fef('0x33')]};});}}catch(_0x11bd40){_0x20abb6(_0x11bd40);}_0x137849(_0x2b73fb);});}function getInteractionTags(_0x5dbbc0,_0xcd635d){return new BPromise(function(_0x5dae67,_0x13b42b){try{if(_0x5dbbc0[_0x3fef('0x34')]){_0x5dbbc0[_0x3fef('0x35')]=[];_0x5dbbc0[_0x3fef('0x34')][_0x3fef('0x36')](',')[_0x3fef('0x37')](function(_0x355c03){_0x5dbbc0[_0x3fef('0x35')][_0x3fef('0x38')](_0xcd635d[_0x355c03]);});}delete _0x5dbbc0[_0x3fef('0x34')];}catch(_0x4f1061){_0x13b42b(_0x4f1061);}_0x5dae67(_0x5dbbc0);});}function getLastMessageText(_0x48e1fa){return new BPromise(function(_0x3ea279,_0x4b2bc5){return db[_0x3fef('0x39')][_0x3fef('0x3a')]({'where':{'id':_0x48e1fa['id']},'attributes':[_0x3fef('0x3b'),_0x3fef('0x3c')],'raw':!![]})[_0x3fef('0x2c')](function(_0x2229df){if(!_0x2229df[_0x3fef('0x3c')]){_0x48e1fa[_0x3fef('0x3c')]=_[_0x3fef('0x3d')](htmlToText[_0x3fef('0x3e')](_0x2229df[_0x3fef('0x3b')],{'preserveNewlines':!![],'singleNewLineParagraphs':!![],'uppercaseHeadings':![],'noLinkBrackets':!![],'ignoreImage':!![]}));}else{_0x48e1fa[_0x3fef('0x3c')]=_0x2229df[_0x3fef('0x3c')];}_0x3ea279(_0x48e1fa);})[_0x3fef('0x3f')](function(_0x58d276){_0x4b2bc5(_0x58d276);});});}function updateMailInteraction(_0x230059,_0x428486,_0x31669f,_0x19e935){return new BPromise(function(_0x1879ec,_0x52a3c4){return getInteractionUsers(_0x230059,_0x31669f)['then'](function(_0x5cbea8){return getInteractionTags(_0x5cbea8,_0x428486);})[_0x3fef('0x2c')](function(_0x163de0){if(_0x19e935){_0x1879ec(getLastMessageText(_0x163de0));}else{_0x1879ec(_0x163de0);}})[_0x3fef('0x3f')](function(_0x12f1be){_0x52a3c4(_0x12f1be);});});}exports[_0x3fef('0x40')]=function(_0x788b6c,_0x736045){var _0x2a55c8={},_0x1fa70f={},_0x29b099={'count':0x0,'rows':[]};var _0x391053=_['map'](db[_0x3fef('0x39')][_0x3fef('0x41')],function(_0x568289){return{'name':_0x568289['fieldName'],'type':_0x568289[_0x3fef('0x42')][_0x3fef('0x43')]};});_0x1fa70f[_0x3fef('0x44')]=_[_0x3fef('0x32')](_0x391053,_0x3fef('0x30'));_0x1fa70f[_0x3fef('0x45')]=_[_0x3fef('0x46')](_0x788b6c[_0x3fef('0x45')]);_0x1fa70f['filters']=_[_0x3fef('0x47')](_0x1fa70f[_0x3fef('0x44')],_0x1fa70f[_0x3fef('0x45')]);_0x2a55c8[_0x3fef('0x48')]=_[_0x3fef('0x47')](_0x1fa70f[_0x3fef('0x44')],qs[_0x3fef('0x49')](_0x788b6c[_0x3fef('0x45')][_0x3fef('0x49')]));_0x2a55c8[_0x3fef('0x48')]=_0x2a55c8[_0x3fef('0x48')][_0x3fef('0x4a')]?_0x2a55c8[_0x3fef('0x48')]:_0x1fa70f[_0x3fef('0x44')];if(!_0x788b6c[_0x3fef('0x45')]['hasOwnProperty'](_0x3fef('0x4b'))){_0x2a55c8[_0x3fef('0x25')]=qs[_0x3fef('0x25')](_0x788b6c[_0x3fef('0x45')][_0x3fef('0x25')]);_0x2a55c8[_0x3fef('0x24')]=qs['offset'](_0x788b6c[_0x3fef('0x45')]['offset']);}_0x2a55c8[_0x3fef('0x4c')]=qs[_0x3fef('0x4d')](_0x788b6c['query'][_0x3fef('0x4d')]);_0x2a55c8['where']=qs[_0x3fef('0x4e')](_[_0x3fef('0x4f')](_0x788b6c[_0x3fef('0x45')],_0x1fa70f[_0x3fef('0x4e')]),_0x391053);var _0x363645=[];var _0x3be016=squel[_0x3fef('0x50')]()[_0x3fef('0x51')]('id')[_0x3fef('0x51')](_0x3fef('0x30'))[_0x3fef('0x51')](_0x3fef('0x52'))[_0x3fef('0x53')]('tools_tags');var _0xe11b56=squel[_0x3fef('0x50')]()['field'](_0x3fef('0x54'))[_0x3fef('0x51')](_0x3fef('0x55'))['field'](_0x3fef('0x56'))[_0x3fef('0x53')]('user_has_mail_interactions','ui')[_0x3fef('0x57')]('users','u','u.id\x20=\x20ui.UserId');var _0x15fb2c=squel['select']()[_0x3fef('0x53')](_0x3fef('0x58'),'i')['left_join'](_0x3fef('0x59'),'c',_0x3fef('0x5a'))[_0x3fef('0x57')]('users','o',_0x3fef('0x5b'))[_0x3fef('0x57')](_0x3fef('0x5c'),'a','a.id\x20=\x20i.MailAccountId')[_0x3fef('0x57')](_0x3fef('0x5d'),'me',_0x3fef('0x5e'))[_0x3fef('0x57')](_0x3fef('0x5f'),'it','it.MailInteractionId\x20=\x20i.id')[_0x3fef('0x57')](_0x3fef('0x60'),'t',_0x3fef('0x61'));var _0x2b9275=squel[_0x3fef('0x62')]();var _0x15be93=[];var _0x3f9d35=squel[_0x3fef('0x62')]();var _0x2c9f73;if(_0x788b6c['query']['search']){_0x2c9f73=as[_0x3fef('0x63')](_0x788b6c[_0x3fef('0x45')][_0x3fef('0x64')]);var _0x29c619=_0x2c9f73[_0x3fef('0x65')];for(var _0x192f91=0x0;_0x192f91<_0x2c9f73[_0x3fef('0x66')][_0x3fef('0x4a')];_0x192f91++){var _0x10d80e=_0x2c9f73[_0x3fef('0x66')][_0x192f91];var _0x25a894='i';var _0x109fac=_['find'](_0x391053,[_0x3fef('0x30'),_0x10d80e[_0x3fef('0x51')]]);if(!_0x109fac){switch(_0x10d80e[_0x3fef('0x51')]){case _0x3fef('0x67'):if(_0x10d80e['value']==0x1){_0x15fb2c[_0x3fef('0x68')]('`'+_0x10d80e[_0x3fef('0x51')]+_0x3fef('0x69'));}else{_0x15fb2c[_0x3fef('0x68')]('`'+_0x10d80e['field']+_0x3fef('0x6a'));}break;case _0x3fef('0x6b'):if(_0x10d80e[_0x3fef('0x6c')]==='$substring'){if(_0x10d80e['value'][_0x3fef('0x36')]('\x20')[_0x3fef('0x4a')]>0x1){_0x2b9275[_0x29c619](_0x3fef('0x6d'),qs[_0x3fef('0x6e')](_0x10d80e['value']),null);}else{var _0x3073da='%'+_0x10d80e['value']+'%';_0x2b9275[_0x29c619](_0x3fef('0x6f'),_0x3073da,_0x3073da,_0x3073da);}}else{_0x109fac=_['find'](_0x391053,[_0x3fef('0x30'),'ContactId']);_0x10d80e[_0x3fef('0x51')]=_0x3fef('0x70');_0x7e67e=as[_0x3fef('0x71')](_0x25a894,_0x109fac['type'],_0x10d80e);_0x2b9275[_0x29c619](_0x7e67e['text'],_0x7e67e[_0x3fef('0x72')][_0x3fef('0x73')],_0x7e67e[_0x3fef('0x72')][_0x3fef('0x21')]);}break;case _0x3fef('0x74'):var _0x3c8e07=_0x10d80e[_0x3fef('0x72')][_0x3fef('0x36')](',')['map'](function(_0x12ffca){return Number(_0x12ffca);});_0x3c8e07['forEach'](function(_0x5ec4e7){_0x3f9d35['or'](_0x3fef('0x75'),'%,'+_0x5ec4e7+',%');});_0x15be93=_[_0x3fef('0x76')](_0x15be93,_0x3c8e07);break;case _0x3fef('0x77'):if(_0x10d80e[_0x3fef('0x6c')]===_0x3fef('0x78')){_0x2b9275[_0x29c619](_0x3fef('0x79'),'%'+_0x10d80e[_0x3fef('0x72')]+'%',null);}else{_0x109fac=_[_0x3fef('0x7a')](_0x391053,[_0x3fef('0x30'),'UserId']);_0x10d80e[_0x3fef('0x51')]='UserId';_0x7e67e=as[_0x3fef('0x71')](_0x25a894,_0x109fac[_0x3fef('0x42')],_0x10d80e);_0x2b9275[_0x29c619](_0x7e67e[_0x3fef('0x7b')],_0x7e67e[_0x3fef('0x72')][_0x3fef('0x73')],_0x7e67e[_0x3fef('0x72')]['end']);}break;case _0x3fef('0x7c'):_0x7e67e=as[_0x3fef('0x71')]('me',null,_0x10d80e);_0x2b9275[_0x29c619](_0x7e67e[_0x3fef('0x7b')],_0x7e67e[_0x3fef('0x72')][_0x3fef('0x73')],_0x7e67e[_0x3fef('0x72')][_0x3fef('0x21')]);break;}}else{var _0x7e67e=as[_0x3fef('0x71')](_0x25a894,_0x109fac[_0x3fef('0x42')],_0x10d80e);_0x2b9275[_0x29c619](_0x7e67e[_0x3fef('0x7b')],_0x7e67e['value'][_0x3fef('0x73')],_0x7e67e['value']['end']);}}}else{var _0x4ed136=_(_0x788b6c[_0x3fef('0x45')])['keys']()[_0x3fef('0x32')](function(_0x19daae){return _[_0x3fef('0x7d')](_0x391053,['name',_0x19daae])?_0x19daae:undefined;})[_0x3fef('0x7e')]()['value']();if(!_[_0x3fef('0x7f')](_0x4ed136)){_0x4ed136[_0x3fef('0x37')](function(_0x51ea04){if(_0x51ea04===_0x3fef('0x80')){_0x15fb2c[_0x3fef('0x81')](_0x3fef('0x82'),[][_0x3fef('0x83')](_0x788b6c[_0x3fef('0x45')][_0x51ea04]));}else if(_0x51ea04===_0x3fef('0x84')){var _0x1e2d38=JSON[_0x3fef('0x85')](_0x788b6c['query'][_0x51ea04])[_0x3fef('0x86')];var _0x410951=JSON[_0x3fef('0x85')](_0x788b6c[_0x3fef('0x45')][_0x51ea04])[_0x3fef('0x87')];_0x15fb2c[_0x3fef('0x81')](_0x3fef('0x88'),_0x1e2d38,_0x410951);}else{if(_0x788b6c[_0x3fef('0x45')][_0x51ea04]===_0x3fef('0x89')){_0x15fb2c[_0x3fef('0x81')]('i.'+_0x51ea04+_0x3fef('0x8a'));}else{_0x15fb2c[_0x3fef('0x81')]('i.'+_0x51ea04+_0x3fef('0x8b'),_0x788b6c[_0x3fef('0x45')][_0x51ea04]);}}});}if(_0x788b6c['query'][_0x3fef('0x8c')]){if(_0x788b6c[_0x3fef('0x45')][_0x3fef('0x8c')]==0x1){_0x15fb2c['having']('`unreadMessages`\x20=\x200');}else{_0x15fb2c['having'](_0x3fef('0x8d'));}}if(_0x788b6c[_0x3fef('0x45')][_0x3fef('0x8e')]){_0x15be93=_[_0x3fef('0x8f')](_0x788b6c['query'][_0x3fef('0x8e')])?_0x788b6c[_0x3fef('0x45')][_0x3fef('0x8e')]:new Array(_0x788b6c[_0x3fef('0x45')]['tag']);_0x15be93[_0x3fef('0x37')](function(_0xb471e0){_0x3f9d35['or'](_0x3fef('0x75'),'%,'+_0xb471e0+',%');});}if(_0x788b6c[_0x3fef('0x45')][_0x3fef('0x90')]){var _0x53497b=_0x788b6c[_0x3fef('0x45')]['filter'][_0x3fef('0x91')]('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(qs[_0x3fef('0x92')](_0x53497b)){_0x2b9275['or'](_0x3fef('0x93'),_0x53497b+'%');}else if(qs[_0x3fef('0x94')](_0x53497b)){_0x2b9275['or'](_0x3fef('0x95'),_0x53497b+'%');}else{_0x2b9275['or'](_0x3fef('0x96'),qs[_0x3fef('0x6e')](_0x53497b))['or'](_0x3fef('0x97'),qs[_0x3fef('0x6e')](_0x53497b));}}}_0x15fb2c[_0x3fef('0x81')](_0x2b9275);_0x15fb2c['group'](_0x3fef('0x98'));var _0x1a7f69={'type':db[_0x3fef('0x99')][_0x3fef('0x9a')]['SELECT'],'raw':!![]};var _0x766e5d=_0x15fb2c[_0x3fef('0x9b')]();_0x766e5d[_0x3fef('0x51')](_0x3fef('0x98'));_0x766e5d[_0x3fef('0x51')](_0x3fef('0x9c'),'unreadMessages');if(_0x2a55c8[_0x3fef('0x4c')]){_0x2a55c8[_0x3fef('0x4c')][_0x3fef('0x37')](function(_0x33cda9){var _0x78f82d=_0x33cda9[0x0]===_0x3fef('0x9d')?_0x33cda9[0x0]:'i.'+_0x33cda9[0x0];_0x15fb2c['order'](_0x78f82d,_0x33cda9[0x1]===_0x3fef('0x9e')?![]:!![]);});}if(!_[_0x3fef('0x7f')](_0x15be93)){_0x15fb2c[_0x3fef('0x68')](_0x3f9d35);_0x766e5d[_0x3fef('0x81')](_0x3fef('0x9f'),_0x15be93);}BPromise['resolve']()[_0x3fef('0x2c')](function(){if(!_0x2c9f73){if(_0x788b6c[_0x3fef('0x45')][_0x3fef('0x80')])return;_0x766e5d['where'](_0x3fef('0xa0'));_0x15fb2c[_0x3fef('0x81')](_0x3fef('0xa0'));return;}if(_0x788b6c['user']['role']!==_0x3fef('0xa1'))return;return _0x788b6c[_0x3fef('0xa2')][_0x3fef('0xa3')]({'attributes':['id'],'raw':!![]})[_0x3fef('0x2c')](function(_0x573323){if(_[_0x3fef('0x7f')](_0x573323)){_0x766e5d[_0x3fef('0x81')](_0x3fef('0xa4'));_0x15fb2c['where'](_0x3fef('0xa4'));}else{_0x766e5d[_0x3fef('0x81')](_0x3fef('0x82'),_[_0x3fef('0x32')](_0x573323,'id'));_0x15fb2c[_0x3fef('0x81')](_0x3fef('0x82'),_[_0x3fef('0x32')](_0x573323,'id'));}});})['then'](function(){if(_0x788b6c['user'][_0x3fef('0xa5')]==='agent'&&!_0x2c9f73&&!_0x788b6c[_0x3fef('0x45')][_0x3fef('0x80')])return[];return db[_0x3fef('0xa6')]['query'](_0x766e5d[_0x3fef('0xa7')](),_0x1a7f69);})['then'](function(_0x384fb6){_0x29b099['count']=_0x384fb6['length'];if(_0x29b099['count']===0x0)return[];return db[_0x3fef('0xa6')][_0x3fef('0x45')](_0x3be016[_0x3fef('0xa7')](),_0x1a7f69)[_0x3fef('0x2c')](function(_0x276cba){_0x363645=_[_0x3fef('0xa8')](_0x276cba,'id');_0x1a7f69=_[_0x3fef('0xa9')](_0x1a7f69,{'model':db['MailInteraction'],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x788b6c[_0x3fef('0x45')][_0x3fef('0x49')]){_0x2a55c8[_0x3fef('0x48')]['forEach'](function(_0x43f603){_0x15fb2c[_0x3fef('0x51')]('i.'+_0x43f603);});}else{_0x15fb2c[_0x3fef('0x51')](_0x3fef('0x9c'),'unreadMessages');_0x15fb2c[_0x3fef('0x51')]('a.key',_0x3fef('0xaa'));_0x15fb2c[_0x3fef('0x51')](_0x3fef('0xab'),_0x3fef('0xac'));_0x15fb2c[_0x3fef('0x51')](_0x3fef('0xad'),_0x3fef('0x9d'));_0x15fb2c[_0x3fef('0x51')]('i.id');_0x15fb2c[_0x3fef('0x51')]('i.createdAt');_0x15fb2c['field'](_0x3fef('0xae'));_0x15fb2c[_0x3fef('0x51')](_0x3fef('0xaf'));_0x15fb2c[_0x3fef('0x51')]('i.closedAt');_0x15fb2c[_0x3fef('0x51')](_0x3fef('0xb0'));_0x15fb2c[_0x3fef('0x51')](_0x3fef('0xb1'));_0x15fb2c['field'](_0x3fef('0xb2'));_0x15fb2c[_0x3fef('0x51')](_0x3fef('0xb3'));_0x15fb2c[_0x3fef('0x51')](_0x3fef('0xb4'));_0x15fb2c['field'](_0x3fef('0xb5'));_0x15fb2c[_0x3fef('0x51')](_0x3fef('0xb6'));_0x15fb2c[_0x3fef('0x51')](_0x3fef('0xb7'));_0x15fb2c['field'](_0x3fef('0xb8'));_0x15fb2c[_0x3fef('0x51')](_0x3fef('0xb9'));_0x15fb2c[_0x3fef('0x51')](_0x3fef('0xba'));_0x15fb2c['field'](_0x3fef('0xbb'));_0x15fb2c[_0x3fef('0x51')](_0x3fef('0xbc'),_0x3fef('0xbd'));_0x15fb2c[_0x3fef('0x51')](_0x3fef('0xbe'),'Contact.lastName');_0x15fb2c['field']('c.email','Contact.email');_0x15fb2c['field'](_0x3fef('0xbf'),_0x3fef('0xc0'));_0x15fb2c[_0x3fef('0x51')](_0x3fef('0xc1'),_0x3fef('0xc2'));_0x15fb2c['field'](_0x3fef('0xc3'),_0x3fef('0xc4'));_0x15fb2c[_0x3fef('0x51')](_0x3fef('0xc5'),_0x3fef('0xc6'));_0x15fb2c[_0x3fef('0x51')](_0x3fef('0xc7'),'Owner.internal');_0x15fb2c[_0x3fef('0x51')]('GROUP_CONCAT(DISTINCT\x20t.id)',_0x3fef('0x34'));}if(_0x2a55c8[_0x3fef('0x25')])_0x15fb2c[_0x3fef('0x25')](_0x2a55c8[_0x3fef('0x25')]);if(_0x2a55c8[_0x3fef('0x24')])_0x15fb2c[_0x3fef('0x24')](_0x2a55c8[_0x3fef('0x24')]);return db['sequelize']['query'](_0x15fb2c['toString'](),_0x1a7f69);})['then'](function(_0x3b8572){_0xe11b56[_0x3fef('0x81')](_0x3fef('0xc8'),_[_0x3fef('0x32')](_0x3b8572,'id'));return db[_0x3fef('0xa6')]['query'](_0xe11b56[_0x3fef('0xa7')](),_0x1a7f69)[_0x3fef('0x2c')](function(_0xcc8de5){var _0x51b60d=_[_0x3fef('0xc9')](_0xcc8de5,_0x3fef('0xca'));var _0x59351d=[];return db['Setting'][_0x3fef('0x3a')]({'attributes':['enableEmailPreview'],'raw':!![]})[_0x3fef('0x2c')](function(_0x23815b){var _0x4dd406=_0x23815b[_0x3fef('0xcb')];_0x3b8572[_0x3fef('0x37')](function(_0x397ad2){_0x59351d['push'](updateMailInteraction(_0x397ad2,_0x363645,_0x51b60d,_0x4dd406));});return BPromise[_0x3fef('0xcc')](_0x59351d);});});});})[_0x3fef('0x2c')](function(_0x5f017a){_0x29b099[_0x3fef('0xcd')]=_0x5f017a;return _0x29b099;})[_0x3fef('0x2c')](respondWithFilteredResult(_0x736045,_0x2a55c8))[_0x3fef('0x3f')](handleError(_0x736045,null));};exports[_0x3fef('0xce')]=function(_0x51e743,_0x4be72b){var _0x91a872={'raw':![],'where':{'id':_0x51e743[_0x3fef('0xcf')]['id']}},_0x5ce3d8={};_0x5ce3d8[_0x3fef('0x44')]=_[_0x3fef('0x46')](db[_0x3fef('0x39')]['rawAttributes']);_0x5ce3d8[_0x3fef('0x45')]=_[_0x3fef('0x46')](_0x51e743[_0x3fef('0x45')]);_0x5ce3d8[_0x3fef('0x4e')]=_['intersection'](_0x5ce3d8[_0x3fef('0x44')],_0x5ce3d8['query']);_0x91a872[_0x3fef('0x48')]=_[_0x3fef('0x47')](_0x5ce3d8[_0x3fef('0x44')],qs['fields'](_0x51e743[_0x3fef('0x45')][_0x3fef('0x49')]));_0x91a872['attributes']=_0x91a872[_0x3fef('0x48')][_0x3fef('0x4a')]?_0x91a872['attributes']:_0x5ce3d8['model'];if(_0x51e743[_0x3fef('0x45')][_0x3fef('0xd0')]){_0x91a872['include']=[{'all':!![]}];}_0x91a872=_[_0x3fef('0xa9')]({},_0x91a872,_0x51e743[_0x3fef('0xd1')]);return db[_0x3fef('0x39')]['find'](_0x91a872)[_0x3fef('0x2c')](handleEntityNotFound(_0x4be72b,null))[_0x3fef('0x2c')](respondWithResult(_0x4be72b,null))[_0x3fef('0x3f')](handleError(_0x4be72b,null));};exports[_0x3fef('0xd2')]=function(_0x3d101e,_0x5963c6){return db[_0x3fef('0x39')][_0x3fef('0xd2')](_0x3d101e[_0x3fef('0xd3')],{})['then'](respondWithResult(_0x5963c6,0xc9))[_0x3fef('0x3f')](handleError(_0x5963c6,null));};exports['update']=function(_0x48e3c9,_0x15ef19){if(_0x48e3c9[_0x3fef('0xd3')]['id']){delete _0x48e3c9['body']['id'];}return db[_0x3fef('0x39')][_0x3fef('0x7a')]({'where':{'id':_0x48e3c9['params']['id']}})['then'](handleEntityNotFound(_0x15ef19,null))[_0x3fef('0x2c')](saveUpdates(_0x48e3c9[_0x3fef('0xd3')],null))[_0x3fef('0x2c')](respondWithResult(_0x15ef19,null))['catch'](handleError(_0x15ef19,null));};exports[_0x3fef('0x2d')]=function(_0x39e929,_0x151e0b){return db[_0x3fef('0x39')][_0x3fef('0x7a')]({'where':{'id':_0x39e929[_0x3fef('0xcf')]['id']}})[_0x3fef('0x2c')](handleEntityNotFound(_0x151e0b,null))[_0x3fef('0x2c')](removeEntity(_0x151e0b,null))[_0x3fef('0x3f')](handleError(_0x151e0b,null));};exports[_0x3fef('0xd4')]=function(_0x3b9285,_0x550ba3){return db[_0x3fef('0x39')][_0x3fef('0xd4')]()[_0x3fef('0x2c')](respondWithResult(_0x550ba3,null))[_0x3fef('0x3f')](handleError(_0x550ba3,null));};exports['addMessage']=function(_0x17d697,_0x2888e1,_0x20251a){return db[_0x3fef('0xd5')]['find']({'where':{'id':_0x17d697['params']['id']}})[_0x3fef('0x2c')](handleEntityNotFound(_0x2888e1,null))[_0x3fef('0x2c')](function(_0x2e3277){if(_0x2e3277){return _0x2e3277[_0x3fef('0xd6')](_0x17d697[_0x3fef('0xd3')]['ids'],_[_0x3fef('0xd7')](_0x17d697[_0x3fef('0xd3')],['ids','id'])||{});}})['then'](respondWithResult(_0x2888e1,null))[_0x3fef('0x3f')](handleError(_0x2888e1,null));};exports[_0x3fef('0xd8')]=function(_0x7efffe,_0x7211b3,_0xe29f79){var _0x3ee841={'raw':![],'where':{}};var _0x50d888={};var _0x55f1ba={'count':0x0,'rows':[]};return db[_0x3fef('0x39')]['findOne']({'where':{'id':_0x7efffe[_0x3fef('0xcf')]['id']}})[_0x3fef('0x2c')](handleEntityNotFound(_0x7211b3,null))[_0x3fef('0x2c')](function(_0x5b6489){if(_0x5b6489){_0x50d888[_0x3fef('0x44')]=_[_0x3fef('0x46')](db[_0x3fef('0xd5')][_0x3fef('0x41')]);_0x50d888['query']=_[_0x3fef('0x46')](_0x7efffe[_0x3fef('0x45')]);_0x50d888[_0x3fef('0x4e')]=_[_0x3fef('0x47')](_0x50d888['model'],_0x50d888[_0x3fef('0x45')]);_0x3ee841[_0x3fef('0x48')]=_[_0x3fef('0x47')](_0x50d888[_0x3fef('0x44')],qs[_0x3fef('0x49')](_0x7efffe[_0x3fef('0x45')][_0x3fef('0x49')]));_0x3ee841[_0x3fef('0x48')]=_0x3ee841[_0x3fef('0x48')]['length']?_0x3ee841['attributes']:_0x50d888[_0x3fef('0x44')];if(!_0x7efffe[_0x3fef('0x45')][_0x3fef('0xd9')](_0x3fef('0x4b'))){_0x3ee841['limit']=qs[_0x3fef('0x25')](_0x7efffe[_0x3fef('0x45')][_0x3fef('0x25')]);_0x3ee841['offset']=qs[_0x3fef('0x24')](_0x7efffe['query']['offset']);}_0x3ee841[_0x3fef('0x4c')]=qs[_0x3fef('0x4d')](_0x7efffe['query'][_0x3fef('0x4d')]);_0x3ee841[_0x3fef('0x81')]=qs[_0x3fef('0x4e')](_[_0x3fef('0x4f')](_0x7efffe['query'],_0x50d888[_0x3fef('0x4e')]));_0x3ee841['where']['MailInteractionId']=_0x5b6489['id'];if(_0x7efffe[_0x3fef('0x45')][_0x3fef('0x90')]){_0x3ee841[_0x3fef('0x81')]=_[_0x3fef('0xa9')](_0x3ee841[_0x3fef('0x81')],{'$or':_['map'](_0x3ee841[_0x3fef('0x48')],function(_0x24ef59){var _0x15265b={};_0x15265b[_0x24ef59]={'$like':'%'+_0x7efffe['query'][_0x3fef('0x90')]+'%'};return _0x15265b;})});}if(_0x7efffe[_0x3fef('0x45')]['$gte']){var _0x5b10e4=_0x7efffe[_0x3fef('0x45')][_0x3fef('0x86')]['split'](',');var _0x3e689e={};_0x3e689e[_0x5b10e4[0x0]]={'$gte':moment(_0x5b10e4[0x1])[_0x3fef('0xda')](_0x3fef('0xdb'))};_0x3ee841['where']=_[_0x3fef('0xa9')](_0x3ee841[_0x3fef('0x81')],_0x3e689e);}_0x3ee841=_[_0x3fef('0xa9')]({},_0x3ee841,_0x7efffe[_0x3fef('0xd1')]);return db['MailMessage'][_0x3fef('0x23')]({'where':_0x3ee841['where']})[_0x3fef('0x2c')](function(_0x107f46){_0x55f1ba[_0x3fef('0x23')]=_0x107f46;if(_0x7efffe[_0x3fef('0x45')][_0x3fef('0xd0')]){_0x3ee841[_0x3fef('0xdc')]=[{'all':!![]}];}return db[_0x3fef('0xd5')]['findAll'](_0x3ee841);})[_0x3fef('0x2c')](function(_0x262c92){if(_0x7efffe['query'][_0x3fef('0xdd')]===_0x3fef('0xde')){for(var _0x101f45=0x0;_0x101f45<_0x262c92['length'];_0x101f45++){_0x262c92[_0x101f45]['body']=juice(_0x262c92[_0x101f45]['body']);}}_0x55f1ba['rows']=_0x262c92;return _0x55f1ba;});}})[_0x3fef('0x2c')](respondWithFilteredResult(_0x7211b3,_0x3ee841))['catch'](handleError(_0x7211b3,null));};exports[_0x3fef('0xdf')]=function(_0x50707b,_0x2bd5eb,_0x19502d){return db[_0x3fef('0x39')][_0x3fef('0x7a')]({'where':{'id':_0x50707b['params']['id']}})[_0x3fef('0x2c')](handleEntityNotFound(_0x2bd5eb,null))[_0x3fef('0x2c')](function(_0x448909){if(_0x448909){return _0x448909[_0x3fef('0xe0')](_0x50707b['body'][_0x3fef('0xe1')],_[_0x3fef('0xd7')](_0x50707b[_0x3fef('0xd3')],[_0x3fef('0xe1'),'id'])||{})[_0x3fef('0xe2')](function(){return db[_0x3fef('0x74')]['findAll']({'attributes':['id',_0x3fef('0x30'),'color'],'where':{'id':_0x50707b[_0x3fef('0xd3')][_0x3fef('0xe1')]}});})['then'](function(_0x1cb83e){socket[_0x3fef('0xe3')](_0x3fef('0xe4'),{'id':Number(_0x50707b[_0x3fef('0xcf')]['id']),'tags':_0x1cb83e||[]});return{'id':Number(_0x50707b['params']['id']),'tags':_0x1cb83e||[]};});}})[_0x3fef('0x2c')](respondWithResult(_0x2bd5eb,null))[_0x3fef('0x3f')](handleError(_0x2bd5eb,null));};exports[_0x3fef('0xe5')]=function(_0x2351a1,_0x3ec2db,_0x1a0084){return db[_0x3fef('0x39')]['find']({'where':{'id':_0x2351a1['params']['id']}})['then'](handleEntityNotFound(_0x3ec2db,null))['then'](function(_0x1129f3){if(_0x1129f3){return _0x1129f3[_0x3fef('0xe5')](_0x2351a1['query'][_0x3fef('0xe1')]);}})[_0x3fef('0x2c')](respondWithStatusCode(_0x3ec2db,null))[_0x3fef('0x3f')](handleError(_0x3ec2db,null));};exports[_0x3fef('0xe6')]=function(_0x263454,_0xa5b96c){var _0x7dae79=moment()[_0x3fef('0xe7')]()['toString']();var _0x28bc37=path[_0x3fef('0xe8')](config[_0x3fef('0xe9')],'server',_0x3fef('0xea'),_0x3fef('0xeb'));var _0x1f7b51=path[_0x3fef('0xe8')](config[_0x3fef('0xe9')],_0x3fef('0xec'),'files','attachments');var _0x152231=path[_0x3fef('0xe8')](_0x28bc37,_0x7dae79);var _0x1ffe18=util['format']('transcript-%d-%s.zip',_0x263454[_0x3fef('0xcf')]['id'],_0x7dae79);var _0x1333a2=path['join'](_0x28bc37,_0x1ffe18);var _0x407897=[];if(_0x263454[_0x3fef('0x45')][_0x3fef('0xed')]){_0x407897['push']({'model':db[_0x3fef('0xee')],'as':_0x3fef('0xef'),'raw':!![]});}var _0xb681d3=[{'model':db[_0x3fef('0xd5')],'as':_0x3fef('0xf0'),'attributes':['id',_0x3fef('0xd3'),_0x3fef('0x53'),'to','cc','bcc',_0x3fef('0xf1'),_0x3fef('0x84')],'where':{'secret':![]},'order':qs['sort']('id'),'include':_0x407897}];return db['MailInteraction'][_0x3fef('0x7a')]({'where':{'id':_0x263454[_0x3fef('0xcf')]['id']},'include':_0xb681d3})['then'](handleEntityNotFound(_0xa5b96c,null))[_0x3fef('0x2c')](function(_0x5850de){if(_0x5850de&&_0x5850de['Messages']){var _0x31e5cb=_0x5850de[_0x3fef('0xf2')]({'plain':!![]});fs['mkdirSync'](_0x152231);return BPromise[_0x3fef('0xf3')](_0x31e5cb[_0x3fef('0xf0')],function(_0x26ea90,_0xe89764){var _0x3eaaaa={'from':_0x26ea90[_0x3fef('0x53')],'to':_0x26ea90['to'],'subject':_0x26ea90[_0x3fef('0xf1')],'html':_0x26ea90[_0x3fef('0xd3')],'headers':{'Date':moment(_0x26ea90[_0x3fef('0x84')])[_0x3fef('0xda')](_0x3fef('0xf4'))},'attachments':[]};if(_0x26ea90['cc']){_0x3eaaaa[_0x3fef('0xf5')]['Cc']=_0x26ea90['cc'];}if(_0x26ea90[_0x3fef('0xf6')]){_0x3eaaaa['headers']['Bcc']=_0x26ea90[_0x3fef('0xf6')];}return new BPromise(function(_0x12a7c3,_0x42708a){if(_0x26ea90['Attachments']){for(var _0x28ab6a=0x0;_0x28ab6a<_0x26ea90[_0x3fef('0xef')][_0x3fef('0x4a')];_0x28ab6a++){var _0x151c2c=_0x26ea90[_0x3fef('0xef')][_0x28ab6a];var _0x3b3ff6=path[_0x3fef('0xe8')](_0x1f7b51,_0x151c2c[_0x3fef('0xf7')]);if(fs[_0x3fef('0xf8')](_0x3b3ff6)){_0x3eaaaa[_0x3fef('0xed')][_0x3fef('0x38')]({'name':_0x151c2c[_0x3fef('0x30')],'contentType':_0x151c2c['type'],'data':fs[_0x3fef('0xf9')](_0x3b3ff6)});}}}emlformat[_0x3fef('0xfa')](_0x3eaaaa,function(_0x2b2276,_0x196ffc){if(_0x2b2276)return _0x42708a(_0x2b2276);fs[_0x3fef('0xfb')](path[_0x3fef('0xe8')](_0x152231,util[_0x3fef('0xda')](_0x3fef('0xfc'),_0xe89764)),_0x196ffc);return _0x12a7c3(_0x196ffc);});});})[_0x3fef('0x2c')](function(){return new BPromise(function(_0x12481b,_0x5e37ba){zipdir(_0x152231,{'saveTo':_0x1333a2},function(_0x2a9f57,_0x2acad6){if(_0x2a9f57)return _0x5e37ba(_0x2a9f57);return _0x12481b(_0x2acad6);});})[_0x3fef('0x2c')](function(){return new BPromise(function(_0x2d24ee,_0x530804){rimraf(_0x152231,function(_0x2862c1){if(_0x2862c1)_0x530804(_0x2862c1);return _0x2d24ee();});});})[_0x3fef('0x2c')](function(){return _0xa5b96c[_0x3fef('0xe6')](_0x1333a2,_0x1ffe18,function(_0x2c6107){if(_0x2c6107){console[_0x3fef('0xfd')](_0x3fef('0xfe'),_0x2c6107);}else{fs['unlinkSync'](_0x1333a2);}});});});}else{return _0xa5b96c[_0x3fef('0x1f')](0xc8);}})['catch'](handleError(_0xa5b96c,null));};