Built motion from commit (unavailable).|2.5.4
[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 _0xf69d=['channel','accept','acceptmessage','mail-interactions','reject','mail','MailInteraction','MailInteractionId','[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','event','EventManager','rejectmessage','unix','toString','server','tmp','bcc','createdAt','Attachment','Attachments','from','subject','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','existsSync','push','type','readFileSync','build','download','err','unlinkSync','html-pdf','eml-format','rimraf','zip-dir','fast-json-patch','moment','bluebird','mustache','util','path','sox','to-csv','ejs','lodash','squel','crypto','jsforce','desk.js','querystring','papaparse','ioredis','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','redis','localhost','socket.io-emitter','./mailMessage.socket','register','client','http','test','Sequelize','ValidationError','The\x20password\x20must\x20be\x20at\x20least\x208\x20characters\x20long\x20and\x20have\x201\x20lowercase\x20character,\x201\x20uppercase\x20character,\x201\x20number\x20and\x201\x20special\x20character\x20~!@#$%^&-_=+[{]}.','request','info','debug','MailMessage,\x20%s,\x20%s,\x20%s','request\x20sent','code','MailMessage,\x20%s,\x20%s','error','message','result','sendStatus','status','end','json','count','offset','limit','set','Content-Range','apply','save','update','then','destroy','stack','name','index','MailMessage','rawAttributes','fieldName','key','model','map','query','keys','filters','intersection','fields','hasOwnProperty','order','sort','pick','filter','where','merge','options','includeAll','include','findAll','rows','catch','show','attributes','length','find','body','params','describe','create','direction','secret','split','findOne','MailAccountId','CmList','List','CmContact','Contacts','updatedAt','DESC','MailServerOut','Smtp','isNil','host','port','secure','authentication','auth','user','pass','service','attachments','join','root','server/files/attachments','basename','defaults','List\x20not\x20found','sendMail','messageId','format','YYYY-MM-DD\x20HH:mm:ss','read','UserId','Contact','get','read1stAt','interaction','[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','stringify','null','AcceptMessage','acceptMessage','manual','interface','SIP/%s'];(function(_0x5dba41,_0x19bacb){var _0x2f307a=function(_0x1b59e8){while(--_0x1b59e8){_0x5dba41['push'](_0x5dba41['shift']());}};_0x2f307a(++_0x19bacb);}(_0xf69d,0xd3));var _0xdf69=function(_0x4e3114,_0x4ed3cd){_0x4e3114=_0x4e3114-0x0;var _0x42885a=_0xf69d[_0x4e3114];return _0x42885a;};'use strict';var pdf=require(_0xdf69('0x0'));var emlformat=require(_0xdf69('0x1'));var rimraf=require(_0xdf69('0x2'));var zipdir=require(_0xdf69('0x3'));var jsonpatch=require(_0xdf69('0x4'));var rp=require('request-promise');var moment=require(_0xdf69('0x5'));var BPromise=require(_0xdf69('0x6'));var Mustache=require(_0xdf69('0x7'));var util=require(_0xdf69('0x8'));var path=require(_0xdf69('0x9'));var sox=require(_0xdf69('0xa'));var csv=require(_0xdf69('0xb'));var ejs=require(_0xdf69('0xc'));var fs=require('fs');var _=require(_0xdf69('0xd'));var squel=require(_0xdf69('0xe'));var crypto=require(_0xdf69('0xf'));var jsforce=require(_0xdf69('0x10'));var deskjs=require(_0xdf69('0x11'));var toCsv=require(_0xdf69('0xb'));var querystring=require(_0xdf69('0x12'));var Papa=require(_0xdf69('0x13'));var Redis=require(_0xdf69('0x14'));var authService=require('../../components/auth/service');var qs=require(_0xdf69('0x15'));var as=require(_0xdf69('0x16'));var hardwareService=require(_0xdf69('0x17'));var logger=require(_0xdf69('0x18'))(_0xdf69('0x19'));var utils=require(_0xdf69('0x1a'));var config=require('../../config/environment');var db=require('../../mysqldb')['db'];config['redis']=_['defaults'](config[_0xdf69('0x1b')],{'host':_0xdf69('0x1c'),'port':0x18eb});var socket=require(_0xdf69('0x1d'))(new Redis(config[_0xdf69('0x1b')]));require(_0xdf69('0x1e'))[_0xdf69('0x1f')](socket);var jayson=require('jayson/promise');var client=jayson[_0xdf69('0x20')][_0xdf69('0x21')]({'port':0x232c});var client9003=jayson[_0xdf69('0x20')][_0xdf69('0x21')]({'port':0x232b});var client9002=jayson['client'][_0xdf69('0x21')]({'port':0x232a});function checkPasswordPattern(_0x56be66,_0x2a6e55,_0x1899a2){if(_0x1899a2){var _0x5263a4=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x5263a4[_0xdf69('0x22')](_0x2a6e55)){return _0x56be66;}else{throw new db[(_0xdf69('0x23'))][(_0xdf69('0x24'))](_0xdf69('0x25'));}}else{return _0x56be66;}}function respondWithRpcPromise(_0x59bfd2,_0x5ae237,_0x352400,_0x15e73a){return new BPromise(function(_0x54df73,_0x32cf65){var _0x259e90=_0x15e73a||client;return _0x259e90[_0xdf69('0x26')](_0x59bfd2,_0x352400)['then'](function(_0x4776df){logger[_0xdf69('0x27')]('MailMessage,\x20%s,\x20%s',_0x5ae237,'request\x20sent');logger[_0xdf69('0x28')](_0xdf69('0x29'),_0x5ae237,_0xdf69('0x2a'),JSON['stringify'](_0x4776df));if(_0x4776df['error']){if(_0x4776df['error'][_0xdf69('0x2b')]===0x1f4){logger['error'](_0xdf69('0x2c'),_0x5ae237,_0x4776df[_0xdf69('0x2d')][_0xdf69('0x2e')]);return _0x32cf65(_0x4776df['error']['message']);}logger[_0xdf69('0x2d')](_0xdf69('0x2c'),_0x5ae237,_0x4776df[_0xdf69('0x2d')][_0xdf69('0x2e')]);return _0x54df73(_0x4776df['error'][_0xdf69('0x2e')]);}else{logger[_0xdf69('0x27')](_0xdf69('0x2c'),_0x5ae237,'request\x20sent');_0x54df73(_0x4776df[_0xdf69('0x2f')]['message']);}})['catch'](function(_0x4acf8e){logger['error'](_0xdf69('0x2c'),_0x5ae237,_0x4acf8e);_0x32cf65(_0x4acf8e);});});}function respondWithStatusCode(_0xe339ac,_0x4fc007){_0x4fc007=_0x4fc007||0xcc;return function(_0x301bd2){if(_0x301bd2){return _0xe339ac[_0xdf69('0x30')](_0x4fc007);}return _0xe339ac[_0xdf69('0x31')](_0x4fc007)[_0xdf69('0x32')]();};}function respondWithResult(_0x1b7c16,_0x1b57b3){_0x1b57b3=_0x1b57b3||0xc8;return function(_0x2131bc){if(_0x2131bc){return _0x1b7c16[_0xdf69('0x31')](_0x1b57b3)[_0xdf69('0x33')](_0x2131bc);}};}function respondWithFilteredResult(_0x3b97df,_0x38c1bb){return function(_0x2a23ed){if(_0x2a23ed){var _0x38f848=_0x2a23ed[_0xdf69('0x34')],_0x2cb97e=_0x38c1bb['offset'],_0x1b145b=_0x38c1bb[_0xdf69('0x35')]+_0x38c1bb[_0xdf69('0x36')],_0x31cee5;if(_0x1b145b>=_0x38f848){_0x1b145b=_0x38f848;_0x31cee5=0xc8;}else{_0x31cee5=0xce;}_0x3b97df[_0xdf69('0x31')](_0x31cee5);return _0x3b97df[_0xdf69('0x37')](_0xdf69('0x38'),_0x2cb97e+'-'+_0x1b145b+'/'+_0x38f848)['json'](_0x2a23ed);}return null;};}function patchUpdates(_0x23335d){return function(_0x5b136b){try{jsonpatch[_0xdf69('0x39')](_0x5b136b,_0x23335d,!![]);}catch(_0x25b828){return BPromise['reject'](_0x25b828);}return _0x5b136b[_0xdf69('0x3a')]();};}function saveUpdates(_0x537484,_0x1ca0c6){return function(_0x203a5d){if(_0x203a5d){return _0x203a5d[_0xdf69('0x3b')](_0x537484)[_0xdf69('0x3c')](function(_0x3b66c5){return _0x3b66c5;});}return null;};}function removeEntity(_0x5e3f5e,_0x175d5a){return function(_0x50250a){if(_0x50250a){return _0x50250a[_0xdf69('0x3d')]()[_0xdf69('0x3c')](function(){_0x5e3f5e[_0xdf69('0x31')](0xcc)[_0xdf69('0x32')]();});}};}function handleEntityNotFound(_0x5c38db,_0x192e75){return function(_0x51f996){if(!_0x51f996){_0x5c38db[_0xdf69('0x30')](0x194);}return _0x51f996;};}function handleError(_0x59c00e,_0x2ca402){_0x2ca402=_0x2ca402||0x1f4;return function(_0x5d8e26){logger[_0xdf69('0x2d')](_0x5d8e26[_0xdf69('0x3e')]);if(_0x5d8e26[_0xdf69('0x3f')]){delete _0x5d8e26[_0xdf69('0x3f')];}_0x59c00e[_0xdf69('0x31')](_0x2ca402)['send'](_0x5d8e26);};}exports[_0xdf69('0x40')]=function(_0x1c0eb4,_0x5f049e){var _0x555e8f={},_0x4ee03c={},_0x567dcc={'count':0x0,'rows':[]};var _0x51257=_['map'](db[_0xdf69('0x41')][_0xdf69('0x42')],function(_0x2e86ca){return{'name':_0x2e86ca[_0xdf69('0x43')],'type':_0x2e86ca['type'][_0xdf69('0x44')]};});_0x4ee03c[_0xdf69('0x45')]=_[_0xdf69('0x46')](_0x51257,'name');_0x4ee03c[_0xdf69('0x47')]=_[_0xdf69('0x48')](_0x1c0eb4[_0xdf69('0x47')]);_0x4ee03c[_0xdf69('0x49')]=_[_0xdf69('0x4a')](_0x4ee03c[_0xdf69('0x45')],_0x4ee03c[_0xdf69('0x47')]);_0x555e8f['attributes']=_['intersection'](_0x4ee03c[_0xdf69('0x45')],qs[_0xdf69('0x4b')](_0x1c0eb4[_0xdf69('0x47')][_0xdf69('0x4b')]));_0x555e8f['attributes']=_0x555e8f['attributes']['length']?_0x555e8f['attributes']:_0x4ee03c[_0xdf69('0x45')];if(!_0x1c0eb4['query'][_0xdf69('0x4c')]('nolimit')){_0x555e8f[_0xdf69('0x36')]=qs[_0xdf69('0x36')](_0x1c0eb4[_0xdf69('0x47')][_0xdf69('0x36')]);_0x555e8f[_0xdf69('0x35')]=qs[_0xdf69('0x35')](_0x1c0eb4[_0xdf69('0x47')][_0xdf69('0x35')]);}_0x555e8f[_0xdf69('0x4d')]=qs['sort'](_0x1c0eb4['query'][_0xdf69('0x4e')]);_0x555e8f['where']=qs[_0xdf69('0x49')](_[_0xdf69('0x4f')](_0x1c0eb4[_0xdf69('0x47')],_0x4ee03c['filters']),_0x51257);if(_0x1c0eb4[_0xdf69('0x47')][_0xdf69('0x50')]){_0x555e8f[_0xdf69('0x51')]=_[_0xdf69('0x52')](_0x555e8f['where'],{'$or':_[_0xdf69('0x46')](_0x51257,function(_0x38aeab){if(_0x38aeab['type']!=='VIRTUAL'){var _0xe7e186={};_0xe7e186[_0x38aeab[_0xdf69('0x3f')]]={'$like':'%'+_0x1c0eb4[_0xdf69('0x47')][_0xdf69('0x50')]+'%'};return _0xe7e186;}})});}_0x555e8f=_[_0xdf69('0x52')]({},_0x555e8f,_0x1c0eb4[_0xdf69('0x53')]);var _0x578eec={'where':_0x555e8f['where']};return db[_0xdf69('0x41')][_0xdf69('0x34')](_0x578eec)[_0xdf69('0x3c')](function(_0x29dfc3){_0x567dcc['count']=_0x29dfc3;if(_0x1c0eb4['query'][_0xdf69('0x54')]){_0x555e8f[_0xdf69('0x55')]=[{'all':!![]}];}return db[_0xdf69('0x41')][_0xdf69('0x56')](_0x555e8f);})[_0xdf69('0x3c')](function(_0x7f1b75){_0x567dcc[_0xdf69('0x57')]=_0x7f1b75;return _0x567dcc;})[_0xdf69('0x3c')](respondWithFilteredResult(_0x5f049e,_0x555e8f))[_0xdf69('0x58')](handleError(_0x5f049e,null));};exports[_0xdf69('0x59')]=function(_0x18de70,_0x39d4d6){var _0x9a24c9={'raw':!![],'where':{'id':_0x18de70['params']['id']}},_0x439b06={};_0x439b06[_0xdf69('0x45')]=_[_0xdf69('0x48')](db[_0xdf69('0x41')]['rawAttributes']);_0x439b06[_0xdf69('0x47')]=_[_0xdf69('0x48')](_0x18de70[_0xdf69('0x47')]);_0x439b06['filters']=_[_0xdf69('0x4a')](_0x439b06['model'],_0x439b06[_0xdf69('0x47')]);_0x9a24c9[_0xdf69('0x5a')]=_[_0xdf69('0x4a')](_0x439b06[_0xdf69('0x45')],qs['fields'](_0x18de70[_0xdf69('0x47')][_0xdf69('0x4b')]));_0x9a24c9[_0xdf69('0x5a')]=_0x9a24c9[_0xdf69('0x5a')][_0xdf69('0x5b')]?_0x9a24c9[_0xdf69('0x5a')]:_0x439b06[_0xdf69('0x45')];if(_0x18de70[_0xdf69('0x47')][_0xdf69('0x54')]){_0x9a24c9['include']=[{'all':!![]}];}_0x9a24c9=_[_0xdf69('0x52')]({},_0x9a24c9,_0x18de70[_0xdf69('0x53')]);return db['MailMessage'][_0xdf69('0x5c')](_0x9a24c9)[_0xdf69('0x3c')](handleEntityNotFound(_0x39d4d6,null))['then'](respondWithResult(_0x39d4d6,null))['catch'](handleError(_0x39d4d6,null));};exports[_0xdf69('0x3b')]=function(_0x500703,_0x36bd47){if(_0x500703[_0xdf69('0x5d')]['id']){delete _0x500703[_0xdf69('0x5d')]['id'];}return db['MailMessage']['find']({'where':{'id':_0x500703[_0xdf69('0x5e')]['id']}})[_0xdf69('0x3c')](handleEntityNotFound(_0x36bd47,null))[_0xdf69('0x3c')](saveUpdates(_0x500703[_0xdf69('0x5d')],null))[_0xdf69('0x3c')](respondWithResult(_0x36bd47,null))[_0xdf69('0x58')](handleError(_0x36bd47,null));};exports[_0xdf69('0x3d')]=function(_0x4474c2,_0x382aea){return db[_0xdf69('0x41')]['find']({'where':{'id':_0x4474c2[_0xdf69('0x5e')]['id']}})[_0xdf69('0x3c')](handleEntityNotFound(_0x382aea,null))[_0xdf69('0x3c')](removeEntity(_0x382aea,null))[_0xdf69('0x58')](handleError(_0x382aea,null));};exports[_0xdf69('0x5f')]=function(_0x18ead3,_0x3c1ef2){return db[_0xdf69('0x41')][_0xdf69('0x5f')]()['then'](respondWithResult(_0x3c1ef2,null))['catch'](handleError(_0x3c1ef2,null));};exports[_0xdf69('0x60')]=function(_0x3bfd34,_0x5551f8){return db[_0xdf69('0x41')][_0xdf69('0x60')](_0x3bfd34[_0xdf69('0x5d')])[_0xdf69('0x3c')](function(_0x19c8dc){if(_0x19c8dc){if(_0x19c8dc[_0xdf69('0x61')]==='out'&&!_0x19c8dc[_0xdf69('0x62')]){var _0x558fb6,_0x3aa3ba,_0x4b0569;if(_0x3bfd34['body']['to']){_0x3aa3ba=_0x3bfd34[_0xdf69('0x5d')]['to'][_0xdf69('0x63')](',')[0x0];}return db['MailAccount'][_0xdf69('0x64')]({'where':{'id':_0x19c8dc[_0xdf69('0x65')]},'include':[{'model':db[_0xdf69('0x66')],'as':_0xdf69('0x67'),'include':[{'model':db[_0xdf69('0x68')],'as':_0xdf69('0x69'),'where':{'email':_0x3aa3ba},'limit':0x1,'order':[[_0xdf69('0x6a'),_0xdf69('0x6b')]]}]},{'model':db[_0xdf69('0x6c')],'as':'Smtp','raw':!![]}]})['then'](function(_0x5a2c39){_0x558fb6=_0x5a2c39;if(_0x558fb6&&_0x558fb6[_0xdf69('0x6d')]){var _0x4bfa70={'tls':{'rejectUnauthorized':![]}};if(_[_0xdf69('0x6e')](_0x558fb6[_0xdf69('0x6d')]['service'])){_0x4bfa70['host']=_0x558fb6[_0xdf69('0x6d')][_0xdf69('0x6f')];_0x4bfa70[_0xdf69('0x70')]=_0x558fb6[_0xdf69('0x6d')][_0xdf69('0x70')];_0x4bfa70[_0xdf69('0x71')]=_0x558fb6[_0xdf69('0x6d')][_0xdf69('0x71')];if(_0x558fb6['Smtp'][_0xdf69('0x72')]){_0x4bfa70[_0xdf69('0x73')]={'user':_0x558fb6[_0xdf69('0x6d')][_0xdf69('0x74')],'pass':_0x558fb6['Smtp'][_0xdf69('0x75')]};}}else{_0x4bfa70[_0xdf69('0x76')]=_0x558fb6[_0xdf69('0x6d')][_0xdf69('0x76')];_0x4bfa70[_0xdf69('0x73')]={'user':_0x558fb6['Smtp']['user'],'pass':_0x558fb6['Smtp']['pass']};_0x4bfa70['secure']=_0x558fb6[_0xdf69('0x6d')]['secure'];}if(_0x3bfd34['body']['attachments']&&_0x3bfd34['body'][_0xdf69('0x77')][_0xdf69('0x5b')]){for(var _0x18200e=0x0;_0x18200e<_0x3bfd34[_0xdf69('0x5d')]['attachments'][_0xdf69('0x5b')];_0x18200e+=0x1){_0x3bfd34[_0xdf69('0x5d')]['attachments'][_0x18200e]={'filename':_0x3bfd34[_0xdf69('0x5d')][_0xdf69('0x77')][_0x18200e][_0xdf69('0x3f')],'path':path[_0xdf69('0x78')](config[_0xdf69('0x79')],_0xdf69('0x7a'),_0x3bfd34[_0xdf69('0x5d')]['attachments'][_0x18200e][_0xdf69('0x7b')])};}}_0x4b0569={'account':_0x4bfa70,'message':_0x3bfd34[_0xdf69('0x5d')]};return;}})[_0xdf69('0x3c')](function(){if(_0x558fb6[_0xdf69('0x67')]){if(_0x558fb6[_0xdf69('0x67')][_0xdf69('0x69')][_0xdf69('0x5b')]){return _0x558fb6[_0xdf69('0x67')][_0xdf69('0x69')][0x0];}else{return db[_0xdf69('0x68')][_0xdf69('0x60')](_[_0xdf69('0x7c')](_0x3bfd34[_0xdf69('0x5d')],{'firstName':_0x3bfd34[_0xdf69('0x5d')]['to'],'email':_0x3bfd34[_0xdf69('0x5d')]['to'],'phone':_0x3bfd34[_0xdf69('0x5d')]['to'],'ListId':_0x558fb6['ListId']}));}}else{throw new Error(_0xdf69('0x7d'));}})[_0xdf69('0x3c')](function(){if(_0x4b0569){return respondWithRpcPromise('SendMail',_0xdf69('0x7e'),_0x4b0569,client9003)[_0xdf69('0x3c')](function(_0x446e08){return _0x19c8dc[_0xdf69('0x3b')]({'read':!![],'messageId':_0x446e08[_0xdf69('0x7f')],'sentAt':moment()[_0xdf69('0x80')](_0xdf69('0x81'))});})[_0xdf69('0x58')](function(_0x52f6c6){logger['error']('%s',JSON['stringify'](_0x52f6c6));return _0x19c8dc;});}return _0x19c8dc;});}return _0x19c8dc;}})[_0xdf69('0x3c')](respondWithResult(_0x5551f8,0xc9))[_0xdf69('0x58')](handleError(_0x5551f8,null));};var interaction_log=require(_0xdf69('0x18'))('mail-interactions');exports['accept']=function(_0x4deff5,_0x2d51e1,_0x2c025f){var _0x1ac107={'channel':'mail'};if(_0x4deff5['body']['id']){delete _0x4deff5[_0xdf69('0x5d')]['id'];}_0x4deff5[_0xdf69('0x5d')][_0xdf69('0x82')]=!![];_0x4deff5[_0xdf69('0x5d')]['readAt']=moment()[_0xdf69('0x80')](_0xdf69('0x81'));_0x4deff5['body']['UserId']=_0x4deff5[_0xdf69('0x5d')][_0xdf69('0x83')]||_0x4deff5['user']['id'];return db[_0xdf69('0x41')][_0xdf69('0x5c')]({'where':{'id':_0x4deff5[_0xdf69('0x5e')]['id'],'UserId':null},'include':[{'model':db['CmContact'],'as':_0xdf69('0x84')}]})['then'](handleEntityNotFound(_0x2d51e1,null))['then'](saveUpdates(_0x4deff5['body'],null))[_0xdf69('0x3c')](function(_0x153f15){if(_0x153f15){_0x1ac107[_0xdf69('0x2e')]=_0x153f15[_0xdf69('0x85')]({'plain':!![]});return db['MailInteraction'][_0xdf69('0x5c')]({'where':{'id':_0x153f15['MailInteractionId']}});}return null;})['then'](handleEntityNotFound(_0x2d51e1,null))[_0xdf69('0x3c')](function(_0x2c5df5){if(_0x2c5df5){return _0x2c5df5[_0xdf69('0x3b')]({'UserId':_0x4deff5[_0xdf69('0x5d')][_0xdf69('0x83')],'read1stAt':_[_0xdf69('0x6e')](_0x2c5df5[_0xdf69('0x86')])?moment()[_0xdf69('0x80')](_0xdf69('0x81')):undefined});}return null;})['then'](function(_0x5d8667){if(_0x5d8667){_0x1ac107[_0xdf69('0x87')]=_0x5d8667[_0xdf69('0x85')]({'plain':!![]});interaction_log[_0xdf69('0x27')](_0xdf69('0x88'),_0x4deff5[_0xdf69('0x74')]['id'],_0x4deff5[_0xdf69('0x74')][_0xdf69('0x3f')],_0x4deff5[_0xdf69('0x74')][_0xdf69('0x89')],_0x1ac107[_0xdf69('0x87')]['id'],_0x4deff5['body']?JSON[_0xdf69('0x8a')](_0x4deff5[_0xdf69('0x5d')]):_0xdf69('0x8b'));return respondWithRpcPromise(_0xdf69('0x8c'),_0xdf69('0x8d'),_0x1ac107);}return null;})[_0xdf69('0x3c')](function(_0x544563){if(_0x544563){if(_0x4deff5[_0xdf69('0x5d')][_0xdf69('0x8e')]){_0x1ac107[_0xdf69('0x2e')][_0xdf69('0x8f')]=util['format'](_0xdf69('0x90'),_0x4deff5['user']['name']);_0x1ac107[_0xdf69('0x2e')][_0xdf69('0x91')]=_0x1ac107['channel'];_0x1ac107[_0xdf69('0x2e')]['event']=_0xdf69('0x92');return respondWithRpcPromise('EventManager','EventManager',{'event':_0xdf69('0x93'),'message':_0x1ac107[_0xdf69('0x2e')]},client9002)[_0xdf69('0x3c')](function(){return _0x1ac107;});}return _0x1ac107;}return null;})['then'](respondWithResult(_0x2d51e1,null))[_0xdf69('0x58')](handleError(_0x2d51e1,null));};var interaction_log=require(_0xdf69('0x18'))(_0xdf69('0x94'));exports[_0xdf69('0x95')]=function(_0x3eb33c,_0x148c87,_0x3fa873){var _0x31df4e={'agent':{},'channel':_0xdf69('0x96')};if(_0x3eb33c['body']['id']){delete _0x3eb33c[_0xdf69('0x5d')]['id'];}_0x3eb33c[_0xdf69('0x5d')]['UserId']=_0x3eb33c[_0xdf69('0x5d')][_0xdf69('0x83')]||_0x3eb33c[_0xdf69('0x74')]['id'];_0x31df4e['agent']['id']=_0x3eb33c[_0xdf69('0x5d')]['UserId'];return db['MailMessage']['find']({'where':{'id':_0x3eb33c['params']['id'],'UserId':null}})[_0xdf69('0x3c')](handleEntityNotFound(_0x148c87,null))[_0xdf69('0x3c')](function(_0x5a3074){if(_0x5a3074){_0x31df4e[_0xdf69('0x2e')]=_0x5a3074['get']({'plain':!![]});return db[_0xdf69('0x97')][_0xdf69('0x5c')]({'where':{'id':_0x5a3074[_0xdf69('0x98')]}});}return null;})[_0xdf69('0x3c')](handleEntityNotFound(_0x148c87,null))[_0xdf69('0x3c')](function(_0xa3ca65){if(_0xa3ca65){_0x31df4e[_0xdf69('0x87')]=_0xa3ca65[_0xdf69('0x85')]({'plain':!![]});interaction_log[_0xdf69('0x27')](_0xdf69('0x99'),_0x3eb33c[_0xdf69('0x74')]['id'],_0x3eb33c[_0xdf69('0x74')][_0xdf69('0x3f')],_0x3eb33c[_0xdf69('0x74')]['role'],_0x31df4e[_0xdf69('0x87')]['id'],_0x3eb33c[_0xdf69('0x5d')]?JSON['stringify'](_0x3eb33c['body']):_0xdf69('0x8b'));return respondWithRpcPromise(_0xdf69('0x9a'),'rejectMessage',_0x31df4e);}return null;})['then'](function(_0x29f7b9){if(_0x29f7b9){_0x29f7b9[_0xdf69('0x2e')][_0xdf69('0x8f')]=util[_0xdf69('0x80')](_0xdf69('0x90'),_0x3eb33c[_0xdf69('0x74')][_0xdf69('0x3f')]);_0x29f7b9[_0xdf69('0x2e')][_0xdf69('0x91')]=_0x31df4e[_0xdf69('0x91')];_0x29f7b9['message'][_0xdf69('0x9b')]=_0xdf69('0x95');respondWithRpcPromise(_0xdf69('0x9c'),'EventManager',{'event':_0xdf69('0x9d'),'message':_0x29f7b9[_0xdf69('0x2e')]},client9002);return _0x31df4e;}return null;})['then'](respondWithResult(_0x148c87,null))[_0xdf69('0x58')](handleError(_0x148c87,null));};exports['download']=function(_0x470d79,_0x3f9900){var _0x24dccd=moment()[_0xdf69('0x9e')]()[_0xdf69('0x9f')]();var _0x1a65ec=path[_0xdf69('0x78')](config[_0xdf69('0x79')],_0xdf69('0xa0'),'files',_0xdf69('0xa1'));var _0x2c0191=path[_0xdf69('0x78')](config[_0xdf69('0x79')],'server','files',_0xdf69('0x77'));var _0x784444=util['format']('message-%s.eml',_0x24dccd);return db[_0xdf69('0x41')][_0xdf69('0x5c')]({'where':{'id':_0x470d79[_0xdf69('0x5e')]['id']},'attributes':['id','body','from','to','cc',_0xdf69('0xa2'),'subject',_0xdf69('0xa3')],'include':_0x470d79['query'][_0xdf69('0x77')]?[{'model':db[_0xdf69('0xa4')],'as':_0xdf69('0xa5')}]:undefined})['then'](handleEntityNotFound(_0x3f9900,null))['then'](function(_0x526e5f){if(_0x526e5f){var _0x420dc1=_0x526e5f;var _0x393f8a={'from':_0x420dc1[_0xdf69('0xa6')],'to':_0x420dc1['to'],'subject':_0x420dc1[_0xdf69('0xa7')],'html':_0x420dc1[_0xdf69('0x5d')],'headers':{'Date':moment(_0x420dc1[_0xdf69('0xa3')])['format'](_0xdf69('0xa8'))},'attachments':[]};if(_0x526e5f['cc']){_0x393f8a[_0xdf69('0xa9')]['Cc']=_0x526e5f['cc'];}if(_0x526e5f['bcc']){_0x393f8a[_0xdf69('0xa9')]['Bcc']=_0x526e5f[_0xdf69('0xa2')];}return new BPromise(function(_0x471c1e,_0x169606){if(_0x526e5f[_0xdf69('0xa5')]){for(var _0x56f62f=0x0;_0x56f62f<_0x526e5f[_0xdf69('0xa5')][_0xdf69('0x5b')];_0x56f62f++){var _0x4f35f2=_0x526e5f[_0xdf69('0xa5')][_0x56f62f];var _0x3c8583=path['join'](_0x2c0191,_0x4f35f2[_0xdf69('0x7b')]);if(fs[_0xdf69('0xaa')](_0x3c8583)){_0x393f8a[_0xdf69('0x77')][_0xdf69('0xab')]({'name':_0x4f35f2[_0xdf69('0x3f')],'contentType':_0x4f35f2[_0xdf69('0xac')],'data':fs[_0xdf69('0xad')](_0x3c8583)});}}}emlformat[_0xdf69('0xae')](_0x393f8a,function(_0x54c0f8,_0x3e4ac5){if(_0x54c0f8)return _0x169606(_0x54c0f8);fs['writeFileSync'](path[_0xdf69('0x78')](_0x1a65ec,_0x784444),_0x3e4ac5);return _0x471c1e(_0x3e4ac5);});});}})[_0xdf69('0x3c')](function(_0x526185){if(_0x526185){return _0x3f9900[_0xdf69('0xaf')](path['join'](_0x1a65ec,_0x784444),_0x784444,function(_0x3ac037){if(_0x3ac037){console['log'](_0xdf69('0xb0'),_0x3ac037);}else{fs[_0xdf69('0xb1')](path[_0xdf69('0x78')](_0x1a65ec,_0x784444));}});}})[_0xdf69('0x58')](handleError(_0x3f9900,null));};