fe2136450e0e17a4cd97d0f1c3b9d7ff1948a5e3
[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 _0xa72a=['find','describe','create','direction','out','secret','MailAccount','findOne','CmList','List','CmContact','Contacts','updatedAt','DESC','MailServerOut','Smtp','isNil','service','host','port','secure','authentication','user','pass','auth','attachments','join','root','server/files/attachments','ListId','SendMail','sendMail','messageId','format','YYYY-MM-DD\x20HH:mm:ss','mail-interactions','accept','mail','readAt','UserId','Contact','get','MailInteraction','MailInteractionId','read1stAt','interaction','[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','null','AcceptMessage','manual','interface','channel','event','acceptmessage','../../config/logger','[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','SIP/%s','EventManager','rejectmessage','download','unix','toString','server','files','message-%s.eml','bcc','subject','Attachment','Attachments','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','basename','existsSync','push','readFileSync','build','writeFileSync','log','err','unlinkSync','rimraf','request-promise','moment','bluebird','mustache','util','sox','to-csv','ejs','querystring','papaparse','ioredis','../../components/parsers/advancedSearch','../../config/license/hardware','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','./mailMessage.socket','register','jayson/promise','client','http','request','info','request\x20sent','debug','MailMessage,\x20%s,\x20%s,\x20%s','stringify','code','error','MailMessage,\x20%s,\x20%s','message','sendStatus','status','end','count','offset','set','json','apply','reject','save','update','destroy','then','stack','name','send','MailMessage','fieldName','type','key','model','map','query','keys','intersection','attributes','fields','length','hasOwnProperty','nolimit','limit','order','sort','filters','pick','filter','where','merge','options','includeAll','include','findAll','rows','show','params','rawAttributes','body','catch'];(function(_0x48adea,_0x1c5d36){var _0x3343da=function(_0x211b9e){while(--_0x211b9e){_0x48adea['push'](_0x48adea['shift']());}};_0x3343da(++_0x1c5d36);}(_0xa72a,0xfd));var _0xaa72=function(_0x4bcf38,_0x3c12be){_0x4bcf38=_0x4bcf38-0x0;var _0x4a89be=_0xa72a[_0x4bcf38];return _0x4a89be;};'use strict';var emlformat=require('eml-format');var rimraf=require(_0xaa72('0x0'));var zipdir=require('zip-dir');var jsonpatch=require('fast-json-patch');var rp=require(_0xaa72('0x1'));var moment=require(_0xaa72('0x2'));var BPromise=require(_0xaa72('0x3'));var Mustache=require(_0xaa72('0x4'));var util=require(_0xaa72('0x5'));var path=require('path');var sox=require(_0xaa72('0x6'));var csv=require(_0xaa72('0x7'));var ejs=require(_0xaa72('0x8'));var fs=require('fs');var fs_extra=require('fs-extra');var _=require('lodash');var squel=require('squel');var crypto=require('crypto');var jsforce=require('jsforce');var deskjs=require('desk.js');var toCsv=require(_0xaa72('0x7'));var querystring=require(_0xaa72('0x9'));var Papa=require(_0xaa72('0xa'));var Redis=require(_0xaa72('0xb'));var authService=require('../../components/auth/service');var qs=require('../../components/parsers/qs');var as=require(_0xaa72('0xc'));var hardwareService=require(_0xaa72('0xd'));var logger=require('../../config/logger')(_0xaa72('0xe'));var utils=require(_0xaa72('0xf'));var config=require(_0xaa72('0x10'));var licenseUtil=require(_0xaa72('0x11'));var db=require(_0xaa72('0x12'))['db'];config[_0xaa72('0x13')]=_[_0xaa72('0x14')](config[_0xaa72('0x13')],{'host':_0xaa72('0x15'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xaa72('0x13')]));require(_0xaa72('0x16'))[_0xaa72('0x17')](socket);var jayson=require(_0xaa72('0x18'));var client=jayson[_0xaa72('0x19')][_0xaa72('0x1a')]({'port':0x232c});var client9003=jayson[_0xaa72('0x19')][_0xaa72('0x1a')]({'port':0x232b});var client9002=jayson['client']['http']({'port':0x232a});function respondWithRpcPromise(_0x489bbd,_0x2f5d15,_0x257526,_0x3fa303){return new BPromise(function(_0x5e0ec8,_0x1ee328){var _0x5b413b=_0x3fa303||client;return _0x5b413b[_0xaa72('0x1b')](_0x489bbd,_0x257526)['then'](function(_0x12f586){logger[_0xaa72('0x1c')]('MailMessage,\x20%s,\x20%s',_0x2f5d15,_0xaa72('0x1d'));logger[_0xaa72('0x1e')](_0xaa72('0x1f'),_0x2f5d15,_0xaa72('0x1d'),JSON[_0xaa72('0x20')](_0x12f586));if(_0x12f586['error']){if(_0x12f586['error'][_0xaa72('0x21')]===0x1f4){logger[_0xaa72('0x22')](_0xaa72('0x23'),_0x2f5d15,_0x12f586[_0xaa72('0x22')][_0xaa72('0x24')]);return _0x1ee328(_0x12f586[_0xaa72('0x22')][_0xaa72('0x24')]);}logger['error'](_0xaa72('0x23'),_0x2f5d15,_0x12f586[_0xaa72('0x22')]['message']);return _0x5e0ec8(_0x12f586[_0xaa72('0x22')]['message']);}else{logger['info']('MailMessage,\x20%s,\x20%s',_0x2f5d15,_0xaa72('0x1d'));_0x5e0ec8(_0x12f586['result']['message']);}})['catch'](function(_0xf00523){logger[_0xaa72('0x22')](_0xaa72('0x23'),_0x2f5d15,_0xf00523);_0x1ee328(_0xf00523);});});}function respondWithStatusCode(_0x856080,_0xb2be36){_0xb2be36=_0xb2be36||0xcc;return function(_0x471f07){if(_0x471f07){return _0x856080[_0xaa72('0x25')](_0xb2be36);}return _0x856080[_0xaa72('0x26')](_0xb2be36)[_0xaa72('0x27')]();};}function respondWithResult(_0x1664c6,_0x1cfc8d){_0x1cfc8d=_0x1cfc8d||0xc8;return function(_0x1126f9){if(_0x1126f9){return _0x1664c6['status'](_0x1cfc8d)['json'](_0x1126f9);}};}function respondWithFilteredResult(_0x4df156,_0x326d9f){return function(_0x454882){if(_0x454882){var _0x5da9d6=_0x454882[_0xaa72('0x28')],_0x20786b=_0x326d9f['offset'],_0x5c1ad5=_0x326d9f[_0xaa72('0x29')]+_0x326d9f['limit'],_0x19057e;if(_0x5c1ad5>=_0x5da9d6){_0x5c1ad5=_0x5da9d6;_0x19057e=0xc8;}else{_0x19057e=0xce;}_0x4df156[_0xaa72('0x26')](_0x19057e);return _0x4df156[_0xaa72('0x2a')]('Content-Range',_0x20786b+'-'+_0x5c1ad5+'/'+_0x5da9d6)[_0xaa72('0x2b')](_0x454882);}return null;};}function patchUpdates(_0x170a47){return function(_0xe4d317){try{jsonpatch[_0xaa72('0x2c')](_0xe4d317,_0x170a47,!![]);}catch(_0x58e1ab){return BPromise[_0xaa72('0x2d')](_0x58e1ab);}return _0xe4d317[_0xaa72('0x2e')]();};}function saveUpdates(_0x261ccc,_0x28fdb5){return function(_0x146f9b){if(_0x146f9b){return _0x146f9b[_0xaa72('0x2f')](_0x261ccc)['then'](function(_0x49f109){return _0x49f109;});}return null;};}function removeEntity(_0x335cad,_0x2367ef){return function(_0x4bd30f){if(_0x4bd30f){return _0x4bd30f[_0xaa72('0x30')]()[_0xaa72('0x31')](function(){_0x335cad['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0xc06c37,_0x25ad25){return function(_0x3a0c6e){if(!_0x3a0c6e){_0xc06c37[_0xaa72('0x25')](0x194);}return _0x3a0c6e;};}function handleError(_0x384195,_0x551b9e){_0x551b9e=_0x551b9e||0x1f4;return function(_0x119709){logger['error'](_0x119709[_0xaa72('0x32')]);if(_0x119709[_0xaa72('0x33')]){delete _0x119709[_0xaa72('0x33')];}_0x384195[_0xaa72('0x26')](_0x551b9e)[_0xaa72('0x34')](_0x119709);};}exports['index']=function(_0x777282,_0x2b1356){var _0x26547c={},_0x6959b7={},_0x1407e5={'count':0x0,'rows':[]};var _0x489a48=_['map'](db[_0xaa72('0x35')]['rawAttributes'],function(_0x4826a3){return{'name':_0x4826a3[_0xaa72('0x36')],'type':_0x4826a3[_0xaa72('0x37')][_0xaa72('0x38')]};});_0x6959b7[_0xaa72('0x39')]=_[_0xaa72('0x3a')](_0x489a48,_0xaa72('0x33'));_0x6959b7[_0xaa72('0x3b')]=_[_0xaa72('0x3c')](_0x777282[_0xaa72('0x3b')]);_0x6959b7['filters']=_[_0xaa72('0x3d')](_0x6959b7[_0xaa72('0x39')],_0x6959b7['query']);_0x26547c[_0xaa72('0x3e')]=_['intersection'](_0x6959b7[_0xaa72('0x39')],qs['fields'](_0x777282['query'][_0xaa72('0x3f')]));_0x26547c[_0xaa72('0x3e')]=_0x26547c[_0xaa72('0x3e')][_0xaa72('0x40')]?_0x26547c[_0xaa72('0x3e')]:_0x6959b7['model'];if(!_0x777282[_0xaa72('0x3b')][_0xaa72('0x41')](_0xaa72('0x42'))){_0x26547c[_0xaa72('0x43')]=qs[_0xaa72('0x43')](_0x777282['query'][_0xaa72('0x43')]);_0x26547c[_0xaa72('0x29')]=qs[_0xaa72('0x29')](_0x777282['query'][_0xaa72('0x29')]);}_0x26547c[_0xaa72('0x44')]=qs[_0xaa72('0x45')](_0x777282[_0xaa72('0x3b')][_0xaa72('0x45')]);_0x26547c['where']=qs[_0xaa72('0x46')](_[_0xaa72('0x47')](_0x777282[_0xaa72('0x3b')],_0x6959b7['filters']),_0x489a48);if(_0x777282['query'][_0xaa72('0x48')]){_0x26547c[_0xaa72('0x49')]=_[_0xaa72('0x4a')](_0x26547c['where'],{'$or':_[_0xaa72('0x3a')](_0x489a48,function(_0x24b3dd){if(_0x24b3dd['type']!=='VIRTUAL'){var _0x127793={};_0x127793[_0x24b3dd['name']]={'$like':'%'+_0x777282['query']['filter']+'%'};return _0x127793;}})});}_0x26547c=_[_0xaa72('0x4a')]({},_0x26547c,_0x777282[_0xaa72('0x4b')]);var _0xea7483={'where':_0x26547c[_0xaa72('0x49')]};return db['MailMessage'][_0xaa72('0x28')](_0xea7483)[_0xaa72('0x31')](function(_0xa195c7){_0x1407e5[_0xaa72('0x28')]=_0xa195c7;if(_0x777282['query'][_0xaa72('0x4c')]){_0x26547c[_0xaa72('0x4d')]=[{'all':!![]}];}return db[_0xaa72('0x35')][_0xaa72('0x4e')](_0x26547c);})[_0xaa72('0x31')](function(_0x156151){_0x1407e5[_0xaa72('0x4f')]=_0x156151;return _0x1407e5;})[_0xaa72('0x31')](respondWithFilteredResult(_0x2b1356,_0x26547c))['catch'](handleError(_0x2b1356,null));};exports[_0xaa72('0x50')]=function(_0x1edb71,_0x2f4edf){var _0x3ea55c={'raw':!![],'where':{'id':_0x1edb71[_0xaa72('0x51')]['id']}},_0x5d9736={};_0x5d9736['model']=_[_0xaa72('0x3c')](db[_0xaa72('0x35')][_0xaa72('0x52')]);_0x5d9736[_0xaa72('0x3b')]=_[_0xaa72('0x3c')](_0x1edb71[_0xaa72('0x3b')]);_0x5d9736['filters']=_[_0xaa72('0x3d')](_0x5d9736['model'],_0x5d9736[_0xaa72('0x3b')]);_0x3ea55c[_0xaa72('0x3e')]=_[_0xaa72('0x3d')](_0x5d9736[_0xaa72('0x39')],qs['fields'](_0x1edb71[_0xaa72('0x3b')][_0xaa72('0x3f')]));_0x3ea55c[_0xaa72('0x3e')]=_0x3ea55c[_0xaa72('0x3e')][_0xaa72('0x40')]?_0x3ea55c[_0xaa72('0x3e')]:_0x5d9736[_0xaa72('0x39')];if(_0x1edb71[_0xaa72('0x3b')]['includeAll']){_0x3ea55c[_0xaa72('0x4d')]=[{'all':!![]}];}_0x3ea55c=_[_0xaa72('0x4a')]({},_0x3ea55c,_0x1edb71[_0xaa72('0x4b')]);return db['MailMessage']['find'](_0x3ea55c)[_0xaa72('0x31')](handleEntityNotFound(_0x2f4edf,null))[_0xaa72('0x31')](respondWithResult(_0x2f4edf,null))['catch'](handleError(_0x2f4edf,null));};exports['update']=function(_0x30ffac,_0x5049c3){if(_0x30ffac['body']['id']){delete _0x30ffac[_0xaa72('0x53')]['id'];}return db[_0xaa72('0x35')]['find']({'where':{'id':_0x30ffac['params']['id']}})['then'](handleEntityNotFound(_0x5049c3,null))[_0xaa72('0x31')](saveUpdates(_0x30ffac[_0xaa72('0x53')],null))['then'](respondWithResult(_0x5049c3,null))[_0xaa72('0x54')](handleError(_0x5049c3,null));};exports[_0xaa72('0x30')]=function(_0x1e3987,_0x499be8){return db['MailMessage'][_0xaa72('0x55')]({'where':{'id':_0x1e3987['params']['id']}})[_0xaa72('0x31')](handleEntityNotFound(_0x499be8,null))['then'](removeEntity(_0x499be8,null))[_0xaa72('0x54')](handleError(_0x499be8,null));};exports[_0xaa72('0x56')]=function(_0x55f121,_0x5a898d){return db['MailMessage'][_0xaa72('0x56')]()[_0xaa72('0x31')](respondWithResult(_0x5a898d,null))['catch'](handleError(_0x5a898d,null));};exports[_0xaa72('0x57')]=function(_0x26bdb8,_0x1ed344){return db[_0xaa72('0x35')][_0xaa72('0x57')](_0x26bdb8[_0xaa72('0x53')])[_0xaa72('0x31')](function(_0x2377b6){if(_0x2377b6){if(_0x2377b6[_0xaa72('0x58')]===_0xaa72('0x59')&&!_0x2377b6[_0xaa72('0x5a')]){var _0x39330d,_0x3ac655,_0x5bc057;if(_0x26bdb8[_0xaa72('0x53')]['to']){_0x3ac655=_0x26bdb8[_0xaa72('0x53')]['to']['split'](',')[0x0];}return db[_0xaa72('0x5b')][_0xaa72('0x5c')]({'where':{'id':_0x2377b6['MailAccountId']},'include':[{'model':db[_0xaa72('0x5d')],'as':_0xaa72('0x5e'),'include':[{'model':db[_0xaa72('0x5f')],'as':_0xaa72('0x60'),'where':{'email':_0x3ac655},'limit':0x1,'order':[[_0xaa72('0x61'),_0xaa72('0x62')]]}]},{'model':db[_0xaa72('0x63')],'as':_0xaa72('0x64'),'raw':!![]}]})[_0xaa72('0x31')](function(_0x1de7f5){_0x39330d=_0x1de7f5;if(_0x39330d&&_0x39330d[_0xaa72('0x64')]){var _0x29ace2={'tls':{'rejectUnauthorized':![]}};if(_[_0xaa72('0x65')](_0x39330d[_0xaa72('0x64')][_0xaa72('0x66')])){_0x29ace2[_0xaa72('0x67')]=_0x39330d[_0xaa72('0x64')][_0xaa72('0x67')];_0x29ace2[_0xaa72('0x68')]=_0x39330d[_0xaa72('0x64')]['port'];_0x29ace2[_0xaa72('0x69')]=_0x39330d['Smtp'][_0xaa72('0x69')];if(_0x39330d[_0xaa72('0x64')][_0xaa72('0x6a')]){_0x29ace2['auth']={'user':_0x39330d[_0xaa72('0x64')][_0xaa72('0x6b')],'pass':_0x39330d[_0xaa72('0x64')][_0xaa72('0x6c')]};}}else{_0x29ace2[_0xaa72('0x66')]=_0x39330d[_0xaa72('0x64')][_0xaa72('0x66')];_0x29ace2[_0xaa72('0x6d')]={'user':_0x39330d[_0xaa72('0x64')][_0xaa72('0x6b')],'pass':_0x39330d[_0xaa72('0x64')]['pass']};_0x29ace2[_0xaa72('0x69')]=_0x39330d['Smtp'][_0xaa72('0x69')];}if(_0x26bdb8[_0xaa72('0x53')][_0xaa72('0x6e')]&&_0x26bdb8[_0xaa72('0x53')]['attachments']['length']){for(var _0x221545=0x0;_0x221545<_0x26bdb8[_0xaa72('0x53')][_0xaa72('0x6e')][_0xaa72('0x40')];_0x221545+=0x1){_0x26bdb8[_0xaa72('0x53')][_0xaa72('0x6e')][_0x221545]={'filename':_0x26bdb8[_0xaa72('0x53')][_0xaa72('0x6e')][_0x221545][_0xaa72('0x33')],'path':path[_0xaa72('0x6f')](config[_0xaa72('0x70')],_0xaa72('0x71'),_0x26bdb8[_0xaa72('0x53')][_0xaa72('0x6e')][_0x221545]['basename'])};}}_0x5bc057={'account':_0x29ace2,'message':_0x26bdb8[_0xaa72('0x53')]};return;}})[_0xaa72('0x31')](function(){if(_0x39330d[_0xaa72('0x5e')]){if(_0x39330d['List'][_0xaa72('0x60')][_0xaa72('0x40')]){return _0x39330d['List'][_0xaa72('0x60')][0x0];}else{return db[_0xaa72('0x5f')][_0xaa72('0x57')](_[_0xaa72('0x14')](_0x26bdb8['body'],{'firstName':_0x26bdb8[_0xaa72('0x53')]['to'],'email':_0x26bdb8['body']['to'],'phone':_0x26bdb8[_0xaa72('0x53')]['to'],'ListId':_0x39330d[_0xaa72('0x72')]}));}}else{throw new Error('List\x20not\x20found');}})[_0xaa72('0x31')](function(){if(_0x5bc057){return respondWithRpcPromise(_0xaa72('0x73'),_0xaa72('0x74'),_0x5bc057,client9003)[_0xaa72('0x31')](function(_0x17ee4f){return _0x2377b6['update']({'read':!![],'messageId':_0x17ee4f[_0xaa72('0x75')],'sentAt':moment()[_0xaa72('0x76')](_0xaa72('0x77'))});})[_0xaa72('0x54')](function(_0x1e4adb){logger['error']('%s',JSON['stringify'](_0x1e4adb));return _0x2377b6;});}return _0x2377b6;});}return _0x2377b6;}})[_0xaa72('0x31')](respondWithResult(_0x1ed344,0xc9))[_0xaa72('0x54')](handleError(_0x1ed344,null));};var interaction_log=require('../../config/logger')(_0xaa72('0x78'));exports[_0xaa72('0x79')]=function(_0x3f0cbe,_0x534dd5,_0x4edcad){var _0xde8ccb={'agent':{},'channel':_0xaa72('0x7a')};if(_0x3f0cbe[_0xaa72('0x53')]['id']){delete _0x3f0cbe['body']['id'];}_0x3f0cbe['body']['read']=!![];_0x3f0cbe['body'][_0xaa72('0x7b')]=moment()[_0xaa72('0x76')]('YYYY-MM-DD\x20HH:mm:ss');_0x3f0cbe[_0xaa72('0x53')]['UserId']=_0x3f0cbe['body'][_0xaa72('0x7c')]||_0x3f0cbe[_0xaa72('0x6b')]['id'];_0xde8ccb['agent']['id']=_0x3f0cbe[_0xaa72('0x53')]['UserId'];return db[_0xaa72('0x35')][_0xaa72('0x55')]({'where':{'id':_0x3f0cbe[_0xaa72('0x51')]['id'],'UserId':null},'include':[{'model':db[_0xaa72('0x5f')],'as':_0xaa72('0x7d')}]})[_0xaa72('0x31')](handleEntityNotFound(_0x534dd5,null))[_0xaa72('0x31')](saveUpdates(_0x3f0cbe[_0xaa72('0x53')],null))[_0xaa72('0x31')](function(_0x36467e){if(_0x36467e){_0xde8ccb[_0xaa72('0x24')]=_0x36467e[_0xaa72('0x7e')]({'plain':!![]});return db[_0xaa72('0x7f')][_0xaa72('0x55')]({'where':{'id':_0x36467e[_0xaa72('0x80')]}});}return null;})[_0xaa72('0x31')](handleEntityNotFound(_0x534dd5,null))[_0xaa72('0x31')](function(_0x1cfda2){if(_0x1cfda2){return _0x1cfda2[_0xaa72('0x2f')]({'UserId':_0x3f0cbe[_0xaa72('0x53')][_0xaa72('0x7c')],'read1stAt':_[_0xaa72('0x65')](_0x1cfda2[_0xaa72('0x81')])?moment()[_0xaa72('0x76')](_0xaa72('0x77')):undefined});}return null;})[_0xaa72('0x31')](function(_0xcfff11){if(_0xcfff11){_0xde8ccb[_0xaa72('0x82')]=_0xcfff11['get']({'plain':!![]});interaction_log[_0xaa72('0x1c')](_0xaa72('0x83'),_0x3f0cbe[_0xaa72('0x6b')]['id'],_0x3f0cbe[_0xaa72('0x6b')][_0xaa72('0x33')],_0x3f0cbe[_0xaa72('0x6b')][_0xaa72('0x84')],_0xde8ccb[_0xaa72('0x82')]['id'],_0x3f0cbe['body']?JSON['stringify'](_0x3f0cbe[_0xaa72('0x53')]):_0xaa72('0x85'));return respondWithRpcPromise(_0xaa72('0x86'),'acceptMessage',_0xde8ccb);}return null;})[_0xaa72('0x31')](function(_0x57b582){if(_0x57b582){if(_0x3f0cbe[_0xaa72('0x53')][_0xaa72('0x87')]){_0xde8ccb[_0xaa72('0x24')][_0xaa72('0x88')]=util[_0xaa72('0x76')]('SIP/%s',_0x3f0cbe[_0xaa72('0x6b')]['name']);_0xde8ccb[_0xaa72('0x24')][_0xaa72('0x89')]=_0xde8ccb[_0xaa72('0x89')];_0xde8ccb[_0xaa72('0x24')][_0xaa72('0x8a')]=_0xaa72('0x79');return respondWithRpcPromise('EventManager','EventManager',{'event':_0xaa72('0x8b'),'message':_0xde8ccb[_0xaa72('0x24')]},client9002)[_0xaa72('0x31')](function(){return _0xde8ccb;});}return _0xde8ccb;}return null;})[_0xaa72('0x31')](respondWithResult(_0x534dd5,null))[_0xaa72('0x54')](handleError(_0x534dd5,null));};var interaction_log=require(_0xaa72('0x8c'))(_0xaa72('0x78'));exports[_0xaa72('0x2d')]=function(_0x43bb37,_0x67a720,_0x4f9d03){var _0x17dbd1={'agent':{},'channel':'mail'};if(_0x43bb37[_0xaa72('0x53')]['id']){delete _0x43bb37[_0xaa72('0x53')]['id'];}_0x43bb37[_0xaa72('0x53')][_0xaa72('0x7c')]=_0x43bb37['body']['UserId']||_0x43bb37[_0xaa72('0x6b')]['id'];_0x17dbd1['agent']['id']=_0x43bb37[_0xaa72('0x53')][_0xaa72('0x7c')];return db[_0xaa72('0x35')][_0xaa72('0x55')]({'where':{'id':_0x43bb37['params']['id'],'UserId':null}})['then'](handleEntityNotFound(_0x67a720,null))['then'](function(_0x1a8cb8){if(_0x1a8cb8){_0x17dbd1[_0xaa72('0x24')]=_0x1a8cb8['get']({'plain':!![]});return db['MailInteraction'][_0xaa72('0x55')]({'where':{'id':_0x1a8cb8[_0xaa72('0x80')]}});}return null;})[_0xaa72('0x31')](handleEntityNotFound(_0x67a720,null))[_0xaa72('0x31')](function(_0xed9488){if(_0xed9488){_0x17dbd1[_0xaa72('0x82')]=_0xed9488[_0xaa72('0x7e')]({'plain':!![]});interaction_log[_0xaa72('0x1c')](_0xaa72('0x8d'),_0x43bb37[_0xaa72('0x6b')]['id'],_0x43bb37[_0xaa72('0x6b')][_0xaa72('0x33')],_0x43bb37['user'][_0xaa72('0x84')],_0x17dbd1[_0xaa72('0x82')]['id'],_0x43bb37[_0xaa72('0x53')]?JSON[_0xaa72('0x20')](_0x43bb37[_0xaa72('0x53')]):_0xaa72('0x85'));return respondWithRpcPromise(_0xaa72('0x8e'),_0xaa72('0x8f'),_0x17dbd1);}return null;})[_0xaa72('0x31')](function(_0x4d1e73){if(_0x4d1e73){_0x4d1e73[_0xaa72('0x24')][_0xaa72('0x88')]=util[_0xaa72('0x76')](_0xaa72('0x90'),_0x43bb37[_0xaa72('0x6b')][_0xaa72('0x33')]);_0x4d1e73[_0xaa72('0x24')][_0xaa72('0x89')]=_0x17dbd1[_0xaa72('0x89')];_0x4d1e73[_0xaa72('0x24')][_0xaa72('0x8a')]=_0xaa72('0x2d');respondWithRpcPromise(_0xaa72('0x91'),_0xaa72('0x91'),{'event':_0xaa72('0x92'),'message':_0x4d1e73[_0xaa72('0x24')]},client9002);return _0x17dbd1;}return null;})[_0xaa72('0x31')](respondWithResult(_0x67a720,null))[_0xaa72('0x54')](handleError(_0x67a720,null));};exports[_0xaa72('0x93')]=function(_0x486c7e,_0x5acee7){var _0x49c739=moment()[_0xaa72('0x94')]()[_0xaa72('0x95')]();var _0x32dbca=path[_0xaa72('0x6f')](config[_0xaa72('0x70')],_0xaa72('0x96'),_0xaa72('0x97'),'tmp');var _0x48acce=path[_0xaa72('0x6f')](config[_0xaa72('0x70')],'server',_0xaa72('0x97'),_0xaa72('0x6e'));var _0x5029c8=util[_0xaa72('0x76')](_0xaa72('0x98'),_0x49c739);return db[_0xaa72('0x35')][_0xaa72('0x55')]({'where':{'id':_0x486c7e[_0xaa72('0x51')]['id']},'attributes':['id','body','from','to','cc',_0xaa72('0x99'),_0xaa72('0x9a'),'createdAt'],'include':_0x486c7e['query'][_0xaa72('0x6e')]?[{'model':db[_0xaa72('0x9b')],'as':_0xaa72('0x9c')}]:undefined})[_0xaa72('0x31')](handleEntityNotFound(_0x5acee7,null))['then'](function(_0x16326d){if(_0x16326d){var _0x17ea87=_0x16326d;var _0x2bf4b2={'from':_0x17ea87['from'],'to':_0x17ea87['to'],'subject':_0x17ea87['subject'],'html':_0x17ea87[_0xaa72('0x53')],'headers':{'Date':moment(_0x17ea87['createdAt'])[_0xaa72('0x76')](_0xaa72('0x9d'))},'attachments':[]};if(_0x16326d['cc']){_0x2bf4b2[_0xaa72('0x9e')]['Cc']=_0x16326d['cc'];}if(_0x16326d[_0xaa72('0x99')]){_0x2bf4b2['headers'][_0xaa72('0x9f')]=_0x16326d[_0xaa72('0x99')];}return new BPromise(function(_0x3a32aa,_0x353ee5){if(_0x16326d[_0xaa72('0x9c')]){for(var _0x41685b=0x0;_0x41685b<_0x16326d[_0xaa72('0x9c')][_0xaa72('0x40')];_0x41685b++){var _0x54a663=_0x16326d[_0xaa72('0x9c')][_0x41685b];var _0x361c97=path[_0xaa72('0x6f')](_0x48acce,_0x54a663[_0xaa72('0xa0')]);if(fs[_0xaa72('0xa1')](_0x361c97)){_0x2bf4b2['attachments'][_0xaa72('0xa2')]({'name':_0x54a663[_0xaa72('0x33')],'contentType':_0x54a663[_0xaa72('0x37')],'data':fs[_0xaa72('0xa3')](_0x361c97)});}}}emlformat[_0xaa72('0xa4')](_0x2bf4b2,function(_0x219cb8,_0x241884){if(_0x219cb8)return _0x353ee5(_0x219cb8);fs[_0xaa72('0xa5')](path[_0xaa72('0x6f')](_0x32dbca,_0x5029c8),_0x241884);return _0x3a32aa(_0x241884);});});}})[_0xaa72('0x31')](function(_0x26dedc){if(_0x26dedc){return _0x5acee7['download'](path[_0xaa72('0x6f')](_0x32dbca,_0x5029c8),_0x5029c8,function(_0x1f8e0e){if(_0x1f8e0e){console[_0xaa72('0xa6')](_0xaa72('0xa7'),_0x1f8e0e);}else{fs[_0xaa72('0xa8')](path[_0xaa72('0x6f')](_0x32dbca,_0x5029c8));}});}})[_0xaa72('0x54')](handleError(_0x5acee7,null));};