Built motion from commit 5b761a7b.|2.5.36
[motion2.git] / server / api / mailMessage / mailMessage.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 _0x2d00=['length','hasOwnProperty','nolimit','order','sort','where','pick','filter','merge','VIRTUAL','options','includeAll','include','findAll','rows','show','params','keys','find','body','describe','create','direction','out','MailAccount','CmList','List','CmContact','Contacts','updatedAt','DESC','MailServerOut','Smtp','isNil','service','host','port','secure','auth','user','attachments','join','root','server/files/attachments','basename','ListId','List\x20not\x20found','SendMail','sendMail','YYYY-MM-DD\x20HH:mm:ss','accept','mail','read','readAt','format','UserId','agent','get','MailInteraction','read1stAt','interaction','[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','stringify','null','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','Sequelize','QueryTypes','SELECT','contact','fullname','email','internal','interface','SIP/%s','channel','motionChannel','event','fromString','EventManager','reject','[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','User','rejectmessage','unix','server','files','tmp','message-%s.eml','from','subject','decode','createdAt','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','bcc','Bcc','existsSync','push','readFileSync','build','writeFileSync','download','unlinkSync','bluebird','util','path','ioredis','html-to-text','../../components/parsers/qs','../../config/logger','api','../../config/environment','redis','defaults','localhost','socket.io-emitter','./mailMessage.socket','register','jayson/promise','client','http','request','then','info','MailMessage,\x20%s,\x20%s','debug','MailMessage,\x20%s,\x20%s,\x20%s','error','code','message','catch','json','offset','undefined','limit','count','status','set','Content-Range','update','destroy','end','sendStatus','stack','name','send','index','map','MailMessage','rawAttributes','type','key','model','query','filters','intersection','attributes','fields'];(function(_0x46639d,_0x419ecc){var _0x1c882c=function(_0x45568a){while(--_0x45568a){_0x46639d['push'](_0x46639d['shift']());}};_0x1c882c(++_0x419ecc);}(_0x2d00,0x10b));var _0x02d0=function(_0x1974f,_0x137909){_0x1974f=_0x1974f-0x0;var _0x18654d=_0x2d00[_0x1974f];return _0x18654d;};'use strict';var emlformat=require('eml-format');var moment=require('moment');var BPromise=require(_0x02d0('0x0'));var util=require(_0x02d0('0x1'));var path=require(_0x02d0('0x2'));var fs=require('fs');var _=require('lodash');var Redis=require(_0x02d0('0x3'));var htmlToText=require(_0x02d0('0x4'));var qs=require(_0x02d0('0x5'));var logger=require(_0x02d0('0x6'))(_0x02d0('0x7'));var interaction_log=require(_0x02d0('0x6'))('mail-interactions');var config=require(_0x02d0('0x8'));var db=require('../../mysqldb')['db'];config[_0x02d0('0x9')]=_[_0x02d0('0xa')](config[_0x02d0('0x9')],{'host':_0x02d0('0xb'),'port':0x18eb});var socket=require(_0x02d0('0xc'))(new Redis(config[_0x02d0('0x9')]));var htmlEntities=require('html-entities');require(_0x02d0('0xd'))[_0x02d0('0xe')](socket);var jayson=require(_0x02d0('0xf'));var client=jayson[_0x02d0('0x10')][_0x02d0('0x11')]({'port':0x232c});var client9003=jayson[_0x02d0('0x10')][_0x02d0('0x11')]({'port':0x232b});var client9002=jayson[_0x02d0('0x10')][_0x02d0('0x11')]({'port':0x232a});function respondWithRpcPromise(_0x130340,_0x437e83,_0x3090f5,_0xf7326c){return new BPromise(function(_0x1aff5e,_0x391e7b){var _0x4a32a0=_0xf7326c||client;return _0x4a32a0[_0x02d0('0x12')](_0x130340,_0x3090f5)[_0x02d0('0x13')](function(_0x1cd8ac){logger[_0x02d0('0x14')](_0x02d0('0x15'),_0x437e83,'request\x20sent');logger[_0x02d0('0x16')](_0x02d0('0x17'),_0x437e83,'request\x20sent',JSON['stringify'](_0x1cd8ac));if(_0x1cd8ac[_0x02d0('0x18')]){if(_0x1cd8ac['error'][_0x02d0('0x19')]===0x1f4){logger['error'](_0x02d0('0x15'),_0x437e83,_0x1cd8ac[_0x02d0('0x18')][_0x02d0('0x1a')]);return _0x391e7b(_0x1cd8ac['error'][_0x02d0('0x1a')]);}logger[_0x02d0('0x18')](_0x02d0('0x15'),_0x437e83,_0x1cd8ac[_0x02d0('0x18')][_0x02d0('0x1a')]);return _0x1aff5e(_0x1cd8ac[_0x02d0('0x18')]['message']);}else{logger[_0x02d0('0x14')](_0x02d0('0x15'),_0x437e83,'request\x20sent');_0x1aff5e(_0x1cd8ac['result'][_0x02d0('0x1a')]);}})[_0x02d0('0x1b')](function(_0x50ad5f){logger[_0x02d0('0x18')]('MailMessage,\x20%s,\x20%s',_0x437e83,_0x50ad5f);_0x391e7b(_0x50ad5f);});});}function respondWithResult(_0x4b580b,_0x454d60){_0x454d60=_0x454d60||0xc8;return function(_0x21a6e7){if(_0x21a6e7){return _0x4b580b['status'](_0x454d60)[_0x02d0('0x1c')](_0x21a6e7);}};}function respondWithFilteredResult(_0x4e5384,_0x4902e0){return function(_0x17ff26){if(_0x17ff26){var _0x370047=typeof _0x4902e0[_0x02d0('0x1d')]===_0x02d0('0x1e')&&typeof _0x4902e0[_0x02d0('0x1f')]==='undefined';var _0x43f489=_0x17ff26[_0x02d0('0x20')];var _0x43e58a=_0x370047?0x0:_0x4902e0[_0x02d0('0x1d')];var _0x3217e4=_0x370047?_0x17ff26['count']:_0x4902e0['offset']+_0x4902e0[_0x02d0('0x1f')];var _0x3b219c;if(_0x3217e4>=_0x43f489){_0x3217e4=_0x43f489;_0x3b219c=0xc8;}else{_0x3b219c=0xce;}_0x4e5384[_0x02d0('0x21')](_0x3b219c);return _0x4e5384[_0x02d0('0x22')](_0x02d0('0x23'),_0x43e58a+'-'+_0x3217e4+'/'+_0x43f489)['json'](_0x17ff26);}return null;};}function saveUpdates(_0x398cc6){return function(_0x3506f3){if(_0x3506f3){return _0x3506f3[_0x02d0('0x24')](_0x398cc6)[_0x02d0('0x13')](function(_0x97666f){return _0x97666f;});}return null;};}function removeEntity(_0x4fe425){return function(_0x3856e9){if(_0x3856e9){return _0x3856e9[_0x02d0('0x25')]()[_0x02d0('0x13')](function(){_0x4fe425[_0x02d0('0x21')](0xcc)[_0x02d0('0x26')]();});}};}function handleEntityNotFound(_0x538e8b){return function(_0x1eeb7c){if(!_0x1eeb7c){_0x538e8b[_0x02d0('0x27')](0x194);}return _0x1eeb7c;};}function handleError(_0x310ca2,_0x4cba19){_0x4cba19=_0x4cba19||0x1f4;return function(_0x5abd52){logger['error'](_0x5abd52[_0x02d0('0x28')]);if(_0x5abd52[_0x02d0('0x29')]){delete _0x5abd52[_0x02d0('0x29')];}_0x310ca2[_0x02d0('0x21')](_0x4cba19)[_0x02d0('0x2a')](_0x5abd52);};}exports[_0x02d0('0x2b')]=function(_0x487d6c,_0x507b83){var _0x570bd7={},_0xc3ee95={},_0x101a4c={'count':0x0,'rows':[]};var _0x1af062=_[_0x02d0('0x2c')](db[_0x02d0('0x2d')][_0x02d0('0x2e')],function(_0x394559){return{'name':_0x394559['fieldName'],'type':_0x394559[_0x02d0('0x2f')][_0x02d0('0x30')]};});_0xc3ee95[_0x02d0('0x31')]=_[_0x02d0('0x2c')](_0x1af062,_0x02d0('0x29'));_0xc3ee95[_0x02d0('0x32')]=_['keys'](_0x487d6c['query']);_0xc3ee95[_0x02d0('0x33')]=_[_0x02d0('0x34')](_0xc3ee95[_0x02d0('0x31')],_0xc3ee95[_0x02d0('0x32')]);_0x570bd7[_0x02d0('0x35')]=_['intersection'](_0xc3ee95[_0x02d0('0x31')],qs['fields'](_0x487d6c['query'][_0x02d0('0x36')]));_0x570bd7['attributes']=_0x570bd7[_0x02d0('0x35')][_0x02d0('0x37')]?_0x570bd7[_0x02d0('0x35')]:_0xc3ee95['model'];if(!_0x487d6c[_0x02d0('0x32')][_0x02d0('0x38')](_0x02d0('0x39'))){_0x570bd7[_0x02d0('0x1f')]=qs[_0x02d0('0x1f')](_0x487d6c[_0x02d0('0x32')][_0x02d0('0x1f')]);_0x570bd7[_0x02d0('0x1d')]=qs['offset'](_0x487d6c[_0x02d0('0x32')][_0x02d0('0x1d')]);}_0x570bd7[_0x02d0('0x3a')]=qs[_0x02d0('0x3b')](_0x487d6c[_0x02d0('0x32')][_0x02d0('0x3b')]);_0x570bd7[_0x02d0('0x3c')]=qs[_0x02d0('0x33')](_[_0x02d0('0x3d')](_0x487d6c[_0x02d0('0x32')],_0xc3ee95['filters']),_0x1af062);if(_0x487d6c[_0x02d0('0x32')][_0x02d0('0x3e')]){_0x570bd7[_0x02d0('0x3c')]=_[_0x02d0('0x3f')](_0x570bd7[_0x02d0('0x3c')],{'$or':_[_0x02d0('0x2c')](_0x1af062,function(_0x23c5eb){if(_0x23c5eb[_0x02d0('0x2f')]!==_0x02d0('0x40')){var _0x1c74ce={};_0x1c74ce[_0x23c5eb[_0x02d0('0x29')]]={'$like':'%'+_0x487d6c['query'][_0x02d0('0x3e')]+'%'};return _0x1c74ce;}})});}_0x570bd7=_['merge']({},_0x570bd7,_0x487d6c[_0x02d0('0x41')]);var _0x46e788={'where':_0x570bd7['where']};return db[_0x02d0('0x2d')][_0x02d0('0x20')](_0x46e788)[_0x02d0('0x13')](function(_0x413218){_0x101a4c[_0x02d0('0x20')]=_0x413218;if(_0x487d6c[_0x02d0('0x32')][_0x02d0('0x42')]){_0x570bd7[_0x02d0('0x43')]=[{'all':!![]}];}return db[_0x02d0('0x2d')][_0x02d0('0x44')](_0x570bd7);})[_0x02d0('0x13')](function(_0x5ae0dc){_0x101a4c[_0x02d0('0x45')]=_0x5ae0dc;return _0x101a4c;})['then'](respondWithFilteredResult(_0x507b83,_0x570bd7))[_0x02d0('0x1b')](handleError(_0x507b83,null));};exports[_0x02d0('0x46')]=function(_0x154ccf,_0x3e7ca0){var _0x41ad57={'raw':!![],'where':{'id':_0x154ccf[_0x02d0('0x47')]['id']}},_0x3e2869={};_0x3e2869[_0x02d0('0x31')]=_[_0x02d0('0x48')](db[_0x02d0('0x2d')][_0x02d0('0x2e')]);_0x3e2869['query']=_[_0x02d0('0x48')](_0x154ccf['query']);_0x3e2869[_0x02d0('0x33')]=_[_0x02d0('0x34')](_0x3e2869['model'],_0x3e2869[_0x02d0('0x32')]);_0x41ad57[_0x02d0('0x35')]=_[_0x02d0('0x34')](_0x3e2869[_0x02d0('0x31')],qs[_0x02d0('0x36')](_0x154ccf['query'][_0x02d0('0x36')]));_0x41ad57[_0x02d0('0x35')]=_0x41ad57['attributes'][_0x02d0('0x37')]?_0x41ad57[_0x02d0('0x35')]:_0x3e2869[_0x02d0('0x31')];if(_0x154ccf[_0x02d0('0x32')][_0x02d0('0x42')]){_0x41ad57[_0x02d0('0x43')]=[{'all':!![]}];}_0x41ad57=_['merge']({},_0x41ad57,_0x154ccf[_0x02d0('0x41')]);return db[_0x02d0('0x2d')][_0x02d0('0x49')](_0x41ad57)['then'](handleEntityNotFound(_0x3e7ca0,null))[_0x02d0('0x13')](respondWithResult(_0x3e7ca0,null))['catch'](handleError(_0x3e7ca0,null));};exports[_0x02d0('0x24')]=function(_0x1d7676,_0x370054){if(_0x1d7676[_0x02d0('0x4a')]['id']){delete _0x1d7676['body']['id'];}return db['MailMessage']['find']({'where':{'id':_0x1d7676[_0x02d0('0x47')]['id']}})[_0x02d0('0x13')](handleEntityNotFound(_0x370054,null))['then'](saveUpdates(_0x1d7676['body'],null))[_0x02d0('0x13')](respondWithResult(_0x370054,null))['catch'](handleError(_0x370054,null));};exports[_0x02d0('0x25')]=function(_0x4c9396,_0x108901){return db['MailMessage'][_0x02d0('0x49')]({'where':{'id':_0x4c9396[_0x02d0('0x47')]['id']}})['then'](handleEntityNotFound(_0x108901,null))[_0x02d0('0x13')](removeEntity(_0x108901,null))['catch'](handleError(_0x108901,null));};exports['describe']=function(_0x4396f2,_0x389023){return db[_0x02d0('0x2d')][_0x02d0('0x4b')]()['then'](respondWithResult(_0x389023,null))['catch'](handleError(_0x389023,null));};exports[_0x02d0('0x4c')]=function(_0x3be819,_0x57be5d){return db[_0x02d0('0x2d')][_0x02d0('0x4c')](_0x3be819[_0x02d0('0x4a')])[_0x02d0('0x13')](function(_0x44066f){if(_0x44066f){if(_0x44066f[_0x02d0('0x4d')]===_0x02d0('0x4e')&&!_0x44066f['secret']){var _0xdf75e0,_0x3d49d5,_0x31bca4;if(_0x3be819[_0x02d0('0x4a')]['to']){_0x3d49d5=_0x3be819[_0x02d0('0x4a')]['to']['split'](',')[0x0];}return db[_0x02d0('0x4f')]['findOne']({'where':{'id':_0x44066f['MailAccountId']},'include':[{'model':db[_0x02d0('0x50')],'as':_0x02d0('0x51'),'include':[{'model':db[_0x02d0('0x52')],'as':_0x02d0('0x53'),'where':{'email':_0x3d49d5},'limit':0x1,'order':[[_0x02d0('0x54'),_0x02d0('0x55')]]}]},{'model':db[_0x02d0('0x56')],'as':'Smtp','raw':!![]}]})[_0x02d0('0x13')](function(_0x9ef18e){_0xdf75e0=_0x9ef18e;if(_0xdf75e0&&_0xdf75e0[_0x02d0('0x57')]){var _0x557741={'tls':{'rejectUnauthorized':![]}};if(_[_0x02d0('0x58')](_0xdf75e0[_0x02d0('0x57')][_0x02d0('0x59')])){_0x557741[_0x02d0('0x5a')]=_0xdf75e0['Smtp'][_0x02d0('0x5a')];_0x557741['port']=_0xdf75e0[_0x02d0('0x57')][_0x02d0('0x5b')];_0x557741[_0x02d0('0x5c')]=_0xdf75e0[_0x02d0('0x57')][_0x02d0('0x5c')];if(_0xdf75e0[_0x02d0('0x57')]['authentication']){_0x557741[_0x02d0('0x5d')]={'user':_0xdf75e0[_0x02d0('0x57')][_0x02d0('0x5e')],'pass':_0xdf75e0['Smtp']['pass']};}}else{_0x557741[_0x02d0('0x59')]=_0xdf75e0[_0x02d0('0x57')]['service'];_0x557741['auth']={'user':_0xdf75e0[_0x02d0('0x57')][_0x02d0('0x5e')],'pass':_0xdf75e0[_0x02d0('0x57')]['pass']};_0x557741[_0x02d0('0x5c')]=_0xdf75e0[_0x02d0('0x57')][_0x02d0('0x5c')];}if(_0x3be819[_0x02d0('0x4a')][_0x02d0('0x5f')]&&_0x3be819['body'][_0x02d0('0x5f')][_0x02d0('0x37')]){for(var _0xe376de=0x0;_0xe376de<_0x3be819[_0x02d0('0x4a')]['attachments'][_0x02d0('0x37')];_0xe376de+=0x1){_0x3be819[_0x02d0('0x4a')][_0x02d0('0x5f')][_0xe376de]={'filename':_0x3be819[_0x02d0('0x4a')][_0x02d0('0x5f')][_0xe376de][_0x02d0('0x29')],'path':path[_0x02d0('0x60')](config[_0x02d0('0x61')],_0x02d0('0x62'),_0x3be819[_0x02d0('0x4a')][_0x02d0('0x5f')][_0xe376de][_0x02d0('0x63')])};}}_0x31bca4={'account':_0x557741,'message':_0x3be819[_0x02d0('0x4a')]};return;}})[_0x02d0('0x13')](function(){if(_0xdf75e0['List']){if(_0xdf75e0[_0x02d0('0x51')][_0x02d0('0x53')][_0x02d0('0x37')]){return _0xdf75e0[_0x02d0('0x51')][_0x02d0('0x53')][0x0];}else{return db[_0x02d0('0x52')][_0x02d0('0x4c')](_[_0x02d0('0xa')](_0x3be819[_0x02d0('0x4a')],{'firstName':_0x3be819[_0x02d0('0x4a')]['to'],'email':_0x3be819[_0x02d0('0x4a')]['to'],'phone':_0x3be819[_0x02d0('0x4a')]['to'],'ListId':_0xdf75e0[_0x02d0('0x64')]}));}}else{throw new Error(_0x02d0('0x65'));}})[_0x02d0('0x13')](function(){if(_0x31bca4){return respondWithRpcPromise(_0x02d0('0x66'),_0x02d0('0x67'),_0x31bca4,client9003)['then'](function(_0x485c59){return _0x44066f['update']({'read':!![],'messageId':_0x485c59['messageId'],'sentAt':moment()['format'](_0x02d0('0x68'))});})[_0x02d0('0x1b')](function(_0x1ea343){logger['error']('%s',JSON['stringify'](_0x1ea343));return _0x44066f;});}return _0x44066f;});}return _0x44066f;}})['then'](respondWithResult(_0x57be5d,0xc9))['catch'](handleError(_0x57be5d,null));};exports[_0x02d0('0x69')]=function(_0x54e7bf,_0x4518f6){var _0x378046={'agent':{},'channel':_0x02d0('0x6a')};if(_0x54e7bf[_0x02d0('0x4a')]['id']){delete _0x54e7bf[_0x02d0('0x4a')]['id'];}_0x54e7bf[_0x02d0('0x4a')][_0x02d0('0x6b')]=!![];_0x54e7bf[_0x02d0('0x4a')][_0x02d0('0x6c')]=moment()[_0x02d0('0x6d')](_0x02d0('0x68'));_0x54e7bf[_0x02d0('0x4a')][_0x02d0('0x6e')]=_0x54e7bf[_0x02d0('0x4a')][_0x02d0('0x6e')]||_0x54e7bf[_0x02d0('0x5e')]['id'];_0x378046[_0x02d0('0x6f')]['id']=_0x54e7bf[_0x02d0('0x4a')][_0x02d0('0x6e')];return db[_0x02d0('0x2d')][_0x02d0('0x49')]({'where':{'id':_0x54e7bf[_0x02d0('0x47')]['id'],'UserId':null}})[_0x02d0('0x13')](handleEntityNotFound(_0x4518f6,null))['then'](saveUpdates(_0x54e7bf['body'],null))[_0x02d0('0x13')](function(_0x275028){if(_0x275028){_0x378046[_0x02d0('0x1a')]=_0x275028[_0x02d0('0x70')]({'plain':!![]});return db[_0x02d0('0x71')][_0x02d0('0x49')]({'where':{'id':_0x275028['MailInteractionId']}});}return null;})[_0x02d0('0x13')](handleEntityNotFound(_0x4518f6,null))[_0x02d0('0x13')](function(_0x3f37fd){if(_0x3f37fd){return _0x3f37fd[_0x02d0('0x24')]({'UserId':_0x54e7bf[_0x02d0('0x4a')]['UserId'],'read1stAt':_[_0x02d0('0x58')](_0x3f37fd[_0x02d0('0x72')])?moment()[_0x02d0('0x6d')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0x02d0('0x13')](function(_0x57128d){if(_0x57128d){_0x378046[_0x02d0('0x73')]=_0x57128d[_0x02d0('0x70')]({'plain':!![]});interaction_log[_0x02d0('0x14')](_0x02d0('0x74'),_0x54e7bf[_0x02d0('0x5e')]['id'],_0x54e7bf[_0x02d0('0x5e')][_0x02d0('0x29')],_0x54e7bf[_0x02d0('0x5e')]['role'],_0x378046['interaction']['id'],_0x54e7bf['body']?JSON[_0x02d0('0x75')](_0x54e7bf[_0x02d0('0x4a')]):_0x02d0('0x76'));return respondWithRpcPromise('AcceptMessage',_0x02d0('0x77'),_0x378046);}return null;})['then'](function(_0x2c0516){var _0xcc216e=_0x02d0('0x78')+_0x2c0516[_0x02d0('0x1a')][_0x02d0('0x79')];return db[_0x02d0('0x7a')]['query'](_0xcc216e,{'type':db[_0x02d0('0x7b')][_0x02d0('0x7c')][_0x02d0('0x7d')],'raw':!![]})[_0x02d0('0x13')](function(_0x45643b){return _0x45643b;});})['then'](function(_0x53a5aa){if(_0x53a5aa){_0x378046[_0x02d0('0x1a')][_0x02d0('0x7e')]=_0x53a5aa[0x0];if(!_0x54e7bf[_0x02d0('0x4a')][_0x02d0('0x6e')])return;return db['User'][_0x02d0('0x49')]({'where':{'id':_0x54e7bf[_0x02d0('0x4a')]['UserId'],'role':_0x02d0('0x6f')},'attributes':['id',_0x02d0('0x29'),_0x02d0('0x7f'),_0x02d0('0x80'),_0x02d0('0x81')],'raw':!![]});}return null;})[_0x02d0('0x13')](function(_0x498047){if(!_0x498047)return null;_0x378046[_0x02d0('0x1a')][_0x02d0('0x6f')]=_0x498047;return _0x378046;})[_0x02d0('0x13')](function(_0x4409a6){if(_0x4409a6){if(_0x54e7bf[_0x02d0('0x4a')]['manual']){_0x378046[_0x02d0('0x1a')][_0x02d0('0x82')]=util['format'](_0x02d0('0x83'),_0x54e7bf[_0x02d0('0x5e')]['name']);_0x378046[_0x02d0('0x1a')][_0x02d0('0x84')]=_0x378046['channel'];_0x378046[_0x02d0('0x1a')][_0x02d0('0x85')]=_0x378046[_0x02d0('0x84')];_0x378046['message'][_0x02d0('0x86')]=_0x02d0('0x69');_0x378046['message'][_0x02d0('0x4a')]=htmlToText[_0x02d0('0x87')](_0x378046[_0x02d0('0x1a')][_0x02d0('0x4a')]);return respondWithRpcPromise('EventManager',_0x02d0('0x88'),{'event':'acceptmessage','message':_0x378046[_0x02d0('0x1a')]},client9002)[_0x02d0('0x13')](function(){return _0x378046;});}return _0x378046;}return null;})[_0x02d0('0x13')](respondWithResult(_0x4518f6,null))[_0x02d0('0x1b')](handleError(_0x4518f6,null));};exports[_0x02d0('0x89')]=function(_0x3faeb0,_0x431705){var _0x53a545={'agent':{},'channel':'mail'};if(_0x3faeb0[_0x02d0('0x4a')]['id']){delete _0x3faeb0['body']['id'];}_0x3faeb0[_0x02d0('0x4a')][_0x02d0('0x6e')]=_0x3faeb0[_0x02d0('0x4a')][_0x02d0('0x6e')]||_0x3faeb0[_0x02d0('0x5e')]['id'];_0x53a545['agent']['id']=_0x3faeb0['body'][_0x02d0('0x6e')];return db[_0x02d0('0x2d')][_0x02d0('0x49')]({'where':{'id':_0x3faeb0[_0x02d0('0x47')]['id'],'UserId':null}})[_0x02d0('0x13')](handleEntityNotFound(_0x431705,null))['then'](function(_0x44077b){if(_0x44077b){_0x53a545[_0x02d0('0x1a')]=_0x44077b[_0x02d0('0x70')]({'plain':!![]});return db[_0x02d0('0x71')][_0x02d0('0x49')]({'where':{'id':_0x44077b['MailInteractionId']}});}return null;})['then'](handleEntityNotFound(_0x431705,null))['then'](function(_0x11bb5c){if(_0x11bb5c){_0x53a545[_0x02d0('0x73')]=_0x11bb5c[_0x02d0('0x70')]({'plain':!![]});interaction_log['info'](_0x02d0('0x8a'),_0x3faeb0[_0x02d0('0x5e')]['id'],_0x3faeb0[_0x02d0('0x5e')]['name'],_0x3faeb0['user']['role'],_0x53a545['interaction']['id'],_0x3faeb0[_0x02d0('0x4a')]?JSON[_0x02d0('0x75')](_0x3faeb0[_0x02d0('0x4a')]):_0x02d0('0x76'));return respondWithRpcPromise('RejectMessage','rejectMessage',_0x53a545);}return null;})[_0x02d0('0x13')](function(_0x546fd8){var _0x3079e4='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x546fd8[_0x02d0('0x1a')][_0x02d0('0x79')];return db['sequelize'][_0x02d0('0x32')](_0x3079e4,{'type':db[_0x02d0('0x7b')][_0x02d0('0x7c')][_0x02d0('0x7d')],'raw':!![]})[_0x02d0('0x13')](function(_0x5aaa39){return _0x5aaa39;});})['then'](function(_0x16c225){if(_0x16c225){_0x53a545[_0x02d0('0x1a')]['contact']=_0x16c225[0x0];if(!_0x3faeb0[_0x02d0('0x4a')]['UserId'])return;return db[_0x02d0('0x8b')][_0x02d0('0x49')]({'where':{'id':_0x3faeb0[_0x02d0('0x4a')][_0x02d0('0x6e')],'role':_0x02d0('0x6f')},'attributes':['id',_0x02d0('0x29'),_0x02d0('0x7f'),_0x02d0('0x80'),_0x02d0('0x81')],'raw':!![]});}return null;})[_0x02d0('0x13')](function(_0x5892ed){if(!_0x5892ed)return null;_0x53a545['message']['agent']=_0x5892ed;return _0x53a545;})[_0x02d0('0x13')](function(_0xc54bea){if(_0xc54bea){_0xc54bea[_0x02d0('0x1a')][_0x02d0('0x82')]=util['format'](_0x02d0('0x83'),_0x3faeb0[_0x02d0('0x5e')][_0x02d0('0x29')]);_0xc54bea[_0x02d0('0x1a')][_0x02d0('0x84')]=_0x53a545[_0x02d0('0x84')];_0xc54bea['message'][_0x02d0('0x85')]=_0x53a545[_0x02d0('0x84')];_0xc54bea[_0x02d0('0x1a')][_0x02d0('0x86')]=_0x02d0('0x89');_0xc54bea[_0x02d0('0x1a')]['body']=htmlToText['fromString'](_0x53a545[_0x02d0('0x1a')]['body']);respondWithRpcPromise(_0x02d0('0x88'),_0x02d0('0x88'),{'event':_0x02d0('0x8c'),'message':_0xc54bea[_0x02d0('0x1a')]},client9002);return _0x53a545;}return null;})[_0x02d0('0x13')](respondWithResult(_0x431705,null))[_0x02d0('0x1b')](handleError(_0x431705,null));};exports['download']=function(_0x434f88,_0x44f0c3){var _0x5bc196=moment()[_0x02d0('0x8d')]()['toString']();var _0x5e8e65=path[_0x02d0('0x60')](config[_0x02d0('0x61')],_0x02d0('0x8e'),_0x02d0('0x8f'),_0x02d0('0x90'));var _0x2e36de=path['join'](config[_0x02d0('0x61')],_0x02d0('0x8e'),'files',_0x02d0('0x5f'));var _0x24b9c1=util[_0x02d0('0x6d')](_0x02d0('0x91'),_0x5bc196);return db[_0x02d0('0x2d')]['find']({'where':{'id':_0x434f88[_0x02d0('0x47')]['id']},'attributes':['id','body',_0x02d0('0x92'),'to','cc','bcc','subject','createdAt'],'include':_0x434f88['query']['attachments']?[{'model':db['Attachment'],'as':'Attachments'}]:undefined})[_0x02d0('0x13')](handleEntityNotFound(_0x44f0c3,null))['then'](function(_0x41d925){if(_0x41d925){var _0x4aba88=_0x41d925;var _0x1ac723={'from':_0x4aba88['from'],'to':_0x4aba88['to'],'subject':_0x4aba88[_0x02d0('0x93')],'html':htmlEntities[_0x02d0('0x94')](_0x4aba88[_0x02d0('0x4a')]),'headers':{'Date':moment(_0x4aba88[_0x02d0('0x95')])[_0x02d0('0x6d')](_0x02d0('0x96'))},'attachments':[]};if(_0x41d925['cc']){_0x1ac723[_0x02d0('0x97')]['Cc']=_0x41d925['cc'];}if(_0x41d925[_0x02d0('0x98')]){_0x1ac723[_0x02d0('0x97')][_0x02d0('0x99')]=_0x41d925[_0x02d0('0x98')];}return new BPromise(function(_0x1ad25f,_0x1957bc){if(_0x41d925['Attachments']){for(var _0xf39ed0=0x0;_0xf39ed0<_0x41d925['Attachments'][_0x02d0('0x37')];_0xf39ed0++){var _0x1b8454=_0x41d925['Attachments'][_0xf39ed0];var _0x119d31=path[_0x02d0('0x60')](_0x2e36de,_0x1b8454['basename']);if(fs[_0x02d0('0x9a')](_0x119d31)){_0x1ac723[_0x02d0('0x5f')][_0x02d0('0x9b')]({'name':_0x1b8454[_0x02d0('0x29')],'contentType':_0x1b8454[_0x02d0('0x2f')],'data':fs[_0x02d0('0x9c')](_0x119d31)});}}}emlformat[_0x02d0('0x9d')](_0x1ac723,function(_0x31d480,_0xba4463){if(_0x31d480)return _0x1957bc(_0x31d480);fs[_0x02d0('0x9e')](path[_0x02d0('0x60')](_0x5e8e65,_0x24b9c1),_0xba4463);return _0x1ad25f(_0xba4463);});});}})[_0x02d0('0x13')](function(_0x2f9026){if(_0x2f9026){return _0x44f0c3[_0x02d0('0x9f')](path[_0x02d0('0x60')](_0x5e8e65,_0x24b9c1),_0x24b9c1,function(_0xfcd35f){if(!_0xfcd35f)fs[_0x02d0('0xa0')](path[_0x02d0('0x60')](_0x5e8e65,_0x24b9c1));});}})[_0x02d0('0x1b')](handleError(_0x44f0c3,null));};