5b1739e69ea74dd7e538ed82a415c9b9d8b5e394
[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 _0x4e46=['[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','AcceptMessage','acceptMessage','Sequelize','QueryTypes','contact','fullname','manual','interface','SIP/%s','channel','motionChannel','event','fromString','EventManager','acceptmessage','reject','[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','rejectMessage','SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20','ContactId','sequelize','SELECT','User','email','internal','rejectmessage','download','unix','toString','root','server','files','from','bcc','subject','createdAt','Attachments','decode','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','readFileSync','unlinkSync','eml-format','bluebird','util','path','lodash','ioredis','../../components/parsers/qs','../../config/logger','api','mail-interactions','../../config/environment','../../mysqldb','redis','localhost','html-entities','./mailMessage.socket','jayson/promise','client','http','request','then','MailMessage,\x20%s,\x20%s','request\x20sent','debug','MailMessage,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','result','catch','json','offset','undefined','limit','status','update','destroy','end','stack','name','send','index','MailMessage','rawAttributes','fieldName','type','key','model','map','query','keys','filters','intersection','attributes','fields','length','nolimit','sort','where','pick','filter','merge','VIRTUAL','options','count','includeAll','include','findAll','rows','show','params','find','body','describe','create','direction','secret','split','MailAccount','findOne','CmList','List','Contacts','updatedAt','DESC','MailServerOut','Smtp','CloudProvider','attachments','join','server/files/attachments','CmContact','List\x20not\x20found','SendMail','messageId','format','YYYY-MM-DD\x20HH:mm:ss','accept','mail','readAt','UserId','user','agent','get','MailInteraction','MailInteractionId','read1stAt','interaction'];(function(_0x11c5e4,_0x5067cb){var _0x11b0e0=function(_0x56677b){while(--_0x56677b){_0x11c5e4['push'](_0x11c5e4['shift']());}};_0x11b0e0(++_0x5067cb);}(_0x4e46,0x166));var _0x64e4=function(_0x2d4176,_0x3814dd){_0x2d4176=_0x2d4176-0x0;var _0x41e20a=_0x4e46[_0x2d4176];return _0x41e20a;};'use strict';var emlformat=require(_0x64e4('0x0'));var moment=require('moment');var BPromise=require(_0x64e4('0x1'));var util=require(_0x64e4('0x2'));var path=require(_0x64e4('0x3'));var fs=require('fs');var _=require(_0x64e4('0x4'));var Redis=require(_0x64e4('0x5'));var htmlToText=require('html-to-text');var qs=require(_0x64e4('0x6'));var logger=require(_0x64e4('0x7'))(_0x64e4('0x8'));var interaction_log=require(_0x64e4('0x7'))(_0x64e4('0x9'));var config=require(_0x64e4('0xa'));var db=require(_0x64e4('0xb'))['db'];config['redis']=_['defaults'](config[_0x64e4('0xc')],{'host':_0x64e4('0xd'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));var htmlEntities=require(_0x64e4('0xe'));require(_0x64e4('0xf'))['register'](socket);var jayson=require(_0x64e4('0x10'));var client=jayson['client']['http']({'port':0x232c});var client9003=jayson[_0x64e4('0x11')][_0x64e4('0x12')]({'port':0x232b});var client9002=jayson[_0x64e4('0x11')][_0x64e4('0x12')]({'port':0x232a});function respondWithRpcPromise(_0x3eeabb,_0x14d121,_0x395c35,_0x3fc871){return new BPromise(function(_0x45782f,_0x3ae13a){var _0x584d6e=_0x3fc871||client;return _0x584d6e[_0x64e4('0x13')](_0x3eeabb,_0x395c35)[_0x64e4('0x14')](function(_0x38a2b8){logger['info'](_0x64e4('0x15'),_0x14d121,_0x64e4('0x16'));logger[_0x64e4('0x17')](_0x64e4('0x18'),_0x14d121,_0x64e4('0x16'),JSON[_0x64e4('0x19')](_0x38a2b8));if(_0x38a2b8[_0x64e4('0x1a')]){if(_0x38a2b8[_0x64e4('0x1a')][_0x64e4('0x1b')]===0x1f4){logger[_0x64e4('0x1a')](_0x64e4('0x15'),_0x14d121,_0x38a2b8[_0x64e4('0x1a')][_0x64e4('0x1c')]);return _0x3ae13a(_0x38a2b8[_0x64e4('0x1a')][_0x64e4('0x1c')]);}logger[_0x64e4('0x1a')]('MailMessage,\x20%s,\x20%s',_0x14d121,_0x38a2b8[_0x64e4('0x1a')][_0x64e4('0x1c')]);return _0x45782f(_0x38a2b8[_0x64e4('0x1a')][_0x64e4('0x1c')]);}else{logger[_0x64e4('0x1d')](_0x64e4('0x15'),_0x14d121,_0x64e4('0x16'));_0x45782f(_0x38a2b8[_0x64e4('0x1e')][_0x64e4('0x1c')]);}})[_0x64e4('0x1f')](function(_0x2b116f){logger['error'](_0x64e4('0x15'),_0x14d121,_0x2b116f);_0x3ae13a(_0x2b116f);});});}function respondWithResult(_0xb7ad4e,_0x3bf291){_0x3bf291=_0x3bf291||0xc8;return function(_0x4adecf){if(_0x4adecf){return _0xb7ad4e['status'](_0x3bf291)[_0x64e4('0x20')](_0x4adecf);}};}function respondWithFilteredResult(_0x302d70,_0x5ec3d0){return function(_0x1ce56d){if(_0x1ce56d){var _0x58041c=typeof _0x5ec3d0[_0x64e4('0x21')]===_0x64e4('0x22')&&typeof _0x5ec3d0[_0x64e4('0x23')]===_0x64e4('0x22');var _0x551425=_0x1ce56d['count'];var _0x69ac69=_0x58041c?0x0:_0x5ec3d0[_0x64e4('0x21')];var _0x3fc4f2=_0x58041c?_0x1ce56d['count']:_0x5ec3d0[_0x64e4('0x21')]+_0x5ec3d0['limit'];var _0x3c8529;if(_0x3fc4f2>=_0x551425){_0x3fc4f2=_0x551425;_0x3c8529=0xc8;}else{_0x3c8529=0xce;}_0x302d70[_0x64e4('0x24')](_0x3c8529);return _0x302d70['set']('Content-Range',_0x69ac69+'-'+_0x3fc4f2+'/'+_0x551425)[_0x64e4('0x20')](_0x1ce56d);}return null;};}function saveUpdates(_0x392de8){return function(_0x2e6468){if(_0x2e6468){return _0x2e6468[_0x64e4('0x25')](_0x392de8)[_0x64e4('0x14')](function(_0x163777){return _0x163777;});}return null;};}function removeEntity(_0x48ed57){return function(_0x3f4f20){if(_0x3f4f20){return _0x3f4f20[_0x64e4('0x26')]()[_0x64e4('0x14')](function(){_0x48ed57[_0x64e4('0x24')](0xcc)[_0x64e4('0x27')]();});}};}function handleEntityNotFound(_0x16d283){return function(_0x510e86){if(!_0x510e86){_0x16d283['sendStatus'](0x194);}return _0x510e86;};}function handleError(_0xff6ef2,_0x423824){_0x423824=_0x423824||0x1f4;return function(_0x39c678){logger[_0x64e4('0x1a')](_0x39c678[_0x64e4('0x28')]);if(_0x39c678['name']){delete _0x39c678[_0x64e4('0x29')];}_0xff6ef2[_0x64e4('0x24')](_0x423824)[_0x64e4('0x2a')](_0x39c678);};}exports[_0x64e4('0x2b')]=function(_0x1ddc00,_0xebe7fa){var _0x3b6f42={},_0x27e16b={},_0x3600b9={'count':0x0,'rows':[]};var _0x1b18d0=_['map'](db[_0x64e4('0x2c')][_0x64e4('0x2d')],function(_0x2cb0e7){return{'name':_0x2cb0e7[_0x64e4('0x2e')],'type':_0x2cb0e7[_0x64e4('0x2f')][_0x64e4('0x30')]};});_0x27e16b[_0x64e4('0x31')]=_[_0x64e4('0x32')](_0x1b18d0,_0x64e4('0x29'));_0x27e16b[_0x64e4('0x33')]=_[_0x64e4('0x34')](_0x1ddc00['query']);_0x27e16b[_0x64e4('0x35')]=_[_0x64e4('0x36')](_0x27e16b[_0x64e4('0x31')],_0x27e16b[_0x64e4('0x33')]);_0x3b6f42[_0x64e4('0x37')]=_['intersection'](_0x27e16b[_0x64e4('0x31')],qs[_0x64e4('0x38')](_0x1ddc00[_0x64e4('0x33')][_0x64e4('0x38')]));_0x3b6f42[_0x64e4('0x37')]=_0x3b6f42[_0x64e4('0x37')][_0x64e4('0x39')]?_0x3b6f42[_0x64e4('0x37')]:_0x27e16b['model'];if(!_0x1ddc00['query']['hasOwnProperty'](_0x64e4('0x3a'))){_0x3b6f42[_0x64e4('0x23')]=qs[_0x64e4('0x23')](_0x1ddc00[_0x64e4('0x33')]['limit']);_0x3b6f42[_0x64e4('0x21')]=qs[_0x64e4('0x21')](_0x1ddc00[_0x64e4('0x33')]['offset']);}_0x3b6f42['order']=qs['sort'](_0x1ddc00['query'][_0x64e4('0x3b')]);_0x3b6f42[_0x64e4('0x3c')]=qs['filters'](_[_0x64e4('0x3d')](_0x1ddc00[_0x64e4('0x33')],_0x27e16b[_0x64e4('0x35')]),_0x1b18d0);if(_0x1ddc00[_0x64e4('0x33')][_0x64e4('0x3e')]){_0x3b6f42[_0x64e4('0x3c')]=_[_0x64e4('0x3f')](_0x3b6f42[_0x64e4('0x3c')],{'$or':_[_0x64e4('0x32')](_0x1b18d0,function(_0x3e612d){if(_0x3e612d[_0x64e4('0x2f')]!==_0x64e4('0x40')){var _0x24a6af={};_0x24a6af[_0x3e612d[_0x64e4('0x29')]]={'$like':'%'+_0x1ddc00[_0x64e4('0x33')]['filter']+'%'};return _0x24a6af;}})});}_0x3b6f42=_[_0x64e4('0x3f')]({},_0x3b6f42,_0x1ddc00[_0x64e4('0x41')]);var _0x34ff66={'where':_0x3b6f42[_0x64e4('0x3c')]};return db[_0x64e4('0x2c')][_0x64e4('0x42')](_0x34ff66)[_0x64e4('0x14')](function(_0x53ca63){_0x3600b9[_0x64e4('0x42')]=_0x53ca63;if(_0x1ddc00['query'][_0x64e4('0x43')]){_0x3b6f42[_0x64e4('0x44')]=[{'all':!![]}];}return db[_0x64e4('0x2c')][_0x64e4('0x45')](_0x3b6f42);})[_0x64e4('0x14')](function(_0x51062f){_0x3600b9[_0x64e4('0x46')]=_0x51062f;return _0x3600b9;})[_0x64e4('0x14')](respondWithFilteredResult(_0xebe7fa,_0x3b6f42))[_0x64e4('0x1f')](handleError(_0xebe7fa,null));};exports[_0x64e4('0x47')]=function(_0x4812ff,_0x369b60){var _0x20425d={'raw':!![],'where':{'id':_0x4812ff[_0x64e4('0x48')]['id']}},_0x401845={};_0x401845[_0x64e4('0x31')]=_[_0x64e4('0x34')](db[_0x64e4('0x2c')]['rawAttributes']);_0x401845[_0x64e4('0x33')]=_[_0x64e4('0x34')](_0x4812ff[_0x64e4('0x33')]);_0x401845['filters']=_['intersection'](_0x401845[_0x64e4('0x31')],_0x401845[_0x64e4('0x33')]);_0x20425d[_0x64e4('0x37')]=_[_0x64e4('0x36')](_0x401845[_0x64e4('0x31')],qs[_0x64e4('0x38')](_0x4812ff['query'][_0x64e4('0x38')]));_0x20425d['attributes']=_0x20425d[_0x64e4('0x37')][_0x64e4('0x39')]?_0x20425d[_0x64e4('0x37')]:_0x401845[_0x64e4('0x31')];if(_0x4812ff['query'][_0x64e4('0x43')]){_0x20425d[_0x64e4('0x44')]=[{'all':!![]}];}_0x20425d=_[_0x64e4('0x3f')]({},_0x20425d,_0x4812ff[_0x64e4('0x41')]);return db[_0x64e4('0x2c')][_0x64e4('0x49')](_0x20425d)[_0x64e4('0x14')](handleEntityNotFound(_0x369b60,null))[_0x64e4('0x14')](respondWithResult(_0x369b60,null))['catch'](handleError(_0x369b60,null));};exports[_0x64e4('0x25')]=function(_0x14bbac,_0x169d39){if(_0x14bbac['body']['id']){delete _0x14bbac['body']['id'];}return db['MailMessage'][_0x64e4('0x49')]({'where':{'id':_0x14bbac[_0x64e4('0x48')]['id']}})[_0x64e4('0x14')](handleEntityNotFound(_0x169d39,null))['then'](saveUpdates(_0x14bbac[_0x64e4('0x4a')],null))[_0x64e4('0x14')](respondWithResult(_0x169d39,null))['catch'](handleError(_0x169d39,null));};exports[_0x64e4('0x26')]=function(_0x33a461,_0xf11369){return db[_0x64e4('0x2c')][_0x64e4('0x49')]({'where':{'id':_0x33a461[_0x64e4('0x48')]['id']}})[_0x64e4('0x14')](handleEntityNotFound(_0xf11369,null))['then'](removeEntity(_0xf11369,null))[_0x64e4('0x1f')](handleError(_0xf11369,null));};exports[_0x64e4('0x4b')]=function(_0x574914,_0x256c31){return db[_0x64e4('0x2c')]['describe']()['then'](respondWithResult(_0x256c31,null))['catch'](handleError(_0x256c31,null));};exports[_0x64e4('0x4c')]=function(_0x5dedd5,_0x54cef6){return db[_0x64e4('0x2c')][_0x64e4('0x4c')](_0x5dedd5[_0x64e4('0x4a')])['then'](function(_0x28f456){if(_0x28f456){if(_0x28f456[_0x64e4('0x4d')]==='out'&&!_0x28f456[_0x64e4('0x4e')]){var _0xf843ba,_0x4bbb15,_0x266ea2;if(_0x5dedd5[_0x64e4('0x4a')]['to']){_0x4bbb15=_0x5dedd5['body']['to'][_0x64e4('0x4f')](',')[0x0];}return db[_0x64e4('0x50')][_0x64e4('0x51')]({'where':{'id':_0x28f456['MailAccountId']},'include':[{'model':db[_0x64e4('0x52')],'as':_0x64e4('0x53'),'include':[{'model':db['CmContact'],'as':_0x64e4('0x54'),'where':{'email':_0x4bbb15},'limit':0x1,'order':[[_0x64e4('0x55'),_0x64e4('0x56')]]}]},{'model':db[_0x64e4('0x57')],'as':_0x64e4('0x58'),'raw':!![],'include':[{'model':db[_0x64e4('0x59')],'as':_0x64e4('0x59'),'raw':!![]}]}]})[_0x64e4('0x14')](function(_0x45cb63){_0xf843ba=_0x45cb63;if(!_0xf843ba||!_0xf843ba[_0x64e4('0x58')])return;var _0x38c55f=_0xf843ba['getSmtpOptions']();if(_0x5dedd5[_0x64e4('0x4a')][_0x64e4('0x5a')]&&_0x5dedd5[_0x64e4('0x4a')][_0x64e4('0x5a')][_0x64e4('0x39')]){for(var _0x446e97=0x0;_0x446e97<_0x5dedd5['body'][_0x64e4('0x5a')]['length'];_0x446e97+=0x1){_0x5dedd5[_0x64e4('0x4a')][_0x64e4('0x5a')][_0x446e97]={'filename':_0x5dedd5[_0x64e4('0x4a')][_0x64e4('0x5a')][_0x446e97][_0x64e4('0x29')],'path':path[_0x64e4('0x5b')](config['root'],_0x64e4('0x5c'),_0x5dedd5[_0x64e4('0x4a')][_0x64e4('0x5a')][_0x446e97]['basename'])};}}_0x266ea2={'account':_0x38c55f,'message':_0x5dedd5['body']};return;})['then'](function(){if(_0xf843ba[_0x64e4('0x53')]){if(_0xf843ba[_0x64e4('0x53')][_0x64e4('0x54')]['length']){return _0xf843ba[_0x64e4('0x53')]['Contacts'][0x0];}else{return db[_0x64e4('0x5d')][_0x64e4('0x4c')](_['defaults'](_0x5dedd5[_0x64e4('0x4a')],{'firstName':_0x5dedd5['body']['to'],'email':_0x5dedd5['body']['to'],'phone':_0x5dedd5['body']['to'],'ListId':_0xf843ba['ListId']}));}}else{throw new Error(_0x64e4('0x5e'));}})[_0x64e4('0x14')](function(){if(_0x266ea2){return respondWithRpcPromise(_0x64e4('0x5f'),'sendMail',_0x266ea2,client9003)[_0x64e4('0x14')](function(_0x4a0802){return _0x28f456[_0x64e4('0x25')]({'read':!![],'messageId':_0x4a0802[_0x64e4('0x60')],'sentAt':moment()[_0x64e4('0x61')](_0x64e4('0x62'))});})[_0x64e4('0x1f')](function(_0x53fcdf){logger[_0x64e4('0x1a')]('%s',JSON['stringify'](_0x53fcdf));return _0x28f456;});}return _0x28f456;});}return _0x28f456;}})[_0x64e4('0x14')](respondWithResult(_0x54cef6,0xc9))['catch'](handleError(_0x54cef6,null));};exports[_0x64e4('0x63')]=function(_0x133a7c,_0x512250){var _0x201410={'agent':{},'channel':_0x64e4('0x64')};if(_0x133a7c['body']['id']){delete _0x133a7c[_0x64e4('0x4a')]['id'];}_0x133a7c[_0x64e4('0x4a')]['read']=!![];_0x133a7c[_0x64e4('0x4a')][_0x64e4('0x65')]=moment()[_0x64e4('0x61')](_0x64e4('0x62'));_0x133a7c[_0x64e4('0x4a')][_0x64e4('0x66')]=_0x133a7c['body']['UserId']||_0x133a7c[_0x64e4('0x67')]['id'];_0x201410[_0x64e4('0x68')]['id']=_0x133a7c['body']['UserId'];return db[_0x64e4('0x2c')][_0x64e4('0x49')]({'where':{'id':_0x133a7c[_0x64e4('0x48')]['id'],'UserId':null}})['then'](handleEntityNotFound(_0x512250,null))[_0x64e4('0x14')](saveUpdates(_0x133a7c[_0x64e4('0x4a')],null))['then'](function(_0x592b08){if(_0x592b08){_0x201410[_0x64e4('0x1c')]=_0x592b08[_0x64e4('0x69')]({'plain':!![]});return db[_0x64e4('0x6a')]['find']({'where':{'id':_0x592b08[_0x64e4('0x6b')]}});}return null;})[_0x64e4('0x14')](handleEntityNotFound(_0x512250,null))[_0x64e4('0x14')](function(_0x4f751a){if(_0x4f751a){return _0x4f751a[_0x64e4('0x25')]({'UserId':_0x133a7c[_0x64e4('0x4a')][_0x64e4('0x66')],'read1stAt':_['isNil'](_0x4f751a[_0x64e4('0x6c')])?moment()[_0x64e4('0x61')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0x64e4('0x14')](function(_0x883d57){if(_0x883d57){_0x201410[_0x64e4('0x6d')]=_0x883d57[_0x64e4('0x69')]({'plain':!![]});interaction_log['info'](_0x64e4('0x6e'),_0x133a7c['user']['id'],_0x133a7c[_0x64e4('0x67')][_0x64e4('0x29')],_0x133a7c[_0x64e4('0x67')][_0x64e4('0x6f')],_0x201410[_0x64e4('0x6d')]['id'],_0x133a7c['body']?JSON['stringify'](_0x133a7c[_0x64e4('0x4a')]):_0x64e4('0x70'));return respondWithRpcPromise(_0x64e4('0x71'),_0x64e4('0x72'),_0x201410);}return null;})['then'](function(_0x2d12a9){var _0x451f08='SELECT\x20*\x20FROM\x20cm_contacts\x20WHERE\x20id\x20=\x20'+_0x2d12a9[_0x64e4('0x1c')]['ContactId'];return db['sequelize'][_0x64e4('0x33')](_0x451f08,{'type':db[_0x64e4('0x73')][_0x64e4('0x74')]['SELECT'],'raw':!![]})['then'](function(_0x19a6d0){return _0x19a6d0;});})[_0x64e4('0x14')](function(_0x5e57d0){if(_0x5e57d0){_0x201410['message'][_0x64e4('0x75')]=_0x5e57d0[0x0];if(!_0x133a7c['body']['UserId'])return;return db['User']['find']({'where':{'id':_0x133a7c['body'][_0x64e4('0x66')],'role':_0x64e4('0x68')},'attributes':['id',_0x64e4('0x29'),_0x64e4('0x76'),'email','internal'],'raw':!![]});}return null;})['then'](function(_0x4d3be5){if(!_0x4d3be5)return null;_0x201410[_0x64e4('0x1c')]['agent']=_0x4d3be5;return _0x201410;})[_0x64e4('0x14')](function(_0x296a72){if(_0x296a72){if(_0x133a7c[_0x64e4('0x4a')][_0x64e4('0x77')]){_0x201410[_0x64e4('0x1c')][_0x64e4('0x78')]=util[_0x64e4('0x61')](_0x64e4('0x79'),_0x133a7c[_0x64e4('0x67')]['name']);_0x201410['message']['channel']=_0x201410[_0x64e4('0x7a')];_0x201410[_0x64e4('0x1c')][_0x64e4('0x7b')]=_0x201410[_0x64e4('0x7a')];_0x201410['message'][_0x64e4('0x7c')]=_0x64e4('0x63');_0x201410[_0x64e4('0x1c')][_0x64e4('0x4a')]=htmlToText[_0x64e4('0x7d')](_0x201410[_0x64e4('0x1c')][_0x64e4('0x4a')]);return respondWithRpcPromise('EventManager',_0x64e4('0x7e'),{'event':_0x64e4('0x7f'),'message':_0x201410[_0x64e4('0x1c')]},client9002)[_0x64e4('0x14')](function(){return _0x201410;});}return _0x201410;}return null;})['then'](respondWithResult(_0x512250,null))[_0x64e4('0x1f')](handleError(_0x512250,null));};exports[_0x64e4('0x80')]=function(_0x9dd894,_0x5811c1){var _0x4be56f={'agent':{},'channel':_0x64e4('0x64')};if(_0x9dd894[_0x64e4('0x4a')]['id']){delete _0x9dd894[_0x64e4('0x4a')]['id'];}_0x9dd894['body'][_0x64e4('0x66')]=_0x9dd894[_0x64e4('0x4a')][_0x64e4('0x66')]||_0x9dd894[_0x64e4('0x67')]['id'];_0x4be56f['agent']['id']=_0x9dd894['body']['UserId'];return db['MailMessage']['find']({'where':{'id':_0x9dd894[_0x64e4('0x48')]['id'],'UserId':null}})[_0x64e4('0x14')](handleEntityNotFound(_0x5811c1,null))['then'](function(_0x30ced1){if(_0x30ced1){_0x4be56f[_0x64e4('0x1c')]=_0x30ced1[_0x64e4('0x69')]({'plain':!![]});return db[_0x64e4('0x6a')][_0x64e4('0x49')]({'where':{'id':_0x30ced1[_0x64e4('0x6b')]}});}return null;})[_0x64e4('0x14')](handleEntityNotFound(_0x5811c1,null))['then'](function(_0xea3201){if(_0xea3201){_0x4be56f[_0x64e4('0x6d')]=_0xea3201[_0x64e4('0x69')]({'plain':!![]});interaction_log[_0x64e4('0x1d')](_0x64e4('0x81'),_0x9dd894[_0x64e4('0x67')]['id'],_0x9dd894[_0x64e4('0x67')][_0x64e4('0x29')],_0x9dd894[_0x64e4('0x67')][_0x64e4('0x6f')],_0x4be56f[_0x64e4('0x6d')]['id'],_0x9dd894['body']?JSON[_0x64e4('0x19')](_0x9dd894['body']):_0x64e4('0x70'));return respondWithRpcPromise('RejectMessage',_0x64e4('0x82'),_0x4be56f);}return null;})['then'](function(_0x3099dd){var _0xf96f0a=_0x64e4('0x83')+_0x3099dd[_0x64e4('0x1c')][_0x64e4('0x84')];return db[_0x64e4('0x85')][_0x64e4('0x33')](_0xf96f0a,{'type':db[_0x64e4('0x73')][_0x64e4('0x74')][_0x64e4('0x86')],'raw':!![]})[_0x64e4('0x14')](function(_0x5ade39){return _0x5ade39;});})[_0x64e4('0x14')](function(_0x2b7bbc){if(_0x2b7bbc){_0x4be56f['message'][_0x64e4('0x75')]=_0x2b7bbc[0x0];if(!_0x9dd894[_0x64e4('0x4a')][_0x64e4('0x66')])return;return db[_0x64e4('0x87')][_0x64e4('0x49')]({'where':{'id':_0x9dd894[_0x64e4('0x4a')][_0x64e4('0x66')],'role':_0x64e4('0x68')},'attributes':['id',_0x64e4('0x29'),'fullname',_0x64e4('0x88'),_0x64e4('0x89')],'raw':!![]});}return null;})[_0x64e4('0x14')](function(_0x57b435){if(!_0x57b435)return null;_0x4be56f[_0x64e4('0x1c')][_0x64e4('0x68')]=_0x57b435;return _0x4be56f;})[_0x64e4('0x14')](function(_0x28283e){if(_0x28283e){_0x28283e[_0x64e4('0x1c')]['interface']=util[_0x64e4('0x61')](_0x64e4('0x79'),_0x9dd894[_0x64e4('0x67')][_0x64e4('0x29')]);_0x28283e[_0x64e4('0x1c')][_0x64e4('0x7a')]=_0x4be56f[_0x64e4('0x7a')];_0x28283e[_0x64e4('0x1c')][_0x64e4('0x7b')]=_0x4be56f['channel'];_0x28283e[_0x64e4('0x1c')][_0x64e4('0x7c')]=_0x64e4('0x80');_0x28283e['message'][_0x64e4('0x4a')]=htmlToText[_0x64e4('0x7d')](_0x4be56f[_0x64e4('0x1c')]['body']);respondWithRpcPromise(_0x64e4('0x7e'),_0x64e4('0x7e'),{'event':_0x64e4('0x8a'),'message':_0x28283e[_0x64e4('0x1c')]},client9002);return _0x4be56f;}return null;})[_0x64e4('0x14')](respondWithResult(_0x5811c1,null))[_0x64e4('0x1f')](handleError(_0x5811c1,null));};exports[_0x64e4('0x8b')]=function(_0xb5e39f,_0x2722d0){var _0x461b7e=moment()[_0x64e4('0x8c')]()[_0x64e4('0x8d')]();var _0x443ffe=path[_0x64e4('0x5b')](config[_0x64e4('0x8e')],_0x64e4('0x8f'),'files','tmp');var _0x559f38=path[_0x64e4('0x5b')](config[_0x64e4('0x8e')],_0x64e4('0x8f'),_0x64e4('0x90'),_0x64e4('0x5a'));var _0x202920=util['format']('message-%s.eml',_0x461b7e);return db[_0x64e4('0x2c')][_0x64e4('0x49')]({'where':{'id':_0xb5e39f[_0x64e4('0x48')]['id']},'attributes':['id','body',_0x64e4('0x91'),'to','cc',_0x64e4('0x92'),_0x64e4('0x93'),_0x64e4('0x94')],'include':_0xb5e39f[_0x64e4('0x33')][_0x64e4('0x5a')]?[{'model':db['Attachment'],'as':_0x64e4('0x95')}]:undefined})[_0x64e4('0x14')](handleEntityNotFound(_0x2722d0,null))[_0x64e4('0x14')](function(_0x55cf38){if(_0x55cf38){var _0x330b68=_0x55cf38;var _0x4e007f={'from':_0x330b68[_0x64e4('0x91')],'to':_0x330b68['to'],'subject':_0x330b68['subject'],'html':htmlEntities[_0x64e4('0x96')](_0x330b68[_0x64e4('0x4a')]),'headers':{'Date':moment(_0x330b68[_0x64e4('0x94')])[_0x64e4('0x61')](_0x64e4('0x97'))},'attachments':[]};if(_0x55cf38['cc']){_0x4e007f[_0x64e4('0x98')]['Cc']=_0x55cf38['cc'];}if(_0x55cf38[_0x64e4('0x92')]){_0x4e007f[_0x64e4('0x98')][_0x64e4('0x99')]=_0x55cf38['bcc'];}return new BPromise(function(_0x540eb4,_0x5a54f6){if(_0x55cf38['Attachments']){for(var _0x47995e=0x0;_0x47995e<_0x55cf38[_0x64e4('0x95')][_0x64e4('0x39')];_0x47995e++){var _0x48f007=_0x55cf38[_0x64e4('0x95')][_0x47995e];var _0x457377=path[_0x64e4('0x5b')](_0x559f38,_0x48f007['basename']);if(fs['existsSync'](_0x457377)){_0x4e007f['attachments']['push']({'name':_0x48f007[_0x64e4('0x29')],'contentType':_0x48f007[_0x64e4('0x2f')],'data':fs[_0x64e4('0x9a')](_0x457377)});}}}emlformat['build'](_0x4e007f,function(_0x5cbce5,_0x963bea){if(_0x5cbce5)return _0x5a54f6(_0x5cbce5);fs['writeFileSync'](path[_0x64e4('0x5b')](_0x443ffe,_0x202920),_0x963bea);return _0x540eb4(_0x963bea);});});}})[_0x64e4('0x14')](function(_0x3df27f){if(_0x3df27f){return _0x2722d0[_0x64e4('0x8b')](path['join'](_0x443ffe,_0x202920),_0x202920,function(_0xa6a662){if(!_0xa6a662)fs[_0x64e4('0x9b')](path[_0x64e4('0x5b')](_0x443ffe,_0x202920));});}})[_0x64e4('0x1f')](handleError(_0x2722d0,null));};