6c993a52fd031bb6ee6ca4760267a965b68ed503
[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 _0x28e5=['pick','field','color','tools_tags','select','u.id','u.fullname','ui.MailInteractionId','from','left_join','users','u.id\x20=\x20ui.UserId','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','a.id\x20=\x20i.MailAccountId','mail_messages','me.MailInteractionId\x20=\x20i.id','it.MailInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','parseSearch','search','sqlOperator','conditions','find','unreadMessages','value','having','`\x20=\x200','`\x20>\x200','Contact','operator','split','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','text','start','Tag','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','some','compact','isEmpty','MailAccountId','i.MailAccountId\x20IN\x20?','createdAt','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','filter','replace','isNumeric','i.id\x20LIKE\x20?','c.email\x20LIKE\x20?','MATCH\x20(i.to,\x20i.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','group','Sequelize','QueryTypes','SELECT','i.id','contactName','DESC','resolve','i.MailAccountId\x20IS\x20NOT\x20NULL','user','role','agent','getMailAccounts','i.MailAccountId\x20IS\x20NULL','sequelize','toString','keyBy','merge','MailInteraction','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','CASE\x20WHEN\x20i.to\x20IS\x20NOT\x20NULL\x20AND\x20i.to\x20<>\x20\x27\x27\x20AND\x20i.to\x20NOT\x20LIKE\x20(\x27%\x27\x20+\x20a.email\x20+\x20\x27%\x27)\x20THEN\x20SUBSTRING_INDEX(i.to,\x20\x27<\x27,\x201)\x20WHEN\x20(c.firstName\x20IS\x20NOT\x20NULL\x20AND\x20c.firstName\x20<>\x20\x27\x27)\x20OR\x20(c.lastName\x20IS\x20NOT\x20NULL\x20AND\x20c.lastName\x20<>\x20\x27\x27)\x20THEN\x20CONCAT(IFNULL(c.firstName,\x20\x27\x27),\x20\x27\x20\x27,\x20IFNULL(c.lastName,\x20\x27\x27))\x20ELSE\x20\x27Unknown\x27\x20END','i.createdAt','i.updatedAt','i.closedAt','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','Contact.lastName','c.email','Contact.email','c.phone','Contact.phone','Contact.mobile','c.fax','Contact.fax','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','groupBy','MailInteractionId','Setting','enableEmailPreview','all','rows','show','params','rawAttributes','options','create','body','MailMessage','ids','omit','getMessages','format','YYYY-MM-DD\x20HH:mm:ss','includeAll','include','findAll','true','addTags','setTags','emit','mailInteractionTags:save','removeTags','download','unix','join','root','server','files','tmp','attachments','transcript-%d-%s.zip','Attachment','Attachments','bcc','get','mkdirSync','each','Messages','subject','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','basename','existsSync','readFileSync','build','message%d.eml','err','unlinkSync','sendStatus','html-pdf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','to-csv','ejs','squel','desk.js','querystring','papaparse','html-to-text','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/environment','../../config/license/util','redis','defaults','localhost','./mailInteraction.socket','register','status','end','json','count','offset','Content-Range','apply','reject','save','update','then','destroy','error','stack','name','send','Users','map','fullname','Tags','forEach','push','TagIds','findOne','out','-id','lastMsgText','plainBody','catch','index','fieldName','type','key','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','limit','order','sort','where'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x28e5,0x1a6));var _0x528e=function(_0x33c822,_0x53e2f1){_0x33c822=_0x33c822-0x0;var _0x4dd3e6=_0x28e5[_0x33c822];return _0x4dd3e6;};'use strict';var pdf=require(_0x528e('0x0'));var emlformat=require('eml-format');var rimraf=require('rimraf');var zipdir=require(_0x528e('0x1'));var jsonpatch=require(_0x528e('0x2'));var rp=require('request-promise');var moment=require(_0x528e('0x3'));var BPromise=require(_0x528e('0x4'));var Mustache=require(_0x528e('0x5'));var util=require(_0x528e('0x6'));var path=require(_0x528e('0x7'));var sox=require('sox');var csv=require(_0x528e('0x8'));var ejs=require(_0x528e('0x9'));var fs=require('fs');var _=require('lodash');var squel=require(_0x528e('0xa'));var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require(_0x528e('0xb'));var toCsv=require(_0x528e('0x8'));var querystring=require(_0x528e('0xc'));var Papa=require(_0x528e('0xd'));var htmlToText=require(_0x528e('0xe'));var juice=require('juice');var Redis=require(_0x528e('0xf'));var authService=require(_0x528e('0x10'));var qs=require(_0x528e('0x11'));var as=require(_0x528e('0x12'));var hardwareService=require(_0x528e('0x13'));var logger=require('../../config/logger')(_0x528e('0x14'));var utils=require('../../config/utils');var config=require(_0x528e('0x15'));var licenseUtil=require(_0x528e('0x16'));var db=require('../../mysqldb')['db'];config[_0x528e('0x17')]=_[_0x528e('0x18')](config[_0x528e('0x17')],{'host':_0x528e('0x19'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x528e('0x17')]));require(_0x528e('0x1a'))[_0x528e('0x1b')](socket);function respondWithStatusCode(_0xce3e55,_0x31d44f){_0x31d44f=_0x31d44f||0xcc;return function(_0x4c72a5){if(_0x4c72a5){return _0xce3e55['sendStatus'](_0x31d44f);}return _0xce3e55[_0x528e('0x1c')](_0x31d44f)[_0x528e('0x1d')]();};}function respondWithResult(_0x18e0ed,_0x33af04){_0x33af04=_0x33af04||0xc8;return function(_0x274f00){if(_0x274f00){return _0x18e0ed[_0x528e('0x1c')](_0x33af04)[_0x528e('0x1e')](_0x274f00);}};}function respondWithFilteredResult(_0x1feb2b,_0xb20e5){return function(_0x4f2adc){if(_0x4f2adc){var _0x52b033=_0x4f2adc[_0x528e('0x1f')],_0x5e5145=_0xb20e5[_0x528e('0x20')],_0x2fe890=_0xb20e5[_0x528e('0x20')]+_0xb20e5['limit'],_0x24d8a5;if(_0x2fe890>=_0x52b033){_0x2fe890=_0x52b033;_0x24d8a5=0xc8;}else{_0x24d8a5=0xce;}_0x1feb2b[_0x528e('0x1c')](_0x24d8a5);return _0x1feb2b['set'](_0x528e('0x21'),_0x5e5145+'-'+_0x2fe890+'/'+_0x52b033)[_0x528e('0x1e')](_0x4f2adc);}return null;};}function patchUpdates(_0x8ce71d){return function(_0x5d7cf1){try{jsonpatch[_0x528e('0x22')](_0x5d7cf1,_0x8ce71d,!![]);}catch(_0x573144){return BPromise[_0x528e('0x23')](_0x573144);}return _0x5d7cf1[_0x528e('0x24')]();};}function saveUpdates(_0x4135a1,_0x60e01){return function(_0xa014c6){if(_0xa014c6){return _0xa014c6[_0x528e('0x25')](_0x4135a1)[_0x528e('0x26')](function(_0x5b345c){return _0x5b345c;});}return null;};}function removeEntity(_0x5bde22,_0x882ccf){return function(_0x515fc3){if(_0x515fc3){return _0x515fc3[_0x528e('0x27')]()['then'](function(){_0x5bde22[_0x528e('0x1c')](0xcc)[_0x528e('0x1d')]();});}};}function handleEntityNotFound(_0x59eb82,_0x3e64f2){return function(_0x54a16a){if(!_0x54a16a){_0x59eb82['sendStatus'](0x194);}return _0x54a16a;};}function handleError(_0x21e916,_0x3e29ba){_0x3e29ba=_0x3e29ba||0x1f4;return function(_0x3e492d){logger[_0x528e('0x28')](_0x3e492d[_0x528e('0x29')]);if(_0x3e492d['name']){delete _0x3e492d[_0x528e('0x2a')];}_0x21e916[_0x528e('0x1c')](_0x3e29ba)[_0x528e('0x2b')](_0x3e492d);};}function getInteractionUsers(_0x3f9ce6,_0x2a217d){return new BPromise(function(_0x27a3d3,_0x33b543){try{if(_0x2a217d[_0x3f9ce6['id']]){_0x3f9ce6[_0x528e('0x2c')]=_[_0x528e('0x2d')](_0x2a217d[_0x3f9ce6['id']],function(_0x414220){return{'id':_0x414220['id'],'fullname':_0x414220[_0x528e('0x2e')]};});}}catch(_0x4720ff){_0x33b543(_0x4720ff);}_0x27a3d3(_0x3f9ce6);});}function getInteractionTags(_0x3cb1cc,_0x46eb9b){return new BPromise(function(_0x4095dd,_0x2b98f3){try{if(_0x3cb1cc['TagIds']){_0x3cb1cc[_0x528e('0x2f')]=[];_0x3cb1cc['TagIds']['split'](',')[_0x528e('0x30')](function(_0x203fd7){_0x3cb1cc[_0x528e('0x2f')][_0x528e('0x31')](_0x46eb9b[_0x203fd7]);});}delete _0x3cb1cc[_0x528e('0x32')];}catch(_0x442bf7){_0x2b98f3(_0x442bf7);}_0x4095dd(_0x3cb1cc);});}function getLastMessageText(_0x560395){return new BPromise(function(_0x92ae0d,_0x4d007f){return db['MailMessage'][_0x528e('0x33')]({'where':{'$and':[{'MailInteractionId':_0x560395['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':_0x528e('0x34')},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':['plainBody'],'order':_0x528e('0x35'),'raw':!![]})['then'](function(_0x39a3e6){if(_0x39a3e6&&_0x39a3e6['plainBody']){_0x560395[_0x528e('0x36')]=_['trimStart'](_0x39a3e6[_0x528e('0x37')]);}_0x92ae0d(_0x560395);})[_0x528e('0x38')](function(_0x36bb4e){_0x4d007f(_0x36bb4e);});});}function updateMailInteraction(_0x486687,_0x1cc58d,_0x3b50ca,_0x27f16f){return new BPromise(function(_0x3a9743,_0x3e774d){return getInteractionUsers(_0x486687,_0x3b50ca)[_0x528e('0x26')](function(_0x4cd537){return getInteractionTags(_0x4cd537,_0x1cc58d);})[_0x528e('0x26')](function(_0x134c6c){if(_0x27f16f){_0x3a9743(getLastMessageText(_0x134c6c));}else{_0x3a9743(_0x134c6c);}})[_0x528e('0x38')](function(_0x2aa6cc){_0x3e774d(_0x2aa6cc);});});}exports[_0x528e('0x39')]=function(_0x254471,_0x5b61a3){var _0x500ba9={},_0x27ee51={},_0x259a42={'count':0x0,'rows':[]};var _0x474507=_[_0x528e('0x2d')](db['MailInteraction']['rawAttributes'],function(_0x1bc353){return{'name':_0x1bc353[_0x528e('0x3a')],'type':_0x1bc353[_0x528e('0x3b')][_0x528e('0x3c')]};});_0x27ee51[_0x528e('0x3d')]=_[_0x528e('0x2d')](_0x474507,'name');_0x27ee51['query']=_[_0x528e('0x3e')](_0x254471[_0x528e('0x3f')]);_0x27ee51[_0x528e('0x40')]=_[_0x528e('0x41')](_0x27ee51[_0x528e('0x3d')],_0x27ee51[_0x528e('0x3f')]);_0x500ba9[_0x528e('0x42')]=_[_0x528e('0x41')](_0x27ee51[_0x528e('0x3d')],qs[_0x528e('0x43')](_0x254471['query'][_0x528e('0x43')]));_0x500ba9[_0x528e('0x42')]=_0x500ba9['attributes'][_0x528e('0x44')]?_0x500ba9[_0x528e('0x42')]:_0x27ee51['model'];if(!_0x254471[_0x528e('0x3f')][_0x528e('0x45')]('nolimit')){_0x500ba9[_0x528e('0x46')]=qs[_0x528e('0x46')](_0x254471[_0x528e('0x3f')]['limit']);_0x500ba9[_0x528e('0x20')]=qs['offset'](_0x254471['query']['offset']);}_0x500ba9[_0x528e('0x47')]=qs['sort'](_0x254471[_0x528e('0x3f')][_0x528e('0x48')]);_0x500ba9[_0x528e('0x49')]=qs[_0x528e('0x40')](_[_0x528e('0x4a')](_0x254471[_0x528e('0x3f')],_0x27ee51['filters']),_0x474507);var _0x5eeb49=[];var _0x249146=squel['select']()[_0x528e('0x4b')]('id')[_0x528e('0x4b')](_0x528e('0x2a'))[_0x528e('0x4b')](_0x528e('0x4c'))['from'](_0x528e('0x4d'));var _0x301964=squel[_0x528e('0x4e')]()[_0x528e('0x4b')](_0x528e('0x4f'))[_0x528e('0x4b')](_0x528e('0x50'))[_0x528e('0x4b')](_0x528e('0x51'))[_0x528e('0x52')]('user_has_mail_interactions','ui')[_0x528e('0x53')](_0x528e('0x54'),'u',_0x528e('0x55'));var _0x52b31=squel[_0x528e('0x4e')]()[_0x528e('0x52')]('mail_interactions','i')[_0x528e('0x53')](_0x528e('0x56'),'c',_0x528e('0x57'))[_0x528e('0x53')]('users','o','o.id\x20=\x20i.UserId')[_0x528e('0x53')]('mail_accounts','a',_0x528e('0x58'))['left_join'](_0x528e('0x59'),'me',_0x528e('0x5a'))['left_join']('mail_interaction_has_tags','it',_0x528e('0x5b'))[_0x528e('0x53')](_0x528e('0x4d'),'t',_0x528e('0x5c'));var _0x3e133d=squel['expr']();var _0x1ffcd9=[];var _0x2a8240=squel['expr']();var _0x1f6520;if(_0x254471[_0x528e('0x3f')]['search']){_0x1f6520=as[_0x528e('0x5d')](_0x254471[_0x528e('0x3f')][_0x528e('0x5e')]);var _0xcf2a8d=_0x1f6520[_0x528e('0x5f')];for(var _0xb2d61b=0x0;_0xb2d61b<_0x1f6520['conditions'][_0x528e('0x44')];_0xb2d61b++){var _0x51c6a6=_0x1f6520[_0x528e('0x60')][_0xb2d61b];var _0x390757='i';var _0xdb96e8=_[_0x528e('0x61')](_0x474507,[_0x528e('0x2a'),_0x51c6a6[_0x528e('0x4b')]]);if(!_0xdb96e8){switch(_0x51c6a6['field']){case _0x528e('0x62'):if(_0x51c6a6[_0x528e('0x63')]==0x1){_0x52b31[_0x528e('0x64')]('`'+_0x51c6a6[_0x528e('0x4b')]+_0x528e('0x65'));}else{_0x52b31[_0x528e('0x64')]('`'+_0x51c6a6[_0x528e('0x4b')]+_0x528e('0x66'));}break;case _0x528e('0x67'):if(_0x51c6a6[_0x528e('0x68')]==='$substring'){if(_0x51c6a6[_0x528e('0x63')][_0x528e('0x69')]('\x20')[_0x528e('0x44')]>0x1){_0x3e133d[_0xcf2a8d](_0x528e('0x6a'),qs[_0x528e('0x6b')](_0x51c6a6[_0x528e('0x63')]),null);}else{var _0x28b06c='%'+_0x51c6a6[_0x528e('0x63')]+'%';_0x3e133d[_0xcf2a8d](_0x528e('0x6c'),_0x28b06c,_0x28b06c,_0x28b06c);}}else{_0xdb96e8=_[_0x528e('0x61')](_0x474507,['name',_0x528e('0x6d')]);_0x51c6a6[_0x528e('0x4b')]='ContactId';_0x13ddd2=as[_0x528e('0x6e')](_0x390757,_0xdb96e8[_0x528e('0x3b')],_0x51c6a6);_0x3e133d[_0xcf2a8d](_0x13ddd2[_0x528e('0x6f')],_0x13ddd2[_0x528e('0x63')][_0x528e('0x70')],_0x13ddd2['value']['end']);}break;case _0x528e('0x71'):var _0x45f5da=_0x51c6a6[_0x528e('0x63')][_0x528e('0x69')](',')[_0x528e('0x2d')](function(_0x5b8704){return Number(_0x5b8704);});_0x45f5da['forEach'](function(_0x54b8c2){_0x2a8240['or'](_0x528e('0x72'),'%,'+_0x54b8c2+',%');});_0x1ffcd9=_[_0x528e('0x73')](_0x1ffcd9,_0x45f5da);break;case _0x528e('0x74'):if(_0x51c6a6[_0x528e('0x68')]==='$substring'){_0x3e133d[_0xcf2a8d](_0x528e('0x75'),'%'+_0x51c6a6[_0x528e('0x63')]+'%',null);}else{_0xdb96e8=_[_0x528e('0x61')](_0x474507,[_0x528e('0x2a'),_0x528e('0x76')]);_0x51c6a6[_0x528e('0x4b')]=_0x528e('0x76');_0x13ddd2=as[_0x528e('0x6e')](_0x390757,_0xdb96e8[_0x528e('0x3b')],_0x51c6a6);_0x3e133d[_0xcf2a8d](_0x13ddd2[_0x528e('0x6f')],_0x13ddd2[_0x528e('0x63')][_0x528e('0x70')],_0x13ddd2['value']['end']);}break;case _0x528e('0x37'):_0x13ddd2=as['buildExpression']('me',null,_0x51c6a6);_0x3e133d[_0xcf2a8d](_0x13ddd2['text'],_0x13ddd2[_0x528e('0x63')]['start'],_0x13ddd2[_0x528e('0x63')][_0x528e('0x1d')]);break;}}else{var _0x13ddd2=as[_0x528e('0x6e')](_0x390757,_0xdb96e8[_0x528e('0x3b')],_0x51c6a6);_0x3e133d[_0xcf2a8d](_0x13ddd2[_0x528e('0x6f')],_0x13ddd2[_0x528e('0x63')][_0x528e('0x70')],_0x13ddd2[_0x528e('0x63')]['end']);}}}else{var _0x56659d=_(_0x254471['query'])[_0x528e('0x3e')]()[_0x528e('0x2d')](function(_0x5f19d9){return _[_0x528e('0x77')](_0x474507,['name',_0x5f19d9])?_0x5f19d9:undefined;})[_0x528e('0x78')]()[_0x528e('0x63')]();if(!_[_0x528e('0x79')](_0x56659d)){_0x56659d['forEach'](function(_0x4a0e3b){if(_0x4a0e3b===_0x528e('0x7a')){_0x52b31['where'](_0x528e('0x7b'),[]['concat'](_0x254471[_0x528e('0x3f')][_0x4a0e3b]));}else if(_0x4a0e3b===_0x528e('0x7c')){var _0x3182b9=JSON[_0x528e('0x7d')](_0x254471[_0x528e('0x3f')][_0x4a0e3b])[_0x528e('0x7e')];var _0x10aa72=JSON[_0x528e('0x7d')](_0x254471['query'][_0x4a0e3b])[_0x528e('0x7f')];_0x52b31['where'](_0x528e('0x80'),_0x3182b9,_0x10aa72);}else{if(_0x254471[_0x528e('0x3f')][_0x4a0e3b]===_0x528e('0x81')){_0x52b31[_0x528e('0x49')]('i.'+_0x4a0e3b+'\x20IS\x20NULL');}else{_0x52b31[_0x528e('0x49')]('i.'+_0x4a0e3b+'\x20=\x20?',_0x254471['query'][_0x4a0e3b]);}}});}if(_0x254471['query'][_0x528e('0x82')]){if(_0x254471[_0x528e('0x3f')][_0x528e('0x82')]==0x1){_0x52b31['having'](_0x528e('0x83'));}else{_0x52b31['having'](_0x528e('0x84'));}}if(_0x254471['query'][_0x528e('0x85')]){_0x1ffcd9=_['isArray'](_0x254471[_0x528e('0x3f')][_0x528e('0x85')])?_0x254471['query']['tag']:new Array(_0x254471[_0x528e('0x3f')][_0x528e('0x85')]);_0x1ffcd9[_0x528e('0x30')](function(_0x86c214){_0x2a8240['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x86c214+',%');});}if(_0x254471[_0x528e('0x3f')][_0x528e('0x86')]){var _0x168029=_0x254471[_0x528e('0x3f')]['filter']['replace']('\x5c','\x5c\x5c')[_0x528e('0x87')](/'/g,'\x27\x27');if(qs[_0x528e('0x88')](_0x168029)){_0x3e133d['or'](_0x528e('0x89'),_0x168029+'%');}else if(qs['isEmail'](_0x168029)){_0x3e133d['or'](_0x528e('0x8a'),_0x168029+'%');}else{_0x3e133d['or'](_0x528e('0x8b'),qs[_0x528e('0x6b')](_0x168029))['or']('MATCH\x20(me.plainBody,\x20me.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x528e('0x6b')](_0x168029));}}}_0x52b31[_0x528e('0x49')](_0x3e133d);_0x52b31[_0x528e('0x8c')]('i.id');var _0x16cb11={'type':db[_0x528e('0x8d')][_0x528e('0x8e')][_0x528e('0x8f')],'raw':!![]};var _0x2ceea8=_0x52b31['clone']();_0x2ceea8[_0x528e('0x4b')](_0x528e('0x90'));_0x2ceea8[_0x528e('0x4b')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)',_0x528e('0x62'));if(_0x500ba9[_0x528e('0x47')]){_0x500ba9[_0x528e('0x47')][_0x528e('0x30')](function(_0x3ba10a){var _0x3177db=_0x3ba10a[0x0]===_0x528e('0x91')?_0x3ba10a[0x0]:'i.'+_0x3ba10a[0x0];_0x52b31[_0x528e('0x47')](_0x3177db,_0x3ba10a[0x1]===_0x528e('0x92')?![]:!![]);});}if(!_[_0x528e('0x79')](_0x1ffcd9)){_0x52b31[_0x528e('0x64')](_0x2a8240);_0x2ceea8[_0x528e('0x49')]('t.id\x20IN\x20?',_0x1ffcd9);}BPromise[_0x528e('0x93')]()[_0x528e('0x26')](function(){if(!_0x1f6520){if(_0x254471[_0x528e('0x3f')][_0x528e('0x7a')])return;_0x2ceea8[_0x528e('0x49')](_0x528e('0x94'));_0x52b31[_0x528e('0x49')](_0x528e('0x94'));return;}if(_0x254471[_0x528e('0x95')][_0x528e('0x96')]!==_0x528e('0x97'))return;return _0x254471[_0x528e('0x95')][_0x528e('0x98')]({'attributes':['id'],'raw':!![]})[_0x528e('0x26')](function(_0x2c7f7d){if(_['isEmpty'](_0x2c7f7d)){_0x2ceea8[_0x528e('0x49')](_0x528e('0x99'));_0x52b31[_0x528e('0x49')](_0x528e('0x99'));}else{_0x2ceea8[_0x528e('0x49')]('i.MailAccountId\x20IN\x20?',_['map'](_0x2c7f7d,'id'));_0x52b31[_0x528e('0x49')](_0x528e('0x7b'),_[_0x528e('0x2d')](_0x2c7f7d,'id'));}});})['then'](function(){if(_0x254471[_0x528e('0x95')]['role']===_0x528e('0x97')&&!_0x1f6520&&!_0x254471['query'][_0x528e('0x7a')])return[];return db[_0x528e('0x9a')][_0x528e('0x3f')](_0x2ceea8[_0x528e('0x9b')](),_0x16cb11);})[_0x528e('0x26')](function(_0x325c43){_0x259a42['count']=_0x325c43[_0x528e('0x44')];if(_0x259a42['count']===0x0)return[];return db[_0x528e('0x9a')][_0x528e('0x3f')](_0x249146['toString'](),_0x16cb11)[_0x528e('0x26')](function(_0x56f405){_0x5eeb49=_[_0x528e('0x9c')](_0x56f405,'id');_0x16cb11=_[_0x528e('0x9d')](_0x16cb11,{'model':db[_0x528e('0x9e')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x254471[_0x528e('0x3f')][_0x528e('0x43')]){_0x500ba9[_0x528e('0x42')][_0x528e('0x30')](function(_0x524e11){_0x52b31[_0x528e('0x4b')]('i.'+_0x524e11);});}else{_0x52b31[_0x528e('0x4b')](_0x528e('0x9f'),'unreadMessages');_0x52b31[_0x528e('0x4b')]('a.key',_0x528e('0xa0'));_0x52b31['field'](_0x528e('0xa1'),_0x528e('0xa2'));_0x52b31[_0x528e('0x4b')](_0x528e('0xa3'),_0x528e('0x91'));_0x52b31['field']('i.id');_0x52b31[_0x528e('0x4b')](_0x528e('0xa4'));_0x52b31['field'](_0x528e('0xa5'));_0x52b31[_0x528e('0x4b')]('i.closed');_0x52b31['field'](_0x528e('0xa6'));_0x52b31[_0x528e('0x4b')]('i.attach');_0x52b31[_0x528e('0x4b')](_0x528e('0xa7'));_0x52b31['field'](_0x528e('0xa8'));_0x52b31[_0x528e('0x4b')](_0x528e('0xa9'));_0x52b31[_0x528e('0x4b')](_0x528e('0xaa'));_0x52b31[_0x528e('0x4b')](_0x528e('0xab'));_0x52b31[_0x528e('0x4b')](_0x528e('0xac'));_0x52b31[_0x528e('0x4b')](_0x528e('0xad'));_0x52b31[_0x528e('0x4b')](_0x528e('0xae'));_0x52b31[_0x528e('0x4b')](_0x528e('0xaf'));_0x52b31[_0x528e('0x4b')](_0x528e('0xb0'));_0x52b31[_0x528e('0x4b')](_0x528e('0xb1'));_0x52b31[_0x528e('0x4b')](_0x528e('0xb2'),_0x528e('0xb3'));_0x52b31['field'](_0x528e('0xb4'),_0x528e('0xb5'));_0x52b31['field'](_0x528e('0xb6'),_0x528e('0xb7'));_0x52b31['field'](_0x528e('0xb8'),_0x528e('0xb9'));_0x52b31['field']('c.mobile',_0x528e('0xba'));_0x52b31[_0x528e('0x4b')](_0x528e('0xbb'),_0x528e('0xbc'));_0x52b31[_0x528e('0x4b')]('o.fullname',_0x528e('0xbd'));_0x52b31['field'](_0x528e('0xbe'),_0x528e('0xbf'));_0x52b31['field'](_0x528e('0xc0'),_0x528e('0x32'));}if(_0x500ba9['limit'])_0x52b31[_0x528e('0x46')](_0x500ba9['limit']);if(_0x500ba9[_0x528e('0x20')])_0x52b31['offset'](_0x500ba9[_0x528e('0x20')]);return db[_0x528e('0x9a')][_0x528e('0x3f')](_0x52b31[_0x528e('0x9b')](),_0x16cb11);})[_0x528e('0x26')](function(_0x3e4ffb){_0x301964[_0x528e('0x49')]('ui.MailInteractionId\x20IN\x20?',_[_0x528e('0x2d')](_0x3e4ffb,'id'));return db[_0x528e('0x9a')][_0x528e('0x3f')](_0x301964['toString'](),_0x16cb11)[_0x528e('0x26')](function(_0x7a7adb){var _0x392216=_[_0x528e('0xc1')](_0x7a7adb,_0x528e('0xc2'));var _0x2d7112=[];return db[_0x528e('0xc3')][_0x528e('0x33')]({'attributes':[_0x528e('0xc4')],'raw':!![]})[_0x528e('0x26')](function(_0x5e7143){var _0x374a57=_0x5e7143['enableEmailPreview'];_0x3e4ffb['forEach'](function(_0x52e34a){_0x2d7112[_0x528e('0x31')](updateMailInteraction(_0x52e34a,_0x5eeb49,_0x392216,_0x374a57));});return BPromise[_0x528e('0xc5')](_0x2d7112);});});});})['then'](function(_0x460b9a){_0x259a42[_0x528e('0xc6')]=_0x460b9a;return _0x259a42;})[_0x528e('0x26')](respondWithFilteredResult(_0x5b61a3,_0x500ba9))[_0x528e('0x38')](handleError(_0x5b61a3,null));};exports[_0x528e('0xc7')]=function(_0x948cb9,_0x160359){var _0x2590e5={'raw':![],'where':{'id':_0x948cb9[_0x528e('0xc8')]['id']}},_0x40f400={};_0x40f400[_0x528e('0x3d')]=_['keys'](db[_0x528e('0x9e')][_0x528e('0xc9')]);_0x40f400['query']=_[_0x528e('0x3e')](_0x948cb9[_0x528e('0x3f')]);_0x40f400['filters']=_[_0x528e('0x41')](_0x40f400[_0x528e('0x3d')],_0x40f400['query']);_0x2590e5['attributes']=_['intersection'](_0x40f400[_0x528e('0x3d')],qs[_0x528e('0x43')](_0x948cb9[_0x528e('0x3f')][_0x528e('0x43')]));_0x2590e5[_0x528e('0x42')]=_0x2590e5[_0x528e('0x42')][_0x528e('0x44')]?_0x2590e5['attributes']:_0x40f400[_0x528e('0x3d')];if(_0x948cb9[_0x528e('0x3f')]['includeAll']){_0x2590e5['include']=[{'all':!![]}];}_0x2590e5=_['merge']({},_0x2590e5,_0x948cb9[_0x528e('0xca')]);return db[_0x528e('0x9e')][_0x528e('0x61')](_0x2590e5)[_0x528e('0x26')](handleEntityNotFound(_0x160359,null))[_0x528e('0x26')](respondWithResult(_0x160359,null))[_0x528e('0x38')](handleError(_0x160359,null));};exports[_0x528e('0xcb')]=function(_0x442c82,_0x5e4f8a){return db[_0x528e('0x9e')]['create'](_0x442c82[_0x528e('0xcc')],{})[_0x528e('0x26')](respondWithResult(_0x5e4f8a,0xc9))[_0x528e('0x38')](handleError(_0x5e4f8a,null));};exports[_0x528e('0x25')]=function(_0x1643dd,_0x14488e){if(_0x1643dd[_0x528e('0xcc')]['id']){delete _0x1643dd[_0x528e('0xcc')]['id'];}return db['MailInteraction'][_0x528e('0x61')]({'where':{'id':_0x1643dd['params']['id']}})[_0x528e('0x26')](handleEntityNotFound(_0x14488e,null))[_0x528e('0x26')](saveUpdates(_0x1643dd[_0x528e('0xcc')],null))[_0x528e('0x26')](respondWithResult(_0x14488e,null))[_0x528e('0x38')](handleError(_0x14488e,null));};exports['destroy']=function(_0x3a6529,_0x242aeb){return db['MailInteraction']['find']({'where':{'id':_0x3a6529[_0x528e('0xc8')]['id']}})[_0x528e('0x26')](handleEntityNotFound(_0x242aeb,null))[_0x528e('0x26')](removeEntity(_0x242aeb,null))[_0x528e('0x38')](handleError(_0x242aeb,null));};exports['describe']=function(_0x1ea46a,_0x4035d3){return db[_0x528e('0x9e')]['describe']()[_0x528e('0x26')](respondWithResult(_0x4035d3,null))[_0x528e('0x38')](handleError(_0x4035d3,null));};exports['addMessage']=function(_0x2046fa,_0x3cb012,_0x18b463){return db[_0x528e('0xcd')][_0x528e('0x61')]({'where':{'id':_0x2046fa[_0x528e('0xc8')]['id']}})[_0x528e('0x26')](handleEntityNotFound(_0x3cb012,null))[_0x528e('0x26')](function(_0x1e6fb6){if(_0x1e6fb6){return _0x1e6fb6['addMessage'](_0x2046fa[_0x528e('0xcc')][_0x528e('0xce')],_[_0x528e('0xcf')](_0x2046fa[_0x528e('0xcc')],[_0x528e('0xce'),'id'])||{});}})[_0x528e('0x26')](respondWithResult(_0x3cb012,null))['catch'](handleError(_0x3cb012,null));};exports[_0x528e('0xd0')]=function(_0x5822a5,_0x2a7d94,_0x731634){var _0x2d84a6={'raw':![],'where':{}};var _0x1fbfb4={};var _0x46b5d3={'count':0x0,'rows':[]};return db['MailInteraction'][_0x528e('0x33')]({'where':{'id':_0x5822a5[_0x528e('0xc8')]['id']}})[_0x528e('0x26')](handleEntityNotFound(_0x2a7d94,null))['then'](function(_0x43efaf){if(_0x43efaf){_0x1fbfb4['model']=_[_0x528e('0x3e')](db[_0x528e('0xcd')][_0x528e('0xc9')]);_0x1fbfb4[_0x528e('0x3f')]=_[_0x528e('0x3e')](_0x5822a5[_0x528e('0x3f')]);_0x1fbfb4[_0x528e('0x40')]=_[_0x528e('0x41')](_0x1fbfb4[_0x528e('0x3d')],_0x1fbfb4[_0x528e('0x3f')]);_0x2d84a6['attributes']=_[_0x528e('0x41')](_0x1fbfb4[_0x528e('0x3d')],qs[_0x528e('0x43')](_0x5822a5[_0x528e('0x3f')][_0x528e('0x43')]));_0x2d84a6[_0x528e('0x42')]=_0x2d84a6[_0x528e('0x42')]['length']?_0x2d84a6[_0x528e('0x42')]:_0x1fbfb4[_0x528e('0x3d')];if(!_0x5822a5['query']['hasOwnProperty']('nolimit')){_0x2d84a6[_0x528e('0x46')]=qs[_0x528e('0x46')](_0x5822a5[_0x528e('0x3f')][_0x528e('0x46')]);_0x2d84a6[_0x528e('0x20')]=qs[_0x528e('0x20')](_0x5822a5['query']['offset']);}_0x2d84a6['order']=qs[_0x528e('0x48')](_0x5822a5[_0x528e('0x3f')][_0x528e('0x48')]);_0x2d84a6[_0x528e('0x49')]=qs['filters'](_[_0x528e('0x4a')](_0x5822a5[_0x528e('0x3f')],_0x1fbfb4['filters']));_0x2d84a6[_0x528e('0x49')][_0x528e('0xc2')]=_0x43efaf['id'];if(_0x5822a5[_0x528e('0x3f')][_0x528e('0x86')]){_0x2d84a6[_0x528e('0x49')]=_[_0x528e('0x9d')](_0x2d84a6[_0x528e('0x49')],{'$or':_[_0x528e('0x2d')](_0x2d84a6['attributes'],function(_0x588d35){var _0x31f6e1={};_0x31f6e1[_0x588d35]={'$like':'%'+_0x5822a5[_0x528e('0x3f')][_0x528e('0x86')]+'%'};return _0x31f6e1;})});}if(_0x5822a5[_0x528e('0x3f')][_0x528e('0x7e')]){var _0x24f2fe=_0x5822a5['query'][_0x528e('0x7e')][_0x528e('0x69')](',');var _0x45e113={};_0x45e113[_0x24f2fe[0x0]]={'$gte':moment(_0x24f2fe[0x1])[_0x528e('0xd1')](_0x528e('0xd2'))};_0x2d84a6['where']=_[_0x528e('0x9d')](_0x2d84a6[_0x528e('0x49')],_0x45e113);}_0x2d84a6=_[_0x528e('0x9d')]({},_0x2d84a6,_0x5822a5[_0x528e('0xca')]);return db['MailMessage'][_0x528e('0x1f')]({'where':_0x2d84a6[_0x528e('0x49')]})[_0x528e('0x26')](function(_0x17e878){_0x46b5d3['count']=_0x17e878;if(_0x5822a5['query'][_0x528e('0xd3')]){_0x2d84a6[_0x528e('0xd4')]=[{'all':!![]}];}return db['MailMessage'][_0x528e('0xd5')](_0x2d84a6);})[_0x528e('0x26')](function(_0x19f695){if(_0x5822a5[_0x528e('0x3f')]['inlineCss']===_0x528e('0xd6')){for(var _0x1275aa=0x0;_0x1275aa<_0x19f695['length'];_0x1275aa++){_0x19f695[_0x1275aa][_0x528e('0xcc')]=juice(_0x19f695[_0x1275aa][_0x528e('0xcc')]);}}_0x46b5d3[_0x528e('0xc6')]=_0x19f695;return _0x46b5d3;});}})['then'](respondWithFilteredResult(_0x2a7d94,_0x2d84a6))['catch'](handleError(_0x2a7d94,null));};exports[_0x528e('0xd7')]=function(_0x15a272,_0x4d42a1,_0x14f8ce){return db[_0x528e('0x9e')][_0x528e('0x61')]({'where':{'id':_0x15a272['params']['id']}})['then'](handleEntityNotFound(_0x4d42a1,null))[_0x528e('0x26')](function(_0x260532){if(_0x260532){return _0x260532[_0x528e('0xd8')](_0x15a272['body']['ids'],_['omit'](_0x15a272[_0x528e('0xcc')],[_0x528e('0xce'),'id'])||{})['spread'](function(){return db['Tag'][_0x528e('0xd5')]({'attributes':['id',_0x528e('0x2a'),_0x528e('0x4c')],'where':{'id':_0x15a272[_0x528e('0xcc')]['ids']}});})[_0x528e('0x26')](function(_0x1ea636){socket[_0x528e('0xd9')](_0x528e('0xda'),{'id':Number(_0x15a272[_0x528e('0xc8')]['id']),'tags':_0x1ea636||[]});return{'id':Number(_0x15a272['params']['id']),'tags':_0x1ea636||[]};});}})[_0x528e('0x26')](respondWithResult(_0x4d42a1,null))[_0x528e('0x38')](handleError(_0x4d42a1,null));};exports['removeTags']=function(_0x284057,_0x529d19,_0x1c4de8){return db[_0x528e('0x9e')][_0x528e('0x61')]({'where':{'id':_0x284057['params']['id']}})[_0x528e('0x26')](handleEntityNotFound(_0x529d19,null))['then'](function(_0x590d9f){if(_0x590d9f){return _0x590d9f[_0x528e('0xdb')](_0x284057[_0x528e('0x3f')][_0x528e('0xce')]);}})[_0x528e('0x26')](respondWithStatusCode(_0x529d19,null))['catch'](handleError(_0x529d19,null));};exports[_0x528e('0xdc')]=function(_0x578fdc,_0x1d5f56){var _0x4b735e=moment()[_0x528e('0xdd')]()['toString']();var _0x54e969=path[_0x528e('0xde')](config[_0x528e('0xdf')],_0x528e('0xe0'),_0x528e('0xe1'),_0x528e('0xe2'));var _0x5bc250=path['join'](config['root'],'server',_0x528e('0xe1'),_0x528e('0xe3'));var _0x559158=path['join'](_0x54e969,_0x4b735e);var _0x105d41=util['format'](_0x528e('0xe4'),_0x578fdc[_0x528e('0xc8')]['id'],_0x4b735e);var _0x419cce=path[_0x528e('0xde')](_0x54e969,_0x105d41);var _0x195a5e=[];if(_0x578fdc[_0x528e('0x3f')]['attachments']){_0x195a5e[_0x528e('0x31')]({'model':db[_0x528e('0xe5')],'as':_0x528e('0xe6'),'raw':!![]});}var _0x4146b6=[{'model':db[_0x528e('0xcd')],'as':'Messages','attributes':['id',_0x528e('0xcc'),_0x528e('0x52'),'to','cc',_0x528e('0xe7'),'subject',_0x528e('0x7c')],'where':{'secret':![]},'order':qs[_0x528e('0x48')]('id'),'include':_0x195a5e}];return db['MailInteraction'][_0x528e('0x61')]({'where':{'id':_0x578fdc['params']['id']},'include':_0x4146b6})['then'](handleEntityNotFound(_0x1d5f56,null))['then'](function(_0x2b2801){if(_0x2b2801&&_0x2b2801['Messages']){var _0x24e7cd=_0x2b2801[_0x528e('0xe8')]({'plain':!![]});fs[_0x528e('0xe9')](_0x559158);return BPromise[_0x528e('0xea')](_0x24e7cd[_0x528e('0xeb')],function(_0x453e4a,_0x4794e0){var _0xeb5eb9={'from':_0x453e4a[_0x528e('0x52')],'to':_0x453e4a['to'],'subject':_0x453e4a[_0x528e('0xec')],'html':_0x453e4a['body'],'headers':{'Date':moment(_0x453e4a[_0x528e('0x7c')])[_0x528e('0xd1')](_0x528e('0xed'))},'attachments':[]};if(_0x453e4a['cc']){_0xeb5eb9[_0x528e('0xee')]['Cc']=_0x453e4a['cc'];}if(_0x453e4a['bcc']){_0xeb5eb9['headers'][_0x528e('0xef')]=_0x453e4a[_0x528e('0xe7')];}return new BPromise(function(_0x4d6dd3,_0x388d7){if(_0x453e4a[_0x528e('0xe6')]){for(var _0x321b46=0x0;_0x321b46<_0x453e4a['Attachments'][_0x528e('0x44')];_0x321b46++){var _0x3941bf=_0x453e4a[_0x528e('0xe6')][_0x321b46];var _0x53762e=path['join'](_0x5bc250,_0x3941bf[_0x528e('0xf0')]);if(fs[_0x528e('0xf1')](_0x53762e)){_0xeb5eb9[_0x528e('0xe3')]['push']({'name':_0x3941bf['name'],'contentType':_0x3941bf[_0x528e('0x3b')],'data':fs[_0x528e('0xf2')](_0x53762e)});}}}emlformat[_0x528e('0xf3')](_0xeb5eb9,function(_0x44b9b6,_0x501f4b){if(_0x44b9b6)return _0x388d7(_0x44b9b6);fs['writeFileSync'](path[_0x528e('0xde')](_0x559158,util[_0x528e('0xd1')](_0x528e('0xf4'),_0x4794e0)),_0x501f4b);return _0x4d6dd3(_0x501f4b);});});})[_0x528e('0x26')](function(){return new BPromise(function(_0x1a02bf,_0x552219){zipdir(_0x559158,{'saveTo':_0x419cce},function(_0x57ec63,_0x254239){if(_0x57ec63)return _0x552219(_0x57ec63);return _0x1a02bf(_0x254239);});})[_0x528e('0x26')](function(){return new BPromise(function(_0x285f87,_0x21aa37){rimraf(_0x559158,function(_0x29fbb0){if(_0x29fbb0)_0x21aa37(_0x29fbb0);return _0x285f87();});});})['then'](function(){return _0x1d5f56[_0x528e('0xdc')](_0x419cce,_0x105d41,function(_0x5f8208){if(_0x5f8208){console['log'](_0x528e('0xf5'),_0x5f8208);}else{fs[_0x528e('0xf6')](_0x419cce);}});});});}else{return _0x1d5f56[_0x528e('0xf7')](0xc8);}})[_0x528e('0x38')](handleError(_0x1d5f56,null));};