Built motion from commit 52c8a02d.|2.6.29
[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 _0x2043=['EventManager','acceptmessage','reject','MailInteractionId','[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','User','internal','SIP/%s','motionChannel','rejectmessage','join','root','server','files','tmp','from','bcc','createdAt','Attachment','Attachments','subject','decode','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','existsSync','push','build','writeFileSync','unlinkSync','eml-format','moment','bluebird','path','lodash','ioredis','html-to-text','../../components/parsers/qs','../../config/logger','mail-interactions','../../config/environment','redis','defaults','localhost','socket.io-emitter','html-entities','./mailMessage.socket','jayson/promise','client','http','request','then','info','MailMessage,\x20%s,\x20%s','request\x20sent','debug','stringify','error','message','result','catch','status','offset','limit','set','Content-Range','json','destroy','end','stack','name','send','index','map','MailMessage','rawAttributes','fieldName','type','key','model','query','filters','intersection','attributes','fields','length','hasOwnProperty','nolimit','order','sort','where','filter','VIRTUAL','options','count','includeAll','include','findAll','show','params','keys','merge','find','update','body','describe','create','direction','out','secret','findOne','MailAccountId','CmList','List','CmContact','Contacts','updatedAt','DESC','MailServerOut','Smtp','CloudProvider','getSmtpOptions','attachments','server/files/attachments','basename','ListId','List\x20not\x20found','SendMail','sendMail','messageId','format','YYYY-MM-DD\x20HH:mm:ss','accept','mail','readAt','UserId','user','agent','get','MailInteraction','isNil','read1stAt','interaction','[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','AcceptMessage','acceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','Sequelize','QueryTypes','SELECT','contact','fullname','email','manual','channel','event','fromString'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x2043,0xc1));var _0x3204=function(_0x69949,_0x2a6212){_0x69949=_0x69949-0x0;var _0x9e22db=_0x2043[_0x69949];return _0x9e22db;};'use strict';var emlformat=require(_0x3204('0x0'));var moment=require(_0x3204('0x1'));var BPromise=require(_0x3204('0x2'));var util=require('util');var path=require(_0x3204('0x3'));var fs=require('fs');var _=require(_0x3204('0x4'));var Redis=require(_0x3204('0x5'));var htmlToText=require(_0x3204('0x6'));var qs=require(_0x3204('0x7'));var logger=require(_0x3204('0x8'))('api');var interaction_log=require(_0x3204('0x8'))(_0x3204('0x9'));var config=require(_0x3204('0xa'));var db=require('../../mysqldb')['db'];config[_0x3204('0xb')]=_[_0x3204('0xc')](config['redis'],{'host':_0x3204('0xd'),'port':0x18eb});var socket=require(_0x3204('0xe'))(new Redis(config['redis']));var htmlEntities=require(_0x3204('0xf'));require(_0x3204('0x10'))['register'](socket);var jayson=require(_0x3204('0x11'));var client=jayson[_0x3204('0x12')]['http']({'port':0x232c});var client9003=jayson[_0x3204('0x12')][_0x3204('0x13')]({'port':0x232b});var client9002=jayson[_0x3204('0x12')][_0x3204('0x13')]({'port':0x232a});function respondWithRpcPromise(_0x3aed78,_0x15631f,_0x251cf7,_0x2f2e3c){return new BPromise(function(_0x46314e,_0x5e8ff4){var _0x199f64=_0x2f2e3c||client;return _0x199f64[_0x3204('0x14')](_0x3aed78,_0x251cf7)[_0x3204('0x15')](function(_0x5760e4){logger[_0x3204('0x16')](_0x3204('0x17'),_0x15631f,_0x3204('0x18'));logger[_0x3204('0x19')]('MailMessage,\x20%s,\x20%s,\x20%s',_0x15631f,'request\x20sent',JSON[_0x3204('0x1a')](_0x5760e4));if(_0x5760e4[_0x3204('0x1b')]){if(_0x5760e4[_0x3204('0x1b')]['code']===0x1f4){logger[_0x3204('0x1b')]('MailMessage,\x20%s,\x20%s',_0x15631f,_0x5760e4[_0x3204('0x1b')]['message']);return _0x5e8ff4(_0x5760e4[_0x3204('0x1b')]['message']);}logger['error'](_0x3204('0x17'),_0x15631f,_0x5760e4[_0x3204('0x1b')][_0x3204('0x1c')]);return _0x46314e(_0x5760e4['error'][_0x3204('0x1c')]);}else{logger[_0x3204('0x16')]('MailMessage,\x20%s,\x20%s',_0x15631f,_0x3204('0x18'));_0x46314e(_0x5760e4[_0x3204('0x1d')][_0x3204('0x1c')]);}})[_0x3204('0x1e')](function(_0x1b4963){logger['error'](_0x3204('0x17'),_0x15631f,_0x1b4963);_0x5e8ff4(_0x1b4963);});});}function respondWithResult(_0x266311,_0x5990ea){_0x5990ea=_0x5990ea||0xc8;return function(_0x40ac01){if(_0x40ac01){return _0x266311[_0x3204('0x1f')](_0x5990ea)['json'](_0x40ac01);}};}function respondWithFilteredResult(_0x4e4044,_0x1fe201){return function(_0x59472c){if(_0x59472c){var _0x3504c8=typeof _0x1fe201[_0x3204('0x20')]==='undefined'&&typeof _0x1fe201['limit']==='undefined';var _0x4b7663=_0x59472c['count'];var _0x515a46=_0x3504c8?0x0:_0x1fe201[_0x3204('0x20')];var _0x58d1cb=_0x3504c8?_0x59472c['count']:_0x1fe201['offset']+_0x1fe201[_0x3204('0x21')];var _0x40d70d;if(_0x58d1cb>=_0x4b7663){_0x58d1cb=_0x4b7663;_0x40d70d=0xc8;}else{_0x40d70d=0xce;}_0x4e4044[_0x3204('0x1f')](_0x40d70d);return _0x4e4044[_0x3204('0x22')](_0x3204('0x23'),_0x515a46+'-'+_0x58d1cb+'/'+_0x4b7663)[_0x3204('0x24')](_0x59472c);}return null;};}function saveUpdates(_0xb49adb){return function(_0x204711){if(_0x204711){return _0x204711['update'](_0xb49adb)['then'](function(_0xe9822e){return _0xe9822e;});}return null;};}function removeEntity(_0x2f6797){return function(_0x36d16c){if(_0x36d16c){return _0x36d16c[_0x3204('0x25')]()['then'](function(){_0x2f6797['status'](0xcc)[_0x3204('0x26')]();});}};}function handleEntityNotFound(_0x4ab48b){return function(_0x500364){if(!_0x500364){_0x4ab48b['sendStatus'](0x194);}return _0x500364;};}function handleError(_0x12f431,_0x3bcf09){_0x3bcf09=_0x3bcf09||0x1f4;return function(_0x254663){logger['error'](_0x254663[_0x3204('0x27')]);if(_0x254663[_0x3204('0x28')]){delete _0x254663[_0x3204('0x28')];}_0x12f431[_0x3204('0x1f')](_0x3bcf09)[_0x3204('0x29')](_0x254663);};}exports[_0x3204('0x2a')]=function(_0x1de6e5,_0x363bcb){var _0x657b30={},_0x255400={},_0x5c25cb={'count':0x0,'rows':[]};var _0x3d0625=_[_0x3204('0x2b')](db[_0x3204('0x2c')][_0x3204('0x2d')],function(_0x18caa9){return{'name':_0x18caa9[_0x3204('0x2e')],'type':_0x18caa9[_0x3204('0x2f')][_0x3204('0x30')]};});_0x255400[_0x3204('0x31')]=_[_0x3204('0x2b')](_0x3d0625,'name');_0x255400[_0x3204('0x32')]=_['keys'](_0x1de6e5[_0x3204('0x32')]);_0x255400[_0x3204('0x33')]=_[_0x3204('0x34')](_0x255400[_0x3204('0x31')],_0x255400[_0x3204('0x32')]);_0x657b30[_0x3204('0x35')]=_['intersection'](_0x255400['model'],qs[_0x3204('0x36')](_0x1de6e5['query']['fields']));_0x657b30[_0x3204('0x35')]=_0x657b30[_0x3204('0x35')][_0x3204('0x37')]?_0x657b30[_0x3204('0x35')]:_0x255400[_0x3204('0x31')];if(!_0x1de6e5[_0x3204('0x32')][_0x3204('0x38')](_0x3204('0x39'))){_0x657b30[_0x3204('0x21')]=qs['limit'](_0x1de6e5['query']['limit']);_0x657b30[_0x3204('0x20')]=qs[_0x3204('0x20')](_0x1de6e5[_0x3204('0x32')][_0x3204('0x20')]);}_0x657b30[_0x3204('0x3a')]=qs[_0x3204('0x3b')](_0x1de6e5[_0x3204('0x32')][_0x3204('0x3b')]);_0x657b30[_0x3204('0x3c')]=qs[_0x3204('0x33')](_['pick'](_0x1de6e5[_0x3204('0x32')],_0x255400[_0x3204('0x33')]),_0x3d0625);if(_0x1de6e5[_0x3204('0x32')][_0x3204('0x3d')]){_0x657b30[_0x3204('0x3c')]=_['merge'](_0x657b30[_0x3204('0x3c')],{'$or':_[_0x3204('0x2b')](_0x3d0625,function(_0x20142e){if(_0x20142e[_0x3204('0x2f')]!==_0x3204('0x3e')){var _0x37ee09={};_0x37ee09[_0x20142e['name']]={'$like':'%'+_0x1de6e5[_0x3204('0x32')][_0x3204('0x3d')]+'%'};return _0x37ee09;}})});}_0x657b30=_['merge']({},_0x657b30,_0x1de6e5[_0x3204('0x3f')]);var _0x22a08d={'where':_0x657b30[_0x3204('0x3c')]};return db[_0x3204('0x2c')][_0x3204('0x40')](_0x22a08d)[_0x3204('0x15')](function(_0x3c8638){_0x5c25cb[_0x3204('0x40')]=_0x3c8638;if(_0x1de6e5[_0x3204('0x32')][_0x3204('0x41')]){_0x657b30[_0x3204('0x42')]=[{'all':!![]}];}return db[_0x3204('0x2c')][_0x3204('0x43')](_0x657b30);})[_0x3204('0x15')](function(_0x5199b8){_0x5c25cb['rows']=_0x5199b8;return _0x5c25cb;})['then'](respondWithFilteredResult(_0x363bcb,_0x657b30))[_0x3204('0x1e')](handleError(_0x363bcb,null));};exports[_0x3204('0x44')]=function(_0x50260d,_0x51d6bc){var _0xb2f7a8={'raw':!![],'where':{'id':_0x50260d[_0x3204('0x45')]['id']}},_0x4e4c6a={};_0x4e4c6a['model']=_[_0x3204('0x46')](db[_0x3204('0x2c')]['rawAttributes']);_0x4e4c6a[_0x3204('0x32')]=_[_0x3204('0x46')](_0x50260d[_0x3204('0x32')]);_0x4e4c6a[_0x3204('0x33')]=_['intersection'](_0x4e4c6a[_0x3204('0x31')],_0x4e4c6a[_0x3204('0x32')]);_0xb2f7a8['attributes']=_[_0x3204('0x34')](_0x4e4c6a[_0x3204('0x31')],qs[_0x3204('0x36')](_0x50260d['query'][_0x3204('0x36')]));_0xb2f7a8[_0x3204('0x35')]=_0xb2f7a8['attributes']['length']?_0xb2f7a8[_0x3204('0x35')]:_0x4e4c6a[_0x3204('0x31')];if(_0x50260d['query'][_0x3204('0x41')]){_0xb2f7a8[_0x3204('0x42')]=[{'all':!![]}];}_0xb2f7a8=_[_0x3204('0x47')]({},_0xb2f7a8,_0x50260d[_0x3204('0x3f')]);return db[_0x3204('0x2c')][_0x3204('0x48')](_0xb2f7a8)[_0x3204('0x15')](handleEntityNotFound(_0x51d6bc,null))[_0x3204('0x15')](respondWithResult(_0x51d6bc,null))[_0x3204('0x1e')](handleError(_0x51d6bc,null));};exports[_0x3204('0x49')]=function(_0x165447,_0x5f3b9e){if(_0x165447[_0x3204('0x4a')]['id']){delete _0x165447['body']['id'];}return db['MailMessage']['find']({'where':{'id':_0x165447[_0x3204('0x45')]['id']}})[_0x3204('0x15')](handleEntityNotFound(_0x5f3b9e,null))[_0x3204('0x15')](saveUpdates(_0x165447[_0x3204('0x4a')],null))[_0x3204('0x15')](respondWithResult(_0x5f3b9e,null))[_0x3204('0x1e')](handleError(_0x5f3b9e,null));};exports[_0x3204('0x25')]=function(_0x259de5,_0x1af728){return db[_0x3204('0x2c')]['find']({'where':{'id':_0x259de5[_0x3204('0x45')]['id']}})[_0x3204('0x15')](handleEntityNotFound(_0x1af728,null))[_0x3204('0x15')](removeEntity(_0x1af728,null))[_0x3204('0x1e')](handleError(_0x1af728,null));};exports[_0x3204('0x4b')]=function(_0xa6d9ff,_0x3e14d4){return db[_0x3204('0x2c')][_0x3204('0x4b')]()[_0x3204('0x15')](respondWithResult(_0x3e14d4,null))[_0x3204('0x1e')](handleError(_0x3e14d4,null));};exports['create']=function(_0x7169da,_0x130edf){return db[_0x3204('0x2c')][_0x3204('0x4c')](_0x7169da['body'])[_0x3204('0x15')](function(_0x3ef3d0){if(_0x3ef3d0){if(_0x3ef3d0[_0x3204('0x4d')]===_0x3204('0x4e')&&!_0x3ef3d0[_0x3204('0x4f')]){var _0x32b3e5,_0x3d6ff3,_0x4d4e48;if(_0x7169da[_0x3204('0x4a')]['to']){_0x3d6ff3=_0x7169da[_0x3204('0x4a')]['to']['split'](',')[0x0];}return db['MailAccount'][_0x3204('0x50')]({'where':{'id':_0x3ef3d0[_0x3204('0x51')]},'include':[{'model':db[_0x3204('0x52')],'as':_0x3204('0x53'),'include':[{'model':db[_0x3204('0x54')],'as':_0x3204('0x55'),'where':{'email':_0x3d6ff3},'limit':0x1,'order':[[_0x3204('0x56'),_0x3204('0x57')]]}]},{'model':db[_0x3204('0x58')],'as':_0x3204('0x59'),'raw':!![],'include':[{'model':db[_0x3204('0x5a')],'as':_0x3204('0x5a'),'raw':!![]}]}]})[_0x3204('0x15')](function(_0x53b90e){_0x32b3e5=_0x53b90e;if(!_0x32b3e5||!_0x32b3e5[_0x3204('0x59')])return;var _0x508fb4=_0x32b3e5[_0x3204('0x5b')]();if(_0x7169da['body']['attachments']&&_0x7169da[_0x3204('0x4a')][_0x3204('0x5c')]['length']){for(var _0x3e6b4b=0x0;_0x3e6b4b<_0x7169da[_0x3204('0x4a')][_0x3204('0x5c')][_0x3204('0x37')];_0x3e6b4b+=0x1){_0x7169da[_0x3204('0x4a')]['attachments'][_0x3e6b4b]={'filename':_0x7169da['body'][_0x3204('0x5c')][_0x3e6b4b][_0x3204('0x28')],'path':path['join'](config['root'],_0x3204('0x5d'),_0x7169da[_0x3204('0x4a')][_0x3204('0x5c')][_0x3e6b4b][_0x3204('0x5e')])};}}_0x4d4e48={'account':_0x508fb4,'message':_0x7169da[_0x3204('0x4a')]};return;})[_0x3204('0x15')](function(){if(_0x32b3e5[_0x3204('0x53')]){if(_0x32b3e5[_0x3204('0x53')][_0x3204('0x55')]['length']){return _0x32b3e5[_0x3204('0x53')]['Contacts'][0x0];}else{return db[_0x3204('0x54')]['create'](_[_0x3204('0xc')](_0x7169da['body'],{'firstName':_0x7169da[_0x3204('0x4a')]['to'],'email':_0x7169da['body']['to'],'phone':_0x7169da[_0x3204('0x4a')]['to'],'ListId':_0x32b3e5[_0x3204('0x5f')]}));}}else{throw new Error(_0x3204('0x60'));}})['then'](function(){if(_0x4d4e48){return respondWithRpcPromise(_0x3204('0x61'),_0x3204('0x62'),_0x4d4e48,client9003)[_0x3204('0x15')](function(_0x46dc65){return _0x3ef3d0[_0x3204('0x49')]({'read':!![],'messageId':_0x46dc65[_0x3204('0x63')],'sentAt':moment()[_0x3204('0x64')](_0x3204('0x65'))});})[_0x3204('0x1e')](function(_0x26a336){logger[_0x3204('0x1b')]('%s',JSON[_0x3204('0x1a')](_0x26a336));return _0x3ef3d0;});}return _0x3ef3d0;});}return _0x3ef3d0;}})[_0x3204('0x15')](respondWithResult(_0x130edf,0xc9))[_0x3204('0x1e')](handleError(_0x130edf,null));};exports[_0x3204('0x66')]=function(_0x497f27,_0x2cf5fe){var _0x2a05a4={'agent':{},'channel':_0x3204('0x67')};if(_0x497f27[_0x3204('0x4a')]['id']){delete _0x497f27[_0x3204('0x4a')]['id'];}_0x497f27['body']['read']=!![];_0x497f27['body'][_0x3204('0x68')]=moment()[_0x3204('0x64')](_0x3204('0x65'));_0x497f27[_0x3204('0x4a')][_0x3204('0x69')]=_0x497f27['body'][_0x3204('0x69')]||_0x497f27[_0x3204('0x6a')]['id'];_0x2a05a4[_0x3204('0x6b')]['id']=_0x497f27[_0x3204('0x4a')][_0x3204('0x69')];return db[_0x3204('0x2c')]['find']({'where':{'id':_0x497f27[_0x3204('0x45')]['id'],'UserId':null}})[_0x3204('0x15')](handleEntityNotFound(_0x2cf5fe,null))[_0x3204('0x15')](saveUpdates(_0x497f27[_0x3204('0x4a')],null))['then'](function(_0x31997e){if(_0x31997e){_0x2a05a4['message']=_0x31997e[_0x3204('0x6c')]({'plain':!![]});return db[_0x3204('0x6d')][_0x3204('0x48')]({'where':{'id':_0x31997e['MailInteractionId']}});}return null;})[_0x3204('0x15')](handleEntityNotFound(_0x2cf5fe,null))[_0x3204('0x15')](function(_0x454a8a){if(_0x454a8a){return _0x454a8a['update']({'UserId':_0x497f27[_0x3204('0x4a')][_0x3204('0x69')],'read1stAt':_[_0x3204('0x6e')](_0x454a8a[_0x3204('0x6f')])?moment()['format'](_0x3204('0x65')):undefined});}return null;})[_0x3204('0x15')](function(_0x4808aa){if(_0x4808aa){_0x2a05a4[_0x3204('0x70')]=_0x4808aa['get']({'plain':!![]});interaction_log[_0x3204('0x16')](_0x3204('0x71'),_0x497f27[_0x3204('0x6a')]['id'],_0x497f27[_0x3204('0x6a')][_0x3204('0x28')],_0x497f27[_0x3204('0x6a')][_0x3204('0x72')],_0x2a05a4[_0x3204('0x70')]['id'],_0x497f27['body']?JSON[_0x3204('0x1a')](_0x497f27[_0x3204('0x4a')]):_0x3204('0x73'));return respondWithRpcPromise(_0x3204('0x74'),_0x3204('0x75'),_0x2a05a4);}return null;})[_0x3204('0x15')](function(_0x2966d1){var _0x4e2665=_0x3204('0x76')+_0x2966d1['message'][_0x3204('0x77')];return db[_0x3204('0x78')]['query'](_0x4e2665,{'type':db[_0x3204('0x79')][_0x3204('0x7a')][_0x3204('0x7b')],'raw':!![]})[_0x3204('0x15')](function(_0x1fae2d){return _0x1fae2d;});})[_0x3204('0x15')](function(_0x5af94f){if(_0x5af94f){_0x2a05a4['message'][_0x3204('0x7c')]=_0x5af94f[0x0];if(!_0x497f27['body'][_0x3204('0x69')])return;return db['User']['find']({'where':{'id':_0x497f27[_0x3204('0x4a')][_0x3204('0x69')],'role':_0x3204('0x6b')},'attributes':['id',_0x3204('0x28'),_0x3204('0x7d'),_0x3204('0x7e'),'internal'],'raw':!![]});}return null;})[_0x3204('0x15')](function(_0x59fbe6){if(!_0x59fbe6)return null;_0x2a05a4[_0x3204('0x1c')][_0x3204('0x6b')]=_0x59fbe6;return _0x2a05a4;})[_0x3204('0x15')](function(_0x254e3a){if(_0x254e3a){if(_0x497f27['body'][_0x3204('0x7f')]){_0x2a05a4[_0x3204('0x1c')]['interface']=util[_0x3204('0x64')]('SIP/%s',_0x497f27[_0x3204('0x6a')][_0x3204('0x28')]);_0x2a05a4[_0x3204('0x1c')][_0x3204('0x80')]=_0x2a05a4[_0x3204('0x80')];_0x2a05a4[_0x3204('0x1c')]['motionChannel']=_0x2a05a4[_0x3204('0x80')];_0x2a05a4[_0x3204('0x1c')][_0x3204('0x81')]=_0x3204('0x66');_0x2a05a4[_0x3204('0x1c')]['body']=htmlToText[_0x3204('0x82')](_0x2a05a4[_0x3204('0x1c')]['body']);return respondWithRpcPromise(_0x3204('0x83'),_0x3204('0x83'),{'event':_0x3204('0x84'),'message':_0x2a05a4[_0x3204('0x1c')]},client9002)[_0x3204('0x15')](function(){return _0x2a05a4;});}return _0x2a05a4;}return null;})[_0x3204('0x15')](respondWithResult(_0x2cf5fe,null))['catch'](handleError(_0x2cf5fe,null));};exports[_0x3204('0x85')]=function(_0x3a1985,_0x246a94){var _0x3ad5bd={'agent':{},'channel':'mail'};if(_0x3a1985[_0x3204('0x4a')]['id']){delete _0x3a1985[_0x3204('0x4a')]['id'];}_0x3a1985['body'][_0x3204('0x69')]=_0x3a1985['body'][_0x3204('0x69')]||_0x3a1985[_0x3204('0x6a')]['id'];_0x3ad5bd['agent']['id']=_0x3a1985[_0x3204('0x4a')]['UserId'];return db['MailMessage'][_0x3204('0x48')]({'where':{'id':_0x3a1985[_0x3204('0x45')]['id'],'UserId':null}})[_0x3204('0x15')](handleEntityNotFound(_0x246a94,null))[_0x3204('0x15')](function(_0xd167b6){if(_0xd167b6){_0x3ad5bd[_0x3204('0x1c')]=_0xd167b6['get']({'plain':!![]});return db[_0x3204('0x6d')][_0x3204('0x48')]({'where':{'id':_0xd167b6[_0x3204('0x86')]}});}return null;})[_0x3204('0x15')](handleEntityNotFound(_0x246a94,null))[_0x3204('0x15')](function(_0xcf2f02){if(_0xcf2f02){_0x3ad5bd[_0x3204('0x70')]=_0xcf2f02['get']({'plain':!![]});interaction_log[_0x3204('0x16')](_0x3204('0x87'),_0x3a1985[_0x3204('0x6a')]['id'],_0x3a1985[_0x3204('0x6a')][_0x3204('0x28')],_0x3a1985[_0x3204('0x6a')][_0x3204('0x72')],_0x3ad5bd[_0x3204('0x70')]['id'],_0x3a1985[_0x3204('0x4a')]?JSON[_0x3204('0x1a')](_0x3a1985[_0x3204('0x4a')]):_0x3204('0x73'));return respondWithRpcPromise(_0x3204('0x88'),_0x3204('0x89'),_0x3ad5bd);}return null;})[_0x3204('0x15')](function(_0x518924){var _0x59d0d2=_0x3204('0x76')+_0x518924[_0x3204('0x1c')][_0x3204('0x77')];return db[_0x3204('0x78')]['query'](_0x59d0d2,{'type':db[_0x3204('0x79')][_0x3204('0x7a')][_0x3204('0x7b')],'raw':!![]})[_0x3204('0x15')](function(_0x52d4ec){return _0x52d4ec;});})['then'](function(_0x3b38d5){if(_0x3b38d5){_0x3ad5bd[_0x3204('0x1c')][_0x3204('0x7c')]=_0x3b38d5[0x0];if(!_0x3a1985[_0x3204('0x4a')][_0x3204('0x69')])return;return db[_0x3204('0x8a')]['find']({'where':{'id':_0x3a1985[_0x3204('0x4a')][_0x3204('0x69')],'role':_0x3204('0x6b')},'attributes':['id',_0x3204('0x28'),_0x3204('0x7d'),_0x3204('0x7e'),_0x3204('0x8b')],'raw':!![]});}return null;})['then'](function(_0x2ad0bc){if(!_0x2ad0bc)return null;_0x3ad5bd['message'][_0x3204('0x6b')]=_0x2ad0bc;return _0x3ad5bd;})[_0x3204('0x15')](function(_0x5f094f){if(_0x5f094f){_0x5f094f[_0x3204('0x1c')]['interface']=util[_0x3204('0x64')](_0x3204('0x8c'),_0x3a1985[_0x3204('0x6a')][_0x3204('0x28')]);_0x5f094f[_0x3204('0x1c')][_0x3204('0x80')]=_0x3ad5bd[_0x3204('0x80')];_0x5f094f[_0x3204('0x1c')][_0x3204('0x8d')]=_0x3ad5bd[_0x3204('0x80')];_0x5f094f[_0x3204('0x1c')][_0x3204('0x81')]=_0x3204('0x85');_0x5f094f['message'][_0x3204('0x4a')]=htmlToText[_0x3204('0x82')](_0x3ad5bd['message']['body']);respondWithRpcPromise(_0x3204('0x83'),_0x3204('0x83'),{'event':_0x3204('0x8e'),'message':_0x5f094f[_0x3204('0x1c')]},client9002);return _0x3ad5bd;}return null;})[_0x3204('0x15')](respondWithResult(_0x246a94,null))[_0x3204('0x1e')](handleError(_0x246a94,null));};exports['download']=function(_0x4ec0a1,_0x3f81dd){var _0x4901c7=moment()['unix']()['toString']();var _0x15594a=path[_0x3204('0x8f')](config[_0x3204('0x90')],_0x3204('0x91'),_0x3204('0x92'),_0x3204('0x93'));var _0x1765e5=path[_0x3204('0x8f')](config[_0x3204('0x90')],_0x3204('0x91'),'files',_0x3204('0x5c'));var _0x414411=util[_0x3204('0x64')]('message-%s.eml',_0x4901c7);return db['MailMessage']['find']({'where':{'id':_0x4ec0a1[_0x3204('0x45')]['id']},'attributes':['id',_0x3204('0x4a'),_0x3204('0x94'),'to','cc',_0x3204('0x95'),'subject',_0x3204('0x96')],'include':_0x4ec0a1[_0x3204('0x32')][_0x3204('0x5c')]?[{'model':db[_0x3204('0x97')],'as':_0x3204('0x98')}]:undefined})['then'](handleEntityNotFound(_0x3f81dd,null))[_0x3204('0x15')](function(_0x4b2670){if(_0x4b2670){var _0x36fb02=_0x4b2670;var _0x253c94={'from':_0x36fb02[_0x3204('0x94')],'to':_0x36fb02['to'],'subject':_0x36fb02[_0x3204('0x99')],'html':htmlEntities[_0x3204('0x9a')](_0x36fb02[_0x3204('0x4a')]),'headers':{'Date':moment(_0x36fb02[_0x3204('0x96')])['format'](_0x3204('0x9b'))},'attachments':[]};if(_0x4b2670['cc']){_0x253c94['headers']['Cc']=_0x4b2670['cc'];}if(_0x4b2670['bcc']){_0x253c94[_0x3204('0x9c')]['Bcc']=_0x4b2670['bcc'];}return new BPromise(function(_0x23b0c4,_0x3ef755){if(_0x4b2670[_0x3204('0x98')]){for(var _0x4abe6d=0x0;_0x4abe6d<_0x4b2670[_0x3204('0x98')][_0x3204('0x37')];_0x4abe6d++){var _0x5475bc=_0x4b2670['Attachments'][_0x4abe6d];var _0x4843e6=path['join'](_0x1765e5,_0x5475bc[_0x3204('0x5e')]);if(fs[_0x3204('0x9d')](_0x4843e6)){_0x253c94[_0x3204('0x5c')][_0x3204('0x9e')]({'name':_0x5475bc[_0x3204('0x28')],'contentType':_0x5475bc[_0x3204('0x2f')],'data':fs['readFileSync'](_0x4843e6)});}}}emlformat[_0x3204('0x9f')](_0x253c94,function(_0x368a6e,_0x386c72){if(_0x368a6e)return _0x3ef755(_0x368a6e);fs[_0x3204('0xa0')](path[_0x3204('0x8f')](_0x15594a,_0x414411),_0x386c72);return _0x23b0c4(_0x386c72);});});}})[_0x3204('0x15')](function(_0x34d5be){if(_0x34d5be){return _0x3f81dd['download'](path[_0x3204('0x8f')](_0x15594a,_0x414411),_0x414411,function(_0xb49320){if(!_0xb49320)fs[_0x3204('0xa1')](path[_0x3204('0x8f')](_0x15594a,_0x414411));});}})['catch'](handleError(_0x3f81dd,null));};