ce29af6cb87c6eb4fb7e09b62bd06700b6329c2c
[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 _0x51d2=['i.createdAt\x20BETWEEN\x20?\x20AND\x20?','null','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','filter','replace','isNumeric','isEmail','c.email\x20LIKE\x20?','MATCH\x20(me.plainBody,\x20me.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','group','i.id','Sequelize','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','t.id\x20IN\x20?','resolve','i.MailAccountId\x20IS\x20NOT\x20NULL','role','user','i.MailAccountId\x20IS\x20NULL','agent','sequelize','toString','keyBy','a.key','a.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','contactName','i.closed','i.closedAt','i.attach','i.lastMsgAt','i.lastMsgDirection','i.subject','i.disposition','i.substatus','i.to','i.ContactId','i.MailAccountId','i.UserId','c.lastName','Contact.lastName','c.email','c.mobile','Contact.mobile','c.fax','Contact.fax','o.fullname','Owner.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.MailInteractionId\x20IN\x20?','groupBy','MailInteractionId','Setting','enableEmailPreview','all','rows','show','includeAll','options','find','create','body','params','describe','ids','omit','getMessages','nolimit','format','YYYY-MM-DD\x20HH:mm:ss','merge','include','findAll','inlineCss','true','setTags','spread','mailInteractionTags:save','removeTags','download','unix','join','root','server','files','attachments','Attachment','Attachments','Messages','bcc','get','mkdirSync','each','subject','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','basename','existsSync','readFileSync','writeFileSync','message%d.eml','log','unlinkSync','eml-format','request-promise','moment','bluebird','mustache','sox','to-csv','ejs','fs-extra','lodash','squel','crypto','jsforce','papaparse','html-to-text','juice','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./mailInteraction.socket','sendStatus','end','status','json','offset','undefined','limit','count','set','Content-Range','apply','save','update','then','destroy','error','stack','name','send','Users','fullname','TagIds','forEach','push','MailMessage','findOne','-id','plainBody','lastMsgText','trimStart','catch','index','MailInteraction','rawAttributes','fieldName','key','map','query','keys','intersection','model','attributes','fields','length','hasOwnProperty','order','sort','filters','select','field','color','tools_tags','u.id','ui.MailInteractionId','from','user_has_mail_interactions','left_join','users','u.id\x20=\x20ui.UserId','cm_contacts','o.id\x20=\x20i.UserId','mail_accounts','a.id\x20=\x20i.MailAccountId','mail_messages','me.MailInteractionId\x20=\x20i.id','it.MailInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','conditions','unreadMessages','value','having','`\x20=\x200','`\x20>\x200','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','type','text','start','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','User','operator','$substring','UserId','some','compact','isEmpty','MailAccountId','where','i.MailAccountId\x20IN\x20?','createdAt','parse','$gte','$lte'];(function(_0x432682,_0x253044){var _0x463d05=function(_0xa73403){while(--_0xa73403){_0x432682['push'](_0x432682['shift']());}};_0x463d05(++_0x253044);}(_0x51d2,0x162));var _0x251d=function(_0x38ced4,_0x24263f){_0x38ced4=_0x38ced4-0x0;var _0x547c07=_0x51d2[_0x38ced4];return _0x547c07;};'use strict';var emlformat=require(_0x251d('0x0'));var rimraf=require('rimraf');var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0x251d('0x1'));var moment=require(_0x251d('0x2'));var BPromise=require(_0x251d('0x3'));var Mustache=require(_0x251d('0x4'));var util=require('util');var path=require('path');var sox=require(_0x251d('0x5'));var csv=require(_0x251d('0x6'));var ejs=require(_0x251d('0x7'));var fs=require('fs');var fs_extra=require(_0x251d('0x8'));var _=require(_0x251d('0x9'));var squel=require(_0x251d('0xa'));var crypto=require(_0x251d('0xb'));var jsforce=require(_0x251d('0xc'));var deskjs=require('desk.js');var toCsv=require(_0x251d('0x6'));var querystring=require('querystring');var Papa=require(_0x251d('0xd'));var htmlToText=require(_0x251d('0xe'));var juice=require(_0x251d('0xf'));var Redis=require(_0x251d('0x10'));var authService=require(_0x251d('0x11'));var qs=require(_0x251d('0x12'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x251d('0x13'));var logger=require(_0x251d('0x14'))(_0x251d('0x15'));var utils=require(_0x251d('0x16'));var config=require(_0x251d('0x17'));var licenseUtil=require(_0x251d('0x18'));var db=require(_0x251d('0x19'))['db'];config[_0x251d('0x1a')]=_[_0x251d('0x1b')](config[_0x251d('0x1a')],{'host':_0x251d('0x1c'),'port':0x18eb});var socket=require(_0x251d('0x1d'))(new Redis(config[_0x251d('0x1a')]));require(_0x251d('0x1e'))['register'](socket);function respondWithStatusCode(_0xcb1dd3,_0x754b8){_0x754b8=_0x754b8||0xcc;return function(_0x1236b8){if(_0x1236b8){return _0xcb1dd3[_0x251d('0x1f')](_0x754b8);}return _0xcb1dd3['status'](_0x754b8)[_0x251d('0x20')]();};}function respondWithResult(_0x37762e,_0x1b6a1e){_0x1b6a1e=_0x1b6a1e||0xc8;return function(_0x35b307){if(_0x35b307){return _0x37762e[_0x251d('0x21')](_0x1b6a1e)[_0x251d('0x22')](_0x35b307);}};}function respondWithFilteredResult(_0x5ba9f6,_0x5b3f88){return function(_0x1ae89f){if(_0x1ae89f){var _0x3d482d=typeof _0x5b3f88[_0x251d('0x23')]===_0x251d('0x24')&&typeof _0x5b3f88[_0x251d('0x25')]===_0x251d('0x24');var _0x5a3186=_0x1ae89f['count'];var _0x443f2a=_0x3d482d?0x0:_0x5b3f88[_0x251d('0x23')];var _0x492d44=_0x3d482d?_0x1ae89f[_0x251d('0x26')]:_0x5b3f88['offset']+_0x5b3f88[_0x251d('0x25')];var _0x7fced6;if(_0x492d44>=_0x5a3186){_0x492d44=_0x5a3186;_0x7fced6=0xc8;}else{_0x7fced6=0xce;}_0x5ba9f6['status'](_0x7fced6);return _0x5ba9f6[_0x251d('0x27')](_0x251d('0x28'),_0x443f2a+'-'+_0x492d44+'/'+_0x5a3186)[_0x251d('0x22')](_0x1ae89f);}return null;};}function patchUpdates(_0x433ae5){return function(_0x2c32e8){try{jsonpatch[_0x251d('0x29')](_0x2c32e8,_0x433ae5,!![]);}catch(_0x2c75de){return BPromise['reject'](_0x2c75de);}return _0x2c32e8[_0x251d('0x2a')]();};}function saveUpdates(_0x569312,_0x3bca9c){return function(_0x592ac9){if(_0x592ac9){return _0x592ac9[_0x251d('0x2b')](_0x569312)[_0x251d('0x2c')](function(_0x3db0c8){return _0x3db0c8;});}return null;};}function removeEntity(_0x3d7e00,_0x240997){return function(_0x1c5ba5){if(_0x1c5ba5){return _0x1c5ba5[_0x251d('0x2d')]()[_0x251d('0x2c')](function(){_0x3d7e00[_0x251d('0x21')](0xcc)['end']();});}};}function handleEntityNotFound(_0xdeda86,_0x4cb367){return function(_0x12d346){if(!_0x12d346){_0xdeda86[_0x251d('0x1f')](0x194);}return _0x12d346;};}function handleError(_0x14418b,_0x487064){_0x487064=_0x487064||0x1f4;return function(_0x303632){logger[_0x251d('0x2e')](_0x303632[_0x251d('0x2f')]);if(_0x303632[_0x251d('0x30')]){delete _0x303632['name'];}_0x14418b['status'](_0x487064)[_0x251d('0x31')](_0x303632);};}function getInteractionUsers(_0x2d3f15,_0x477577){return new BPromise(function(_0x4e8f29,_0x5da92a){try{if(_0x477577[_0x2d3f15['id']]){_0x2d3f15[_0x251d('0x32')]=_['map'](_0x477577[_0x2d3f15['id']],function(_0x5e0577){return{'id':_0x5e0577['id'],'fullname':_0x5e0577[_0x251d('0x33')]};});}}catch(_0x5bafce){_0x5da92a(_0x5bafce);}_0x4e8f29(_0x2d3f15);});}function getInteractionTags(_0x119b0b,_0x25e01c){return new BPromise(function(_0x5ec3cc,_0x3ee5c0){try{if(_0x119b0b[_0x251d('0x34')]){_0x119b0b['Tags']=[];_0x119b0b[_0x251d('0x34')]['split'](',')[_0x251d('0x35')](function(_0x2ea6b6){_0x119b0b['Tags'][_0x251d('0x36')](_0x25e01c[_0x2ea6b6]);});}delete _0x119b0b[_0x251d('0x34')];}catch(_0x1ea6fe){_0x3ee5c0(_0x1ea6fe);}_0x5ec3cc(_0x119b0b);});}function getLastMessageText(_0x4320d7){return new BPromise(function(_0x2b8a88,_0x37dd2b){return db[_0x251d('0x37')][_0x251d('0x38')]({'where':{'$and':[{'MailInteractionId':_0x4320d7['id']},{'$or':[{'direction':'in'},{'$and':[{'direction':'out'},{'secret':![]},{'UserId':{'$ne':null}}]}]}]},'attributes':['plainBody'],'order':_0x251d('0x39'),'raw':!![]})[_0x251d('0x2c')](function(_0xeb709a){if(_0xeb709a&&_0xeb709a[_0x251d('0x3a')]){_0x4320d7[_0x251d('0x3b')]=_[_0x251d('0x3c')](_0xeb709a[_0x251d('0x3a')]);}_0x2b8a88(_0x4320d7);})[_0x251d('0x3d')](function(_0x38f2e8){_0x37dd2b(_0x38f2e8);});});}function updateMailInteraction(_0x3c4d7b,_0x42fc85,_0x2ac2dd,_0x407277){return new BPromise(function(_0x524286,_0x52442c){return getInteractionUsers(_0x3c4d7b,_0x2ac2dd)[_0x251d('0x2c')](function(_0x968be0){return getInteractionTags(_0x968be0,_0x42fc85);})[_0x251d('0x2c')](function(_0x17fb16){if(_0x407277){_0x524286(getLastMessageText(_0x17fb16));}else{_0x524286(_0x17fb16);}})[_0x251d('0x3d')](function(_0x2f52b0){_0x52442c(_0x2f52b0);});});}exports[_0x251d('0x3e')]=function(_0x77abab,_0x207b21){var _0x494742={},_0x185db4={},_0x45c953={'count':0x0,'rows':[]};var _0x385b41=_['map'](db[_0x251d('0x3f')][_0x251d('0x40')],function(_0x194184){return{'name':_0x194184[_0x251d('0x41')],'type':_0x194184['type'][_0x251d('0x42')]};});_0x185db4['model']=_[_0x251d('0x43')](_0x385b41,_0x251d('0x30'));_0x185db4[_0x251d('0x44')]=_[_0x251d('0x45')](_0x77abab[_0x251d('0x44')]);_0x185db4['filters']=_[_0x251d('0x46')](_0x185db4[_0x251d('0x47')],_0x185db4[_0x251d('0x44')]);_0x494742[_0x251d('0x48')]=_[_0x251d('0x46')](_0x185db4[_0x251d('0x47')],qs['fields'](_0x77abab[_0x251d('0x44')][_0x251d('0x49')]));_0x494742[_0x251d('0x48')]=_0x494742[_0x251d('0x48')][_0x251d('0x4a')]?_0x494742[_0x251d('0x48')]:_0x185db4[_0x251d('0x47')];if(!_0x77abab[_0x251d('0x44')][_0x251d('0x4b')]('nolimit')){_0x494742[_0x251d('0x25')]=qs['limit'](_0x77abab[_0x251d('0x44')]['limit']);_0x494742[_0x251d('0x23')]=qs[_0x251d('0x23')](_0x77abab[_0x251d('0x44')]['offset']);}_0x494742[_0x251d('0x4c')]=qs[_0x251d('0x4d')](_0x77abab[_0x251d('0x44')][_0x251d('0x4d')]);_0x494742['where']=qs[_0x251d('0x4e')](_['pick'](_0x77abab[_0x251d('0x44')],_0x185db4['filters']),_0x385b41);var _0x4820fa=[];var _0x5d650f=squel[_0x251d('0x4f')]()[_0x251d('0x50')]('id')[_0x251d('0x50')]('name')['field'](_0x251d('0x51'))['from'](_0x251d('0x52'));var _0x3fc6c9=squel[_0x251d('0x4f')]()['field'](_0x251d('0x53'))[_0x251d('0x50')]('u.fullname')[_0x251d('0x50')](_0x251d('0x54'))[_0x251d('0x55')](_0x251d('0x56'),'ui')[_0x251d('0x57')](_0x251d('0x58'),'u',_0x251d('0x59'));var _0x3bcc06=squel['select']()[_0x251d('0x55')]('mail_interactions','i')[_0x251d('0x57')](_0x251d('0x5a'),'c','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL')[_0x251d('0x57')]('users','o',_0x251d('0x5b'))[_0x251d('0x57')](_0x251d('0x5c'),'a',_0x251d('0x5d'))[_0x251d('0x57')](_0x251d('0x5e'),'me',_0x251d('0x5f'))[_0x251d('0x57')]('mail_interaction_has_tags','it',_0x251d('0x60'))[_0x251d('0x57')](_0x251d('0x52'),'t',_0x251d('0x61'));var _0x6128d3=squel[_0x251d('0x62')]();var _0x15044a=[];var _0x51d4b1=squel[_0x251d('0x62')]();var _0x4a1f9d;if(_0x77abab[_0x251d('0x44')][_0x251d('0x63')]){_0x4a1f9d=as[_0x251d('0x64')](_0x77abab[_0x251d('0x44')][_0x251d('0x63')]);var _0x2fe698=_0x4a1f9d[_0x251d('0x65')];for(var _0x51acb0=0x0;_0x51acb0<_0x4a1f9d[_0x251d('0x66')][_0x251d('0x4a')];_0x51acb0++){var _0x12b36f=_0x4a1f9d['conditions'][_0x51acb0];var _0x385cc1='i';var _0x40794e=_['find'](_0x385b41,[_0x251d('0x30'),_0x12b36f[_0x251d('0x50')]]);if(!_0x40794e){switch(_0x12b36f['field']){case _0x251d('0x67'):if(_0x12b36f[_0x251d('0x68')]==0x1){_0x3bcc06[_0x251d('0x69')]('`'+_0x12b36f[_0x251d('0x50')]+_0x251d('0x6a'));}else{_0x3bcc06[_0x251d('0x69')]('`'+_0x12b36f[_0x251d('0x50')]+_0x251d('0x6b'));}break;case'Contact':if(_0x12b36f['operator']==='$substring'){if(_0x12b36f[_0x251d('0x68')]['split']('\x20')[_0x251d('0x4a')]>0x1){_0x6128d3[_0x2fe698](_0x251d('0x6c'),qs[_0x251d('0x6d')](_0x12b36f[_0x251d('0x68')]),null);}else{var _0x4f645f='%'+_0x12b36f['value']+'%';_0x6128d3[_0x2fe698](_0x251d('0x6e'),_0x4f645f,_0x4f645f,_0x4f645f);}}else{_0x40794e=_['find'](_0x385b41,[_0x251d('0x30'),_0x251d('0x6f')]);_0x12b36f['field']='ContactId';_0x2bc4b0=as[_0x251d('0x70')](_0x385cc1,_0x40794e[_0x251d('0x71')],_0x12b36f);_0x6128d3[_0x2fe698](_0x2bc4b0[_0x251d('0x72')],_0x2bc4b0['value'][_0x251d('0x73')],_0x2bc4b0[_0x251d('0x68')][_0x251d('0x20')]);}break;case'Tag':var _0x272eb5=_0x12b36f[_0x251d('0x68')]['split'](',')['map'](function(_0x27c6a8){return Number(_0x27c6a8);});_0x272eb5[_0x251d('0x35')](function(_0x12538c){_0x51d4b1['or'](_0x251d('0x74'),'%,'+_0x12538c+',%');});_0x15044a=_[_0x251d('0x75')](_0x15044a,_0x272eb5);break;case _0x251d('0x76'):if(_0x12b36f[_0x251d('0x77')]===_0x251d('0x78')){_0x6128d3[_0x2fe698]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x12b36f[_0x251d('0x68')]+'%',null);}else{_0x40794e=_['find'](_0x385b41,[_0x251d('0x30'),_0x251d('0x79')]);_0x12b36f['field']=_0x251d('0x79');_0x2bc4b0=as[_0x251d('0x70')](_0x385cc1,_0x40794e[_0x251d('0x71')],_0x12b36f);_0x6128d3[_0x2fe698](_0x2bc4b0[_0x251d('0x72')],_0x2bc4b0[_0x251d('0x68')][_0x251d('0x73')],_0x2bc4b0['value'][_0x251d('0x20')]);}break;case _0x251d('0x3a'):_0x2bc4b0=as['buildExpression']('me',null,_0x12b36f);_0x6128d3[_0x2fe698](_0x2bc4b0[_0x251d('0x72')],_0x2bc4b0[_0x251d('0x68')]['start'],_0x2bc4b0[_0x251d('0x68')][_0x251d('0x20')]);break;}}else{var _0x2bc4b0=as[_0x251d('0x70')](_0x385cc1,_0x40794e[_0x251d('0x71')],_0x12b36f);_0x6128d3[_0x2fe698](_0x2bc4b0[_0x251d('0x72')],_0x2bc4b0[_0x251d('0x68')][_0x251d('0x73')],_0x2bc4b0[_0x251d('0x68')]['end']);}}}else{var _0xea997d=_(_0x77abab[_0x251d('0x44')])[_0x251d('0x45')]()[_0x251d('0x43')](function(_0x2f5a0c){return _[_0x251d('0x7a')](_0x385b41,[_0x251d('0x30'),_0x2f5a0c])?_0x2f5a0c:undefined;})[_0x251d('0x7b')]()[_0x251d('0x68')]();if(!_[_0x251d('0x7c')](_0xea997d)){_0xea997d[_0x251d('0x35')](function(_0x3ad94f){if(_0x3ad94f===_0x251d('0x7d')){_0x3bcc06[_0x251d('0x7e')](_0x251d('0x7f'),[]['concat'](_0x77abab[_0x251d('0x44')][_0x3ad94f]));}else if(_0x3ad94f===_0x251d('0x80')){var _0x593a97=JSON[_0x251d('0x81')](_0x77abab[_0x251d('0x44')][_0x3ad94f])[_0x251d('0x82')];var _0x276ed5=JSON[_0x251d('0x81')](_0x77abab[_0x251d('0x44')][_0x3ad94f])[_0x251d('0x83')];_0x3bcc06[_0x251d('0x7e')](_0x251d('0x84'),_0x593a97,_0x276ed5);}else{if(_0x77abab[_0x251d('0x44')][_0x3ad94f]===_0x251d('0x85')){_0x3bcc06[_0x251d('0x7e')]('i.'+_0x3ad94f+_0x251d('0x86'));}else{_0x3bcc06[_0x251d('0x7e')]('i.'+_0x3ad94f+_0x251d('0x87'),_0x77abab['query'][_0x3ad94f]);}}});}if(_0x77abab[_0x251d('0x44')][_0x251d('0x88')]){if(_0x77abab[_0x251d('0x44')][_0x251d('0x88')]==0x1){_0x3bcc06[_0x251d('0x69')](_0x251d('0x89'));}else{_0x3bcc06[_0x251d('0x69')](_0x251d('0x8a'));}}if(_0x77abab[_0x251d('0x44')]['tag']){_0x15044a=_['isArray'](_0x77abab[_0x251d('0x44')][_0x251d('0x8b')])?_0x77abab[_0x251d('0x44')]['tag']:new Array(_0x77abab[_0x251d('0x44')][_0x251d('0x8b')]);_0x15044a['forEach'](function(_0xcee02a){_0x51d4b1['or']('CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','%,'+_0xcee02a+',%');});}if(_0x77abab[_0x251d('0x44')][_0x251d('0x8c')]){var _0x1d4597=_0x77abab[_0x251d('0x44')][_0x251d('0x8c')][_0x251d('0x8d')]('\x5c','\x5c\x5c')[_0x251d('0x8d')](/'/g,'\x27\x27');if(qs[_0x251d('0x8e')](_0x1d4597)){_0x6128d3['or']('i.id\x20LIKE\x20?',_0x1d4597+'%');}else if(qs[_0x251d('0x8f')](_0x1d4597)){_0x6128d3['or'](_0x251d('0x90'),_0x1d4597+'%');}else{_0x6128d3['or']('MATCH\x20(i.to,\x20i.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs[_0x251d('0x6d')](_0x1d4597))['or'](_0x251d('0x91'),qs['getFullTextValue'](_0x1d4597));}}}_0x3bcc06[_0x251d('0x7e')](_0x6128d3);_0x3bcc06[_0x251d('0x92')](_0x251d('0x93'));var _0x5e925c={'type':db[_0x251d('0x94')]['QueryTypes']['SELECT'],'raw':!![]};var _0x24ab0f=_0x3bcc06['clone']();_0x24ab0f[_0x251d('0x50')](_0x251d('0x93'));_0x24ab0f[_0x251d('0x50')](_0x251d('0x95'),'unreadMessages');if(_0x494742[_0x251d('0x4c')]){_0x494742[_0x251d('0x4c')][_0x251d('0x35')](function(_0xf3644f){var _0x577245=_0xf3644f[0x0]==='contactName'?_0xf3644f[0x0]:'i.'+_0xf3644f[0x0];_0x3bcc06[_0x251d('0x4c')](_0x577245,_0xf3644f[0x1]==='DESC'?![]:!![]);});}if(!_[_0x251d('0x7c')](_0x15044a)){_0x3bcc06[_0x251d('0x69')](_0x51d4b1);_0x24ab0f[_0x251d('0x7e')](_0x251d('0x96'),_0x15044a);}BPromise[_0x251d('0x97')]()[_0x251d('0x2c')](function(){if(!_0x4a1f9d){if(_0x77abab[_0x251d('0x44')][_0x251d('0x7d')])return;_0x24ab0f[_0x251d('0x7e')](_0x251d('0x98'));_0x3bcc06[_0x251d('0x7e')](_0x251d('0x98'));return;}if(_0x77abab['user'][_0x251d('0x99')]!=='agent')return;return _0x77abab[_0x251d('0x9a')]['getMailAccounts']({'attributes':['id'],'raw':!![]})[_0x251d('0x2c')](function(_0x4988b6){if(_[_0x251d('0x7c')](_0x4988b6)){_0x24ab0f[_0x251d('0x7e')](_0x251d('0x9b'));_0x3bcc06[_0x251d('0x7e')](_0x251d('0x9b'));}else{_0x24ab0f[_0x251d('0x7e')](_0x251d('0x7f'),_[_0x251d('0x43')](_0x4988b6,'id'));_0x3bcc06['where'](_0x251d('0x7f'),_['map'](_0x4988b6,'id'));}});})[_0x251d('0x2c')](function(){if(_0x77abab[_0x251d('0x9a')]['role']===_0x251d('0x9c')&&!_0x4a1f9d&&!_0x77abab[_0x251d('0x44')][_0x251d('0x7d')])return[];return db[_0x251d('0x9d')][_0x251d('0x44')](_0x24ab0f[_0x251d('0x9e')](),_0x5e925c);})[_0x251d('0x2c')](function(_0x176c7b){_0x45c953['count']=_0x176c7b['length'];if(_0x45c953[_0x251d('0x26')]===0x0)return[];return db[_0x251d('0x9d')][_0x251d('0x44')](_0x5d650f[_0x251d('0x9e')](),_0x5e925c)[_0x251d('0x2c')](function(_0x3d309e){_0x4820fa=_[_0x251d('0x9f')](_0x3d309e,'id');_0x5e925c=_['merge'](_0x5e925c,{'model':db[_0x251d('0x3f')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x77abab[_0x251d('0x44')][_0x251d('0x49')]){_0x494742[_0x251d('0x48')][_0x251d('0x35')](function(_0x4a7905){_0x3bcc06[_0x251d('0x50')]('i.'+_0x4a7905);});}else{_0x3bcc06[_0x251d('0x50')]('SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','unreadMessages');_0x3bcc06[_0x251d('0x50')](_0x251d('0xa0'),'Account.key');_0x3bcc06[_0x251d('0x50')](_0x251d('0xa1'),'Account.mandatoryDisposition');_0x3bcc06[_0x251d('0x50')](_0x251d('0xa2'),_0x251d('0xa3'));_0x3bcc06['field'](_0x251d('0x93'));_0x3bcc06[_0x251d('0x50')]('i.createdAt');_0x3bcc06['field']('i.updatedAt');_0x3bcc06[_0x251d('0x50')](_0x251d('0xa4'));_0x3bcc06['field'](_0x251d('0xa5'));_0x3bcc06[_0x251d('0x50')](_0x251d('0xa6'));_0x3bcc06[_0x251d('0x50')](_0x251d('0xa7'));_0x3bcc06[_0x251d('0x50')](_0x251d('0xa8'));_0x3bcc06['field'](_0x251d('0xa9'));_0x3bcc06[_0x251d('0x50')](_0x251d('0xaa'));_0x3bcc06[_0x251d('0x50')]('i.secondDisposition');_0x3bcc06[_0x251d('0x50')]('i.thirdDisposition');_0x3bcc06[_0x251d('0x50')](_0x251d('0xab'));_0x3bcc06[_0x251d('0x50')](_0x251d('0xac'));_0x3bcc06[_0x251d('0x50')](_0x251d('0xad'));_0x3bcc06[_0x251d('0x50')](_0x251d('0xae'));_0x3bcc06['field'](_0x251d('0xaf'));_0x3bcc06[_0x251d('0x50')]('c.firstName','Contact.firstName');_0x3bcc06['field'](_0x251d('0xb0'),_0x251d('0xb1'));_0x3bcc06[_0x251d('0x50')](_0x251d('0xb2'),'Contact.email');_0x3bcc06[_0x251d('0x50')]('c.phone','Contact.phone');_0x3bcc06[_0x251d('0x50')](_0x251d('0xb3'),_0x251d('0xb4'));_0x3bcc06[_0x251d('0x50')](_0x251d('0xb5'),_0x251d('0xb6'));_0x3bcc06['field'](_0x251d('0xb7'),_0x251d('0xb8'));_0x3bcc06['field'](_0x251d('0xb9'),_0x251d('0xba'));_0x3bcc06['field'](_0x251d('0xbb'),_0x251d('0x34'));}if(_0x494742[_0x251d('0x25')])_0x3bcc06[_0x251d('0x25')](_0x494742['limit']);if(_0x494742[_0x251d('0x23')])_0x3bcc06['offset'](_0x494742[_0x251d('0x23')]);return db[_0x251d('0x9d')][_0x251d('0x44')](_0x3bcc06[_0x251d('0x9e')](),_0x5e925c);})[_0x251d('0x2c')](function(_0x34aea4){if(_0x34aea4[_0x251d('0x4a')]>0x0)_0x3fc6c9[_0x251d('0x7e')](_0x251d('0xbc'),_['map'](_0x34aea4,'id'));return db[_0x251d('0x9d')]['query'](_0x3fc6c9[_0x251d('0x9e')](),_0x5e925c)[_0x251d('0x2c')](function(_0x1f8776){var _0x393c71=_[_0x251d('0xbd')](_0x1f8776,_0x251d('0xbe'));var _0xcfd3d4=[];return db[_0x251d('0xbf')][_0x251d('0x38')]({'attributes':[_0x251d('0xc0')],'raw':!![]})[_0x251d('0x2c')](function(_0x4c2d3b){var _0x3b1570=_0x4c2d3b[_0x251d('0xc0')];_0x34aea4['forEach'](function(_0x4dfc9a){_0xcfd3d4[_0x251d('0x36')](updateMailInteraction(_0x4dfc9a,_0x4820fa,_0x393c71,_0x3b1570));});return BPromise[_0x251d('0xc1')](_0xcfd3d4);});});});})['then'](function(_0x1e2b30){_0x45c953[_0x251d('0xc2')]=_0x1e2b30;return _0x45c953;})[_0x251d('0x2c')](respondWithFilteredResult(_0x207b21,_0x494742))['catch'](handleError(_0x207b21,null));};exports[_0x251d('0xc3')]=function(_0x203e51,_0x2eb2bc){var _0x456eea={'raw':![],'where':{'id':_0x203e51['params']['id']}},_0x11f6a4={};_0x11f6a4[_0x251d('0x47')]=_[_0x251d('0x45')](db[_0x251d('0x3f')][_0x251d('0x40')]);_0x11f6a4[_0x251d('0x44')]=_[_0x251d('0x45')](_0x203e51[_0x251d('0x44')]);_0x11f6a4[_0x251d('0x4e')]=_[_0x251d('0x46')](_0x11f6a4[_0x251d('0x47')],_0x11f6a4['query']);_0x456eea[_0x251d('0x48')]=_[_0x251d('0x46')](_0x11f6a4['model'],qs[_0x251d('0x49')](_0x203e51[_0x251d('0x44')][_0x251d('0x49')]));_0x456eea['attributes']=_0x456eea[_0x251d('0x48')][_0x251d('0x4a')]?_0x456eea[_0x251d('0x48')]:_0x11f6a4[_0x251d('0x47')];if(_0x203e51[_0x251d('0x44')][_0x251d('0xc4')]){_0x456eea['include']=[{'all':!![]}];}_0x456eea=_['merge']({},_0x456eea,_0x203e51[_0x251d('0xc5')]);return db[_0x251d('0x3f')][_0x251d('0xc6')](_0x456eea)['then'](handleEntityNotFound(_0x2eb2bc,null))[_0x251d('0x2c')](respondWithResult(_0x2eb2bc,null))[_0x251d('0x3d')](handleError(_0x2eb2bc,null));};exports[_0x251d('0xc7')]=function(_0x4c40b9,_0x585a71){return db[_0x251d('0x3f')]['create'](_0x4c40b9[_0x251d('0xc8')],{})[_0x251d('0x2c')](respondWithResult(_0x585a71,0xc9))[_0x251d('0x3d')](handleError(_0x585a71,null));};exports[_0x251d('0x2b')]=function(_0x3d5d65,_0x5f36a1){if(_0x3d5d65[_0x251d('0xc8')]['id']){delete _0x3d5d65[_0x251d('0xc8')]['id'];}return db['MailInteraction']['find']({'where':{'id':_0x3d5d65[_0x251d('0xc9')]['id']}})[_0x251d('0x2c')](handleEntityNotFound(_0x5f36a1,null))[_0x251d('0x2c')](saveUpdates(_0x3d5d65[_0x251d('0xc8')],null))['then'](respondWithResult(_0x5f36a1,null))[_0x251d('0x3d')](handleError(_0x5f36a1,null));};exports['destroy']=function(_0x112b96,_0x1bf311){return db[_0x251d('0x3f')]['find']({'where':{'id':_0x112b96[_0x251d('0xc9')]['id']}})[_0x251d('0x2c')](handleEntityNotFound(_0x1bf311,null))[_0x251d('0x2c')](removeEntity(_0x1bf311,null))['catch'](handleError(_0x1bf311,null));};exports[_0x251d('0xca')]=function(_0xc3dd11,_0x42f775){return db[_0x251d('0x3f')][_0x251d('0xca')]()['then'](respondWithResult(_0x42f775,null))[_0x251d('0x3d')](handleError(_0x42f775,null));};exports['addMessage']=function(_0x140f4f,_0x965d75,_0x4d424a){return db[_0x251d('0x37')][_0x251d('0xc6')]({'where':{'id':_0x140f4f[_0x251d('0xc9')]['id']}})[_0x251d('0x2c')](handleEntityNotFound(_0x965d75,null))[_0x251d('0x2c')](function(_0x3c35b4){if(_0x3c35b4){return _0x3c35b4['addMessage'](_0x140f4f['body'][_0x251d('0xcb')],_[_0x251d('0xcc')](_0x140f4f[_0x251d('0xc8')],[_0x251d('0xcb'),'id'])||{});}})['then'](respondWithResult(_0x965d75,null))[_0x251d('0x3d')](handleError(_0x965d75,null));};exports[_0x251d('0xcd')]=function(_0x3d7eb1,_0x33f25c,_0x2ba0f0){var _0xaad2e2={'raw':![],'where':{}};var _0x5e8602={};var _0x423cbf={'count':0x0,'rows':[]};return db[_0x251d('0x3f')]['findOne']({'where':{'id':_0x3d7eb1[_0x251d('0xc9')]['id']}})[_0x251d('0x2c')](handleEntityNotFound(_0x33f25c,null))[_0x251d('0x2c')](function(_0x5d7b95){if(_0x5d7b95){_0x5e8602[_0x251d('0x47')]=_['keys'](db[_0x251d('0x37')]['rawAttributes']);_0x5e8602['query']=_['keys'](_0x3d7eb1[_0x251d('0x44')]);_0x5e8602[_0x251d('0x4e')]=_[_0x251d('0x46')](_0x5e8602[_0x251d('0x47')],_0x5e8602[_0x251d('0x44')]);_0xaad2e2[_0x251d('0x48')]=_[_0x251d('0x46')](_0x5e8602['model'],qs[_0x251d('0x49')](_0x3d7eb1[_0x251d('0x44')][_0x251d('0x49')]));_0xaad2e2[_0x251d('0x48')]=_0xaad2e2[_0x251d('0x48')]['length']?_0xaad2e2[_0x251d('0x48')]:_0x5e8602[_0x251d('0x47')];if(!_0x3d7eb1[_0x251d('0x44')][_0x251d('0x4b')](_0x251d('0xce'))){_0xaad2e2[_0x251d('0x25')]=qs['limit'](_0x3d7eb1[_0x251d('0x44')][_0x251d('0x25')]);_0xaad2e2[_0x251d('0x23')]=qs[_0x251d('0x23')](_0x3d7eb1[_0x251d('0x44')]['offset']);}_0xaad2e2[_0x251d('0x4c')]=qs[_0x251d('0x4d')](_0x3d7eb1['query'][_0x251d('0x4d')]);_0xaad2e2[_0x251d('0x7e')]=qs[_0x251d('0x4e')](_['pick'](_0x3d7eb1[_0x251d('0x44')],_0x5e8602['filters']));_0xaad2e2['where'][_0x251d('0xbe')]=_0x5d7b95['id'];if(_0x3d7eb1[_0x251d('0x44')][_0x251d('0x8c')]){_0xaad2e2[_0x251d('0x7e')]=_['merge'](_0xaad2e2['where'],{'$or':_[_0x251d('0x43')](_0xaad2e2[_0x251d('0x48')],function(_0x3ca7c){var _0xe6dca4={};_0xe6dca4[_0x3ca7c]={'$like':'%'+_0x3d7eb1[_0x251d('0x44')][_0x251d('0x8c')]+'%'};return _0xe6dca4;})});}if(_0x3d7eb1[_0x251d('0x44')][_0x251d('0x82')]){var _0x42ad61=_0x3d7eb1[_0x251d('0x44')][_0x251d('0x82')]['split'](',');var _0x31023c={};_0x31023c[_0x42ad61[0x0]]={'$gte':moment(_0x42ad61[0x1])[_0x251d('0xcf')](_0x251d('0xd0'))};_0xaad2e2[_0x251d('0x7e')]=_['merge'](_0xaad2e2[_0x251d('0x7e')],_0x31023c);}_0xaad2e2=_[_0x251d('0xd1')]({},_0xaad2e2,_0x3d7eb1[_0x251d('0xc5')]);return db['MailMessage'][_0x251d('0x26')]({'where':_0xaad2e2[_0x251d('0x7e')]})['then'](function(_0x4703c3){_0x423cbf[_0x251d('0x26')]=_0x4703c3;if(_0x3d7eb1['query'][_0x251d('0xc4')]){_0xaad2e2[_0x251d('0xd2')]=[{'all':!![]}];}return db[_0x251d('0x37')][_0x251d('0xd3')](_0xaad2e2);})[_0x251d('0x2c')](function(_0x2ddc73){if(_0x3d7eb1[_0x251d('0x44')][_0x251d('0xd4')]===_0x251d('0xd5')){for(var _0x7ced6e=0x0;_0x7ced6e<_0x2ddc73[_0x251d('0x4a')];_0x7ced6e++){_0x2ddc73[_0x7ced6e][_0x251d('0xc8')]=juice(_0x2ddc73[_0x7ced6e]['body']);}}_0x423cbf[_0x251d('0xc2')]=_0x2ddc73;return _0x423cbf;});}})[_0x251d('0x2c')](respondWithFilteredResult(_0x33f25c,_0xaad2e2))[_0x251d('0x3d')](handleError(_0x33f25c,null));};exports['addTags']=function(_0x6d7c74,_0x2d5b3a,_0x31a7cb){return db[_0x251d('0x3f')]['find']({'where':{'id':_0x6d7c74['params']['id']}})[_0x251d('0x2c')](handleEntityNotFound(_0x2d5b3a,null))[_0x251d('0x2c')](function(_0x3ce3a7){if(_0x3ce3a7){return _0x3ce3a7[_0x251d('0xd6')](_0x6d7c74['body'][_0x251d('0xcb')],_['omit'](_0x6d7c74[_0x251d('0xc8')],[_0x251d('0xcb'),'id'])||{})[_0x251d('0xd7')](function(){return db['Tag'][_0x251d('0xd3')]({'attributes':['id',_0x251d('0x30'),_0x251d('0x51')],'where':{'id':_0x6d7c74[_0x251d('0xc8')][_0x251d('0xcb')]}});})[_0x251d('0x2c')](function(_0x1a7c61){socket['emit'](_0x251d('0xd8'),{'id':Number(_0x6d7c74[_0x251d('0xc9')]['id']),'tags':_0x1a7c61||[]});return{'id':Number(_0x6d7c74[_0x251d('0xc9')]['id']),'tags':_0x1a7c61||[]};});}})[_0x251d('0x2c')](respondWithResult(_0x2d5b3a,null))['catch'](handleError(_0x2d5b3a,null));};exports[_0x251d('0xd9')]=function(_0x4d8951,_0x1f08f9,_0x16263f){return db[_0x251d('0x3f')][_0x251d('0xc6')]({'where':{'id':_0x4d8951[_0x251d('0xc9')]['id']}})['then'](handleEntityNotFound(_0x1f08f9,null))[_0x251d('0x2c')](function(_0x28eb76){if(_0x28eb76){return _0x28eb76[_0x251d('0xd9')](_0x4d8951['query'][_0x251d('0xcb')]);}})[_0x251d('0x2c')](respondWithStatusCode(_0x1f08f9,null))[_0x251d('0x3d')](handleError(_0x1f08f9,null));};exports[_0x251d('0xda')]=function(_0x5ee119,_0x56fe87){var _0x3610ae=moment()[_0x251d('0xdb')]()[_0x251d('0x9e')]();var _0x56abe3=path[_0x251d('0xdc')](config[_0x251d('0xdd')],_0x251d('0xde'),'files','tmp');var _0x15a114=path[_0x251d('0xdc')](config[_0x251d('0xdd')],_0x251d('0xde'),_0x251d('0xdf'),_0x251d('0xe0'));var _0x10d261=path[_0x251d('0xdc')](_0x56abe3,_0x3610ae);var _0x411492=util[_0x251d('0xcf')]('transcript-%d-%s.zip',_0x5ee119['params']['id'],_0x3610ae);var _0x843a6a=path[_0x251d('0xdc')](_0x56abe3,_0x411492);var _0x22f5f7=[];if(_0x5ee119['query'][_0x251d('0xe0')]){_0x22f5f7[_0x251d('0x36')]({'model':db[_0x251d('0xe1')],'as':_0x251d('0xe2'),'raw':!![]});}var _0x394754=[{'model':db[_0x251d('0x37')],'as':_0x251d('0xe3'),'attributes':['id','body',_0x251d('0x55'),'to','cc',_0x251d('0xe4'),'subject',_0x251d('0x80')],'where':{'secret':![]},'order':qs[_0x251d('0x4d')]('id'),'include':_0x22f5f7}];return db[_0x251d('0x3f')]['find']({'where':{'id':_0x5ee119[_0x251d('0xc9')]['id']},'include':_0x394754})[_0x251d('0x2c')](handleEntityNotFound(_0x56fe87,null))[_0x251d('0x2c')](function(_0x228046){if(_0x228046&&_0x228046[_0x251d('0xe3')]){var _0x5d5379=_0x228046[_0x251d('0xe5')]({'plain':!![]});fs[_0x251d('0xe6')](_0x10d261);return BPromise[_0x251d('0xe7')](_0x5d5379[_0x251d('0xe3')],function(_0x5ed288,_0x4db7a6){var _0x1da73e={'from':_0x5ed288[_0x251d('0x55')],'to':_0x5ed288['to'],'subject':_0x5ed288[_0x251d('0xe8')],'html':_0x5ed288[_0x251d('0xc8')],'headers':{'Date':moment(_0x5ed288[_0x251d('0x80')])[_0x251d('0xcf')](_0x251d('0xe9'))},'attachments':[]};if(_0x5ed288['cc']){_0x1da73e[_0x251d('0xea')]['Cc']=_0x5ed288['cc'];}if(_0x5ed288[_0x251d('0xe4')]){_0x1da73e['headers'][_0x251d('0xeb')]=_0x5ed288[_0x251d('0xe4')];}return new BPromise(function(_0x4048f0,_0x2ee16a){if(_0x5ed288['Attachments']){for(var _0x552554=0x0;_0x552554<_0x5ed288[_0x251d('0xe2')][_0x251d('0x4a')];_0x552554++){var _0x3340ee=_0x5ed288[_0x251d('0xe2')][_0x552554];var _0x294e79=path[_0x251d('0xdc')](_0x15a114,_0x3340ee[_0x251d('0xec')]);if(fs[_0x251d('0xed')](_0x294e79)){_0x1da73e[_0x251d('0xe0')][_0x251d('0x36')]({'name':_0x3340ee[_0x251d('0x30')],'contentType':_0x3340ee[_0x251d('0x71')],'data':fs[_0x251d('0xee')](_0x294e79)});}}}emlformat['build'](_0x1da73e,function(_0x47385e,_0x57d131){if(_0x47385e)return _0x2ee16a(_0x47385e);fs[_0x251d('0xef')](path['join'](_0x10d261,util[_0x251d('0xcf')](_0x251d('0xf0'),_0x4db7a6)),_0x57d131);return _0x4048f0(_0x57d131);});});})['then'](function(){return new BPromise(function(_0x157578,_0x333b56){zipdir(_0x10d261,{'saveTo':_0x843a6a},function(_0x3e8d03,_0x52dd68){if(_0x3e8d03)return _0x333b56(_0x3e8d03);return _0x157578(_0x52dd68);});})[_0x251d('0x2c')](function(){return new BPromise(function(_0x40b186,_0x54f9c3){rimraf(_0x10d261,function(_0x1e164d){if(_0x1e164d)_0x54f9c3(_0x1e164d);return _0x40b186();});});})[_0x251d('0x2c')](function(){return _0x56fe87[_0x251d('0xda')](_0x843a6a,_0x411492,function(_0x5126bf){if(_0x5126bf){console[_0x251d('0xf1')]('err',_0x5126bf);}else{fs[_0x251d('0xf2')](_0x843a6a);}});});});}else{return _0x56fe87[_0x251d('0x1f')](0xc8);}})['catch'](handleError(_0x56fe87,null));};