ca2755b44dd78f2cc6e5844b7074ff0ca441db40
[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 _0xfe2b=['mail-interactions','accept','mail','read','readAt','UserId','get','MailInteractionId','read1stAt','interaction','[MAILMESSAGE:ACCEPT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s','role','AcceptMessage','manual','interface','channel','event','EventManager','acceptmessage','null','RejectMessage','rejectmessage','download','unix','toString','join','server','files','tmp','message-%s.eml','from','bcc','subject','createdAt','Attachment','Attachments','ddd,\x20DD\x20MMM\x20YYYY\x20HH:mm:ss\x20ZZ','headers','Bcc','existsSync','push','build','writeFileSync','log','err','unlinkSync','eml-format','rimraf','zip-dir','fast-json-patch','mustache','sox','to-csv','fs-extra','lodash','squel','crypto','jsforce','querystring','papaparse','../../components/auth/service','../../components/parsers/qs','../../config/license/hardware','../../config/logger','api','../../config/utils','../../config/environment','../../config/license/util','../../mysqldb','redis','defaults','localhost','socket.io-emitter','register','jayson/promise','client','http','request','then','MailMessage,\x20%s,\x20%s','request\x20sent','debug','MailMessage,\x20%s,\x20%s,\x20%s','code','error','message','info','result','catch','sendStatus','status','end','json','undefined','limit','count','offset','set','Content-Range','apply','reject','save','update','destroy','name','send','render','merge','body','contact','agent','account','index','map','MailMessage','rawAttributes','key','model','keys','intersection','query','attributes','fields','hasOwnProperty','nolimit','order','sort','where','pick','filters','filter','type','options','includeAll','include','findAll','rows','params','find','describe','create','direction','out','split','MailAccount','findOne','CmList','List','CmContact','Contacts','updatedAt','Smtp','isNil','host','port','secure','authentication','auth','pass','service','user','attachments','length','root','server/files/attachments','basename','List\x20not\x20found','sendMail','messageId','format','YYYY-MM-DD\x20HH:mm:ss','stringify'];(function(_0x4cc360,_0x54a84e){var _0x4186d0=function(_0x55d870){while(--_0x55d870){_0x4cc360['push'](_0x4cc360['shift']());}};_0x4186d0(++_0x54a84e);}(_0xfe2b,0x186));var _0xbfe2=function(_0x41eccd,_0x2052f4){_0x41eccd=_0x41eccd-0x0;var _0x4ebf84=_0xfe2b[_0x41eccd];return _0x4ebf84;};'use strict';var emlformat=require(_0xbfe2('0x0'));var rimraf=require(_0xbfe2('0x1'));var zipdir=require(_0xbfe2('0x2'));var jsonpatch=require(_0xbfe2('0x3'));var rp=require('request-promise');var moment=require('moment');var BPromise=require('bluebird');var Mustache=require(_0xbfe2('0x4'));var util=require('util');var path=require('path');var sox=require(_0xbfe2('0x5'));var csv=require(_0xbfe2('0x6'));var ejs=require('ejs');var fs=require('fs');var fs_extra=require(_0xbfe2('0x7'));var _=require(_0xbfe2('0x8'));var squel=require(_0xbfe2('0x9'));var crypto=require(_0xbfe2('0xa'));var jsforce=require(_0xbfe2('0xb'));var deskjs=require('desk.js');var toCsv=require(_0xbfe2('0x6'));var querystring=require(_0xbfe2('0xc'));var Papa=require(_0xbfe2('0xd'));var Redis=require('ioredis');var authService=require(_0xbfe2('0xe'));var qs=require(_0xbfe2('0xf'));var as=require('../../components/parsers/advancedSearch');var hardwareService=require(_0xbfe2('0x10'));var logger=require(_0xbfe2('0x11'))(_0xbfe2('0x12'));var utils=require(_0xbfe2('0x13'));var config=require(_0xbfe2('0x14'));var licenseUtil=require(_0xbfe2('0x15'));var db=require(_0xbfe2('0x16'))['db'];config[_0xbfe2('0x17')]=_[_0xbfe2('0x18')](config[_0xbfe2('0x17')],{'host':_0xbfe2('0x19'),'port':0x18eb});var socket=require(_0xbfe2('0x1a'))(new Redis(config['redis']));require('./mailMessage.socket')[_0xbfe2('0x1b')](socket);var jayson=require(_0xbfe2('0x1c'));var client=jayson[_0xbfe2('0x1d')][_0xbfe2('0x1e')]({'port':0x232c});var client9003=jayson[_0xbfe2('0x1d')][_0xbfe2('0x1e')]({'port':0x232b});var client9002=jayson[_0xbfe2('0x1d')][_0xbfe2('0x1e')]({'port':0x232a});function respondWithRpcPromise(_0x3302b6,_0x169376,_0x33cef4,_0x3dd46d){return new BPromise(function(_0x50f84e,_0x449c61){var _0x3516cd=_0x3dd46d||client;return _0x3516cd[_0xbfe2('0x1f')](_0x3302b6,_0x33cef4)[_0xbfe2('0x20')](function(_0x805d95){logger['info'](_0xbfe2('0x21'),_0x169376,_0xbfe2('0x22'));logger[_0xbfe2('0x23')](_0xbfe2('0x24'),_0x169376,'request\x20sent',JSON['stringify'](_0x805d95));if(_0x805d95['error']){if(_0x805d95['error'][_0xbfe2('0x25')]===0x1f4){logger[_0xbfe2('0x26')](_0xbfe2('0x21'),_0x169376,_0x805d95[_0xbfe2('0x26')][_0xbfe2('0x27')]);return _0x449c61(_0x805d95['error'][_0xbfe2('0x27')]);}logger[_0xbfe2('0x26')]('MailMessage,\x20%s,\x20%s',_0x169376,_0x805d95[_0xbfe2('0x26')][_0xbfe2('0x27')]);return _0x50f84e(_0x805d95[_0xbfe2('0x26')]['message']);}else{logger[_0xbfe2('0x28')](_0xbfe2('0x21'),_0x169376,_0xbfe2('0x22'));_0x50f84e(_0x805d95[_0xbfe2('0x29')][_0xbfe2('0x27')]);}})[_0xbfe2('0x2a')](function(_0x234190){logger[_0xbfe2('0x26')](_0xbfe2('0x21'),_0x169376,_0x234190);_0x449c61(_0x234190);});});}function respondWithStatusCode(_0x2cf35e,_0x4097b0){_0x4097b0=_0x4097b0||0xcc;return function(_0x3e838e){if(_0x3e838e){return _0x2cf35e[_0xbfe2('0x2b')](_0x4097b0);}return _0x2cf35e[_0xbfe2('0x2c')](_0x4097b0)[_0xbfe2('0x2d')]();};}function respondWithResult(_0x4425a8,_0x1afdd6){_0x1afdd6=_0x1afdd6||0xc8;return function(_0x352d6a){if(_0x352d6a){return _0x4425a8[_0xbfe2('0x2c')](_0x1afdd6)[_0xbfe2('0x2e')](_0x352d6a);}};}function respondWithFilteredResult(_0x3f63ec,_0x34dbfe){return function(_0x47af8b){if(_0x47af8b){var _0x44fa83=typeof _0x34dbfe['offset']===_0xbfe2('0x2f')&&typeof _0x34dbfe[_0xbfe2('0x30')]===_0xbfe2('0x2f');var _0x3f2437=_0x47af8b[_0xbfe2('0x31')];var _0x533bb5=_0x44fa83?0x0:_0x34dbfe[_0xbfe2('0x32')];var _0x578fbb=_0x44fa83?_0x47af8b[_0xbfe2('0x31')]:_0x34dbfe[_0xbfe2('0x32')]+_0x34dbfe[_0xbfe2('0x30')];var _0x1fb427;if(_0x578fbb>=_0x3f2437){_0x578fbb=_0x3f2437;_0x1fb427=0xc8;}else{_0x1fb427=0xce;}_0x3f63ec['status'](_0x1fb427);return _0x3f63ec[_0xbfe2('0x33')](_0xbfe2('0x34'),_0x533bb5+'-'+_0x578fbb+'/'+_0x3f2437)[_0xbfe2('0x2e')](_0x47af8b);}return null;};}function patchUpdates(_0x3980e1){return function(_0x155f52){try{jsonpatch[_0xbfe2('0x35')](_0x155f52,_0x3980e1,!![]);}catch(_0x3831d1){return BPromise[_0xbfe2('0x36')](_0x3831d1);}return _0x155f52[_0xbfe2('0x37')]();};}function saveUpdates(_0x59bb49,_0x32b7a4){return function(_0x1cb023){if(_0x1cb023){return _0x1cb023[_0xbfe2('0x38')](_0x59bb49)[_0xbfe2('0x20')](function(_0x4d870d){return _0x4d870d;});}return null;};}function removeEntity(_0x40686f,_0x5f3c46){return function(_0x5b4e9){if(_0x5b4e9){return _0x5b4e9[_0xbfe2('0x39')]()[_0xbfe2('0x20')](function(){_0x40686f[_0xbfe2('0x2c')](0xcc)['end']();});}};}function handleEntityNotFound(_0xe0045f,_0x1a23eb){return function(_0xb02af3){if(!_0xb02af3){_0xe0045f['sendStatus'](0x194);}return _0xb02af3;};}function handleError(_0x29752e,_0x49c72b){_0x49c72b=_0x49c72b||0x1f4;return function(_0x33370f){logger['error'](_0x33370f['stack']);if(_0x33370f[_0xbfe2('0x3a')]){delete _0x33370f['name'];}_0x29752e[_0xbfe2('0x2c')](_0x49c72b)[_0xbfe2('0x3b')](_0x33370f);};}function getMustacheRender(_0x14c05b,_0x13ae18){return Mustache[_0xbfe2('0x3c')](_0x14c05b,_[_0xbfe2('0x3d')](_0x13ae18[_0xbfe2('0x3e')],{'contact':_0x13ae18[_0xbfe2('0x3f')],'message':_0x13ae18[_0xbfe2('0x27')],'agent':_0x13ae18[_0xbfe2('0x40')],'interaction':_0x13ae18['interaction'],'account':_0x13ae18[_0xbfe2('0x41')]}))||'';}exports[_0xbfe2('0x42')]=function(_0x27571a,_0x3697bf){var _0x1f8014={},_0x5ed5b3={},_0x5dd780={'count':0x0,'rows':[]};var _0x23551d=_[_0xbfe2('0x43')](db[_0xbfe2('0x44')][_0xbfe2('0x45')],function(_0x1b3fc5){return{'name':_0x1b3fc5['fieldName'],'type':_0x1b3fc5['type'][_0xbfe2('0x46')]};});_0x5ed5b3[_0xbfe2('0x47')]=_[_0xbfe2('0x43')](_0x23551d,_0xbfe2('0x3a'));_0x5ed5b3['query']=_[_0xbfe2('0x48')](_0x27571a['query']);_0x5ed5b3['filters']=_[_0xbfe2('0x49')](_0x5ed5b3[_0xbfe2('0x47')],_0x5ed5b3[_0xbfe2('0x4a')]);_0x1f8014[_0xbfe2('0x4b')]=_[_0xbfe2('0x49')](_0x5ed5b3[_0xbfe2('0x47')],qs[_0xbfe2('0x4c')](_0x27571a['query'][_0xbfe2('0x4c')]));_0x1f8014[_0xbfe2('0x4b')]=_0x1f8014['attributes']['length']?_0x1f8014[_0xbfe2('0x4b')]:_0x5ed5b3[_0xbfe2('0x47')];if(!_0x27571a[_0xbfe2('0x4a')][_0xbfe2('0x4d')](_0xbfe2('0x4e'))){_0x1f8014[_0xbfe2('0x30')]=qs[_0xbfe2('0x30')](_0x27571a[_0xbfe2('0x4a')]['limit']);_0x1f8014['offset']=qs['offset'](_0x27571a[_0xbfe2('0x4a')][_0xbfe2('0x32')]);}_0x1f8014[_0xbfe2('0x4f')]=qs[_0xbfe2('0x50')](_0x27571a['query']['sort']);_0x1f8014[_0xbfe2('0x51')]=qs['filters'](_[_0xbfe2('0x52')](_0x27571a[_0xbfe2('0x4a')],_0x5ed5b3[_0xbfe2('0x53')]),_0x23551d);if(_0x27571a[_0xbfe2('0x4a')][_0xbfe2('0x54')]){_0x1f8014[_0xbfe2('0x51')]=_[_0xbfe2('0x3d')](_0x1f8014[_0xbfe2('0x51')],{'$or':_[_0xbfe2('0x43')](_0x23551d,function(_0x349ebb){if(_0x349ebb[_0xbfe2('0x55')]!=='VIRTUAL'){var _0x466a27={};_0x466a27[_0x349ebb[_0xbfe2('0x3a')]]={'$like':'%'+_0x27571a[_0xbfe2('0x4a')][_0xbfe2('0x54')]+'%'};return _0x466a27;}})});}_0x1f8014=_[_0xbfe2('0x3d')]({},_0x1f8014,_0x27571a[_0xbfe2('0x56')]);var _0x1778f2={'where':_0x1f8014[_0xbfe2('0x51')]};return db[_0xbfe2('0x44')][_0xbfe2('0x31')](_0x1778f2)[_0xbfe2('0x20')](function(_0xba0bdc){_0x5dd780[_0xbfe2('0x31')]=_0xba0bdc;if(_0x27571a[_0xbfe2('0x4a')][_0xbfe2('0x57')]){_0x1f8014[_0xbfe2('0x58')]=[{'all':!![]}];}return db[_0xbfe2('0x44')][_0xbfe2('0x59')](_0x1f8014);})[_0xbfe2('0x20')](function(_0xdc0fa8){_0x5dd780[_0xbfe2('0x5a')]=_0xdc0fa8;return _0x5dd780;})[_0xbfe2('0x20')](respondWithFilteredResult(_0x3697bf,_0x1f8014))[_0xbfe2('0x2a')](handleError(_0x3697bf,null));};exports['show']=function(_0xd66be1,_0x39459c){var _0x3362d0={'raw':!![],'where':{'id':_0xd66be1[_0xbfe2('0x5b')]['id']}},_0x56492e={};_0x56492e[_0xbfe2('0x47')]=_['keys'](db[_0xbfe2('0x44')][_0xbfe2('0x45')]);_0x56492e[_0xbfe2('0x4a')]=_['keys'](_0xd66be1[_0xbfe2('0x4a')]);_0x56492e[_0xbfe2('0x53')]=_[_0xbfe2('0x49')](_0x56492e[_0xbfe2('0x47')],_0x56492e[_0xbfe2('0x4a')]);_0x3362d0[_0xbfe2('0x4b')]=_[_0xbfe2('0x49')](_0x56492e['model'],qs[_0xbfe2('0x4c')](_0xd66be1['query']['fields']));_0x3362d0[_0xbfe2('0x4b')]=_0x3362d0[_0xbfe2('0x4b')]['length']?_0x3362d0[_0xbfe2('0x4b')]:_0x56492e['model'];if(_0xd66be1[_0xbfe2('0x4a')][_0xbfe2('0x57')]){_0x3362d0[_0xbfe2('0x58')]=[{'all':!![]}];}_0x3362d0=_[_0xbfe2('0x3d')]({},_0x3362d0,_0xd66be1[_0xbfe2('0x56')]);return db[_0xbfe2('0x44')][_0xbfe2('0x5c')](_0x3362d0)[_0xbfe2('0x20')](handleEntityNotFound(_0x39459c,null))['then'](respondWithResult(_0x39459c,null))[_0xbfe2('0x2a')](handleError(_0x39459c,null));};exports[_0xbfe2('0x38')]=function(_0x2dde49,_0x54acde){if(_0x2dde49[_0xbfe2('0x3e')]['id']){delete _0x2dde49[_0xbfe2('0x3e')]['id'];}return db[_0xbfe2('0x44')][_0xbfe2('0x5c')]({'where':{'id':_0x2dde49[_0xbfe2('0x5b')]['id']}})[_0xbfe2('0x20')](handleEntityNotFound(_0x54acde,null))[_0xbfe2('0x20')](saveUpdates(_0x2dde49[_0xbfe2('0x3e')],null))[_0xbfe2('0x20')](respondWithResult(_0x54acde,null))['catch'](handleError(_0x54acde,null));};exports['destroy']=function(_0x6b8469,_0x3e2614){return db[_0xbfe2('0x44')][_0xbfe2('0x5c')]({'where':{'id':_0x6b8469[_0xbfe2('0x5b')]['id']}})[_0xbfe2('0x20')](handleEntityNotFound(_0x3e2614,null))[_0xbfe2('0x20')](removeEntity(_0x3e2614,null))[_0xbfe2('0x2a')](handleError(_0x3e2614,null));};exports[_0xbfe2('0x5d')]=function(_0x5b8bac,_0x302ce8){return db[_0xbfe2('0x44')]['describe']()[_0xbfe2('0x20')](respondWithResult(_0x302ce8,null))['catch'](handleError(_0x302ce8,null));};exports[_0xbfe2('0x5e')]=function(_0x1c3069,_0xd7c1e9){return db[_0xbfe2('0x44')]['create'](_0x1c3069[_0xbfe2('0x3e')])[_0xbfe2('0x20')](function(_0x469d09){if(_0x469d09){if(_0x469d09[_0xbfe2('0x5f')]===_0xbfe2('0x60')&&!_0x469d09['secret']){var _0x3715d8,_0x175a8a,_0xa37c83;if(_0x1c3069[_0xbfe2('0x3e')]['to']){_0x175a8a=_0x1c3069['body']['to'][_0xbfe2('0x61')](',')[0x0];}return db[_0xbfe2('0x62')][_0xbfe2('0x63')]({'where':{'id':_0x469d09['MailAccountId']},'include':[{'model':db[_0xbfe2('0x64')],'as':_0xbfe2('0x65'),'include':[{'model':db[_0xbfe2('0x66')],'as':_0xbfe2('0x67'),'where':{'email':_0x175a8a},'limit':0x1,'order':[[_0xbfe2('0x68'),'DESC']]}]},{'model':db['MailServerOut'],'as':_0xbfe2('0x69'),'raw':!![]}]})[_0xbfe2('0x20')](function(_0x10146c){_0x3715d8=_0x10146c;if(_0x3715d8&&_0x3715d8[_0xbfe2('0x69')]){var _0x42ed8c={'tls':{'rejectUnauthorized':![]}};if(_[_0xbfe2('0x6a')](_0x3715d8['Smtp']['service'])){_0x42ed8c[_0xbfe2('0x6b')]=_0x3715d8[_0xbfe2('0x69')][_0xbfe2('0x6b')];_0x42ed8c[_0xbfe2('0x6c')]=_0x3715d8[_0xbfe2('0x69')][_0xbfe2('0x6c')];_0x42ed8c[_0xbfe2('0x6d')]=_0x3715d8['Smtp'][_0xbfe2('0x6d')];if(_0x3715d8[_0xbfe2('0x69')][_0xbfe2('0x6e')]){_0x42ed8c[_0xbfe2('0x6f')]={'user':_0x3715d8[_0xbfe2('0x69')]['user'],'pass':_0x3715d8[_0xbfe2('0x69')][_0xbfe2('0x70')]};}}else{_0x42ed8c[_0xbfe2('0x71')]=_0x3715d8[_0xbfe2('0x69')][_0xbfe2('0x71')];_0x42ed8c['auth']={'user':_0x3715d8[_0xbfe2('0x69')][_0xbfe2('0x72')],'pass':_0x3715d8[_0xbfe2('0x69')][_0xbfe2('0x70')]};_0x42ed8c[_0xbfe2('0x6d')]=_0x3715d8[_0xbfe2('0x69')][_0xbfe2('0x6d')];}if(_0x1c3069[_0xbfe2('0x3e')][_0xbfe2('0x73')]&&_0x1c3069[_0xbfe2('0x3e')][_0xbfe2('0x73')]['length']){for(var _0x5dec28=0x0;_0x5dec28<_0x1c3069[_0xbfe2('0x3e')][_0xbfe2('0x73')][_0xbfe2('0x74')];_0x5dec28+=0x1){_0x1c3069[_0xbfe2('0x3e')][_0xbfe2('0x73')][_0x5dec28]={'filename':_0x1c3069['body'][_0xbfe2('0x73')][_0x5dec28][_0xbfe2('0x3a')],'path':path['join'](config[_0xbfe2('0x75')],_0xbfe2('0x76'),_0x1c3069[_0xbfe2('0x3e')][_0xbfe2('0x73')][_0x5dec28][_0xbfe2('0x77')])};}}_0xa37c83={'account':_0x42ed8c,'message':_0x1c3069[_0xbfe2('0x3e')]};return;}})[_0xbfe2('0x20')](function(){if(_0x3715d8[_0xbfe2('0x65')]){if(_0x3715d8[_0xbfe2('0x65')][_0xbfe2('0x67')][_0xbfe2('0x74')]){return _0x3715d8[_0xbfe2('0x65')][_0xbfe2('0x67')][0x0];}else{return db[_0xbfe2('0x66')][_0xbfe2('0x5e')](_[_0xbfe2('0x18')](_0x1c3069[_0xbfe2('0x3e')],{'firstName':_0x1c3069[_0xbfe2('0x3e')]['to'],'email':_0x1c3069[_0xbfe2('0x3e')]['to'],'phone':_0x1c3069[_0xbfe2('0x3e')]['to'],'ListId':_0x3715d8['ListId']}));}}else{throw new Error(_0xbfe2('0x78'));}})[_0xbfe2('0x20')](function(){if(_0xa37c83){return respondWithRpcPromise('SendMail',_0xbfe2('0x79'),_0xa37c83,client9003)[_0xbfe2('0x20')](function(_0x2383b9){return _0x469d09[_0xbfe2('0x38')]({'read':!![],'messageId':_0x2383b9[_0xbfe2('0x7a')],'sentAt':moment()[_0xbfe2('0x7b')](_0xbfe2('0x7c'))});})[_0xbfe2('0x2a')](function(_0xb3041e){logger['error']('%s',JSON[_0xbfe2('0x7d')](_0xb3041e));return _0x469d09;});}return _0x469d09;});}return _0x469d09;}})['then'](respondWithResult(_0xd7c1e9,0xc9))[_0xbfe2('0x2a')](handleError(_0xd7c1e9,null));};var interaction_log=require('../../config/logger')(_0xbfe2('0x7e'));exports[_0xbfe2('0x7f')]=function(_0x1d1ccf,_0x4b55db,_0x9ec14f){var _0x2d02ff={'agent':{},'channel':_0xbfe2('0x80')};if(_0x1d1ccf[_0xbfe2('0x3e')]['id']){delete _0x1d1ccf[_0xbfe2('0x3e')]['id'];}_0x1d1ccf['body'][_0xbfe2('0x81')]=!![];_0x1d1ccf[_0xbfe2('0x3e')][_0xbfe2('0x82')]=moment()[_0xbfe2('0x7b')](_0xbfe2('0x7c'));_0x1d1ccf['body'][_0xbfe2('0x83')]=_0x1d1ccf[_0xbfe2('0x3e')][_0xbfe2('0x83')]||_0x1d1ccf[_0xbfe2('0x72')]['id'];_0x2d02ff[_0xbfe2('0x40')]['id']=_0x1d1ccf[_0xbfe2('0x3e')][_0xbfe2('0x83')];return db[_0xbfe2('0x44')][_0xbfe2('0x5c')]({'where':{'id':_0x1d1ccf[_0xbfe2('0x5b')]['id'],'UserId':null},'include':[{'model':db[_0xbfe2('0x66')],'as':'Contact'}]})['then'](handleEntityNotFound(_0x4b55db,null))['then'](saveUpdates(_0x1d1ccf[_0xbfe2('0x3e')],null))[_0xbfe2('0x20')](function(_0x503adb){if(_0x503adb){_0x2d02ff[_0xbfe2('0x27')]=_0x503adb[_0xbfe2('0x84')]({'plain':!![]});return db['MailInteraction'][_0xbfe2('0x5c')]({'where':{'id':_0x503adb[_0xbfe2('0x85')]}});}return null;})['then'](handleEntityNotFound(_0x4b55db,null))[_0xbfe2('0x20')](function(_0x47f8cf){if(_0x47f8cf){return _0x47f8cf[_0xbfe2('0x38')]({'UserId':_0x1d1ccf['body'][_0xbfe2('0x83')],'read1stAt':_[_0xbfe2('0x6a')](_0x47f8cf[_0xbfe2('0x86')])?moment()[_0xbfe2('0x7b')]('YYYY-MM-DD\x20HH:mm:ss'):undefined});}return null;})[_0xbfe2('0x20')](function(_0x51b674){if(_0x51b674){_0x2d02ff[_0xbfe2('0x87')]=_0x51b674['get']({'plain':!![]});interaction_log[_0xbfe2('0x28')](_0xbfe2('0x88'),_0x1d1ccf[_0xbfe2('0x72')]['id'],_0x1d1ccf['user'][_0xbfe2('0x3a')],_0x1d1ccf[_0xbfe2('0x72')][_0xbfe2('0x89')],_0x2d02ff[_0xbfe2('0x87')]['id'],_0x1d1ccf[_0xbfe2('0x3e')]?JSON[_0xbfe2('0x7d')](_0x1d1ccf[_0xbfe2('0x3e')]):'null');return respondWithRpcPromise(_0xbfe2('0x8a'),'acceptMessage',_0x2d02ff);}return null;})['then'](function(_0x2ebe0d){if(_0x2ebe0d){if(_0x1d1ccf[_0xbfe2('0x3e')][_0xbfe2('0x8b')]){_0x2d02ff['message'][_0xbfe2('0x8c')]=util[_0xbfe2('0x7b')]('SIP/%s',_0x1d1ccf['user'][_0xbfe2('0x3a')]);_0x2d02ff[_0xbfe2('0x27')][_0xbfe2('0x8d')]=_0x2d02ff[_0xbfe2('0x8d')];_0x2d02ff[_0xbfe2('0x27')][_0xbfe2('0x8e')]=_0xbfe2('0x7f');return respondWithRpcPromise(_0xbfe2('0x8f'),_0xbfe2('0x8f'),{'event':_0xbfe2('0x90'),'message':_0x2d02ff[_0xbfe2('0x27')]},client9002)[_0xbfe2('0x20')](function(){return _0x2d02ff;});}return _0x2d02ff;}return null;})[_0xbfe2('0x20')](respondWithResult(_0x4b55db,null))[_0xbfe2('0x2a')](handleError(_0x4b55db,null));};var interaction_log=require('../../config/logger')('mail-interactions');exports[_0xbfe2('0x36')]=function(_0x54c184,_0xcde7ee,_0xf5863){var _0x1fb2fd={'agent':{},'channel':_0xbfe2('0x80')};if(_0x54c184[_0xbfe2('0x3e')]['id']){delete _0x54c184[_0xbfe2('0x3e')]['id'];}_0x54c184['body']['UserId']=_0x54c184['body'][_0xbfe2('0x83')]||_0x54c184[_0xbfe2('0x72')]['id'];_0x1fb2fd[_0xbfe2('0x40')]['id']=_0x54c184['body'][_0xbfe2('0x83')];return db[_0xbfe2('0x44')][_0xbfe2('0x5c')]({'where':{'id':_0x54c184[_0xbfe2('0x5b')]['id'],'UserId':null}})[_0xbfe2('0x20')](handleEntityNotFound(_0xcde7ee,null))['then'](function(_0xefd137){if(_0xefd137){_0x1fb2fd[_0xbfe2('0x27')]=_0xefd137[_0xbfe2('0x84')]({'plain':!![]});return db['MailInteraction'][_0xbfe2('0x5c')]({'where':{'id':_0xefd137[_0xbfe2('0x85')]}});}return null;})['then'](handleEntityNotFound(_0xcde7ee,null))['then'](function(_0xbc0d93){if(_0xbc0d93){_0x1fb2fd[_0xbfe2('0x87')]=_0xbc0d93[_0xbfe2('0x84')]({'plain':!![]});interaction_log[_0xbfe2('0x28')]('[MAILMESSAGE:REJECT]\x20id=%s\x20name=%s\x20role=%s\x20interaction=%s\x20body=%s',_0x54c184['user']['id'],_0x54c184[_0xbfe2('0x72')][_0xbfe2('0x3a')],_0x54c184[_0xbfe2('0x72')]['role'],_0x1fb2fd[_0xbfe2('0x87')]['id'],_0x54c184[_0xbfe2('0x3e')]?JSON[_0xbfe2('0x7d')](_0x54c184[_0xbfe2('0x3e')]):_0xbfe2('0x91'));return respondWithRpcPromise(_0xbfe2('0x92'),'rejectMessage',_0x1fb2fd);}return null;})[_0xbfe2('0x20')](function(_0x4db26f){if(_0x4db26f){_0x4db26f[_0xbfe2('0x27')][_0xbfe2('0x8c')]=util['format']('SIP/%s',_0x54c184['user'][_0xbfe2('0x3a')]);_0x4db26f[_0xbfe2('0x27')][_0xbfe2('0x8d')]=_0x1fb2fd[_0xbfe2('0x8d')];_0x4db26f[_0xbfe2('0x27')][_0xbfe2('0x8e')]=_0xbfe2('0x36');respondWithRpcPromise(_0xbfe2('0x8f'),'EventManager',{'event':_0xbfe2('0x93'),'message':_0x4db26f[_0xbfe2('0x27')]},client9002);return _0x1fb2fd;}return null;})[_0xbfe2('0x20')](respondWithResult(_0xcde7ee,null))[_0xbfe2('0x2a')](handleError(_0xcde7ee,null));};exports[_0xbfe2('0x94')]=function(_0x598399,_0x13a41b){var _0x2a2055=moment()[_0xbfe2('0x95')]()[_0xbfe2('0x96')]();var _0x16632e=path[_0xbfe2('0x97')](config[_0xbfe2('0x75')],_0xbfe2('0x98'),_0xbfe2('0x99'),_0xbfe2('0x9a'));var _0x49d097=path[_0xbfe2('0x97')](config[_0xbfe2('0x75')],_0xbfe2('0x98'),_0xbfe2('0x99'),_0xbfe2('0x73'));var _0x575e55=util[_0xbfe2('0x7b')](_0xbfe2('0x9b'),_0x2a2055);return db[_0xbfe2('0x44')][_0xbfe2('0x5c')]({'where':{'id':_0x598399['params']['id']},'attributes':['id',_0xbfe2('0x3e'),_0xbfe2('0x9c'),'to','cc',_0xbfe2('0x9d'),_0xbfe2('0x9e'),_0xbfe2('0x9f')],'include':_0x598399[_0xbfe2('0x4a')][_0xbfe2('0x73')]?[{'model':db[_0xbfe2('0xa0')],'as':_0xbfe2('0xa1')}]:undefined})['then'](handleEntityNotFound(_0x13a41b,null))[_0xbfe2('0x20')](function(_0x59795a){if(_0x59795a){var _0x52ea9c=_0x59795a;var _0x213638={'from':_0x52ea9c[_0xbfe2('0x9c')],'to':_0x52ea9c['to'],'subject':_0x52ea9c[_0xbfe2('0x9e')],'html':_0x52ea9c[_0xbfe2('0x3e')],'headers':{'Date':moment(_0x52ea9c[_0xbfe2('0x9f')])['format'](_0xbfe2('0xa2'))},'attachments':[]};if(_0x59795a['cc']){_0x213638[_0xbfe2('0xa3')]['Cc']=_0x59795a['cc'];}if(_0x59795a[_0xbfe2('0x9d')]){_0x213638[_0xbfe2('0xa3')][_0xbfe2('0xa4')]=_0x59795a[_0xbfe2('0x9d')];}return new BPromise(function(_0x4dae83,_0x4529b0){if(_0x59795a[_0xbfe2('0xa1')]){for(var _0x11e44c=0x0;_0x11e44c<_0x59795a[_0xbfe2('0xa1')]['length'];_0x11e44c++){var _0x35d26c=_0x59795a['Attachments'][_0x11e44c];var _0x11ce73=path[_0xbfe2('0x97')](_0x49d097,_0x35d26c[_0xbfe2('0x77')]);if(fs[_0xbfe2('0xa5')](_0x11ce73)){_0x213638[_0xbfe2('0x73')][_0xbfe2('0xa6')]({'name':_0x35d26c[_0xbfe2('0x3a')],'contentType':_0x35d26c['type'],'data':fs['readFileSync'](_0x11ce73)});}}}emlformat[_0xbfe2('0xa7')](_0x213638,function(_0x12c8ea,_0x489e02){if(_0x12c8ea)return _0x4529b0(_0x12c8ea);fs[_0xbfe2('0xa8')](path[_0xbfe2('0x97')](_0x16632e,_0x575e55),_0x489e02);return _0x4dae83(_0x489e02);});});}})[_0xbfe2('0x20')](function(_0x3a2a4e){if(_0x3a2a4e){return _0x13a41b['download'](path[_0xbfe2('0x97')](_0x16632e,_0x575e55),_0x575e55,function(_0x4492a0){if(_0x4492a0){console[_0xbfe2('0xa9')](_0xbfe2('0xaa'),_0x4492a0);}else{fs[_0xbfe2('0xab')](path[_0xbfe2('0x97')](_0x16632e,_0x575e55));}});}})[_0xbfe2('0x2a')](handleError(_0x13a41b,null));};