Built motion from commit da617fac.|2.6.6
[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 _0x767a=['user','get','MailInteraction','MailInteractionId','isNil','read1stAt','interaction','[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','AcceptMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','Sequelize','SELECT','contact','User','agent','fullname','interface','SIP/%s','channel','EventManager','acceptmessage','mail','RejectMessage','rejectMessage','QueryTypes','email','motionChannel','event','reject','fromString','rejectmessage','unix','toString','server','files','tmp','from','bcc','subject','Attachment','Attachments','decode','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','existsSync','push','readFileSync','build','download','unlinkSync','eml-format','bluebird','util','ioredis','html-to-text','../../config/logger','api','mail-interactions','../../config/environment','../../mysqldb','redis','localhost','register','jayson/promise','client','http','request','then','info','MailMessage,\x20%s,\x20%s','request\x20sent','debug','MailMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','catch','status','json','offset','undefined','limit','Content-Range','destroy','stack','name','send','index','map','fieldName','type','keys','query','attributes','intersection','model','fields','length','nolimit','order','sort','where','filters','pick','merge','filter','options','MailMessage','count','includeAll','include','findAll','rows','show','params','rawAttributes','find','update','body','describe','create','direction','out','secret','split','findOne','MailAccountId','CmList','CmContact','Contacts','updatedAt','DESC','MailServerOut','CloudProvider','attachments','join','root','basename','List','ListId','List\x20not\x20found','messageId','YYYY-MM-DD\x20HH:mm:ss','accept','read','format','UserId'];(function(_0x154e0d,_0x2d81a7){var _0x206294=function(_0xb5a963){while(--_0xb5a963){_0x154e0d['push'](_0x154e0d['shift']());}};_0x206294(++_0x2d81a7);}(_0x767a,0xce));var _0xa767=function(_0x297fd3,_0x115406){_0x297fd3=_0x297fd3-0x0;var _0x2af381=_0x767a[_0x297fd3];return _0x2af381;};'use strict';var emlformat=require(_0xa767('0x0'));var moment=require('moment');var BPromise=require(_0xa767('0x1'));var util=require(_0xa767('0x2'));var path=require('path');var fs=require('fs');var _=require('lodash');var Redis=require(_0xa767('0x3'));var htmlToText=require(_0xa767('0x4'));var qs=require('../../components/parsers/qs');var logger=require(_0xa767('0x5'))(_0xa767('0x6'));var interaction_log=require(_0xa767('0x5'))(_0xa767('0x7'));var config=require(_0xa767('0x8'));var db=require(_0xa767('0x9'))['db'];config[_0xa767('0xa')]=_['defaults'](config[_0xa767('0xa')],{'host':_0xa767('0xb'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xa767('0xa')]));var htmlEntities=require('html-entities');require('./mailMessage.socket')[_0xa767('0xc')](socket);var jayson=require(_0xa767('0xd'));var client=jayson[_0xa767('0xe')]['http']({'port':0x232c});var client9003=jayson['client'][_0xa767('0xf')]({'port':0x232b});var client9002=jayson['client'][_0xa767('0xf')]({'port':0x232a});function respondWithRpcPromise(_0x5c7e0a,_0x270a85,_0x3c7809,_0x486810){return new BPromise(function(_0x57c6cc,_0x32a595){var _0x1401f2=_0x486810||client;return _0x1401f2[_0xa767('0x10')](_0x5c7e0a,_0x3c7809)[_0xa767('0x11')](function(_0x55d784){logger[_0xa767('0x12')](_0xa767('0x13'),_0x270a85,_0xa767('0x14'));logger[_0xa767('0x15')](_0xa767('0x16'),_0x270a85,_0xa767('0x14'),JSON[_0xa767('0x17')](_0x55d784));if(_0x55d784[_0xa767('0x18')]){if(_0x55d784[_0xa767('0x18')][_0xa767('0x19')]===0x1f4){logger[_0xa767('0x18')](_0xa767('0x13'),_0x270a85,_0x55d784[_0xa767('0x18')][_0xa767('0x1a')]);return _0x32a595(_0x55d784[_0xa767('0x18')]['message']);}logger[_0xa767('0x18')]('MailMessage,\x20%s,\x20%s',_0x270a85,_0x55d784[_0xa767('0x18')]['message']);return _0x57c6cc(_0x55d784[_0xa767('0x18')][_0xa767('0x1a')]);}else{logger[_0xa767('0x12')]('MailMessage,\x20%s,\x20%s',_0x270a85,_0xa767('0x14'));_0x57c6cc(_0x55d784['result'][_0xa767('0x1a')]);}})[_0xa767('0x1b')](function(_0x1374ec){logger[_0xa767('0x18')]('MailMessage,\x20%s,\x20%s',_0x270a85,_0x1374ec);_0x32a595(_0x1374ec);});});}function respondWithResult(_0x33a0cf,_0x51d7f1){_0x51d7f1=_0x51d7f1||0xc8;return function(_0x7ffbaa){if(_0x7ffbaa){return _0x33a0cf[_0xa767('0x1c')](_0x51d7f1)[_0xa767('0x1d')](_0x7ffbaa);}};}function respondWithFilteredResult(_0x2a7cfa,_0x5225b7){return function(_0x2e1655){if(_0x2e1655){var _0x17fda8=typeof _0x5225b7[_0xa767('0x1e')]===_0xa767('0x1f')&&typeof _0x5225b7[_0xa767('0x20')]===_0xa767('0x1f');var _0x3bb576=_0x2e1655['count'];var _0x3fe796=_0x17fda8?0x0:_0x5225b7[_0xa767('0x1e')];var _0x514f11=_0x17fda8?_0x2e1655['count']:_0x5225b7[_0xa767('0x1e')]+_0x5225b7[_0xa767('0x20')];var _0x55de0b;if(_0x514f11>=_0x3bb576){_0x514f11=_0x3bb576;_0x55de0b=0xc8;}else{_0x55de0b=0xce;}_0x2a7cfa[_0xa767('0x1c')](_0x55de0b);return _0x2a7cfa['set'](_0xa767('0x21'),_0x3fe796+'-'+_0x514f11+'/'+_0x3bb576)[_0xa767('0x1d')](_0x2e1655);}return null;};}function saveUpdates(_0x402bdd){return function(_0x2d6c3d){if(_0x2d6c3d){return _0x2d6c3d['update'](_0x402bdd)[_0xa767('0x11')](function(_0x178795){return _0x178795;});}return null;};}function removeEntity(_0x58be9e){return function(_0x3cf9c1){if(_0x3cf9c1){return _0x3cf9c1[_0xa767('0x22')]()[_0xa767('0x11')](function(){_0x58be9e[_0xa767('0x1c')](0xcc)['end']();});}};}function handleEntityNotFound(_0x19f397){return function(_0x31051f){if(!_0x31051f){_0x19f397['sendStatus'](0x194);}return _0x31051f;};}function handleError(_0x326f4d,_0x425f82){_0x425f82=_0x425f82||0x1f4;return function(_0x5392a9){logger['error'](_0x5392a9[_0xa767('0x23')]);if(_0x5392a9['name']){delete _0x5392a9[_0xa767('0x24')];}_0x326f4d['status'](_0x425f82)[_0xa767('0x25')](_0x5392a9);};}exports[_0xa767('0x26')]=function(_0x5097fb,_0x1fd71b){var _0x62f7ea={},_0xde040e={},_0x2c67c7={'count':0x0,'rows':[]};var _0x1c3b68=_[_0xa767('0x27')](db['MailMessage']['rawAttributes'],function(_0x4a2beb){return{'name':_0x4a2beb[_0xa767('0x28')],'type':_0x4a2beb[_0xa767('0x29')]['key']};});_0xde040e['model']=_[_0xa767('0x27')](_0x1c3b68,_0xa767('0x24'));_0xde040e['query']=_[_0xa767('0x2a')](_0x5097fb['query']);_0xde040e['filters']=_['intersection'](_0xde040e['model'],_0xde040e[_0xa767('0x2b')]);_0x62f7ea[_0xa767('0x2c')]=_[_0xa767('0x2d')](_0xde040e[_0xa767('0x2e')],qs[_0xa767('0x2f')](_0x5097fb[_0xa767('0x2b')][_0xa767('0x2f')]));_0x62f7ea[_0xa767('0x2c')]=_0x62f7ea[_0xa767('0x2c')][_0xa767('0x30')]?_0x62f7ea[_0xa767('0x2c')]:_0xde040e[_0xa767('0x2e')];if(!_0x5097fb['query']['hasOwnProperty'](_0xa767('0x31'))){_0x62f7ea[_0xa767('0x20')]=qs[_0xa767('0x20')](_0x5097fb[_0xa767('0x2b')][_0xa767('0x20')]);_0x62f7ea['offset']=qs['offset'](_0x5097fb['query'][_0xa767('0x1e')]);}_0x62f7ea[_0xa767('0x32')]=qs[_0xa767('0x33')](_0x5097fb[_0xa767('0x2b')][_0xa767('0x33')]);_0x62f7ea[_0xa767('0x34')]=qs[_0xa767('0x35')](_[_0xa767('0x36')](_0x5097fb[_0xa767('0x2b')],_0xde040e['filters']),_0x1c3b68);if(_0x5097fb[_0xa767('0x2b')]['filter']){_0x62f7ea[_0xa767('0x34')]=_[_0xa767('0x37')](_0x62f7ea[_0xa767('0x34')],{'$or':_[_0xa767('0x27')](_0x1c3b68,function(_0x2b5339){if(_0x2b5339['type']!=='VIRTUAL'){var _0x434fc6={};_0x434fc6[_0x2b5339[_0xa767('0x24')]]={'$like':'%'+_0x5097fb[_0xa767('0x2b')][_0xa767('0x38')]+'%'};return _0x434fc6;}})});}_0x62f7ea=_['merge']({},_0x62f7ea,_0x5097fb[_0xa767('0x39')]);var _0x24f018={'where':_0x62f7ea['where']};return db[_0xa767('0x3a')][_0xa767('0x3b')](_0x24f018)[_0xa767('0x11')](function(_0x2946c3){_0x2c67c7['count']=_0x2946c3;if(_0x5097fb[_0xa767('0x2b')][_0xa767('0x3c')]){_0x62f7ea[_0xa767('0x3d')]=[{'all':!![]}];}return db['MailMessage'][_0xa767('0x3e')](_0x62f7ea);})['then'](function(_0x395bf4){_0x2c67c7[_0xa767('0x3f')]=_0x395bf4;return _0x2c67c7;})['then'](respondWithFilteredResult(_0x1fd71b,_0x62f7ea))[_0xa767('0x1b')](handleError(_0x1fd71b,null));};exports[_0xa767('0x40')]=function(_0x49f0f5,_0x35faca){var _0x4fe05e={'raw':!![],'where':{'id':_0x49f0f5[_0xa767('0x41')]['id']}},_0x19a09d={};_0x19a09d['model']=_[_0xa767('0x2a')](db[_0xa767('0x3a')][_0xa767('0x42')]);_0x19a09d[_0xa767('0x2b')]=_[_0xa767('0x2a')](_0x49f0f5['query']);_0x19a09d[_0xa767('0x35')]=_[_0xa767('0x2d')](_0x19a09d[_0xa767('0x2e')],_0x19a09d[_0xa767('0x2b')]);_0x4fe05e[_0xa767('0x2c')]=_[_0xa767('0x2d')](_0x19a09d[_0xa767('0x2e')],qs[_0xa767('0x2f')](_0x49f0f5[_0xa767('0x2b')][_0xa767('0x2f')]));_0x4fe05e[_0xa767('0x2c')]=_0x4fe05e[_0xa767('0x2c')][_0xa767('0x30')]?_0x4fe05e[_0xa767('0x2c')]:_0x19a09d[_0xa767('0x2e')];if(_0x49f0f5['query']['includeAll']){_0x4fe05e[_0xa767('0x3d')]=[{'all':!![]}];}_0x4fe05e=_[_0xa767('0x37')]({},_0x4fe05e,_0x49f0f5['options']);return db[_0xa767('0x3a')][_0xa767('0x43')](_0x4fe05e)[_0xa767('0x11')](handleEntityNotFound(_0x35faca,null))[_0xa767('0x11')](respondWithResult(_0x35faca,null))['catch'](handleError(_0x35faca,null));};exports[_0xa767('0x44')]=function(_0x13135f,_0x2684b6){if(_0x13135f['body']['id']){delete _0x13135f[_0xa767('0x45')]['id'];}return db['MailMessage']['find']({'where':{'id':_0x13135f[_0xa767('0x41')]['id']}})[_0xa767('0x11')](handleEntityNotFound(_0x2684b6,null))[_0xa767('0x11')](saveUpdates(_0x13135f[_0xa767('0x45')],null))[_0xa767('0x11')](respondWithResult(_0x2684b6,null))[_0xa767('0x1b')](handleError(_0x2684b6,null));};exports[_0xa767('0x22')]=function(_0x349f7b,_0x252e9f){return db[_0xa767('0x3a')][_0xa767('0x43')]({'where':{'id':_0x349f7b[_0xa767('0x41')]['id']}})[_0xa767('0x11')](handleEntityNotFound(_0x252e9f,null))[_0xa767('0x11')](removeEntity(_0x252e9f,null))[_0xa767('0x1b')](handleError(_0x252e9f,null));};exports[_0xa767('0x46')]=function(_0x4f4a60,_0x379bdf){return db[_0xa767('0x3a')][_0xa767('0x46')]()['then'](respondWithResult(_0x379bdf,null))[_0xa767('0x1b')](handleError(_0x379bdf,null));};exports[_0xa767('0x47')]=function(_0x527725,_0x16aa3c){return db[_0xa767('0x3a')][_0xa767('0x47')](_0x527725[_0xa767('0x45')])[_0xa767('0x11')](function(_0x1f6c62){if(_0x1f6c62){if(_0x1f6c62[_0xa767('0x48')]===_0xa767('0x49')&&!_0x1f6c62[_0xa767('0x4a')]){var _0x3cf75a,_0x40de57,_0x48d32a;if(_0x527725[_0xa767('0x45')]['to']){_0x40de57=_0x527725[_0xa767('0x45')]['to'][_0xa767('0x4b')](',')[0x0];}return db['MailAccount'][_0xa767('0x4c')]({'where':{'id':_0x1f6c62[_0xa767('0x4d')]},'include':[{'model':db[_0xa767('0x4e')],'as':'List','include':[{'model':db[_0xa767('0x4f')],'as':_0xa767('0x50'),'where':{'email':_0x40de57},'limit':0x1,'order':[[_0xa767('0x51'),_0xa767('0x52')]]}]},{'model':db[_0xa767('0x53')],'as':'Smtp','raw':!![],'include':[{'model':db[_0xa767('0x54')],'as':'CloudProvider','raw':!![]}]}]})[_0xa767('0x11')](function(_0x1de1b1){_0x3cf75a=_0x1de1b1;if(!_0x3cf75a||!_0x3cf75a['Smtp'])return;var _0x5b37e7=_0x3cf75a['getSmtpOptions']();if(_0x527725[_0xa767('0x45')][_0xa767('0x55')]&&_0x527725['body']['attachments'][_0xa767('0x30')]){for(var _0x4a7f89=0x0;_0x4a7f89<_0x527725[_0xa767('0x45')]['attachments'][_0xa767('0x30')];_0x4a7f89+=0x1){_0x527725[_0xa767('0x45')][_0xa767('0x55')][_0x4a7f89]={'filename':_0x527725[_0xa767('0x45')][_0xa767('0x55')][_0x4a7f89][_0xa767('0x24')],'path':path[_0xa767('0x56')](config[_0xa767('0x57')],'server/files/attachments',_0x527725['body'][_0xa767('0x55')][_0x4a7f89][_0xa767('0x58')])};}}_0x48d32a={'account':_0x5b37e7,'message':_0x527725[_0xa767('0x45')]};return;})['then'](function(){if(_0x3cf75a[_0xa767('0x59')]){if(_0x3cf75a[_0xa767('0x59')][_0xa767('0x50')][_0xa767('0x30')]){return _0x3cf75a[_0xa767('0x59')][_0xa767('0x50')][0x0];}else{return db['CmContact'][_0xa767('0x47')](_['defaults'](_0x527725[_0xa767('0x45')],{'firstName':_0x527725[_0xa767('0x45')]['to'],'email':_0x527725[_0xa767('0x45')]['to'],'phone':_0x527725[_0xa767('0x45')]['to'],'ListId':_0x3cf75a[_0xa767('0x5a')]}));}}else{throw new Error(_0xa767('0x5b'));}})[_0xa767('0x11')](function(){if(_0x48d32a){return respondWithRpcPromise('SendMail','sendMail',_0x48d32a,client9003)[_0xa767('0x11')](function(_0x424a82){return _0x1f6c62[_0xa767('0x44')]({'read':!![],'messageId':_0x424a82[_0xa767('0x5c')],'sentAt':moment()['format'](_0xa767('0x5d'))});})[_0xa767('0x1b')](function(_0x54176a){logger[_0xa767('0x18')]('%s',JSON[_0xa767('0x17')](_0x54176a));return _0x1f6c62;});}return _0x1f6c62;});}return _0x1f6c62;}})[_0xa767('0x11')](respondWithResult(_0x16aa3c,0xc9))[_0xa767('0x1b')](handleError(_0x16aa3c,null));};exports[_0xa767('0x5e')]=function(_0x47c756,_0x6abb3f){var _0x1d6518={'agent':{},'channel':'mail'};if(_0x47c756[_0xa767('0x45')]['id']){delete _0x47c756[_0xa767('0x45')]['id'];}_0x47c756[_0xa767('0x45')][_0xa767('0x5f')]=!![];_0x47c756[_0xa767('0x45')]['readAt']=moment()[_0xa767('0x60')](_0xa767('0x5d'));_0x47c756['body'][_0xa767('0x61')]=_0x47c756['body'][_0xa767('0x61')]||_0x47c756[_0xa767('0x62')]['id'];_0x1d6518['agent']['id']=_0x47c756['body'][_0xa767('0x61')];return db[_0xa767('0x3a')][_0xa767('0x43')]({'where':{'id':_0x47c756['params']['id'],'UserId':null}})['then'](handleEntityNotFound(_0x6abb3f,null))[_0xa767('0x11')](saveUpdates(_0x47c756[_0xa767('0x45')],null))[_0xa767('0x11')](function(_0x255637){if(_0x255637){_0x1d6518[_0xa767('0x1a')]=_0x255637[_0xa767('0x63')]({'plain':!![]});return db[_0xa767('0x64')]['find']({'where':{'id':_0x255637[_0xa767('0x65')]}});}return null;})[_0xa767('0x11')](handleEntityNotFound(_0x6abb3f,null))[_0xa767('0x11')](function(_0x41e221){if(_0x41e221){return _0x41e221[_0xa767('0x44')]({'UserId':_0x47c756[_0xa767('0x45')][_0xa767('0x61')],'read1stAt':_[_0xa767('0x66')](_0x41e221[_0xa767('0x67')])?moment()['format'](_0xa767('0x5d')):undefined});}return null;})[_0xa767('0x11')](function(_0x58c437){if(_0x58c437){_0x1d6518[_0xa767('0x68')]=_0x58c437[_0xa767('0x63')]({'plain':!![]});interaction_log['info'](_0xa767('0x69'),_0x47c756['user']['id'],_0x47c756[_0xa767('0x62')][_0xa767('0x24')],_0x47c756['user'][_0xa767('0x6a')],_0x1d6518[_0xa767('0x68')]['id'],_0x47c756['body']?JSON['stringify'](_0x47c756[_0xa767('0x45')]):_0xa767('0x6b'));return respondWithRpcPromise(_0xa767('0x6c'),'acceptMessage',_0x1d6518);}return null;})['then'](function(_0x56906c){var _0x290412=_0xa767('0x6d')+_0x56906c[_0xa767('0x1a')][_0xa767('0x6e')];return db['sequelize'][_0xa767('0x2b')](_0x290412,{'type':db[_0xa767('0x6f')]['QueryTypes'][_0xa767('0x70')],'raw':!![]})['then'](function(_0x131e03){return _0x131e03;});})[_0xa767('0x11')](function(_0x42a084){if(_0x42a084){_0x1d6518['message'][_0xa767('0x71')]=_0x42a084[0x0];if(!_0x47c756['body'][_0xa767('0x61')])return;return db[_0xa767('0x72')][_0xa767('0x43')]({'where':{'id':_0x47c756[_0xa767('0x45')][_0xa767('0x61')],'role':_0xa767('0x73')},'attributes':['id',_0xa767('0x24'),_0xa767('0x74'),'email','internal'],'raw':!![]});}return null;})[_0xa767('0x11')](function(_0x355242){if(!_0x355242)return null;_0x1d6518['message'][_0xa767('0x73')]=_0x355242;return _0x1d6518;})[_0xa767('0x11')](function(_0x1af81e){if(_0x1af81e){if(_0x47c756['body']['manual']){_0x1d6518[_0xa767('0x1a')][_0xa767('0x75')]=util[_0xa767('0x60')](_0xa767('0x76'),_0x47c756[_0xa767('0x62')]['name']);_0x1d6518['message'][_0xa767('0x77')]=_0x1d6518['channel'];_0x1d6518[_0xa767('0x1a')]['motionChannel']=_0x1d6518[_0xa767('0x77')];_0x1d6518[_0xa767('0x1a')]['event']=_0xa767('0x5e');_0x1d6518[_0xa767('0x1a')][_0xa767('0x45')]=htmlToText['fromString'](_0x1d6518[_0xa767('0x1a')]['body']);return respondWithRpcPromise(_0xa767('0x78'),_0xa767('0x78'),{'event':_0xa767('0x79'),'message':_0x1d6518[_0xa767('0x1a')]},client9002)[_0xa767('0x11')](function(){return _0x1d6518;});}return _0x1d6518;}return null;})[_0xa767('0x11')](respondWithResult(_0x6abb3f,null))['catch'](handleError(_0x6abb3f,null));};exports['reject']=function(_0x1eadd4,_0xbf6144){var _0x46890f={'agent':{},'channel':_0xa767('0x7a')};if(_0x1eadd4[_0xa767('0x45')]['id']){delete _0x1eadd4[_0xa767('0x45')]['id'];}_0x1eadd4[_0xa767('0x45')][_0xa767('0x61')]=_0x1eadd4[_0xa767('0x45')]['UserId']||_0x1eadd4['user']['id'];_0x46890f[_0xa767('0x73')]['id']=_0x1eadd4[_0xa767('0x45')][_0xa767('0x61')];return db[_0xa767('0x3a')][_0xa767('0x43')]({'where':{'id':_0x1eadd4[_0xa767('0x41')]['id'],'UserId':null}})[_0xa767('0x11')](handleEntityNotFound(_0xbf6144,null))['then'](function(_0x32ed11){if(_0x32ed11){_0x46890f[_0xa767('0x1a')]=_0x32ed11[_0xa767('0x63')]({'plain':!![]});return db[_0xa767('0x64')][_0xa767('0x43')]({'where':{'id':_0x32ed11[_0xa767('0x65')]}});}return null;})[_0xa767('0x11')](handleEntityNotFound(_0xbf6144,null))['then'](function(_0x324a4f){if(_0x324a4f){_0x46890f[_0xa767('0x68')]=_0x324a4f[_0xa767('0x63')]({'plain':!![]});interaction_log[_0xa767('0x12')]('[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x1eadd4[_0xa767('0x62')]['id'],_0x1eadd4['user'][_0xa767('0x24')],_0x1eadd4[_0xa767('0x62')][_0xa767('0x6a')],_0x46890f[_0xa767('0x68')]['id'],_0x1eadd4[_0xa767('0x45')]?JSON[_0xa767('0x17')](_0x1eadd4['body']):'null');return respondWithRpcPromise(_0xa767('0x7b'),_0xa767('0x7c'),_0x46890f);}return null;})[_0xa767('0x11')](function(_0x514962){var _0x174300=_0xa767('0x6d')+_0x514962[_0xa767('0x1a')][_0xa767('0x6e')];return db['sequelize'][_0xa767('0x2b')](_0x174300,{'type':db['Sequelize'][_0xa767('0x7d')]['SELECT'],'raw':!![]})[_0xa767('0x11')](function(_0x58cb22){return _0x58cb22;});})[_0xa767('0x11')](function(_0x54a059){if(_0x54a059){_0x46890f[_0xa767('0x1a')][_0xa767('0x71')]=_0x54a059[0x0];if(!_0x1eadd4[_0xa767('0x45')][_0xa767('0x61')])return;return db[_0xa767('0x72')][_0xa767('0x43')]({'where':{'id':_0x1eadd4[_0xa767('0x45')]['UserId'],'role':_0xa767('0x73')},'attributes':['id',_0xa767('0x24'),_0xa767('0x74'),_0xa767('0x7e'),'internal'],'raw':!![]});}return null;})['then'](function(_0x33c291){if(!_0x33c291)return null;_0x46890f[_0xa767('0x1a')]['agent']=_0x33c291;return _0x46890f;})['then'](function(_0x5e4b12){if(_0x5e4b12){_0x5e4b12[_0xa767('0x1a')]['interface']=util[_0xa767('0x60')](_0xa767('0x76'),_0x1eadd4[_0xa767('0x62')][_0xa767('0x24')]);_0x5e4b12[_0xa767('0x1a')]['channel']=_0x46890f[_0xa767('0x77')];_0x5e4b12[_0xa767('0x1a')][_0xa767('0x7f')]=_0x46890f['channel'];_0x5e4b12[_0xa767('0x1a')][_0xa767('0x80')]=_0xa767('0x81');_0x5e4b12[_0xa767('0x1a')][_0xa767('0x45')]=htmlToText[_0xa767('0x82')](_0x46890f[_0xa767('0x1a')][_0xa767('0x45')]);respondWithRpcPromise(_0xa767('0x78'),'EventManager',{'event':_0xa767('0x83'),'message':_0x5e4b12[_0xa767('0x1a')]},client9002);return _0x46890f;}return null;})[_0xa767('0x11')](respondWithResult(_0xbf6144,null))[_0xa767('0x1b')](handleError(_0xbf6144,null));};exports['download']=function(_0x2ae599,_0x54dba0){var _0x4da14c=moment()[_0xa767('0x84')]()[_0xa767('0x85')]();var _0x40d076=path[_0xa767('0x56')](config['root'],_0xa767('0x86'),_0xa767('0x87'),_0xa767('0x88'));var _0x1ae42d=path[_0xa767('0x56')](config[_0xa767('0x57')],_0xa767('0x86'),_0xa767('0x87'),_0xa767('0x55'));var _0x3105d3=util[_0xa767('0x60')]('message-%s.eml',_0x4da14c);return db[_0xa767('0x3a')][_0xa767('0x43')]({'where':{'id':_0x2ae599[_0xa767('0x41')]['id']},'attributes':['id',_0xa767('0x45'),_0xa767('0x89'),'to','cc',_0xa767('0x8a'),_0xa767('0x8b'),'createdAt'],'include':_0x2ae599[_0xa767('0x2b')][_0xa767('0x55')]?[{'model':db[_0xa767('0x8c')],'as':_0xa767('0x8d')}]:undefined})['then'](handleEntityNotFound(_0x54dba0,null))[_0xa767('0x11')](function(_0x19d9b5){if(_0x19d9b5){var _0x3cca0e=_0x19d9b5;var _0x241439={'from':_0x3cca0e[_0xa767('0x89')],'to':_0x3cca0e['to'],'subject':_0x3cca0e['subject'],'html':htmlEntities[_0xa767('0x8e')](_0x3cca0e[_0xa767('0x45')]),'headers':{'Date':moment(_0x3cca0e['createdAt'])['format'](_0xa767('0x8f'))},'attachments':[]};if(_0x19d9b5['cc']){_0x241439['headers']['Cc']=_0x19d9b5['cc'];}if(_0x19d9b5[_0xa767('0x8a')]){_0x241439[_0xa767('0x90')][_0xa767('0x91')]=_0x19d9b5[_0xa767('0x8a')];}return new BPromise(function(_0x140ced,_0x5e282f){if(_0x19d9b5[_0xa767('0x8d')]){for(var _0x33394c=0x0;_0x33394c<_0x19d9b5['Attachments'][_0xa767('0x30')];_0x33394c++){var _0x148a8a=_0x19d9b5[_0xa767('0x8d')][_0x33394c];var _0x10b6f4=path['join'](_0x1ae42d,_0x148a8a[_0xa767('0x58')]);if(fs[_0xa767('0x92')](_0x10b6f4)){_0x241439[_0xa767('0x55')][_0xa767('0x93')]({'name':_0x148a8a[_0xa767('0x24')],'contentType':_0x148a8a['type'],'data':fs[_0xa767('0x94')](_0x10b6f4)});}}}emlformat[_0xa767('0x95')](_0x241439,function(_0x40b0eb,_0x55ef98){if(_0x40b0eb)return _0x5e282f(_0x40b0eb);fs['writeFileSync'](path[_0xa767('0x56')](_0x40d076,_0x3105d3),_0x55ef98);return _0x140ced(_0x55ef98);});});}})[_0xa767('0x11')](function(_0x4e647b){if(_0x4e647b){return _0x54dba0[_0xa767('0x96')](path[_0xa767('0x56')](_0x40d076,_0x3105d3),_0x3105d3,function(_0x4898ae){if(!_0x4898ae)fs[_0xa767('0x97')](path[_0xa767('0x56')](_0x40d076,_0x3105d3));});}})[_0xa767('0x1b')](handleError(_0x54dba0,null));};