Built motion from commit 21186556.|2.6.19
[motion2.git] / server / api / mailAccount / mailAccount.rpc.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 _0xbacd=['jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','register','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','GetMailAccount','MailAccount','findAll','options','where','attributes','limit','include','map','model','ShowMailAccount','find','raw','smtp','getSmtpOptions','NotifyMailAccount','body','mail','difference','keys','rawAttributes','createdAt','updatedAt','CompanyId','ListId','isNil','from','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','CmList','List','CmContact','Contacts','DESC','MailApplication','Applications','MailServerOut','CloudProvider','get','omit','smtpOptions','applications','list','priority','push','autoclose','*,*,*,*','length','create','generate','subject','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Messages','messageId','Contact\x20not\x20found','spread','update','interaction','created','contact','attachments','originTo','originCc','bcc','ChatWebsiteId','originChannel','Email','ChatOfflineMessageId','Attachment','UserId','User','name','agent','waitForTheAssignedAgent','queueId','MailQueue','unshift','queue','waitForTheAssignedQueue','Start','startRouting','lodash','moment','randomstring','ioredis','../../mysqldb','rpc','../../config/environment'];(function(_0x5c376b,_0x5cee74){var _0x4382ac=function(_0xd3dfc1){while(--_0xd3dfc1){_0x5c376b['push'](_0x5c376b['shift']());}};_0x4382ac(++_0x5cee74);}(_0xbacd,0x1c5));var _0xdbac=function(_0x28e2aa,_0x129d38){_0x28e2aa=_0x28e2aa-0x0;var _0x15f695=_0xbacd[_0x28e2aa];return _0x15f695;};'use strict';var _=require(_0xdbac('0x0'));var moment=require(_0xdbac('0x1'));var BPromise=require('bluebird');var rs=require(_0xdbac('0x2'));var Redis=require(_0xdbac('0x3'));var db=require(_0xdbac('0x4'))['db'];var logger=require('../../config/logger')(_0xdbac('0x5'));var config=require(_0xdbac('0x6'));var jayson=require(_0xdbac('0x7'));var client=jayson[_0xdbac('0x8')][_0xdbac('0x9')]({'port':0x232c});config[_0xdbac('0xa')]=_[_0xdbac('0xb')](config[_0xdbac('0xa')],{'host':_0xdbac('0xc'),'port':0x18eb});var socket=require(_0xdbac('0xd'))(new Redis(config[_0xdbac('0xa')]));require(_0xdbac('0xe'))[_0xdbac('0xf')](socket);function respondWithRpcPromise(_0x2824c8,_0x2f90c4,_0x4d025f){return new BPromise(function(_0x18f3ad,_0x258f7e){return client['request'](_0x2824c8,_0x4d025f)[_0xdbac('0x10')](function(_0x5bcf69){logger[_0xdbac('0x11')](_0xdbac('0x12'),_0x2f90c4,_0xdbac('0x13'));logger[_0xdbac('0x14')](_0xdbac('0x15'),_0x2f90c4,_0xdbac('0x13'),JSON[_0xdbac('0x16')](_0x5bcf69));if(_0x5bcf69[_0xdbac('0x17')]){if(_0x5bcf69[_0xdbac('0x17')]['code']===0x1f4){logger[_0xdbac('0x17')](_0xdbac('0x12'),_0x2f90c4,_0x5bcf69[_0xdbac('0x17')][_0xdbac('0x18')]);return _0x258f7e(_0x5bcf69[_0xdbac('0x17')][_0xdbac('0x18')]);}logger[_0xdbac('0x17')](_0xdbac('0x12'),_0x2f90c4,_0x5bcf69['error'][_0xdbac('0x18')]);return _0x18f3ad(_0x5bcf69[_0xdbac('0x17')][_0xdbac('0x18')]);}else{logger['info'](_0xdbac('0x12'),_0x2f90c4,_0xdbac('0x13'));_0x18f3ad(_0x5bcf69[_0xdbac('0x19')][_0xdbac('0x18')]);}})[_0xdbac('0x1a')](function(_0x1a9690){logger[_0xdbac('0x17')](_0xdbac('0x12'),_0x2f90c4,_0x1a9690);_0x258f7e(_0x1a9690);});});}exports[_0xdbac('0x1b')]=function(_0x1301d2){var _0x4598d9=this;return new Promise(function(_0x9c74a5,_0x5ec67c){return db[_0xdbac('0x1c')][_0xdbac('0x1d')]({'raw':_0x1301d2['options']?_0x1301d2[_0xdbac('0x1e')]['raw']===undefined?!![]:![]:!![],'where':_0x1301d2[_0xdbac('0x1e')]?_0x1301d2['options'][_0xdbac('0x1f')]||null:null,'attributes':_0x1301d2[_0xdbac('0x1e')]?_0x1301d2[_0xdbac('0x1e')][_0xdbac('0x20')]||null:null,'limit':_0x1301d2[_0xdbac('0x1e')]?_0x1301d2[_0xdbac('0x1e')][_0xdbac('0x21')]||null:null,'include':_0x1301d2['options']?_0x1301d2[_0xdbac('0x1e')][_0xdbac('0x22')]?_[_0xdbac('0x23')](_0x1301d2[_0xdbac('0x1e')][_0xdbac('0x22')],function(_0x2b4cda){return{'model':db[_0x2b4cda[_0xdbac('0x24')]],'as':_0x2b4cda['as'],'attributes':_0x2b4cda[_0xdbac('0x20')],'include':_0x2b4cda[_0xdbac('0x22')]?_[_0xdbac('0x23')](_0x2b4cda[_0xdbac('0x22')],function(_0x1ea3c3){return{'model':db[_0x1ea3c3[_0xdbac('0x24')]],'as':_0x1ea3c3['as'],'attributes':_0x1ea3c3[_0xdbac('0x20')],'include':_0x1ea3c3[_0xdbac('0x22')]?_[_0xdbac('0x23')](_0x1ea3c3[_0xdbac('0x22')],function(_0x2bdb01){return{'model':db[_0x2bdb01[_0xdbac('0x24')]],'as':_0x2bdb01['as'],'attributes':_0x2bdb01[_0xdbac('0x20')]};}):[]};}):[]};}):[]:[]})[_0xdbac('0x10')](function(_0x4e7ef9){logger[_0xdbac('0x11')](_0xdbac('0x1b'),_0x1301d2);logger[_0xdbac('0x14')](_0xdbac('0x1b'),_0x1301d2,JSON['stringify'](_0x4e7ef9));_0x9c74a5(_0x4e7ef9);})['catch'](function(_0x10c3c8){logger[_0xdbac('0x17')](_0xdbac('0x1b'),_0x10c3c8[_0xdbac('0x18')],_0x1301d2);_0x5ec67c(_0x4598d9['error'](0x1f4,_0x10c3c8[_0xdbac('0x18')]));});});};exports[_0xdbac('0x25')]=function(_0x1659e4){var _0x2f53ef=this;return new Promise(function(_0x30a711,_0x1e3702){return db[_0xdbac('0x1c')][_0xdbac('0x26')]({'raw':_0x1659e4['options']?_0x1659e4['options'][_0xdbac('0x27')]===undefined?!![]:![]:!![],'where':_0x1659e4[_0xdbac('0x1e')]?_0x1659e4[_0xdbac('0x1e')][_0xdbac('0x1f')]||null:null,'attributes':_0x1659e4['options']?_0x1659e4['options'][_0xdbac('0x20')]||null:null,'include':_0x1659e4[_0xdbac('0x1e')]?_0x1659e4[_0xdbac('0x1e')][_0xdbac('0x22')]?_[_0xdbac('0x23')](_0x1659e4[_0xdbac('0x1e')][_0xdbac('0x22')],function(_0x4640f7){return{'model':db[_0x4640f7[_0xdbac('0x24')]],'as':_0x4640f7['as'],'attributes':_0x4640f7[_0xdbac('0x20')],'include':_0x4640f7[_0xdbac('0x22')]?_[_0xdbac('0x23')](_0x4640f7[_0xdbac('0x22')],function(_0x48a49f){return{'model':db[_0x48a49f[_0xdbac('0x24')]],'as':_0x48a49f['as'],'attributes':_0x48a49f['attributes'],'include':_0x48a49f[_0xdbac('0x22')]?_[_0xdbac('0x23')](_0x48a49f[_0xdbac('0x22')],function(_0x3a4829){return{'model':db[_0x3a4829['model']],'as':_0x3a4829['as'],'attributes':_0x3a4829[_0xdbac('0x20')]};}):[]};}):[]};}):[]:[]})[_0xdbac('0x10')](function(_0x58a661){if(_0x1659e4['options'][_0xdbac('0x28')]===!![])_0x58a661['setDataValue']('smtpOptions',_0x58a661[_0xdbac('0x29')]());logger[_0xdbac('0x11')](_0xdbac('0x25'),_0x1659e4);logger['debug'](_0xdbac('0x25'),_0x1659e4,JSON[_0xdbac('0x16')](_0x58a661));_0x30a711(_0x58a661);})[_0xdbac('0x1a')](function(_0x3d1dc1){logger['error']('ShowMailAccount',_0x3d1dc1[_0xdbac('0x18')],_0x1659e4);_0x1e3702(_0x2f53ef[_0xdbac('0x17')](0x1f4,_0x3d1dc1[_0xdbac('0x18')]));});});};exports[_0xdbac('0x2a')]=function(_0x2346e9){var _0x53c779=this;return new Promise(function(_0x1a27a4,_0x3bf656){var _0x5a4851={'body':_0x2346e9[_0xdbac('0x2b')],'channel':_0xdbac('0x2c')};var _0x1710a5=_[_0xdbac('0x2d')](_[_0xdbac('0x2e')](db['CmContact'][_0xdbac('0x2f')]),[_0xdbac('0x30'),_0xdbac('0x31'),_0xdbac('0x32'),_0xdbac('0x33')]);var _0x25344a=![];if(_0x2346e9[_0xdbac('0x2b')]['id']){delete _0x2346e9[_0xdbac('0x2b')]['id'];}if(_[_0xdbac('0x34')](_0x2346e9[_0xdbac('0x2b')][_0xdbac('0x35')])){return _0x3bf656(_0x53c779[_0xdbac('0x17')](0x1f4,'from\x20is\x20mandatory'));}if(_['isNil'](_0x2346e9['body']['body'])||_0x2346e9[_0xdbac('0x2b')][_0xdbac('0x2b')]===''){return _0x3bf656(_0x53c779[_0xdbac('0x17')](0x1f4,_0xdbac('0x36')));}if(_[_0xdbac('0x34')](_0x2346e9[_0xdbac('0x2b')][_0xdbac('0x37')])){return _0x3bf656(_0x53c779[_0xdbac('0x17')](0x1f4,_0xdbac('0x38')+_0x1710a5));}if(!_['includes'](_0x1710a5,_0x2346e9['body']['mapKey'])){return _0x3bf656(_0x53c779[_0xdbac('0x17')](0x1f4,_0xdbac('0x39')+_0x1710a5));}var _0x573fb3={};_0x573fb3[_0x2346e9['body']['mapKey']]=_0x2346e9[_0xdbac('0x2b')][_0xdbac('0x35')];return db[_0xdbac('0x1c')]['find']({'where':{'id':_0x2346e9[_0xdbac('0x3a')]['id']},'include':[{'model':db[_0xdbac('0x3b')],'as':_0xdbac('0x3c'),'include':[{'model':db[_0xdbac('0x3d')],'as':_0xdbac('0x3e'),'where':_0x573fb3,'limit':0x1,'order':[['updatedAt',_0xdbac('0x3f')]]}]},{'model':db[_0xdbac('0x40')],'as':_0xdbac('0x41')},{'model':db[_0xdbac('0x42')],'as':'Smtp','include':[{'model':db[_0xdbac('0x43')],'as':_0xdbac('0x43')}]}]})[_0xdbac('0x10')](function(_0x5d6e86){if(_0x5d6e86&&_0x5d6e86[_0xdbac('0x3c')]){var _0x5ce39=_0x5d6e86[_0xdbac('0x44')]({'plain':!![]});_0x5a4851[_0xdbac('0x3a')]=_[_0xdbac('0x45')](_0x5ce39,[_0xdbac('0x41'),'List']);_0x5a4851[_0xdbac('0x3a')][_0xdbac('0x46')]=_0x5d6e86['getSmtpOptions']();_0x5a4851[_0xdbac('0x47')]=_0x5ce39[_0xdbac('0x41')];_0x5a4851[_0xdbac('0x48')]=_0x5ce39[_0xdbac('0x3c')];_0x5a4851['applications']=_['orderBy'](_0x5a4851[_0xdbac('0x47')],[_0xdbac('0x49')],['asc']);if(_0x5a4851['account']&&_0x5a4851[_0xdbac('0x3a')]['autoclose']){_0x5a4851[_0xdbac('0x47')][_0xdbac('0x4a')]({'id':0x0,'priority':_0x5a4851[_0xdbac('0x47')]['length']+0x1,'app':'close','appdata':_0xdbac('0x4b'),'interval':_0xdbac('0x4c')});}if(_0x5a4851[_0xdbac('0x3a')][_0xdbac('0x41')]){delete _0x5a4851[_0xdbac('0x3a')][_0xdbac('0x41')];}if(_0x5a4851[_0xdbac('0x3a')]['List']){delete _0x5a4851['account'][_0xdbac('0x3c')];}if(_0x5ce39[_0xdbac('0x3c')][_0xdbac('0x3e')][_0xdbac('0x4d')]){return _0x5ce39[_0xdbac('0x3c')][_0xdbac('0x3e')][0x0];}var _0x5ec4f8=_[_0xdbac('0xb')](_0x2346e9[_0xdbac('0x2b')],{'firstName':_0x2346e9[_0xdbac('0x2b')][_0xdbac('0x35')],'ListId':_0x5ce39[_0xdbac('0x33')]});_0x5ec4f8[_0x2346e9['body']['mapKey']]=_0x2346e9[_0xdbac('0x2b')]['from'];return db[_0xdbac('0x3d')][_0xdbac('0x4e')](_0x5ec4f8);}else{throw new Error('List\x20not\x20found');}})[_0xdbac('0x10')](function(_0x50af7a){_0x5a4851['contact']=_0x50af7a;if(_0x50af7a){if(!_0x2346e9[_0xdbac('0x2b')][_0xdbac('0x18')]['messageId']){_0x2346e9['body'][_0xdbac('0x18')]['messageId']=rs[_0xdbac('0x4f')]()+'\x20'+_0x2346e9[_0xdbac('0x2b')][_0xdbac('0x18')]['from'];}var _0x4be6fc={'ContactId':_0x50af7a['id'],'MailAccountId':_0x2346e9[_0xdbac('0x3a')]['id'],'inReplyTo':_0x2346e9[_0xdbac('0x2b')][_0xdbac('0x18')]['messageId'],'to':_0x2346e9[_0xdbac('0x2b')][_0xdbac('0x18')]['from'],'cc':_0x2346e9[_0xdbac('0x2b')]['message']['cc'],'subject':_0x2346e9['body'][_0xdbac('0x18')][_0xdbac('0x50')],'attach':_0x2346e9[_0xdbac('0x2b')][_0xdbac('0x18')][_0xdbac('0x51')],'lastMsgAt':moment()[_0xdbac('0x52')](_0xdbac('0x53')),'lastMsgDirection':'in'};return db[_0xdbac('0x54')][_0xdbac('0x26')]({'where':{'closed':![],'MailAccountId':_0x2346e9['account']['id']},'include':[{'model':db[_0xdbac('0x55')],'as':_0xdbac('0x56'),'attributes':[_0xdbac('0x57')],'where':{'messageId':_0x2346e9[_0xdbac('0x2b')]['message']['inReplyTo']}}]})['then'](function(_0x54de5e){if(_0x54de5e){return[_0x54de5e,![]];}return db[_0xdbac('0x54')]['create'](_0x4be6fc)[_0xdbac('0x10')](function(_0x3d471f){return[_0x3d471f,!![]];});});}else{throw new Error(_0xdbac('0x58'));}})[_0xdbac('0x59')](function(_0x41645c,_0xc2d800){if(_0x41645c){_0x25344a=_0xc2d800;if(!_0xc2d800){return _0x41645c[_0xdbac('0x5a')]({'inReplyTo':_0x2346e9[_0xdbac('0x2b')][_0xdbac('0x18')]['messageId'],'to':_0x2346e9[_0xdbac('0x2b')][_0xdbac('0x18')][_0xdbac('0x35')],'cc':_0x2346e9[_0xdbac('0x2b')][_0xdbac('0x18')]['cc'],'subject':_0x2346e9['body'][_0xdbac('0x18')][_0xdbac('0x50')],'attach':_0x41645c[_0xdbac('0x51')]?_0x41645c[_0xdbac('0x51')]:_0x2346e9[_0xdbac('0x2b')][_0xdbac('0x18')][_0xdbac('0x51')],'substatus':null,'substatusAt':moment()[_0xdbac('0x52')](_0xdbac('0x53')),'lastMsgAt':moment()['format'](_0xdbac('0x53')),'lastMsgDirection':'in'});}else{return _0x41645c;}}})[_0xdbac('0x10')](function(_0x5410bc){_0x5a4851['interaction']=_0x5410bc['get']({'plain':!![]});_0x5a4851[_0xdbac('0x5b')][_0xdbac('0x5c')]=_0x25344a;return db[_0xdbac('0x55')][_0xdbac('0x4e')]({'body':_0x2346e9[_0xdbac('0x2b')][_0xdbac('0x2b')],'MailAccountId':_0x2346e9[_0xdbac('0x3a')]['id'],'MailInteractionId':_0x5410bc['id'],'direction':'in','ContactId':_0x5a4851[_0xdbac('0x5d')]['id'],'messageId':_0x2346e9[_0xdbac('0x2b')][_0xdbac('0x18')]['messageId'],'from':_0x2346e9[_0xdbac('0x2b')]['message'][_0xdbac('0x35')],'to':_0x2346e9['body'][_0xdbac('0x18')]['to'],'cc':_0x2346e9[_0xdbac('0x2b')][_0xdbac('0x18')]['cc'],'subject':_0x2346e9[_0xdbac('0x2b')]['message'][_0xdbac('0x50')],'attach':_0x2346e9[_0xdbac('0x2b')][_0xdbac('0x18')][_0xdbac('0x51')],'Attachments':_0x2346e9[_0xdbac('0x2b')]['message'][_0xdbac('0x5e')],'originTo':_0x2346e9[_0xdbac('0x2b')][_0xdbac('0x18')][_0xdbac('0x5f')],'originCc':_0x2346e9[_0xdbac('0x2b')][_0xdbac('0x18')][_0xdbac('0x60')],'bcc':_0x2346e9[_0xdbac('0x2b')][_0xdbac('0x18')][_0xdbac('0x61')],'ChatWebsiteId':_0x2346e9[_0xdbac('0x2b')][_0xdbac('0x18')][_0xdbac('0x62')]||null,'originChannel':_0x2346e9[_0xdbac('0x2b')][_0xdbac('0x18')][_0xdbac('0x63')]||_0xdbac('0x64'),'ChatOfflineMessageId':_0x2346e9['body'][_0xdbac('0x18')][_0xdbac('0x65')]||null},{'include':[{'model':db[_0xdbac('0x66')],'as':'Attachments'}]});})[_0xdbac('0x10')](function(_0x2bb725){_0x5a4851['message']=_0x2bb725;if(!_0x5a4851['interaction'][_0xdbac('0x67')]){return;}return db[_0xdbac('0x68')]['find']({'attributes':['id',_0xdbac('0x69')],'where':{'id':_0x5a4851[_0xdbac('0x5b')][_0xdbac('0x67')]}});})[_0xdbac('0x10')](function(_0xdaa182){if(_0xdaa182){_0x5a4851['applications']['unshift']({'id':0x0,'priority':0x0,'app':_0xdbac('0x6a'),'appdata':_0xdaa182[_0xdbac('0x69')]+','+(_0x5a4851['account'][_0xdbac('0x6b')]||0xa),'interval':_0xdbac('0x4c')});}if(!_0x5a4851[_0xdbac('0x5b')][_0xdbac('0x6c')]){return;}return db[_0xdbac('0x6d')][_0xdbac('0x26')]({'attributes':['id',_0xdbac('0x69')],'where':{'id':_0x5a4851['interaction'][_0xdbac('0x6c')]}});})['then'](function(_0x47cc7f){if(_0x47cc7f){_0x5a4851['applications'][_0xdbac('0x6e')]({'id':0x0,'priority':0x1,'app':_0xdbac('0x6f'),'appdata':_0x47cc7f[_0xdbac('0x69')]+','+(_0x5a4851['account'][_0xdbac('0x70')]||0x12c),'interval':_0xdbac('0x4c')});}return respondWithRpcPromise(_0xdbac('0x71'),_0xdbac('0x72'),_0x5a4851);})[_0xdbac('0x10')](function(_0x3c578a){_0x1a27a4(_0x3c578a);})[_0xdbac('0x1a')](function(_0x141830){_0x3bf656(_0x53c779['error'](0x1f4,_0x141830[_0xdbac('0x18')]));});});};