cb54a4c92b5414b440b455961aed00a266171562
[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 _0x4541=['eml-format','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','sox','to-csv','lodash','squel','jsforce','desk.js','querystring','papaparse','html-to-text','ioredis','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/environment','../../mysqldb','redis','defaults','localhost','socket.io-emitter','./mailInteraction.socket','register','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','save','update','then','destroy','stack','Users','fullname','TagIds','split','forEach','Tags','push','findOne','lastMsgBody','lastMsgText','trimStart','fromString','catch','map','MailInteraction','fieldName','type','model','keys','query','filters','intersection','attributes','fields','length','hasOwnProperty','order','sort','pick','select','field','name','color','from','tools_tags','u.id','u.fullname','ui.MailInteractionId','users','u.id\x20=\x20ui.UserId','mail_interactions','cm_contacts','c.id\x20=\x20i.ContactId\x20AND\x20c.deletedAt\x20IS\x20NULL','left_join','o.id\x20=\x20i.UserId','mail_accounts','a.id\x20=\x20i.MailAccountId','mail_messages','me.MailInteractionId\x20=\x20i.id','mail_interaction_has_tags','it.MailInteractionId\x20=\x20i.id','t.id\x20=\x20it.TagId','expr','search','parseSearch','sqlOperator','find','unreadMessages','having','`\x20=\x200','`\x20>\x200','operator','$substring','value','ContactId','buildExpression','text','start','CONCAT(\x27,\x27,\x20`TagIds`,\x20\x27,\x27)\x20LIKE\x20?','union','UserId','plainBody','compact','MailAccountId','concat','createdAt','parse','$gte','$lte','where','\x20IS\x20NULL','\x20=\x20?','read','`unreadMessages`\x20=\x200','`unreadMessages`\x20>\x200','tag','isArray','filter','replace','\x27\x27\x27\x27','isNumeric','i.id\x20LIKE\x20?','isEmail','c.email\x20LIKE\x20?','MATCH\x20(i.to,\x20i.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','MATCH\x20(me.plainBody,\x20me.subject)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)','getFullTextValue','Sequelize','QueryTypes','SELECT','clone','i.id','SUM(me.read\x20=\x200\x20AND\x20me.direction\x20=\x20\x27in\x27)','isEmpty','t.id\x20IN\x20?','resolve','journey','i.MailAccountId\x20IS\x20NOT\x20NULL','i.MailAccountId\x20IS\x20NULL','i.MailAccountId\x20IN\x20?','sequelize','toString','merge','a.key','a.mandatoryDisposition','Account.mandatoryDisposition','i.createdAt','i.updatedAt','i.closed','i.closedAt','i.attach','i.lastMsgAt','i.lastMsgDirection','i.subject','i.disposition','i.to','i.ContactId','i.MailAccountId','i.UserId','c.firstName','Contact.firstName','Contact.lastName','Contact.email','Contact.phone','Contact.mobile','c.fax','o.fullname','o.internal','Owner.internal','GROUP_CONCAT(DISTINCT\x20t.id)','ui.MailInteractionId\x20IN\x20?','MailInteractionId','Setting','enableEmailPreview','rows','show','params','rawAttributes','includeAll','include','create','body','describe','MailMessage','ids','getMessages','nolimit','YYYY-MM-DD\x20HH:mm:ss','options','addTags','setTags','emit','mailInteractionTags:save','removeTags','download','unix','join','root','server','files','tmp','attachments','format','transcript-%d-%s.zip','Attachment','Attachments','Messages','bcc','mkdirSync','each','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','basename','existsSync','readFileSync','message%d.eml','log','err','html-pdf'];(function(_0x127783,_0x258715){var _0x14f298=function(_0x32090e){while(--_0x32090e){_0x127783['push'](_0x127783['shift']());}};_0x14f298(++_0x258715);}(_0x4541,0x1d9));var _0x1454=function(_0x340781,_0x32b659){_0x340781=_0x340781-0x0;var _0x1a6ab9=_0x4541[_0x340781];return _0x1a6ab9;};'use strict';var pdf=require(_0x1454('0x0'));var emlformat=require(_0x1454('0x1'));var rimraf=require('rimraf');var zipdir=require(_0x1454('0x2'));var jsonpatch=require(_0x1454('0x3'));var rp=require(_0x1454('0x4'));var moment=require(_0x1454('0x5'));var BPromise=require(_0x1454('0x6'));var Mustache=require(_0x1454('0x7'));var util=require(_0x1454('0x8'));var path=require(_0x1454('0x9'));var sox=require(_0x1454('0xa'));var csv=require(_0x1454('0xb'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x1454('0xc'));var squel=require(_0x1454('0xd'));var crypto=require('crypto');var jsforce=require(_0x1454('0xe'));var deskjs=require(_0x1454('0xf'));var toCsv=require('to-csv');var querystring=require(_0x1454('0x10'));var Papa=require(_0x1454('0x11'));var htmlToText=require(_0x1454('0x12'));var Redis=require(_0x1454('0x13'));var authService=require(_0x1454('0x14'));var qs=require(_0x1454('0x15'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0x1454('0x16'));var logger=require(_0x1454('0x17'))(_0x1454('0x18'));var utils=require('../../config/utils');var config=require(_0x1454('0x19'));var db=require(_0x1454('0x1a'))['db'];config[_0x1454('0x1b')]=_[_0x1454('0x1c')](config[_0x1454('0x1b')],{'host':_0x1454('0x1d'),'port':0x18eb});var socket=require(_0x1454('0x1e'))(new Redis(config['redis']));require(_0x1454('0x1f'))[_0x1454('0x20')](socket);function respondWithStatusCode(_0x7b3abf,_0x2d6efe){_0x2d6efe=_0x2d6efe||0xcc;return function(_0x3f4136){if(_0x3f4136){return _0x7b3abf[_0x1454('0x21')](_0x2d6efe);}return _0x7b3abf[_0x1454('0x22')](_0x2d6efe)[_0x1454('0x23')]();};}function respondWithResult(_0x5c8eb2,_0x664e26){_0x664e26=_0x664e26||0xc8;return function(_0x207236){if(_0x207236){return _0x5c8eb2[_0x1454('0x22')](_0x664e26)[_0x1454('0x24')](_0x207236);}};}function respondWithFilteredResult(_0x2dad2c,_0x77e03a){return function(_0x204c3e){if(_0x204c3e){var _0x526817=_0x204c3e[_0x1454('0x25')],_0x3133b0=_0x77e03a[_0x1454('0x26')],_0x2211ea=_0x77e03a['offset']+_0x77e03a[_0x1454('0x27')],_0x22d896;if(_0x2211ea>=_0x526817){_0x2211ea=_0x526817;_0x22d896=0xc8;}else{_0x22d896=0xce;}_0x2dad2c[_0x1454('0x22')](_0x22d896);return _0x2dad2c[_0x1454('0x28')](_0x1454('0x29'),_0x3133b0+'-'+_0x2211ea+'/'+_0x526817)['json'](_0x204c3e);}return null;};}function patchUpdates(_0x32d8c2){return function(_0x244a7e){try{jsonpatch[_0x1454('0x2a')](_0x244a7e,_0x32d8c2,!![]);}catch(_0x25bbbf){return BPromise['reject'](_0x25bbbf);}return _0x244a7e[_0x1454('0x2b')]();};}function saveUpdates(_0x57ed14,_0x1ba654){return function(_0x1bb9f3){if(_0x1bb9f3){return _0x1bb9f3[_0x1454('0x2c')](_0x57ed14)[_0x1454('0x2d')](function(_0x794a8d){return _0x794a8d;});}return null;};}function removeEntity(_0x1b3da2,_0x28a95d){return function(_0x55bfd3){if(_0x55bfd3){return _0x55bfd3[_0x1454('0x2e')]()[_0x1454('0x2d')](function(){_0x1b3da2[_0x1454('0x22')](0xcc)[_0x1454('0x23')]();});}};}function handleEntityNotFound(_0x144768,_0x420d31){return function(_0x2a3fdb){if(!_0x2a3fdb){_0x144768[_0x1454('0x21')](0x194);}return _0x2a3fdb;};}function handleError(_0x387032,_0x5788a9){_0x5788a9=_0x5788a9||0x1f4;return function(_0x7025da){logger['error'](_0x7025da[_0x1454('0x2f')]);if(_0x7025da['name']){delete _0x7025da['name'];}_0x387032['status'](_0x5788a9)['send'](_0x7025da);};}function getInteractionUsers(_0x4f3d0a,_0x102d8e){return new BPromise(function(_0x305cbc,_0x5d6a15){try{if(_0x102d8e[_0x4f3d0a['id']]){_0x4f3d0a[_0x1454('0x30')]=_['map'](_0x102d8e[_0x4f3d0a['id']],function(_0x8ee796){return{'id':_0x8ee796['id'],'fullname':_0x8ee796[_0x1454('0x31')]};});}}catch(_0xcea158){_0x5d6a15(_0xcea158);}_0x305cbc(_0x4f3d0a);});}function getInteractionTags(_0x455d49,_0x1654fe){return new BPromise(function(_0x595b16,_0x9b6c07){try{if(_0x455d49[_0x1454('0x32')]){_0x455d49['Tags']=[];_0x455d49[_0x1454('0x32')][_0x1454('0x33')](',')[_0x1454('0x34')](function(_0xc8e9b){_0x455d49[_0x1454('0x35')][_0x1454('0x36')](_0x1654fe[_0xc8e9b]);});}delete _0x455d49[_0x1454('0x32')];}catch(_0x2a9843){_0x9b6c07(_0x2a9843);}_0x595b16(_0x455d49);});}function getLastMessageText(_0x522784){return new BPromise(function(_0x1b20b4,_0x5d93bc){return db['MailInteraction'][_0x1454('0x37')]({'where':{'id':_0x522784['id']},'attributes':[_0x1454('0x38'),_0x1454('0x39')],'raw':!![]})[_0x1454('0x2d')](function(_0x1a99a2){if(!_0x1a99a2['lastMsgText']){_0x522784[_0x1454('0x39')]=_[_0x1454('0x3a')](htmlToText[_0x1454('0x3b')](_0x1a99a2[_0x1454('0x38')],{'preserveNewlines':!![],'singleNewLineParagraphs':!![],'uppercaseHeadings':![],'noLinkBrackets':!![],'ignoreImage':!![]}));}else{_0x522784['lastMsgText']=_0x1a99a2[_0x1454('0x39')];}_0x1b20b4(_0x522784);})[_0x1454('0x3c')](function(_0x223638){_0x5d93bc(_0x223638);});});}function updateMailInteraction(_0xadbc1a,_0x2b13c9,_0x4da6f0,_0xe76207){return new BPromise(function(_0x255c0f,_0x13b5be){return getInteractionUsers(_0xadbc1a,_0x4da6f0)['then'](function(_0x2a0022){return getInteractionTags(_0x2a0022,_0x2b13c9);})[_0x1454('0x2d')](function(_0x4574aa){if(_0xe76207){_0x255c0f(getLastMessageText(_0x4574aa));}else{_0x255c0f(_0x4574aa);}})[_0x1454('0x3c')](function(_0x1a578e){_0x13b5be(_0x1a578e);});});}exports['index']=function(_0x40248d,_0x4bc678){var _0x1047ca={},_0x1ba9f1={},_0x5f385b={'count':0x0,'rows':[]};var _0x2e61f9=_[_0x1454('0x3d')](db[_0x1454('0x3e')]['rawAttributes'],function(_0x25599f){return{'name':_0x25599f[_0x1454('0x3f')],'type':_0x25599f[_0x1454('0x40')]['key']};});_0x1ba9f1[_0x1454('0x41')]=_[_0x1454('0x3d')](_0x2e61f9,'name');_0x1ba9f1['query']=_[_0x1454('0x42')](_0x40248d[_0x1454('0x43')]);_0x1ba9f1[_0x1454('0x44')]=_[_0x1454('0x45')](_0x1ba9f1['model'],_0x1ba9f1[_0x1454('0x43')]);_0x1047ca[_0x1454('0x46')]=_[_0x1454('0x45')](_0x1ba9f1[_0x1454('0x41')],qs[_0x1454('0x47')](_0x40248d[_0x1454('0x43')]['fields']));_0x1047ca['attributes']=_0x1047ca[_0x1454('0x46')][_0x1454('0x48')]?_0x1047ca[_0x1454('0x46')]:_0x1ba9f1['model'];if(!_0x40248d[_0x1454('0x43')][_0x1454('0x49')]('nolimit')){_0x1047ca[_0x1454('0x27')]=qs[_0x1454('0x27')](_0x40248d[_0x1454('0x43')][_0x1454('0x27')]);_0x1047ca[_0x1454('0x26')]=qs[_0x1454('0x26')](_0x40248d[_0x1454('0x43')][_0x1454('0x26')]);}_0x1047ca[_0x1454('0x4a')]=qs[_0x1454('0x4b')](_0x40248d['query'][_0x1454('0x4b')]);_0x1047ca['where']=qs['filters'](_[_0x1454('0x4c')](_0x40248d['query'],_0x1ba9f1[_0x1454('0x44')]));var _0x44dd22=[];var _0xa2cea6=squel[_0x1454('0x4d')]()['field']('id')[_0x1454('0x4e')](_0x1454('0x4f'))[_0x1454('0x4e')](_0x1454('0x50'))[_0x1454('0x51')](_0x1454('0x52'));var _0x5b82c4=squel['select']()[_0x1454('0x4e')](_0x1454('0x53'))[_0x1454('0x4e')](_0x1454('0x54'))[_0x1454('0x4e')](_0x1454('0x55'))[_0x1454('0x51')]('user_has_mail_interactions','ui')['left_join'](_0x1454('0x56'),'u',_0x1454('0x57'));var _0x276f0b=squel[_0x1454('0x4d')]()['from'](_0x1454('0x58'),'i')['left_join'](_0x1454('0x59'),'c',_0x1454('0x5a'))[_0x1454('0x5b')](_0x1454('0x56'),'o',_0x1454('0x5c'))[_0x1454('0x5b')](_0x1454('0x5d'),'a',_0x1454('0x5e'))[_0x1454('0x5b')](_0x1454('0x5f'),'me',_0x1454('0x60'))[_0x1454('0x5b')](_0x1454('0x61'),'it',_0x1454('0x62'))['left_join'](_0x1454('0x52'),'t',_0x1454('0x63'));var _0x57ca08=squel[_0x1454('0x64')]();var _0x8ed024=[];var _0x5da6c8=squel[_0x1454('0x64')]();var _0x436b42;if(_0x40248d[_0x1454('0x43')][_0x1454('0x65')]){_0x436b42=as[_0x1454('0x66')](_0x40248d[_0x1454('0x43')][_0x1454('0x65')]);var _0x5f2f9d=_0x436b42[_0x1454('0x67')];for(var _0x28f935=0x0;_0x28f935<_0x436b42['conditions'][_0x1454('0x48')];_0x28f935++){var _0x55631f=_0x436b42['conditions'][_0x28f935];var _0x4c9f42='i';var _0x4148f3=_[_0x1454('0x68')](_0x2e61f9,[_0x1454('0x4f'),_0x55631f[_0x1454('0x4e')]]);if(!_0x4148f3){switch(_0x55631f[_0x1454('0x4e')]){case _0x1454('0x69'):if(_0x55631f['value']==0x1){_0x276f0b[_0x1454('0x6a')]('`'+_0x55631f[_0x1454('0x4e')]+_0x1454('0x6b'));}else{_0x276f0b[_0x1454('0x6a')]('`'+_0x55631f[_0x1454('0x4e')]+_0x1454('0x6c'));}break;case'Contact':if(_0x55631f[_0x1454('0x6d')]===_0x1454('0x6e')){if(_0x55631f[_0x1454('0x6f')][_0x1454('0x33')]('\x20')['length']>0x1){_0x57ca08[_0x5f2f9d]('MATCH\x20(c.firstName,\x20c.lastName,\x20c.phone,\x20c.mobile,\x20c.fax,\x20c.email)\x20AGAINST\x20(?\x20IN\x20BOOLEAN\x20MODE)',qs['getFullTextValue'](_0x55631f[_0x1454('0x6f')]),null);}else{var _0x4fa6fd='%'+_0x55631f[_0x1454('0x6f')]+'%';_0x57ca08[_0x5f2f9d]('c.firstName\x20LIKE\x20?\x20OR\x20c.lastName\x20LIKE\x20?\x20OR\x20c.email\x20LIKE\x20?',_0x4fa6fd,_0x4fa6fd,_0x4fa6fd);}}else{_0x4148f3=_[_0x1454('0x68')](_0x2e61f9,['name',_0x1454('0x70')]);_0x55631f[_0x1454('0x4e')]=_0x1454('0x70');_0x405a4c=as[_0x1454('0x71')](_0x4c9f42,_0x4148f3[_0x1454('0x40')],_0x55631f);_0x57ca08[_0x5f2f9d](_0x405a4c[_0x1454('0x72')],_0x405a4c[_0x1454('0x6f')][_0x1454('0x73')],_0x405a4c[_0x1454('0x6f')][_0x1454('0x23')]);}break;case'Tag':var _0x359fbd=_0x55631f[_0x1454('0x6f')][_0x1454('0x33')](',')[_0x1454('0x3d')](function(_0x5f4356){return Number(_0x5f4356);});_0x359fbd[_0x1454('0x34')](function(_0x5a125c){_0x5da6c8['or'](_0x1454('0x74'),'%,'+_0x5a125c+',%');});_0x8ed024=_[_0x1454('0x75')](_0x8ed024,_0x359fbd);break;case'User':if(_0x55631f[_0x1454('0x6d')]===_0x1454('0x6e')){_0x57ca08[_0x5f2f9d]('CONCAT_WS(\x27\x20\x27,\x20o.name,\x20o.fullname)\x20LIKE\x20?','%'+_0x55631f[_0x1454('0x6f')]+'%',null);}else{_0x4148f3=_[_0x1454('0x68')](_0x2e61f9,[_0x1454('0x4f'),'UserId']);_0x55631f[_0x1454('0x4e')]=_0x1454('0x76');_0x405a4c=as[_0x1454('0x71')](_0x4c9f42,_0x4148f3[_0x1454('0x40')],_0x55631f);_0x57ca08[_0x5f2f9d](_0x405a4c['text'],_0x405a4c[_0x1454('0x6f')][_0x1454('0x73')],_0x405a4c[_0x1454('0x6f')][_0x1454('0x23')]);}break;case _0x1454('0x77'):_0x405a4c=as[_0x1454('0x71')]('me',null,_0x55631f);_0x57ca08[_0x5f2f9d](_0x405a4c['text'],_0x405a4c[_0x1454('0x6f')][_0x1454('0x73')],_0x405a4c[_0x1454('0x6f')][_0x1454('0x23')]);break;}}else{var _0x405a4c=as[_0x1454('0x71')](_0x4c9f42,_0x4148f3[_0x1454('0x40')],_0x55631f);_0x57ca08[_0x5f2f9d](_0x405a4c[_0x1454('0x72')],_0x405a4c[_0x1454('0x6f')][_0x1454('0x73')],_0x405a4c[_0x1454('0x6f')][_0x1454('0x23')]);}}}else{var _0x4dcd21=_(_0x40248d[_0x1454('0x43')])['keys']()[_0x1454('0x3d')](function(_0x585410){return _['some'](_0x2e61f9,[_0x1454('0x4f'),_0x585410])?_0x585410:undefined;})[_0x1454('0x78')]()[_0x1454('0x6f')]();if(!_['isEmpty'](_0x4dcd21)){_0x4dcd21[_0x1454('0x34')](function(_0x4b59bc){if(_0x4b59bc===_0x1454('0x79')){_0x276f0b['where']('i.MailAccountId\x20IN\x20?',[][_0x1454('0x7a')](_0x40248d[_0x1454('0x43')][_0x4b59bc]));}else if(_0x4b59bc===_0x1454('0x7b')){var _0x59c834=JSON[_0x1454('0x7c')](_0x40248d[_0x1454('0x43')][_0x4b59bc])[_0x1454('0x7d')];var _0x301c10=JSON[_0x1454('0x7c')](_0x40248d[_0x1454('0x43')][_0x4b59bc])[_0x1454('0x7e')];_0x276f0b[_0x1454('0x7f')]('i.createdAt\x20BETWEEN\x20?\x20AND\x20?',_0x59c834,_0x301c10);}else{if(_0x40248d[_0x1454('0x43')][_0x4b59bc]==='null'){_0x276f0b['where']('i.'+_0x4b59bc+_0x1454('0x80'));}else{_0x276f0b['where']('i.'+_0x4b59bc+_0x1454('0x81'),_0x40248d[_0x1454('0x43')][_0x4b59bc]);}}});}if(_0x40248d['query'][_0x1454('0x82')]){if(_0x40248d['query']['read']==0x1){_0x276f0b['having'](_0x1454('0x83'));}else{_0x276f0b[_0x1454('0x6a')](_0x1454('0x84'));}}if(_0x40248d[_0x1454('0x43')][_0x1454('0x85')]){_0x8ed024=_[_0x1454('0x86')](_0x40248d[_0x1454('0x43')][_0x1454('0x85')])?_0x40248d[_0x1454('0x43')][_0x1454('0x85')]:new Array(_0x40248d[_0x1454('0x43')][_0x1454('0x85')]);_0x8ed024['forEach'](function(_0x23bdfc){_0x5da6c8['or'](_0x1454('0x74'),'%,'+_0x23bdfc+',%');});}if(_0x40248d['query'][_0x1454('0x87')]){var _0x3196e8=_0x40248d['query'][_0x1454('0x87')]['replace']('\x5c','\x5c\x5c')[_0x1454('0x88')]('\x27\x27',_0x1454('0x89'));if(qs[_0x1454('0x8a')](_0x3196e8)){_0x57ca08['or'](_0x1454('0x8b'),_0x3196e8+'%');}else if(qs[_0x1454('0x8c')](_0x3196e8)){_0x57ca08['or'](_0x1454('0x8d'),_0x3196e8+'%');}else{_0x57ca08['or'](_0x1454('0x8e'),qs['getFullTextValue'](_0x3196e8))['or'](_0x1454('0x8f'),qs[_0x1454('0x90')](_0x3196e8));}}}_0x276f0b[_0x1454('0x7f')](_0x57ca08);_0x276f0b['group']('i.id');var _0x20cae2={'type':db[_0x1454('0x91')][_0x1454('0x92')][_0x1454('0x93')],'raw':!![]};var _0x5d372a=_0x276f0b[_0x1454('0x94')]();_0x5d372a['field'](_0x1454('0x95'));_0x5d372a[_0x1454('0x4e')](_0x1454('0x96'),'unreadMessages');if(_0x1047ca[_0x1454('0x4a')]){_0x1047ca[_0x1454('0x4a')]['forEach'](function(_0x5cee89){_0x276f0b['order']('i.'+_0x5cee89[0x0],_0x5cee89[0x1]==='DESC'?![]:!![]);});}if(!_[_0x1454('0x97')](_0x8ed024)){_0x276f0b[_0x1454('0x6a')](_0x5da6c8);_0x5d372a[_0x1454('0x7f')](_0x1454('0x98'),_0x8ed024);}BPromise[_0x1454('0x99')]()[_0x1454('0x2d')](function(){if(!_0x436b42){if(_0x40248d[_0x1454('0x43')][_0x1454('0x79')]||_0x40248d[_0x1454('0x43')][_0x1454('0x9a')])return;_0x5d372a[_0x1454('0x7f')]('i.MailAccountId\x20IS\x20NOT\x20NULL');_0x276f0b[_0x1454('0x7f')](_0x1454('0x9b'));return;}return _0x40248d['user']['getMailAccounts']({'attributes':['id'],'raw':!![]})['then'](function(_0x590038){if(_[_0x1454('0x97')](_0x590038)){_0x5d372a['where'](_0x1454('0x9c'));_0x276f0b[_0x1454('0x7f')](_0x1454('0x9c'));}else{_0x5d372a[_0x1454('0x7f')](_0x1454('0x9d'),_['map'](_0x590038,'id'));_0x276f0b[_0x1454('0x7f')](_0x1454('0x9d'),_[_0x1454('0x3d')](_0x590038,'id'));}});})[_0x1454('0x2d')](function(){db[_0x1454('0x9e')][_0x1454('0x43')](_0x5d372a[_0x1454('0x9f')](),_0x20cae2)['then'](function(_0x2667f2){_0x5f385b['count']=_0x2667f2[_0x1454('0x48')];if(_0x5f385b[_0x1454('0x25')]===0x0)return[];return db['sequelize'][_0x1454('0x43')](_0xa2cea6[_0x1454('0x9f')](),_0x20cae2)[_0x1454('0x2d')](function(_0x2a07d9){_0x44dd22=_['keyBy'](_0x2a07d9,'id');_0x20cae2=_[_0x1454('0xa0')](_0x20cae2,{'model':db[_0x1454('0x3e')],'mapToModel':!![],'raw':!![],'nest':!![]});if(_0x40248d[_0x1454('0x43')]['fields']){_0x1047ca['attributes']['forEach'](function(_0x853f98){_0x276f0b['field']('i.'+_0x853f98);});}else{_0x276f0b[_0x1454('0x4e')](_0x1454('0x96'),_0x1454('0x69'));_0x276f0b['field'](_0x1454('0xa1'),'Account.key');_0x276f0b[_0x1454('0x4e')](_0x1454('0xa2'),_0x1454('0xa3'));_0x276f0b['field'](_0x1454('0x95'));_0x276f0b[_0x1454('0x4e')](_0x1454('0xa4'));_0x276f0b[_0x1454('0x4e')](_0x1454('0xa5'));_0x276f0b[_0x1454('0x4e')](_0x1454('0xa6'));_0x276f0b['field'](_0x1454('0xa7'));_0x276f0b[_0x1454('0x4e')](_0x1454('0xa8'));_0x276f0b['field'](_0x1454('0xa9'));_0x276f0b['field'](_0x1454('0xaa'));_0x276f0b[_0x1454('0x4e')](_0x1454('0xab'));_0x276f0b[_0x1454('0x4e')](_0x1454('0xac'));_0x276f0b[_0x1454('0x4e')]('i.substatus');_0x276f0b[_0x1454('0x4e')](_0x1454('0xad'));_0x276f0b[_0x1454('0x4e')](_0x1454('0xae'));_0x276f0b[_0x1454('0x4e')](_0x1454('0xaf'));_0x276f0b[_0x1454('0x4e')](_0x1454('0xb0'));_0x276f0b[_0x1454('0x4e')](_0x1454('0xb1'),_0x1454('0xb2'));_0x276f0b['field']('c.lastName',_0x1454('0xb3'));_0x276f0b[_0x1454('0x4e')]('c.email',_0x1454('0xb4'));_0x276f0b[_0x1454('0x4e')]('c.phone',_0x1454('0xb5'));_0x276f0b[_0x1454('0x4e')]('c.mobile',_0x1454('0xb6'));_0x276f0b[_0x1454('0x4e')](_0x1454('0xb7'),'Contact.fax');_0x276f0b[_0x1454('0x4e')](_0x1454('0xb8'),'Owner.fullname');_0x276f0b[_0x1454('0x4e')](_0x1454('0xb9'),_0x1454('0xba'));_0x276f0b[_0x1454('0x4e')](_0x1454('0xbb'),_0x1454('0x32'));}_0x276f0b['limit'](_0x1047ca[_0x1454('0x27')]);_0x276f0b['offset'](_0x1047ca[_0x1454('0x26')]);return db[_0x1454('0x9e')]['query'](_0x276f0b[_0x1454('0x9f')](),_0x20cae2);})[_0x1454('0x2d')](function(_0x49279c){_0x5b82c4[_0x1454('0x7f')](_0x1454('0xbc'),_['map'](_0x49279c,'id'));return db[_0x1454('0x9e')][_0x1454('0x43')](_0x5b82c4[_0x1454('0x9f')](),_0x20cae2)[_0x1454('0x2d')](function(_0x5cf56d){var _0x2f6b57=_['groupBy'](_0x5cf56d,_0x1454('0xbd'));var _0x414b62=[];return db[_0x1454('0xbe')][_0x1454('0x37')]({'attributes':[_0x1454('0xbf')],'raw':!![]})[_0x1454('0x2d')](function(_0x100e8b){var _0x5925e8=_0x100e8b[_0x1454('0xbf')];_0x49279c[_0x1454('0x34')](function(_0x1d9073){_0x414b62[_0x1454('0x36')](updateMailInteraction(_0x1d9073,_0x44dd22,_0x2f6b57,_0x5925e8));});return BPromise['all'](_0x414b62);});});});})[_0x1454('0x2d')](function(_0x414b75){_0x5f385b[_0x1454('0xc0')]=_0x414b75;return _0x5f385b;})[_0x1454('0x2d')](respondWithFilteredResult(_0x4bc678,_0x1047ca));})['catch'](handleError(_0x4bc678,null));};exports[_0x1454('0xc1')]=function(_0x2dea33,_0x5654df){var _0x1c4322={'raw':![],'where':{'id':_0x2dea33[_0x1454('0xc2')]['id']}},_0x4e72e9={};_0x4e72e9[_0x1454('0x41')]=_['keys'](db[_0x1454('0x3e')][_0x1454('0xc3')]);_0x4e72e9['query']=_[_0x1454('0x42')](_0x2dea33[_0x1454('0x43')]);_0x4e72e9[_0x1454('0x44')]=_[_0x1454('0x45')](_0x4e72e9[_0x1454('0x41')],_0x4e72e9[_0x1454('0x43')]);_0x1c4322[_0x1454('0x46')]=_[_0x1454('0x45')](_0x4e72e9['model'],qs[_0x1454('0x47')](_0x2dea33['query'][_0x1454('0x47')]));_0x1c4322[_0x1454('0x46')]=_0x1c4322[_0x1454('0x46')][_0x1454('0x48')]?_0x1c4322['attributes']:_0x4e72e9[_0x1454('0x41')];if(_0x2dea33['query'][_0x1454('0xc4')]){_0x1c4322[_0x1454('0xc5')]=[{'all':!![]}];}_0x1c4322=_[_0x1454('0xa0')]({},_0x1c4322,_0x2dea33['options']);return db[_0x1454('0x3e')][_0x1454('0x68')](_0x1c4322)[_0x1454('0x2d')](handleEntityNotFound(_0x5654df,null))[_0x1454('0x2d')](respondWithResult(_0x5654df,null))[_0x1454('0x3c')](handleError(_0x5654df,null));};exports[_0x1454('0xc6')]=function(_0x181ca0,_0x2d91c6){return db['MailInteraction']['create'](_0x181ca0[_0x1454('0xc7')],{})[_0x1454('0x2d')](respondWithResult(_0x2d91c6,0xc9))[_0x1454('0x3c')](handleError(_0x2d91c6,null));};exports[_0x1454('0x2c')]=function(_0x5d8430,_0x49bc5e){if(_0x5d8430['body']['id']){delete _0x5d8430[_0x1454('0xc7')]['id'];}return db['MailInteraction'][_0x1454('0x68')]({'where':{'id':_0x5d8430[_0x1454('0xc2')]['id']}})[_0x1454('0x2d')](handleEntityNotFound(_0x49bc5e,null))[_0x1454('0x2d')](saveUpdates(_0x5d8430[_0x1454('0xc7')],null))[_0x1454('0x2d')](respondWithResult(_0x49bc5e,null))[_0x1454('0x3c')](handleError(_0x49bc5e,null));};exports[_0x1454('0x2e')]=function(_0x239a69,_0x17ddb5){return db[_0x1454('0x3e')][_0x1454('0x68')]({'where':{'id':_0x239a69[_0x1454('0xc2')]['id']}})['then'](handleEntityNotFound(_0x17ddb5,null))[_0x1454('0x2d')](removeEntity(_0x17ddb5,null))[_0x1454('0x3c')](handleError(_0x17ddb5,null));};exports[_0x1454('0xc8')]=function(_0x5cace8,_0x1cc192){return db[_0x1454('0x3e')][_0x1454('0xc8')]()['then'](respondWithResult(_0x1cc192,null))['catch'](handleError(_0x1cc192,null));};exports['addMessage']=function(_0x175498,_0x417708,_0x2d39d8){return db[_0x1454('0xc9')]['find']({'where':{'id':_0x175498[_0x1454('0xc2')]['id']}})[_0x1454('0x2d')](handleEntityNotFound(_0x417708,null))[_0x1454('0x2d')](function(_0x1775d4){if(_0x1775d4){return _0x1775d4['addMessage'](_0x175498[_0x1454('0xc7')][_0x1454('0xca')],_['omit'](_0x175498[_0x1454('0xc7')],[_0x1454('0xca'),'id'])||{});}})[_0x1454('0x2d')](respondWithResult(_0x417708,null))[_0x1454('0x3c')](handleError(_0x417708,null));};exports[_0x1454('0xcb')]=function(_0x4c3299,_0x56ffbd,_0x3a5017){var _0xc722a3={'raw':![],'where':{}};var _0x1fd8f1={};var _0x45f5cc={'count':0x0,'rows':[]};return db[_0x1454('0x3e')][_0x1454('0x37')]({'where':{'id':_0x4c3299[_0x1454('0xc2')]['id']}})[_0x1454('0x2d')](handleEntityNotFound(_0x56ffbd,null))[_0x1454('0x2d')](function(_0x2d267a){if(_0x2d267a){_0x1fd8f1[_0x1454('0x41')]=_[_0x1454('0x42')](db[_0x1454('0xc9')][_0x1454('0xc3')]);_0x1fd8f1[_0x1454('0x43')]=_[_0x1454('0x42')](_0x4c3299[_0x1454('0x43')]);_0x1fd8f1[_0x1454('0x44')]=_[_0x1454('0x45')](_0x1fd8f1[_0x1454('0x41')],_0x1fd8f1[_0x1454('0x43')]);_0xc722a3[_0x1454('0x46')]=_[_0x1454('0x45')](_0x1fd8f1[_0x1454('0x41')],qs[_0x1454('0x47')](_0x4c3299['query'][_0x1454('0x47')]));_0xc722a3['attributes']=_0xc722a3[_0x1454('0x46')][_0x1454('0x48')]?_0xc722a3[_0x1454('0x46')]:_0x1fd8f1['model'];if(!_0x4c3299['query'][_0x1454('0x49')](_0x1454('0xcc'))){_0xc722a3[_0x1454('0x27')]=qs[_0x1454('0x27')](_0x4c3299['query']['limit']);_0xc722a3[_0x1454('0x26')]=qs[_0x1454('0x26')](_0x4c3299[_0x1454('0x43')][_0x1454('0x26')]);}_0xc722a3['order']=qs['sort'](_0x4c3299[_0x1454('0x43')][_0x1454('0x4b')]);_0xc722a3['where']=qs[_0x1454('0x44')](_[_0x1454('0x4c')](_0x4c3299[_0x1454('0x43')],_0x1fd8f1[_0x1454('0x44')]));_0xc722a3[_0x1454('0x7f')][_0x1454('0xbd')]=_0x2d267a['id'];if(_0x4c3299[_0x1454('0x43')][_0x1454('0x87')]){_0xc722a3['where']=_[_0x1454('0xa0')](_0xc722a3[_0x1454('0x7f')],{'$or':_['map'](_0xc722a3[_0x1454('0x46')],function(_0x307d73){var _0xebee55={};_0xebee55[_0x307d73]={'$like':'%'+_0x4c3299[_0x1454('0x43')]['filter']+'%'};return _0xebee55;})});}if(_0x4c3299[_0x1454('0x43')][_0x1454('0x7d')]){var _0x46a1d=_0x4c3299[_0x1454('0x43')][_0x1454('0x7d')]['split'](',');var _0x3374e5={};_0x3374e5[_0x46a1d[0x0]]={'$gte':moment(_0x46a1d[0x1])['format'](_0x1454('0xcd'))};_0xc722a3[_0x1454('0x7f')]=_['merge'](_0xc722a3[_0x1454('0x7f')],_0x3374e5);}_0xc722a3=_[_0x1454('0xa0')]({},_0xc722a3,_0x4c3299[_0x1454('0xce')]);return db[_0x1454('0xc9')]['count']({'where':_0xc722a3[_0x1454('0x7f')]})['then'](function(_0x30aa18){_0x45f5cc['count']=_0x30aa18;if(_0x4c3299[_0x1454('0x43')][_0x1454('0xc4')]){_0xc722a3[_0x1454('0xc5')]=[{'all':!![]}];}return db[_0x1454('0xc9')]['findAll'](_0xc722a3);})[_0x1454('0x2d')](function(_0x2d234d){_0x45f5cc['rows']=_0x2d234d;return _0x45f5cc;});}})[_0x1454('0x2d')](respondWithFilteredResult(_0x56ffbd,_0xc722a3))[_0x1454('0x3c')](handleError(_0x56ffbd,null));};exports[_0x1454('0xcf')]=function(_0x7c6cfb,_0x4f91c8,_0x13ec99){return db['MailInteraction']['find']({'where':{'id':_0x7c6cfb[_0x1454('0xc2')]['id']}})['then'](handleEntityNotFound(_0x4f91c8,null))[_0x1454('0x2d')](function(_0x41c0e2){if(_0x41c0e2){return _0x41c0e2[_0x1454('0xd0')](_0x7c6cfb[_0x1454('0xc7')]['ids'],_['omit'](_0x7c6cfb[_0x1454('0xc7')],[_0x1454('0xca'),'id'])||{})['spread'](function(){return db['Tag']['findAll']({'attributes':['id',_0x1454('0x4f'),_0x1454('0x50')],'where':{'id':_0x7c6cfb['body'][_0x1454('0xca')]}});})[_0x1454('0x2d')](function(_0x3a2c7b){socket[_0x1454('0xd1')](_0x1454('0xd2'),{'id':Number(_0x7c6cfb['params']['id']),'tags':_0x3a2c7b||[]});return{'id':Number(_0x7c6cfb[_0x1454('0xc2')]['id']),'tags':_0x3a2c7b||[]};});}})[_0x1454('0x2d')](respondWithResult(_0x4f91c8,null))['catch'](handleError(_0x4f91c8,null));};exports[_0x1454('0xd3')]=function(_0x530bfd,_0x30bf49,_0x146e05){return db[_0x1454('0x3e')][_0x1454('0x68')]({'where':{'id':_0x530bfd[_0x1454('0xc2')]['id']}})['then'](handleEntityNotFound(_0x30bf49,null))['then'](function(_0x1268df){if(_0x1268df){return _0x1268df[_0x1454('0xd3')](_0x530bfd[_0x1454('0x43')][_0x1454('0xca')]);}})[_0x1454('0x2d')](respondWithStatusCode(_0x30bf49,null))[_0x1454('0x3c')](handleError(_0x30bf49,null));};exports[_0x1454('0xd4')]=function(_0x54e901,_0xd0889){var _0x30a7a3=moment()[_0x1454('0xd5')]()[_0x1454('0x9f')]();var _0x212ff3=path[_0x1454('0xd6')](config[_0x1454('0xd7')],_0x1454('0xd8'),_0x1454('0xd9'),_0x1454('0xda'));var _0x10af5d=path['join'](config[_0x1454('0xd7')],_0x1454('0xd8'),'files',_0x1454('0xdb'));var _0x20760d=path[_0x1454('0xd6')](_0x212ff3,_0x30a7a3);var _0x37af9b=util[_0x1454('0xdc')](_0x1454('0xdd'),_0x54e901[_0x1454('0xc2')]['id'],_0x30a7a3);var _0x44347b=path['join'](_0x212ff3,_0x37af9b);var _0x2e2fcd=[];if(_0x54e901['query'][_0x1454('0xdb')]){_0x2e2fcd[_0x1454('0x36')]({'model':db[_0x1454('0xde')],'as':_0x1454('0xdf'),'raw':!![]});}var _0x55ae6b=[{'model':db[_0x1454('0xc9')],'as':_0x1454('0xe0'),'attributes':['id',_0x1454('0xc7'),_0x1454('0x51'),'to','cc',_0x1454('0xe1'),'subject','createdAt'],'where':{'secret':![]},'order':qs[_0x1454('0x4b')]('id'),'include':_0x2e2fcd}];return db[_0x1454('0x3e')][_0x1454('0x68')]({'where':{'id':_0x54e901[_0x1454('0xc2')]['id']},'include':_0x55ae6b})[_0x1454('0x2d')](handleEntityNotFound(_0xd0889,null))[_0x1454('0x2d')](function(_0x1f727a){if(_0x1f727a&&_0x1f727a[_0x1454('0xe0')]){var _0x5c982d=_0x1f727a['get']({'plain':!![]});fs[_0x1454('0xe2')](_0x20760d);return BPromise[_0x1454('0xe3')](_0x5c982d[_0x1454('0xe0')],function(_0x33bd79,_0x43859e){var _0x42c067={'from':_0x33bd79[_0x1454('0x51')],'to':_0x33bd79['to'],'subject':_0x33bd79['subject'],'html':_0x33bd79[_0x1454('0xc7')],'headers':{'Date':moment(_0x33bd79[_0x1454('0x7b')])[_0x1454('0xdc')](_0x1454('0xe4'))},'attachments':[]};if(_0x33bd79['cc']){_0x42c067[_0x1454('0xe5')]['Cc']=_0x33bd79['cc'];}if(_0x33bd79['bcc']){_0x42c067['headers'][_0x1454('0xe6')]=_0x33bd79['bcc'];}return new BPromise(function(_0x2254b0,_0x6128c6){if(_0x33bd79[_0x1454('0xdf')]){for(var _0x3f5c1c=0x0;_0x3f5c1c<_0x33bd79[_0x1454('0xdf')][_0x1454('0x48')];_0x3f5c1c++){var _0x5ad89b=_0x33bd79[_0x1454('0xdf')][_0x3f5c1c];var _0x30761d=path[_0x1454('0xd6')](_0x10af5d,_0x5ad89b[_0x1454('0xe7')]);if(fs[_0x1454('0xe8')](_0x30761d)){_0x42c067[_0x1454('0xdb')][_0x1454('0x36')]({'name':_0x5ad89b[_0x1454('0x4f')],'contentType':_0x5ad89b[_0x1454('0x40')],'data':fs[_0x1454('0xe9')](_0x30761d)});}}}emlformat['build'](_0x42c067,function(_0x3805d4,_0x3afb9e){if(_0x3805d4)return _0x6128c6(_0x3805d4);fs['writeFileSync'](path[_0x1454('0xd6')](_0x20760d,util[_0x1454('0xdc')](_0x1454('0xea'),_0x43859e)),_0x3afb9e);return _0x2254b0(_0x3afb9e);});});})[_0x1454('0x2d')](function(){return new BPromise(function(_0x401d75,_0x268b79){zipdir(_0x20760d,{'saveTo':_0x44347b},function(_0x365558,_0x2c1135){if(_0x365558)return _0x268b79(_0x365558);return _0x401d75(_0x2c1135);});})[_0x1454('0x2d')](function(){return new BPromise(function(_0x474591,_0x5cde45){rimraf(_0x20760d,function(_0x51949f){if(_0x51949f)_0x5cde45(_0x51949f);return _0x474591();});});})['then'](function(){return _0xd0889[_0x1454('0xd4')](_0x44347b,_0x37af9b,function(_0x33201e){if(_0x33201e){console[_0x1454('0xeb')](_0x1454('0xec'),_0x33201e);}else{fs['unlinkSync'](_0x44347b);}});});});}else{return _0xd0889[_0x1454('0x21')](0xc8);}})[_0x1454('0x3c')](handleError(_0xd0889,null));};