977877b56d7242d994928cb27dad9c0a43a1408c
[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 _0x38b2=['message%d.eml','unlinkSync','html-pdf','eml-format','rimraf','request-promise','moment','mustache','path','sox','to-csv','ejs','squel','crypto','desk.js','querystring','papaparse','html-to-text','ioredis','../../components/auth/service','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/license/util','../../mysqldb','redis','defaults','./mailInteraction.socket','register','sendStatus','status','json','offset','set','Content-Range','apply','reject','save','update','then','destroy','end','error','name','send','Users','map','fullname','TagIds','push','findOne','lastMsgBody','lastMsgText','trimStart','catch','index','MailInteraction','type','key','model','keys','filters','query','intersection','fields','attributes','length','nolimit','limit','order','sort','where','pick','select','field','tools_tags','ui.MailInteractionId','from','user_has_mail_interactions','left_join','users','u.id\x20=\x20ui.UserId','mail_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','o.id\x20=\x20i.UserId','mail_accounts','a.id\x20=\x20i.MailAccountId','me.MailInteractionId\x20=\x20i.id','mail_interaction_has_tags','expr','parseSearch','search','sqlOperator','conditions','find','value','`\x20=\x200','having','`\x20>\x200','operator','$substring','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','union','User','CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','UserId','plainBody','some','compact','isEmpty','forEach','MailAccountId','concat','parse','$gte','$lte','i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','isNumeric','i.id\x20LIKE\x20?','isEmail','c.email\x20LIKE\x20?','MATCH\x20(me.plainBody,\x20me.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','DESC','t.id\x20IN\x20?','resolve','journey','i.MailAccountId\x20IS\x20NOT\x20NULL','user','getMailAccounts','i.MailAccountId\x20IS\x20NULL','i.MailAccountId\x20IN\x20?','sequelize','toString','count','Account.key','a.mandatoryDisposition','Account.mandatoryDisposition','i.createdAt','i.updatedAt','i.closed','i.closedAt','i.attach','i.lastMsgDirection','i.subject','i.disposition','i.secondDisposition','i.thirdDisposition','i.to','i.MailAccountId','i.UserId','c.firstName','Contact.firstName','c.lastName','Contact.lastName','c.email','Contact.email','c.phone','Contact.mobile','c.fax','Contact.fax','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.MailInteractionId\x20IN\x20?','groupBy','MailInteractionId','Setting','enableEmailPreview','all','rows','show','params','rawAttributes','include','merge','create','body','describe','addMessage','ids','omit','getMessages','MailMessage','hasOwnProperty','split','YYYY-MM-DD\x20HH:mm:ss','options','findAll','addTags','setTags','spread','emit','mailInteractionTags:save','removeTags','unix','root','server','files','tmp','join','attachments','format','Attachment','Attachments','bcc','subject','createdAt','Messages','get','mkdirSync','each','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','basename','existsSync','writeFileSync'];(function(_0x15bc81,_0x4d4f77){var _0x59440e=function(_0x1b60f2){while(--_0x1b60f2){_0x15bc81['push'](_0x15bc81['shift']());}};_0x59440e(++_0x4d4f77);}(_0x38b2,0xf6));var _0x238b=function(_0x16ff34,_0x1e3e76){_0x16ff34=_0x16ff34-0x0;var _0x39b5e1=_0x38b2[_0x16ff34];return _0x39b5e1;};'use strict';var pdf=require(_0x238b('0x0'));var emlformat=require(_0x238b('0x1'));var rimraf=require(_0x238b('0x2'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x238b('0x3'));var moment=require(_0x238b('0x4'));var BPromise=require('bluebird');var Mustache=require(_0x238b('0x5'));var util=require('util');var path=require(_0x238b('0x6'));var sox=require(_0x238b('0x7'));var csv=require(_0x238b('0x8'));var ejs=require(_0x238b('0x9'));var fs=require('fs');var _=require('lodash');var squel=require(_0x238b('0xa'));var crypto=require(_0x238b('0xb'));var jsforce=require('jsforce');var deskjs=require(_0x238b('0xc'));var toCsv=require(_0x238b('0x8'));var querystring=require(_0x238b('0xd'));var Papa=require(_0x238b('0xe'));var htmlToText=require(_0x238b('0xf'));var Redis=require(_0x238b('0x10'));var authService=require(_0x238b('0x11'));var qs=require('../../components/parsers/qs');var as=require(_0x238b('0x12'));var hardwareService=require(_0x238b('0x13'));var logger=require(_0x238b('0x14'))(_0x238b('0x15'));var utils=require(_0x238b('0x16'));var config=require('../../config/environment');var licenseUtil=require(_0x238b('0x17'));var db=require(_0x238b('0x18'))['db'];config[_0x238b('0x19')]=_[_0x238b('0x1a')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x238b('0x19')]));require(_0x238b('0x1b'))[_0x238b('0x1c')](socket);function respondWithStatusCode(_0x277fb9,_0x1c387a){_0x1c387a=_0x1c387a||0xcc;return function(_0x68824){if(_0x68824){return _0x277fb9[_0x238b('0x1d')](_0x1c387a);}return _0x277fb9[_0x238b('0x1e')](_0x1c387a)['end']();};}function respondWithResult(_0x168bcd,_0x56057c){_0x56057c=_0x56057c||0xc8;return function(_0x2bb3e7){if(_0x2bb3e7){return _0x168bcd['status'](_0x56057c)[_0x238b('0x1f')](_0x2bb3e7);}};}function respondWithFilteredResult(_0x598719,_0x92d5b4){return function(_0x222d24){if(_0x222d24){var _0x37bfd8=_0x222d24['count'],_0x4a70e3=_0x92d5b4[_0x238b('0x20')],_0x30d14=_0x92d5b4[_0x238b('0x20')]+_0x92d5b4['limit'],_0x42339e;if(_0x30d14>=_0x37bfd8){_0x30d14=_0x37bfd8;_0x42339e=0xc8;}else{_0x42339e=0xce;}_0x598719['status'](_0x42339e);return _0x598719[_0x238b('0x21')](_0x238b('0x22'),_0x4a70e3+'-'+_0x30d14+'/'+_0x37bfd8)[_0x238b('0x1f')](_0x222d24);}return null;};}function patchUpdates(_0x8ee6){return function(_0xcf5e42){try{jsonpatch[_0x238b('0x23')](_0xcf5e42,_0x8ee6,!![]);}catch(_0xb1ad7a){return BPromise[_0x238b('0x24')](_0xb1ad7a);}return _0xcf5e42[_0x238b('0x25')]();};}function saveUpdates(_0x2f16e2,_0x528af9){return function(_0x59c751){if(_0x59c751){return _0x59c751[_0x238b('0x26')](_0x2f16e2)[_0x238b('0x27')](function(_0x4d214c){return _0x4d214c;});}return null;};}function removeEntity(_0x51b2c4,_0x58140a){return function(_0x132f4c){if(_0x132f4c){return _0x132f4c[_0x238b('0x28')]()[_0x238b('0x27')](function(){_0x51b2c4[_0x238b('0x1e')](0xcc)[_0x238b('0x29')]();});}};}function handleEntityNotFound(_0x4de262,_0x4a6dd4){return function(_0x436303){if(!_0x436303){_0x4de262[_0x238b('0x1d')](0x194);}return _0x436303;};}function handleError(_0x1fa685,_0x1f63ad){_0x1f63ad=_0x1f63ad||0x1f4;return function(_0x2d3c68){logger[_0x238b('0x2a')](_0x2d3c68['stack']);if(_0x2d3c68[_0x238b('0x2b')]){delete _0x2d3c68[_0x238b('0x2b')];}_0x1fa685[_0x238b('0x1e')](_0x1f63ad)[_0x238b('0x2c')](_0x2d3c68);};}function getInteractionUsers(_0x103ca8,_0x2a0728){return new BPromise(function(_0x2aaf83,_0xf277bd){try{if(_0x2a0728[_0x103ca8['id']]){_0x103ca8[_0x238b('0x2d')]=_[_0x238b('0x2e')](_0x2a0728[_0x103ca8['id']],function(_0x6ea494){return{'id':_0x6ea494['id'],'fullname':_0x6ea494[_0x238b('0x2f')]};});}}catch(_0x4af577){_0xf277bd(_0x4af577);}_0x2aaf83(_0x103ca8);});}function getInteractionTags(_0x19fcf9,_0x54d9e7){return new BPromise(function(_0xc289c0,_0x17cb55){try{if(_0x19fcf9[_0x238b('0x30')]){_0x19fcf9['Tags']=[];_0x19fcf9['TagIds']['split'](',')['forEach'](function(_0x3b3eed){_0x19fcf9['Tags'][_0x238b('0x31')](_0x54d9e7[_0x3b3eed]);});}delete _0x19fcf9[_0x238b('0x30')];}catch(_0x38cf04){_0x17cb55(_0x38cf04);}_0xc289c0(_0x19fcf9);});}function getLastMessageText(_0x39b6ea){return new BPromise(function(_0x24b659,_0x5381b3){return db['MailInteraction'][_0x238b('0x32')]({'where':{'id':_0x39b6ea['id']},'attributes':[_0x238b('0x33'),_0x238b('0x34')],'raw':!![]})['then'](function(_0x13fb54){if(!_0x13fb54[_0x238b('0x34')]){_0x39b6ea[_0x238b('0x34')]=_[_0x238b('0x35')](htmlToText['fromString'](_0x13fb54[_0x238b('0x33')],{'preserveNewlines':!![],'singleNewLineParagraphs':!![],'uppercaseHeadings':![],'noLinkBrackets':!![],'ignoreImage':!![]}));}else{_0x39b6ea['lastMsgText']=_0x13fb54[_0x238b('0x34')];}_0x24b659(_0x39b6ea);})[_0x238b('0x36')](function(_0x2049c8){_0x5381b3(_0x2049c8);});});}function updateMailInteraction(_0x3de311,_0x44e325,_0x160d4b,_0x11d428){return new BPromise(function(_0x6e094,_0x25aca8){return getInteractionUsers(_0x3de311,_0x160d4b)['then'](function(_0x5c3310){return getInteractionTags(_0x5c3310,_0x44e325);})[_0x238b('0x27')](function(_0xf928d4){if(_0x11d428){_0x6e094(getLastMessageText(_0xf928d4));}else{_0x6e094(_0xf928d4);}})[_0x238b('0x36')](function(_0xa05ef4){_0x25aca8(_0xa05ef4);});});}exports[_0x238b('0x37')]=function(_0x8eef17,_0x49f66e){var _0x439994={},_0x454b9d={},_0x1447ec={'count':0x0,'rows':[]};var _0x1bf426=_['map'](db[_0x238b('0x38')]['rawAttributes'],function(_0x252d22){return{'name':_0x252d22['fieldName'],'type':_0x252d22[_0x238b('0x39')][_0x238b('0x3a')]};});_0x454b9d[_0x238b('0x3b')]=_[_0x238b('0x2e')](_0x1bf426,'name');_0x454b9d['query']=_[_0x238b('0x3c')](_0x8eef17['query']);_0x454b9d[_0x238b('0x3d')]=_['intersection'](_0x454b9d[_0x238b('0x3b')],_0x454b9d[_0x238b('0x3e')]);_0x439994['attributes']=_[_0x238b('0x3f')](_0x454b9d[_0x238b('0x3b')],qs[_0x238b('0x40')](_0x8eef17[_0x238b('0x3e')][_0x238b('0x40')]));_0x439994['attributes']=_0x439994[_0x238b('0x41')][_0x238b('0x42')]?_0x439994[_0x238b('0x41')]:_0x454b9d['model'];if(!_0x8eef17[_0x238b('0x3e')]['hasOwnProperty'](_0x238b('0x43'))){_0x439994['limit']=qs[_0x238b('0x44')](_0x8eef17[_0x238b('0x3e')]['limit']);_0x439994['offset']=qs[_0x238b('0x20')](_0x8eef17[_0x238b('0x3e')]['offset']);}_0x439994[_0x238b('0x45')]=qs[_0x238b('0x46')](_0x8eef17['query']['sort']);_0x439994[_0x238b('0x47')]=qs['filters'](_[_0x238b('0x48')](_0x8eef17[_0x238b('0x3e')],_0x454b9d[_0x238b('0x3d')]),_0x1bf426);var _0x3f7a12=[];var _0x1cd831=squel[_0x238b('0x49')]()[_0x238b('0x4a')]('id')[_0x238b('0x4a')](_0x238b('0x2b'))['field']('color')['from'](_0x238b('0x4b'));var _0x579f59=squel['select']()[_0x238b('0x4a')]('u.id')[_0x238b('0x4a')]('u.fullname')[_0x238b('0x4a')](_0x238b('0x4c'))[_0x238b('0x4d')](_0x238b('0x4e'),'ui')[_0x238b('0x4f')](_0x238b('0x50'),'u',_0x238b('0x51'));var _0x1d325f=squel[_0x238b('0x49')]()[_0x238b('0x4d')](_0x238b('0x52'),'i')[_0x238b('0x4f')](_0x238b('0x53'),'c',_0x238b('0x54'))[_0x238b('0x4f')](_0x238b('0x50'),'o',_0x238b('0x55'))[_0x238b('0x4f')](_0x238b('0x56'),'a',_0x238b('0x57'))['left_join']('mail_messages','me',_0x238b('0x58'))[_0x238b('0x4f')](_0x238b('0x59'),'it','it.MailInteractionId\x20=\x20i.id')[_0x238b('0x4f')](_0x238b('0x4b'),'t','t.id\x20=\x20it.TagId');var _0x1fd8fc=squel[_0x238b('0x5a')]();var _0x19f153=[];var _0x30fb4e=squel[_0x238b('0x5a')]();var _0x5d3cca;if(_0x8eef17['query']['search']){_0x5d3cca=as[_0x238b('0x5b')](_0x8eef17[_0x238b('0x3e')][_0x238b('0x5c')]);var _0x503e82=_0x5d3cca[_0x238b('0x5d')];for(var _0x244d94=0x0;_0x244d94<_0x5d3cca[_0x238b('0x5e')][_0x238b('0x42')];_0x244d94++){var _0x1a3094=_0x5d3cca[_0x238b('0x5e')][_0x244d94];var _0x57cfc7='i';var _0x10eb8c=_[_0x238b('0x5f')](_0x1bf426,[_0x238b('0x2b'),_0x1a3094[_0x238b('0x4a')]]);if(!_0x10eb8c){switch(_0x1a3094[_0x238b('0x4a')]){case'unreadMessages':if(_0x1a3094[_0x238b('0x60')]==0x1){_0x1d325f['having']('`'+_0x1a3094[_0x238b('0x4a')]+_0x238b('0x61'));}else{_0x1d325f[_0x238b('0x62')]('`'+_0x1a3094['field']+_0x238b('0x63'));}break;case'Contact':if(_0x1a3094[_0x238b('0x64')]===_0x238b('0x65')){if(_0x1a3094[_0x238b('0x60')]['split']('\x20')[_0x238b('0x42')]>0x1){_0x1fd8fc[_0x503e82](_0x238b('0x66'),qs[_0x238b('0x67')](_0x1a3094[_0x238b('0x60')]),null);}else{var _0x249b28='%'+_0x1a3094[_0x238b('0x60')]+'%';_0x1fd8fc[_0x503e82](_0x238b('0x68'),_0x249b28,_0x249b28,_0x249b28);}}else{_0x10eb8c=_['find'](_0x1bf426,[_0x238b('0x2b'),_0x238b('0x69')]);_0x1a3094['field']='ContactId';_0x52c7ad=as[_0x238b('0x6a')](_0x57cfc7,_0x10eb8c['type'],_0x1a3094);_0x1fd8fc[_0x503e82](_0x52c7ad[_0x238b('0x6b')],_0x52c7ad[_0x238b('0x60')][_0x238b('0x6c')],_0x52c7ad[_0x238b('0x60')][_0x238b('0x29')]);}break;case _0x238b('0x6d'):var _0x108931=_0x1a3094['value']['split'](',')[_0x238b('0x2e')](function(_0x5f14f4){return Number(_0x5f14f4);});_0x108931['forEach'](function(_0x4bf245){_0x30fb4e['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x4bf245+',%');});_0x19f153=_[_0x238b('0x6e')](_0x19f153,_0x108931);break;case _0x238b('0x6f'):if(_0x1a3094[_0x238b('0x64')]===_0x238b('0x65')){_0x1fd8fc[_0x503e82](_0x238b('0x70'),'%'+_0x1a3094[_0x238b('0x60')]+'%',null);}else{_0x10eb8c=_['find'](_0x1bf426,[_0x238b('0x2b'),'UserId']);_0x1a3094['field']=_0x238b('0x71');_0x52c7ad=as[_0x238b('0x6a')](_0x57cfc7,_0x10eb8c['type'],_0x1a3094);_0x1fd8fc[_0x503e82](_0x52c7ad[_0x238b('0x6b')],_0x52c7ad[_0x238b('0x60')][_0x238b('0x6c')],_0x52c7ad[_0x238b('0x60')][_0x238b('0x29')]);}break;case _0x238b('0x72'):_0x52c7ad=as[_0x238b('0x6a')]('me',null,_0x1a3094);_0x1fd8fc[_0x503e82](_0x52c7ad['text'],_0x52c7ad[_0x238b('0x60')][_0x238b('0x6c')],_0x52c7ad[_0x238b('0x60')][_0x238b('0x29')]);break;}}else{var _0x52c7ad=as[_0x238b('0x6a')](_0x57cfc7,_0x10eb8c['type'],_0x1a3094);_0x1fd8fc[_0x503e82](_0x52c7ad[_0x238b('0x6b')],_0x52c7ad[_0x238b('0x60')][_0x238b('0x6c')],_0x52c7ad[_0x238b('0x60')][_0x238b('0x29')]);}}}else{var _0x5a0684=_(_0x8eef17[_0x238b('0x3e')])[_0x238b('0x3c')]()[_0x238b('0x2e')](function(_0x3c5334){return _[_0x238b('0x73')](_0x1bf426,[_0x238b('0x2b'),_0x3c5334])?_0x3c5334:undefined;})[_0x238b('0x74')]()[_0x238b('0x60')]();if(!_[_0x238b('0x75')](_0x5a0684)){_0x5a0684[_0x238b('0x76')](function(_0x37a867){if(_0x37a867===_0x238b('0x77')){_0x1d325f[_0x238b('0x47')]('i.MailAccountId\x20IN\x20?',[][_0x238b('0x78')](_0x8eef17[_0x238b('0x3e')][_0x37a867]));}else if(_0x37a867==='createdAt'){var _0x13881a=JSON[_0x238b('0x79')](_0x8eef17[_0x238b('0x3e')][_0x37a867])[_0x238b('0x7a')];var _0x43b5b2=JSON[_0x238b('0x79')](_0x8eef17['query'][_0x37a867])[_0x238b('0x7b')];_0x1d325f['where'](_0x238b('0x7c'),_0x13881a,_0x43b5b2);}else{if(_0x8eef17[_0x238b('0x3e')][_0x37a867]===_0x238b('0x7d')){_0x1d325f[_0x238b('0x47')]('i.'+_0x37a867+_0x238b('0x7e'));}else{_0x1d325f[_0x238b('0x47')]('i.'+_0x37a867+'\x20=\x20?',_0x8eef17[_0x238b('0x3e')][_0x37a867]);}}});}if(_0x8eef17[_0x238b('0x3e')]['read']){if(_0x8eef17['query'][_0x238b('0x7f')]==0x1){_0x1d325f['having'](_0x238b('0x80'));}else{_0x1d325f[_0x238b('0x62')](_0x238b('0x81'));}}if(_0x8eef17[_0x238b('0x3e')][_0x238b('0x82')]){_0x19f153=_[_0x238b('0x83')](_0x8eef17[_0x238b('0x3e')][_0x238b('0x82')])?_0x8eef17[_0x238b('0x3e')]['tag']:new Array(_0x8eef17[_0x238b('0x3e')][_0x238b('0x82')]);_0x19f153[_0x238b('0x76')](function(_0x30b69a){_0x30fb4e['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0x30b69a+',%');});}if(_0x8eef17[_0x238b('0x3e')][_0x238b('0x84')]){var _0x3dbedd=_0x8eef17[_0x238b('0x3e')][_0x238b('0x84')][_0x238b('0x85')]('\x5c','\x5c\x5c')['replace'](/'/g,'\x27\x27');if(qs[_0x238b('0x86')](_0x3dbedd)){_0x1fd8fc['or'](_0x238b('0x87'),_0x3dbedd+'%');}else if(qs[_0x238b('0x88')](_0x3dbedd)){_0x1fd8fc['or'](_0x238b('0x89'),_0x3dbedd+'%');}else{_0x1fd8fc['or']('MATCH\x20(i.to,\x20i.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x238b('0x67')](_0x3dbedd))['or'](_0x238b('0x8a'),qs[_0x238b('0x67')](_0x3dbedd));}}}_0x1d325f[_0x238b('0x47')](_0x1fd8fc);_0x1d325f[_0x238b('0x8b')](_0x238b('0x8c'));var _0x1a3072={'type':db[_0x238b('0x8d')][_0x238b('0x8e')][_0x238b('0x8f')],'raw':!![]};var _0x32db81=_0x1d325f[_0x238b('0x90')]();_0x32db81[_0x238b('0x4a')](_0x238b('0x8c'));_0x32db81[_0x238b('0x4a')](_0x238b('0x91'),_0x238b('0x92'));if(_0x439994['order']){_0x439994[_0x238b('0x45')]['forEach'](function(_0x5178fc){_0x1d325f[_0x238b('0x45')]('i.'+_0x5178fc[0x0],_0x5178fc[0x1]===_0x238b('0x93')?![]:!![]);});}if(!_[_0x238b('0x75')](_0x19f153)){_0x1d325f[_0x238b('0x62')](_0x30fb4e);_0x32db81['where'](_0x238b('0x94'),_0x19f153);}BPromise[_0x238b('0x95')]()['then'](function(){if(!_0x5d3cca){if(_0x8eef17[_0x238b('0x3e')][_0x238b('0x77')]||_0x8eef17['query'][_0x238b('0x96')])return;_0x32db81[_0x238b('0x47')]('i.MailAccountId\x20IS\x20NOT\x20NULL');_0x1d325f[_0x238b('0x47')](_0x238b('0x97'));return;}return _0x8eef17[_0x238b('0x98')][_0x238b('0x99')]({'attributes':['id'],'raw':!![]})['then'](function(_0x41b95c){if(_[_0x238b('0x75')](_0x41b95c)){_0x32db81[_0x238b('0x47')](_0x238b('0x9a'));_0x1d325f[_0x238b('0x47')](_0x238b('0x9a'));}else{_0x32db81[_0x238b('0x47')](_0x238b('0x9b'),_[_0x238b('0x2e')](_0x41b95c,'id'));_0x1d325f[_0x238b('0x47')](_0x238b('0x9b'),_[_0x238b('0x2e')](_0x41b95c,'id'));}});})['then'](function(){db[_0x238b('0x9c')][_0x238b('0x3e')](_0x32db81[_0x238b('0x9d')](),_0x1a3072)[_0x238b('0x27')](function(_0x372740){_0x1447ec[_0x238b('0x9e')]=_0x372740[_0x238b('0x42')];if(_0x1447ec[_0x238b('0x9e')]===0x0)return[];return db['sequelize'][_0x238b('0x3e')](_0x1cd831[_0x238b('0x9d')](),_0x1a3072)[_0x238b('0x27')](function(_0x2b5dab){_0x3f7a12=_['keyBy'](_0x2b5dab,'id');_0x1a3072=_['merge'](_0x1a3072,{'model':db[_0x238b('0x38')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x8eef17['query']['fields']){_0x439994['attributes'][_0x238b('0x76')](function(_0xadee91){_0x1d325f[_0x238b('0x4a')]('i.'+_0xadee91);});}else{_0x1d325f[_0x238b('0x4a')](_0x238b('0x91'),_0x238b('0x92'));_0x1d325f[_0x238b('0x4a')]('a.key',_0x238b('0x9f'));_0x1d325f[_0x238b('0x4a')](_0x238b('0xa0'),_0x238b('0xa1'));_0x1d325f['field'](_0x238b('0x8c'));_0x1d325f[_0x238b('0x4a')](_0x238b('0xa2'));_0x1d325f[_0x238b('0x4a')](_0x238b('0xa3'));_0x1d325f[_0x238b('0x4a')](_0x238b('0xa4'));_0x1d325f[_0x238b('0x4a')](_0x238b('0xa5'));_0x1d325f[_0x238b('0x4a')](_0x238b('0xa6'));_0x1d325f['field']('i.lastMsgAt');_0x1d325f[_0x238b('0x4a')](_0x238b('0xa7'));_0x1d325f[_0x238b('0x4a')](_0x238b('0xa8'));_0x1d325f['field'](_0x238b('0xa9'));_0x1d325f[_0x238b('0x4a')](_0x238b('0xaa'));_0x1d325f[_0x238b('0x4a')](_0x238b('0xab'));_0x1d325f[_0x238b('0x4a')]('i.substatus');_0x1d325f[_0x238b('0x4a')](_0x238b('0xac'));_0x1d325f['field']('i.ContactId');_0x1d325f[_0x238b('0x4a')](_0x238b('0xad'));_0x1d325f['field'](_0x238b('0xae'));_0x1d325f[_0x238b('0x4a')](_0x238b('0xaf'),_0x238b('0xb0'));_0x1d325f[_0x238b('0x4a')](_0x238b('0xb1'),_0x238b('0xb2'));_0x1d325f[_0x238b('0x4a')](_0x238b('0xb3'),_0x238b('0xb4'));_0x1d325f[_0x238b('0x4a')](_0x238b('0xb5'),'Contact.phone');_0x1d325f[_0x238b('0x4a')]('c.mobile',_0x238b('0xb6'));_0x1d325f[_0x238b('0x4a')](_0x238b('0xb7'),_0x238b('0xb8'));_0x1d325f[_0x238b('0x4a')]('o.fullname',_0x238b('0xb9'));_0x1d325f[_0x238b('0x4a')](_0x238b('0xba'),_0x238b('0xbb'));_0x1d325f[_0x238b('0x4a')](_0x238b('0xbc'),'TagIds');}if(_0x439994[_0x238b('0x44')])_0x1d325f['limit'](_0x439994['limit']);if(_0x439994['offset'])_0x1d325f[_0x238b('0x20')](_0x439994[_0x238b('0x20')]);return db[_0x238b('0x9c')][_0x238b('0x3e')](_0x1d325f[_0x238b('0x9d')](),_0x1a3072);})[_0x238b('0x27')](function(_0x409ebc){_0x579f59['where'](_0x238b('0xbd'),_[_0x238b('0x2e')](_0x409ebc,'id'));return db[_0x238b('0x9c')][_0x238b('0x3e')](_0x579f59[_0x238b('0x9d')](),_0x1a3072)[_0x238b('0x27')](function(_0x4919df){var _0x4cd008=_[_0x238b('0xbe')](_0x4919df,_0x238b('0xbf'));var _0x5373e6=[];return db[_0x238b('0xc0')][_0x238b('0x32')]({'attributes':['enableEmailPreview'],'raw':!![]})[_0x238b('0x27')](function(_0x801f13){var _0x48b5b1=_0x801f13[_0x238b('0xc1')];_0x409ebc[_0x238b('0x76')](function(_0x4fc6d5){_0x5373e6['push'](updateMailInteraction(_0x4fc6d5,_0x3f7a12,_0x4cd008,_0x48b5b1));});return BPromise[_0x238b('0xc2')](_0x5373e6);});});});})['then'](function(_0x15c8b1){_0x1447ec[_0x238b('0xc3')]=_0x15c8b1;return _0x1447ec;})['then'](respondWithFilteredResult(_0x49f66e,_0x439994));})[_0x238b('0x36')](handleError(_0x49f66e,null));};exports[_0x238b('0xc4')]=function(_0x404a34,_0x21ae33){var _0x2618a7={'raw':![],'where':{'id':_0x404a34[_0x238b('0xc5')]['id']}},_0x1e9bf7={};_0x1e9bf7['model']=_['keys'](db[_0x238b('0x38')][_0x238b('0xc6')]);_0x1e9bf7['query']=_[_0x238b('0x3c')](_0x404a34['query']);_0x1e9bf7[_0x238b('0x3d')]=_[_0x238b('0x3f')](_0x1e9bf7[_0x238b('0x3b')],_0x1e9bf7['query']);_0x2618a7[_0x238b('0x41')]=_[_0x238b('0x3f')](_0x1e9bf7[_0x238b('0x3b')],qs[_0x238b('0x40')](_0x404a34['query'][_0x238b('0x40')]));_0x2618a7[_0x238b('0x41')]=_0x2618a7['attributes'][_0x238b('0x42')]?_0x2618a7[_0x238b('0x41')]:_0x1e9bf7[_0x238b('0x3b')];if(_0x404a34[_0x238b('0x3e')]['includeAll']){_0x2618a7[_0x238b('0xc7')]=[{'all':!![]}];}_0x2618a7=_[_0x238b('0xc8')]({},_0x2618a7,_0x404a34['options']);return db[_0x238b('0x38')]['find'](_0x2618a7)[_0x238b('0x27')](handleEntityNotFound(_0x21ae33,null))[_0x238b('0x27')](respondWithResult(_0x21ae33,null))[_0x238b('0x36')](handleError(_0x21ae33,null));};exports['create']=function(_0x2ce5a6,_0x1d5690){return db[_0x238b('0x38')][_0x238b('0xc9')](_0x2ce5a6['body'],{})[_0x238b('0x27')](respondWithResult(_0x1d5690,0xc9))[_0x238b('0x36')](handleError(_0x1d5690,null));};exports['update']=function(_0x22a276,_0x2575b1){if(_0x22a276[_0x238b('0xca')]['id']){delete _0x22a276['body']['id'];}return db['MailInteraction'][_0x238b('0x5f')]({'where':{'id':_0x22a276['params']['id']}})['then'](handleEntityNotFound(_0x2575b1,null))[_0x238b('0x27')](saveUpdates(_0x22a276[_0x238b('0xca')],null))['then'](respondWithResult(_0x2575b1,null))[_0x238b('0x36')](handleError(_0x2575b1,null));};exports[_0x238b('0x28')]=function(_0x54ec86,_0x4c86ef){return db[_0x238b('0x38')][_0x238b('0x5f')]({'where':{'id':_0x54ec86['params']['id']}})[_0x238b('0x27')](handleEntityNotFound(_0x4c86ef,null))[_0x238b('0x27')](removeEntity(_0x4c86ef,null))[_0x238b('0x36')](handleError(_0x4c86ef,null));};exports[_0x238b('0xcb')]=function(_0x4da35b,_0x130d3b){return db['MailInteraction'][_0x238b('0xcb')]()[_0x238b('0x27')](respondWithResult(_0x130d3b,null))['catch'](handleError(_0x130d3b,null));};exports[_0x238b('0xcc')]=function(_0x20b355,_0x5a1285,_0x5c1db7){return db['MailMessage'][_0x238b('0x5f')]({'where':{'id':_0x20b355['params']['id']}})['then'](handleEntityNotFound(_0x5a1285,null))[_0x238b('0x27')](function(_0x17409c){if(_0x17409c){return _0x17409c[_0x238b('0xcc')](_0x20b355[_0x238b('0xca')][_0x238b('0xcd')],_[_0x238b('0xce')](_0x20b355[_0x238b('0xca')],[_0x238b('0xcd'),'id'])||{});}})[_0x238b('0x27')](respondWithResult(_0x5a1285,null))[_0x238b('0x36')](handleError(_0x5a1285,null));};exports[_0x238b('0xcf')]=function(_0x24e77b,_0x2ba75c,_0x52a49f){var _0x59f606={'raw':![],'where':{}};var _0x35b1c2={};var _0x3530e9={'count':0x0,'rows':[]};return db[_0x238b('0x38')][_0x238b('0x32')]({'where':{'id':_0x24e77b['params']['id']}})[_0x238b('0x27')](handleEntityNotFound(_0x2ba75c,null))['then'](function(_0x30b10e){if(_0x30b10e){_0x35b1c2[_0x238b('0x3b')]=_[_0x238b('0x3c')](db[_0x238b('0xd0')][_0x238b('0xc6')]);_0x35b1c2[_0x238b('0x3e')]=_[_0x238b('0x3c')](_0x24e77b[_0x238b('0x3e')]);_0x35b1c2[_0x238b('0x3d')]=_[_0x238b('0x3f')](_0x35b1c2[_0x238b('0x3b')],_0x35b1c2[_0x238b('0x3e')]);_0x59f606[_0x238b('0x41')]=_['intersection'](_0x35b1c2[_0x238b('0x3b')],qs['fields'](_0x24e77b[_0x238b('0x3e')][_0x238b('0x40')]));_0x59f606[_0x238b('0x41')]=_0x59f606[_0x238b('0x41')][_0x238b('0x42')]?_0x59f606[_0x238b('0x41')]:_0x35b1c2[_0x238b('0x3b')];if(!_0x24e77b[_0x238b('0x3e')][_0x238b('0xd1')](_0x238b('0x43'))){_0x59f606[_0x238b('0x44')]=qs[_0x238b('0x44')](_0x24e77b[_0x238b('0x3e')][_0x238b('0x44')]);_0x59f606['offset']=qs[_0x238b('0x20')](_0x24e77b[_0x238b('0x3e')][_0x238b('0x20')]);}_0x59f606['order']=qs['sort'](_0x24e77b[_0x238b('0x3e')][_0x238b('0x46')]);_0x59f606[_0x238b('0x47')]=qs[_0x238b('0x3d')](_['pick'](_0x24e77b['query'],_0x35b1c2['filters']));_0x59f606['where'][_0x238b('0xbf')]=_0x30b10e['id'];if(_0x24e77b[_0x238b('0x3e')][_0x238b('0x84')]){_0x59f606[_0x238b('0x47')]=_[_0x238b('0xc8')](_0x59f606[_0x238b('0x47')],{'$or':_[_0x238b('0x2e')](_0x59f606['attributes'],function(_0x479cae){var _0x56060a={};_0x56060a[_0x479cae]={'$like':'%'+_0x24e77b[_0x238b('0x3e')]['filter']+'%'};return _0x56060a;})});}if(_0x24e77b[_0x238b('0x3e')][_0x238b('0x7a')]){var _0x50e55b=_0x24e77b['query'][_0x238b('0x7a')][_0x238b('0xd2')](',');var _0x55fbfe={};_0x55fbfe[_0x50e55b[0x0]]={'$gte':moment(_0x50e55b[0x1])['format'](_0x238b('0xd3'))};_0x59f606[_0x238b('0x47')]=_[_0x238b('0xc8')](_0x59f606['where'],_0x55fbfe);}_0x59f606=_['merge']({},_0x59f606,_0x24e77b[_0x238b('0xd4')]);return db[_0x238b('0xd0')][_0x238b('0x9e')]({'where':_0x59f606[_0x238b('0x47')]})['then'](function(_0x1da812){_0x3530e9[_0x238b('0x9e')]=_0x1da812;if(_0x24e77b['query']['includeAll']){_0x59f606[_0x238b('0xc7')]=[{'all':!![]}];}return db[_0x238b('0xd0')][_0x238b('0xd5')](_0x59f606);})[_0x238b('0x27')](function(_0x590734){_0x3530e9[_0x238b('0xc3')]=_0x590734;return _0x3530e9;});}})[_0x238b('0x27')](respondWithFilteredResult(_0x2ba75c,_0x59f606))[_0x238b('0x36')](handleError(_0x2ba75c,null));};exports[_0x238b('0xd6')]=function(_0xbba0fd,_0x2b2e85,_0x56c5a2){return db[_0x238b('0x38')]['find']({'where':{'id':_0xbba0fd['params']['id']}})[_0x238b('0x27')](handleEntityNotFound(_0x2b2e85,null))[_0x238b('0x27')](function(_0x4f7499){if(_0x4f7499){return _0x4f7499[_0x238b('0xd7')](_0xbba0fd[_0x238b('0xca')][_0x238b('0xcd')],_[_0x238b('0xce')](_0xbba0fd[_0x238b('0xca')],[_0x238b('0xcd'),'id'])||{})[_0x238b('0xd8')](function(){return db[_0x238b('0x6d')][_0x238b('0xd5')]({'attributes':['id',_0x238b('0x2b'),'color'],'where':{'id':_0xbba0fd[_0x238b('0xca')][_0x238b('0xcd')]}});})[_0x238b('0x27')](function(_0xcc703b){socket[_0x238b('0xd9')](_0x238b('0xda'),{'id':Number(_0xbba0fd[_0x238b('0xc5')]['id']),'tags':_0xcc703b||[]});return{'id':Number(_0xbba0fd[_0x238b('0xc5')]['id']),'tags':_0xcc703b||[]};});}})[_0x238b('0x27')](respondWithResult(_0x2b2e85,null))['catch'](handleError(_0x2b2e85,null));};exports[_0x238b('0xdb')]=function(_0x352cd0,_0x4fdb0d,_0x2c669b){return db[_0x238b('0x38')][_0x238b('0x5f')]({'where':{'id':_0x352cd0[_0x238b('0xc5')]['id']}})[_0x238b('0x27')](handleEntityNotFound(_0x4fdb0d,null))[_0x238b('0x27')](function(_0x3aa227){if(_0x3aa227){return _0x3aa227['removeTags'](_0x352cd0[_0x238b('0x3e')][_0x238b('0xcd')]);}})['then'](respondWithStatusCode(_0x4fdb0d,null))[_0x238b('0x36')](handleError(_0x4fdb0d,null));};exports['download']=function(_0x58ba77,_0x376816){var _0x293427=moment()[_0x238b('0xdc')]()[_0x238b('0x9d')]();var _0x29f5a1=path['join'](config[_0x238b('0xdd')],_0x238b('0xde'),_0x238b('0xdf'),_0x238b('0xe0'));var _0x2d7c8e=path[_0x238b('0xe1')](config[_0x238b('0xdd')],'server','files',_0x238b('0xe2'));var _0x19b036=path[_0x238b('0xe1')](_0x29f5a1,_0x293427);var _0x3a85f6=util[_0x238b('0xe3')]('transcript-%d-%s.zip',_0x58ba77[_0x238b('0xc5')]['id'],_0x293427);var _0x194de9=path[_0x238b('0xe1')](_0x29f5a1,_0x3a85f6);var _0x4f14ca=[];if(_0x58ba77[_0x238b('0x3e')][_0x238b('0xe2')]){_0x4f14ca[_0x238b('0x31')]({'model':db[_0x238b('0xe4')],'as':_0x238b('0xe5'),'raw':!![]});}var _0x2c2d42=[{'model':db[_0x238b('0xd0')],'as':'Messages','attributes':['id',_0x238b('0xca'),_0x238b('0x4d'),'to','cc',_0x238b('0xe6'),_0x238b('0xe7'),_0x238b('0xe8')],'where':{'secret':![]},'order':qs[_0x238b('0x46')]('id'),'include':_0x4f14ca}];return db[_0x238b('0x38')][_0x238b('0x5f')]({'where':{'id':_0x58ba77[_0x238b('0xc5')]['id']},'include':_0x2c2d42})[_0x238b('0x27')](handleEntityNotFound(_0x376816,null))[_0x238b('0x27')](function(_0xa860d1){if(_0xa860d1&&_0xa860d1[_0x238b('0xe9')]){var _0x504b59=_0xa860d1[_0x238b('0xea')]({'plain':!![]});fs[_0x238b('0xeb')](_0x19b036);return BPromise[_0x238b('0xec')](_0x504b59[_0x238b('0xe9')],function(_0x28eafd,_0x1d3065){var _0x364910={'from':_0x28eafd[_0x238b('0x4d')],'to':_0x28eafd['to'],'subject':_0x28eafd[_0x238b('0xe7')],'html':_0x28eafd[_0x238b('0xca')],'headers':{'Date':moment(_0x28eafd[_0x238b('0xe8')])[_0x238b('0xe3')](_0x238b('0xed'))},'attachments':[]};if(_0x28eafd['cc']){_0x364910[_0x238b('0xee')]['Cc']=_0x28eafd['cc'];}if(_0x28eafd[_0x238b('0xe6')]){_0x364910[_0x238b('0xee')]['Bcc']=_0x28eafd[_0x238b('0xe6')];}return new BPromise(function(_0x5794e3,_0x1c3bd4){if(_0x28eafd[_0x238b('0xe5')]){for(var _0x15469f=0x0;_0x15469f<_0x28eafd[_0x238b('0xe5')][_0x238b('0x42')];_0x15469f++){var _0x5e3787=_0x28eafd['Attachments'][_0x15469f];var _0x3c99ec=path[_0x238b('0xe1')](_0x2d7c8e,_0x5e3787[_0x238b('0xef')]);if(fs[_0x238b('0xf0')](_0x3c99ec)){_0x364910[_0x238b('0xe2')][_0x238b('0x31')]({'name':_0x5e3787[_0x238b('0x2b')],'contentType':_0x5e3787['type'],'data':fs['readFileSync'](_0x3c99ec)});}}}emlformat['build'](_0x364910,function(_0x4f9bf7,_0x2d51e1){if(_0x4f9bf7)return _0x1c3bd4(_0x4f9bf7);fs[_0x238b('0xf1')](path['join'](_0x19b036,util['format'](_0x238b('0xf2'),_0x1d3065)),_0x2d51e1);return _0x5794e3(_0x2d51e1);});});})[_0x238b('0x27')](function(){return new BPromise(function(_0xb15c8f,_0x478abb){zipdir(_0x19b036,{'saveTo':_0x194de9},function(_0x268a9b,_0x2d7a53){if(_0x268a9b)return _0x478abb(_0x268a9b);return _0xb15c8f(_0x2d7a53);});})[_0x238b('0x27')](function(){return new BPromise(function(_0x2d482f,_0x2c40dd){rimraf(_0x19b036,function(_0x2826e0){if(_0x2826e0)_0x2c40dd(_0x2826e0);return _0x2d482f();});});})['then'](function(){return _0x376816['download'](_0x194de9,_0x3a85f6,function(_0x5bc6fb){if(_0x5bc6fb){console['log']('err',_0x5bc6fb);}else{fs[_0x238b('0xf3')](_0x194de9);}});});});}else{return _0x376816[_0x238b('0x1d')](0xc8);}})[_0x238b('0x36')](handleError(_0x376816,null));};