Built motion from commit (unavailable).|2.5.0
[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 _0x3b59=['unix','toString','join','server','files','from','bcc','subject','createdAt','Attachment','Attachments','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','existsSync','push','readFileSync','build','log','err','unlinkSync','html-pdf','rimraf','zip-dir','fast-json-patch','request-promise','moment','bluebird','mustache','util','path','to-csv','lodash','squel','crypto','jsforce','desk.js','papaparse','ioredis','../../components/auth/service','../../components/parsers/qs','../../components/parsers/advancedSearch','../../config/license/hardware','../../config/logger','api','../../config/utils','../../mysqldb','redis','./mailMessage.socket','register','jayson/promise','client','http','Sequelize','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','then','info','MailMessage,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','sendStatus','end','status','json','count','offset','set','apply','reject','update','destroy','name','send','index','map','rawAttributes','type','key','model','keys','query','intersection','fields','attributes','length','hasOwnProperty','limit','order','sort','filters','pick','where','merge','filter','MailMessage','includeAll','include','rows','show','params','options','body','find','describe','create','direction','secret','split','MailAccount','findOne','MailAccountId','CmList','Contacts','DESC','MailServerOut','Smtp','isNil','host','port','secure','authentication','auth','user','service','pass','attachments','root','server/files/attachments','basename','List','CmContact','defaults','ListId','List\x20not\x20found','sendMail','format','YYYY-MM-DD\x20HH:mm:ss','mail-interactions','read','readAt','UserId','get','MailInteraction','MailInteractionId','read1stAt','interaction','role','null','AcceptMessage','acceptMessage','manual','interface','SIP/%s','channel','event','accept','EventManager','acceptmessage','mail','agent','[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','RejectMessage','rejectMessage','rejectmessage','download'];(function(_0x410d34,_0xad523b){var _0x3b2f5d=function(_0x2232b6){while(--_0x2232b6){_0x410d34['push'](_0x410d34['shift']());}};_0x3b2f5d(++_0xad523b);}(_0x3b59,0xc0));var _0x93b5=function(_0xffb079,_0x2d5dc0){_0xffb079=_0xffb079-0x0;var _0x4ed0ee=_0x3b59[_0xffb079];return _0x4ed0ee;};'use strict';var pdf=require(_0x93b5('0x0'));var emlformat=require('eml-format');var rimraf=require(_0x93b5('0x1'));var zipdir=require(_0x93b5('0x2'));var jsonpatch=require(_0x93b5('0x3'));var rp=require(_0x93b5('0x4'));var moment=require(_0x93b5('0x5'));var BPromise=require(_0x93b5('0x6'));var Mustache=require(_0x93b5('0x7'));var util=require(_0x93b5('0x8'));var path=require(_0x93b5('0x9'));var sox=require('sox');var csv=require(_0x93b5('0xa'));var ejs=require('ejs');var fs=require('fs');var _=require(_0x93b5('0xb'));var squel=require(_0x93b5('0xc'));var crypto=require(_0x93b5('0xd'));var jsforce=require(_0x93b5('0xe'));var deskjs=require(_0x93b5('0xf'));var toCsv=require('to-csv');var querystring=require('querystring');var Papa=require(_0x93b5('0x10'));var Redis=require(_0x93b5('0x11'));var authService=require(_0x93b5('0x12'));var qs=require(_0x93b5('0x13'));var as=require(_0x93b5('0x14'));var hardwareService=require(_0x93b5('0x15'));var logger=require(_0x93b5('0x16'))(_0x93b5('0x17'));var utils=require(_0x93b5('0x18'));var config=require('../../config/environment');var db=require(_0x93b5('0x19'))['db'];config[_0x93b5('0x1a')]=_['defaults'](config[_0x93b5('0x1a')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x93b5('0x1a')]));require(_0x93b5('0x1b'))[_0x93b5('0x1c')](socket);var jayson=require(_0x93b5('0x1d'));var client=jayson[_0x93b5('0x1e')][_0x93b5('0x1f')]({'port':0x232c});var client9003=jayson[_0x93b5('0x1e')][_0x93b5('0x1f')]({'port':0x232b});var client9002=jayson[_0x93b5('0x1e')][_0x93b5('0x1f')]({'port':0x232a});function checkPasswordPattern(_0x595513,_0x40fc8c,_0x4fdc91){if(_0x4fdc91){var _0x582e11=new RegExp(/(?=.*[a-z])(?=.*[A-Z])(?=.*[0-9])(?=.*[?!@#\$%\^&\*~\-_=+[{\]\}])(?=.{8,})/);if(_0x582e11['test'](_0x40fc8c)){return _0x595513;}else{throw new db[(_0x93b5('0x20'))]['ValidationError'](_0x93b5('0x21'));}}else{return _0x595513;}}function respondWithRpcPromise(_0x14691a,_0x42fc67,_0x520ccf,_0x5c79ee){return new BPromise(function(_0x363b24,_0x3ef39b){var _0x1f61b0=_0x5c79ee||client;return _0x1f61b0[_0x93b5('0x22')](_0x14691a,_0x520ccf)[_0x93b5('0x23')](function(_0x3417f3){logger[_0x93b5('0x24')](_0x93b5('0x25'),_0x42fc67,'request\x20sent');logger['debug']('MailMessage,\x20%s,\x20%s,\x20%s',_0x42fc67,_0x93b5('0x26'),JSON[_0x93b5('0x27')](_0x3417f3));if(_0x3417f3['error']){if(_0x3417f3[_0x93b5('0x28')][_0x93b5('0x29')]===0x1f4){logger[_0x93b5('0x28')](_0x93b5('0x25'),_0x42fc67,_0x3417f3[_0x93b5('0x28')][_0x93b5('0x2a')]);return _0x3ef39b(_0x3417f3[_0x93b5('0x28')][_0x93b5('0x2a')]);}logger[_0x93b5('0x28')](_0x93b5('0x25'),_0x42fc67,_0x3417f3[_0x93b5('0x28')]['message']);return _0x363b24(_0x3417f3['error'][_0x93b5('0x2a')]);}else{logger[_0x93b5('0x24')](_0x93b5('0x25'),_0x42fc67,_0x93b5('0x26'));_0x363b24(_0x3417f3[_0x93b5('0x2b')]['message']);}})[_0x93b5('0x2c')](function(_0x11edc8){logger[_0x93b5('0x28')](_0x93b5('0x25'),_0x42fc67,_0x11edc8);_0x3ef39b(_0x11edc8);});});}function respondWithStatusCode(_0x55cb8c,_0x5d8232){_0x5d8232=_0x5d8232||0xcc;return function(_0x44f915){if(_0x44f915){return _0x55cb8c[_0x93b5('0x2d')](_0x5d8232);}return _0x55cb8c['status'](_0x5d8232)[_0x93b5('0x2e')]();};}function respondWithResult(_0x300f91,_0x46ec66){_0x46ec66=_0x46ec66||0xc8;return function(_0x3954ce){if(_0x3954ce){return _0x300f91[_0x93b5('0x2f')](_0x46ec66)[_0x93b5('0x30')](_0x3954ce);}};}function respondWithFilteredResult(_0xc7f3dd,_0x1f2bbf){return function(_0x47c396){if(_0x47c396){var _0x3f73d0=_0x47c396[_0x93b5('0x31')],_0x50d99e=_0x1f2bbf['offset'],_0x4578f6=_0x1f2bbf[_0x93b5('0x32')]+_0x1f2bbf['limit'],_0x610a94;if(_0x4578f6>=_0x3f73d0){_0x4578f6=_0x3f73d0;_0x610a94=0xc8;}else{_0x610a94=0xce;}_0xc7f3dd['status'](_0x610a94);return _0xc7f3dd[_0x93b5('0x33')]('Content-Range',_0x50d99e+'-'+_0x4578f6+'/'+_0x3f73d0)[_0x93b5('0x30')](_0x47c396);}return null;};}function patchUpdates(_0x3da62c){return function(_0x414ff2){try{jsonpatch[_0x93b5('0x34')](_0x414ff2,_0x3da62c,!![]);}catch(_0xd36ea0){return BPromise[_0x93b5('0x35')](_0xd36ea0);}return _0x414ff2['save']();};}function saveUpdates(_0x2004fa,_0x5ec3aa){return function(_0x1503e9){if(_0x1503e9){return _0x1503e9[_0x93b5('0x36')](_0x2004fa)[_0x93b5('0x23')](function(_0x25c6d8){return _0x25c6d8;});}return null;};}function removeEntity(_0x9cf835,_0x55ef1c){return function(_0x521af6){if(_0x521af6){return _0x521af6[_0x93b5('0x37')]()[_0x93b5('0x23')](function(){_0x9cf835['status'](0xcc)['end']();});}};}function handleEntityNotFound(_0x3d82f5,_0x4fa97c){return function(_0xebd179){if(!_0xebd179){_0x3d82f5[_0x93b5('0x2d')](0x194);}return _0xebd179;};}function handleError(_0x5cd373,_0x42c3fb){_0x42c3fb=_0x42c3fb||0x1f4;return function(_0x3baf23){logger['error'](_0x3baf23['stack']);if(_0x3baf23['name']){delete _0x3baf23[_0x93b5('0x38')];}_0x5cd373[_0x93b5('0x2f')](_0x42c3fb)[_0x93b5('0x39')](_0x3baf23);};}exports[_0x93b5('0x3a')]=function(_0x25f64f,_0x30c8df){var _0x92598b={},_0x18cb23={},_0xff7f09={'count':0x0,'rows':[]};var _0x1a1841=_[_0x93b5('0x3b')](db['MailMessage'][_0x93b5('0x3c')],function(_0x32516f){return{'name':_0x32516f['fieldName'],'type':_0x32516f[_0x93b5('0x3d')][_0x93b5('0x3e')]};});_0x18cb23[_0x93b5('0x3f')]=_['map'](_0x1a1841,'name');_0x18cb23['query']=_[_0x93b5('0x40')](_0x25f64f[_0x93b5('0x41')]);_0x18cb23['filters']=_[_0x93b5('0x42')](_0x18cb23['model'],_0x18cb23['query']);_0x92598b['attributes']=_[_0x93b5('0x42')](_0x18cb23[_0x93b5('0x3f')],qs['fields'](_0x25f64f['query'][_0x93b5('0x43')]));_0x92598b[_0x93b5('0x44')]=_0x92598b[_0x93b5('0x44')][_0x93b5('0x45')]?_0x92598b['attributes']:_0x18cb23[_0x93b5('0x3f')];if(!_0x25f64f[_0x93b5('0x41')][_0x93b5('0x46')]('nolimit')){_0x92598b[_0x93b5('0x47')]=qs[_0x93b5('0x47')](_0x25f64f[_0x93b5('0x41')][_0x93b5('0x47')]);_0x92598b[_0x93b5('0x32')]=qs['offset'](_0x25f64f[_0x93b5('0x41')][_0x93b5('0x32')]);}_0x92598b[_0x93b5('0x48')]=qs['sort'](_0x25f64f[_0x93b5('0x41')][_0x93b5('0x49')]);_0x92598b['where']=qs[_0x93b5('0x4a')](_[_0x93b5('0x4b')](_0x25f64f['query'],_0x18cb23[_0x93b5('0x4a')]),_0x1a1841);if(_0x25f64f['query']['filter']){_0x92598b[_0x93b5('0x4c')]=_[_0x93b5('0x4d')](_0x92598b[_0x93b5('0x4c')],{'$or':_['map'](_0x1a1841,function(_0x25f7c5){if(_0x25f7c5[_0x93b5('0x3d')]!=='VIRTUAL'){var _0x57adb9={};_0x57adb9[_0x25f7c5['name']]={'$like':'%'+_0x25f64f[_0x93b5('0x41')][_0x93b5('0x4e')]+'%'};return _0x57adb9;}})});}_0x92598b=_[_0x93b5('0x4d')]({},_0x92598b,_0x25f64f['options']);var _0x4cc808={'where':_0x92598b[_0x93b5('0x4c')]};return db[_0x93b5('0x4f')][_0x93b5('0x31')](_0x4cc808)['then'](function(_0x3ecee5){_0xff7f09['count']=_0x3ecee5;if(_0x25f64f[_0x93b5('0x41')][_0x93b5('0x50')]){_0x92598b[_0x93b5('0x51')]=[{'all':!![]}];}return db[_0x93b5('0x4f')]['findAll'](_0x92598b);})['then'](function(_0xbd95ec){_0xff7f09[_0x93b5('0x52')]=_0xbd95ec;return _0xff7f09;})[_0x93b5('0x23')](respondWithFilteredResult(_0x30c8df,_0x92598b))['catch'](handleError(_0x30c8df,null));};exports[_0x93b5('0x53')]=function(_0x4b71c7,_0x4bdbc1){var _0x16fb49={'raw':!![],'where':{'id':_0x4b71c7[_0x93b5('0x54')]['id']}},_0xc28987={};_0xc28987['model']=_[_0x93b5('0x40')](db[_0x93b5('0x4f')][_0x93b5('0x3c')]);_0xc28987[_0x93b5('0x41')]=_[_0x93b5('0x40')](_0x4b71c7[_0x93b5('0x41')]);_0xc28987[_0x93b5('0x4a')]=_[_0x93b5('0x42')](_0xc28987[_0x93b5('0x3f')],_0xc28987[_0x93b5('0x41')]);_0x16fb49[_0x93b5('0x44')]=_[_0x93b5('0x42')](_0xc28987[_0x93b5('0x3f')],qs['fields'](_0x4b71c7[_0x93b5('0x41')][_0x93b5('0x43')]));_0x16fb49[_0x93b5('0x44')]=_0x16fb49['attributes'][_0x93b5('0x45')]?_0x16fb49[_0x93b5('0x44')]:_0xc28987['model'];if(_0x4b71c7[_0x93b5('0x41')][_0x93b5('0x50')]){_0x16fb49[_0x93b5('0x51')]=[{'all':!![]}];}_0x16fb49=_[_0x93b5('0x4d')]({},_0x16fb49,_0x4b71c7[_0x93b5('0x55')]);return db['MailMessage']['find'](_0x16fb49)['then'](handleEntityNotFound(_0x4bdbc1,null))[_0x93b5('0x23')](respondWithResult(_0x4bdbc1,null))[_0x93b5('0x2c')](handleError(_0x4bdbc1,null));};exports['update']=function(_0xa7f1a8,_0x5b5b84){if(_0xa7f1a8[_0x93b5('0x56')]['id']){delete _0xa7f1a8['body']['id'];}return db[_0x93b5('0x4f')][_0x93b5('0x57')]({'where':{'id':_0xa7f1a8[_0x93b5('0x54')]['id']}})[_0x93b5('0x23')](handleEntityNotFound(_0x5b5b84,null))[_0x93b5('0x23')](saveUpdates(_0xa7f1a8['body'],null))[_0x93b5('0x23')](respondWithResult(_0x5b5b84,null))[_0x93b5('0x2c')](handleError(_0x5b5b84,null));};exports[_0x93b5('0x37')]=function(_0x4677f4,_0x65fd53){return db[_0x93b5('0x4f')][_0x93b5('0x57')]({'where':{'id':_0x4677f4[_0x93b5('0x54')]['id']}})['then'](handleEntityNotFound(_0x65fd53,null))[_0x93b5('0x23')](removeEntity(_0x65fd53,null))['catch'](handleError(_0x65fd53,null));};exports[_0x93b5('0x58')]=function(_0x276453,_0x651cd3){return db[_0x93b5('0x4f')]['describe']()[_0x93b5('0x23')](respondWithResult(_0x651cd3,null))[_0x93b5('0x2c')](handleError(_0x651cd3,null));};exports['create']=function(_0x2eba06,_0x46b0f4){return db[_0x93b5('0x4f')][_0x93b5('0x59')](_0x2eba06[_0x93b5('0x56')])[_0x93b5('0x23')](function(_0x5c291f){if(_0x5c291f){if(_0x5c291f[_0x93b5('0x5a')]==='out'&&!_0x5c291f[_0x93b5('0x5b')]){var _0x2e50de,_0x289b33,_0x597248;if(_0x2eba06[_0x93b5('0x56')]['to']){_0x289b33=_0x2eba06[_0x93b5('0x56')]['to'][_0x93b5('0x5c')](',')[0x0];}return db[_0x93b5('0x5d')][_0x93b5('0x5e')]({'where':{'id':_0x5c291f[_0x93b5('0x5f')]},'include':[{'model':db[_0x93b5('0x60')],'as':'List','include':[{'model':db['CmContact'],'as':_0x93b5('0x61'),'where':{'email':_0x289b33},'limit':0x1,'order':[['updatedAt',_0x93b5('0x62')]]}]},{'model':db[_0x93b5('0x63')],'as':'Smtp','raw':!![]}]})[_0x93b5('0x23')](function(_0xe095c4){_0x2e50de=_0xe095c4;if(_0x2e50de&&_0x2e50de[_0x93b5('0x64')]){var _0x11988b={'tls':{'rejectUnauthorized':![]}};if(_[_0x93b5('0x65')](_0x2e50de[_0x93b5('0x64')]['service'])){_0x11988b[_0x93b5('0x66')]=_0x2e50de[_0x93b5('0x64')][_0x93b5('0x66')];_0x11988b['port']=_0x2e50de[_0x93b5('0x64')][_0x93b5('0x67')];_0x11988b[_0x93b5('0x68')]=_0x2e50de[_0x93b5('0x64')][_0x93b5('0x68')];if(_0x2e50de[_0x93b5('0x64')][_0x93b5('0x69')]){_0x11988b[_0x93b5('0x6a')]={'user':_0x2e50de[_0x93b5('0x64')][_0x93b5('0x6b')],'pass':_0x2e50de['Smtp']['pass']};}}else{_0x11988b[_0x93b5('0x6c')]=_0x2e50de['Smtp'][_0x93b5('0x6c')];_0x11988b[_0x93b5('0x6a')]={'user':_0x2e50de[_0x93b5('0x64')]['user'],'pass':_0x2e50de[_0x93b5('0x64')][_0x93b5('0x6d')]};_0x11988b[_0x93b5('0x68')]=_0x2e50de[_0x93b5('0x64')][_0x93b5('0x68')];}if(_0x2eba06[_0x93b5('0x56')][_0x93b5('0x6e')]&&_0x2eba06[_0x93b5('0x56')][_0x93b5('0x6e')][_0x93b5('0x45')]){for(var _0x5d8e63=0x0;_0x5d8e63<_0x2eba06[_0x93b5('0x56')]['attachments'][_0x93b5('0x45')];_0x5d8e63+=0x1){_0x2eba06[_0x93b5('0x56')][_0x93b5('0x6e')][_0x5d8e63]={'filename':_0x2eba06[_0x93b5('0x56')][_0x93b5('0x6e')][_0x5d8e63][_0x93b5('0x38')],'path':path['join'](config[_0x93b5('0x6f')],_0x93b5('0x70'),_0x2eba06[_0x93b5('0x56')][_0x93b5('0x6e')][_0x5d8e63][_0x93b5('0x71')])};}}_0x597248={'account':_0x11988b,'message':_0x2eba06[_0x93b5('0x56')]};return;}})['then'](function(){if(_0x2e50de[_0x93b5('0x72')]){if(_0x2e50de[_0x93b5('0x72')][_0x93b5('0x61')]['length']){return _0x2e50de[_0x93b5('0x72')][_0x93b5('0x61')][0x0];}else{return db[_0x93b5('0x73')][_0x93b5('0x59')](_[_0x93b5('0x74')](_0x2eba06['body'],{'firstName':_0x2eba06[_0x93b5('0x56')]['to'],'email':_0x2eba06['body']['to'],'phone':_0x2eba06[_0x93b5('0x56')]['to'],'ListId':_0x2e50de[_0x93b5('0x75')]}));}}else{throw new Error(_0x93b5('0x76'));}})[_0x93b5('0x23')](function(){if(_0x597248){return respondWithRpcPromise('SendMail',_0x93b5('0x77'),_0x597248,client9003)['then'](function(_0x25d4f8){return _0x5c291f[_0x93b5('0x36')]({'read':!![],'messageId':_0x25d4f8['messageId'],'sentAt':moment()[_0x93b5('0x78')](_0x93b5('0x79'))});})[_0x93b5('0x2c')](function(_0x435884){logger['error']('%s',JSON[_0x93b5('0x27')](_0x435884));return _0x5c291f;});}return _0x5c291f;});}return _0x5c291f;}})[_0x93b5('0x23')](respondWithResult(_0x46b0f4,0xc9))[_0x93b5('0x2c')](handleError(_0x46b0f4,null));};var interaction_log=require(_0x93b5('0x16'))(_0x93b5('0x7a'));exports['accept']=function(_0x23c72a,_0x268d3f,_0x58ec5a){var _0x584600={'channel':'mail'};if(_0x23c72a[_0x93b5('0x56')]['id']){delete _0x23c72a[_0x93b5('0x56')]['id'];}_0x23c72a[_0x93b5('0x56')][_0x93b5('0x7b')]=!![];_0x23c72a[_0x93b5('0x56')][_0x93b5('0x7c')]=moment()[_0x93b5('0x78')](_0x93b5('0x79'));_0x23c72a[_0x93b5('0x56')][_0x93b5('0x7d')]=_0x23c72a[_0x93b5('0x56')][_0x93b5('0x7d')]||_0x23c72a['user']['id'];return db[_0x93b5('0x4f')][_0x93b5('0x57')]({'where':{'id':_0x23c72a[_0x93b5('0x54')]['id'],'UserId':null},'include':[{'model':db[_0x93b5('0x73')],'as':'Contact'}]})[_0x93b5('0x23')](handleEntityNotFound(_0x268d3f,null))['then'](saveUpdates(_0x23c72a[_0x93b5('0x56')],null))['then'](function(_0xc2f87a){if(_0xc2f87a){_0x584600[_0x93b5('0x2a')]=_0xc2f87a[_0x93b5('0x7e')]({'plain':!![]});return db[_0x93b5('0x7f')][_0x93b5('0x57')]({'where':{'id':_0xc2f87a[_0x93b5('0x80')]}});}return null;})[_0x93b5('0x23')](handleEntityNotFound(_0x268d3f,null))[_0x93b5('0x23')](function(_0x196c6d){if(_0x196c6d){return _0x196c6d['update']({'UserId':_0x23c72a[_0x93b5('0x56')][_0x93b5('0x7d')],'read1stAt':_[_0x93b5('0x65')](_0x196c6d[_0x93b5('0x81')])?moment()[_0x93b5('0x78')](_0x93b5('0x79')):undefined});}return null;})[_0x93b5('0x23')](function(_0xc02d8e){if(_0xc02d8e){_0x584600[_0x93b5('0x82')]=_0xc02d8e[_0x93b5('0x7e')]({'plain':!![]});interaction_log[_0x93b5('0x24')]('[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x23c72a[_0x93b5('0x6b')]['id'],_0x23c72a[_0x93b5('0x6b')][_0x93b5('0x38')],_0x23c72a[_0x93b5('0x6b')][_0x93b5('0x83')],_0x584600[_0x93b5('0x82')]['id'],_0x23c72a[_0x93b5('0x56')]?JSON['stringify'](_0x23c72a['body']):_0x93b5('0x84'));return respondWithRpcPromise(_0x93b5('0x85'),_0x93b5('0x86'),_0x584600);}return null;})[_0x93b5('0x23')](function(_0x553363){if(_0x553363){if(_0x23c72a[_0x93b5('0x56')][_0x93b5('0x87')]){_0x584600['message'][_0x93b5('0x88')]=util['format'](_0x93b5('0x89'),_0x23c72a[_0x93b5('0x6b')][_0x93b5('0x38')]);_0x584600[_0x93b5('0x2a')][_0x93b5('0x8a')]=_0x584600['channel'];_0x584600[_0x93b5('0x2a')][_0x93b5('0x8b')]=_0x93b5('0x8c');return respondWithRpcPromise(_0x93b5('0x8d'),_0x93b5('0x8d'),{'event':_0x93b5('0x8e'),'message':_0x584600['message']},client9002)[_0x93b5('0x23')](function(){return _0x584600;});}return _0x584600;}return null;})[_0x93b5('0x23')](respondWithResult(_0x268d3f,null))[_0x93b5('0x2c')](handleError(_0x268d3f,null));};var interaction_log=require(_0x93b5('0x16'))('mail-interactions');exports[_0x93b5('0x35')]=function(_0x5428fe,_0x1bec90,_0x419f8c){var _0x2fee4a={'agent':{},'channel':_0x93b5('0x8f')};if(_0x5428fe[_0x93b5('0x56')]['id']){delete _0x5428fe[_0x93b5('0x56')]['id'];}_0x5428fe[_0x93b5('0x56')][_0x93b5('0x7d')]=_0x5428fe[_0x93b5('0x56')][_0x93b5('0x7d')]||_0x5428fe[_0x93b5('0x6b')]['id'];_0x2fee4a[_0x93b5('0x90')]['id']=_0x5428fe[_0x93b5('0x56')][_0x93b5('0x7d')];return db[_0x93b5('0x4f')][_0x93b5('0x57')]({'where':{'id':_0x5428fe['params']['id'],'UserId':null}})[_0x93b5('0x23')](handleEntityNotFound(_0x1bec90,null))[_0x93b5('0x23')](function(_0x1cd3ae){if(_0x1cd3ae){_0x2fee4a[_0x93b5('0x2a')]=_0x1cd3ae[_0x93b5('0x7e')]({'plain':!![]});return db[_0x93b5('0x7f')][_0x93b5('0x57')]({'where':{'id':_0x1cd3ae[_0x93b5('0x80')]}});}return null;})['then'](handleEntityNotFound(_0x1bec90,null))['then'](function(_0x5b7215){if(_0x5b7215){_0x2fee4a['interaction']=_0x5b7215[_0x93b5('0x7e')]({'plain':!![]});interaction_log[_0x93b5('0x24')](_0x93b5('0x91'),_0x5428fe[_0x93b5('0x6b')]['id'],_0x5428fe['user']['name'],_0x5428fe[_0x93b5('0x6b')][_0x93b5('0x83')],_0x2fee4a[_0x93b5('0x82')]['id'],_0x5428fe[_0x93b5('0x56')]?JSON[_0x93b5('0x27')](_0x5428fe['body']):_0x93b5('0x84'));return respondWithRpcPromise(_0x93b5('0x92'),_0x93b5('0x93'),_0x2fee4a);}return null;})[_0x93b5('0x23')](function(_0x2bc8e1){if(_0x2bc8e1){_0x2bc8e1[_0x93b5('0x2a')]['interface']=util[_0x93b5('0x78')]('SIP/%s',_0x5428fe[_0x93b5('0x6b')][_0x93b5('0x38')]);_0x2bc8e1[_0x93b5('0x2a')]['channel']=_0x2fee4a['channel'];_0x2bc8e1[_0x93b5('0x2a')][_0x93b5('0x8b')]=_0x93b5('0x35');respondWithRpcPromise(_0x93b5('0x8d'),'EventManager',{'event':_0x93b5('0x94'),'message':_0x2bc8e1[_0x93b5('0x2a')]},client9002);return _0x2fee4a;}return null;})[_0x93b5('0x23')](respondWithResult(_0x1bec90,null))[_0x93b5('0x2c')](handleError(_0x1bec90,null));};exports[_0x93b5('0x95')]=function(_0x2547bc,_0x17462f){var _0x59637f=moment()[_0x93b5('0x96')]()[_0x93b5('0x97')]();var _0x1abcae=path[_0x93b5('0x98')](config[_0x93b5('0x6f')],_0x93b5('0x99'),'files','tmp');var _0x2db433=path[_0x93b5('0x98')](config[_0x93b5('0x6f')],_0x93b5('0x99'),_0x93b5('0x9a'),_0x93b5('0x6e'));var _0x46474e=util[_0x93b5('0x78')]('message-%s.eml',_0x59637f);return db[_0x93b5('0x4f')][_0x93b5('0x57')]({'where':{'id':_0x2547bc['params']['id']},'attributes':['id',_0x93b5('0x56'),_0x93b5('0x9b'),'to','cc',_0x93b5('0x9c'),_0x93b5('0x9d'),_0x93b5('0x9e')],'include':_0x2547bc[_0x93b5('0x41')][_0x93b5('0x6e')]?[{'model':db[_0x93b5('0x9f')],'as':_0x93b5('0xa0')}]:undefined})[_0x93b5('0x23')](handleEntityNotFound(_0x17462f,null))[_0x93b5('0x23')](function(_0xfce60b){if(_0xfce60b){var _0x17d10b=_0xfce60b;var _0x21996b={'from':_0x17d10b[_0x93b5('0x9b')],'to':_0x17d10b['to'],'subject':_0x17d10b[_0x93b5('0x9d')],'html':_0x17d10b[_0x93b5('0x56')],'headers':{'Date':moment(_0x17d10b['createdAt'])[_0x93b5('0x78')](_0x93b5('0xa1'))},'attachments':[]};if(_0xfce60b['cc']){_0x21996b[_0x93b5('0xa2')]['Cc']=_0xfce60b['cc'];}if(_0xfce60b[_0x93b5('0x9c')]){_0x21996b[_0x93b5('0xa2')][_0x93b5('0xa3')]=_0xfce60b['bcc'];}return new BPromise(function(_0x301684,_0x4869f9){if(_0xfce60b[_0x93b5('0xa0')]){for(var _0x2cb8f3=0x0;_0x2cb8f3<_0xfce60b['Attachments'][_0x93b5('0x45')];_0x2cb8f3++){var _0x4ea110=_0xfce60b['Attachments'][_0x2cb8f3];var _0x31b9cd=path[_0x93b5('0x98')](_0x2db433,_0x4ea110['basename']);if(fs[_0x93b5('0xa4')](_0x31b9cd)){_0x21996b['attachments'][_0x93b5('0xa5')]({'name':_0x4ea110[_0x93b5('0x38')],'contentType':_0x4ea110[_0x93b5('0x3d')],'data':fs[_0x93b5('0xa6')](_0x31b9cd)});}}}emlformat[_0x93b5('0xa7')](_0x21996b,function(_0x3a3fcb,_0x4317cc){if(_0x3a3fcb)return _0x4869f9(_0x3a3fcb);fs['writeFileSync'](path[_0x93b5('0x98')](_0x1abcae,_0x46474e),_0x4317cc);return _0x301684(_0x4317cc);});});}})[_0x93b5('0x23')](function(_0x14b5fc){if(_0x14b5fc){return _0x17462f[_0x93b5('0x95')](path[_0x93b5('0x98')](_0x1abcae,_0x46474e),_0x46474e,function(_0x12fd6e){if(_0x12fd6e){console[_0x93b5('0xa8')](_0x93b5('0xa9'),_0x12fd6e);}else{fs[_0x93b5('0xaa')](path['join'](_0x1abcae,_0x46474e));}});}})['catch'](handleError(_0x17462f,null));};