b6a269ced47500fd4aa621eac665e6ee4d217dad
[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 _0xc21e=['../../config/environment','jayson/promise','client','http','redis','defaults','localhost','./mailAccount.socket','register','request','info','MailAccount,\x20%s,\x20%s','debug','MailAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','GetMailAccount','MailAccount','findAll','raw','options','attributes','limit','include','map','model','then','ShowMailAccount','find','smtp','setDataValue','getSmtpOptions','NotifyMailAccount','body','mail','difference','rawAttributes','updatedAt','ListId','from','from\x20is\x20mandatory','isNil','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','CmList','List','Contacts','DESC','MailApplication','Applications','MailServerOut','Smtp','CloudProvider','omit','smtpOptions','orderBy','applications','priority','asc','autoclose','push','length','close','*,*,*,*','CmContact','create','List\x20not\x20found','contact','messageId','generate','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','spread','update','subject','interaction','created','MailMessage','attachments','originTo','originCc','bcc','ChatWebsiteId','originChannel','Email','ChatOfflineMessageId','Attachment','UserId','User','name','unshift','agent','waitForTheAssignedAgent','queueId','MailQueue','queue','waitForTheAssignedQueue','Start','startRouting','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger'];(function(_0x257e1f,_0x11a95a){var _0xa85736=function(_0x4eafa5){while(--_0x4eafa5){_0x257e1f['push'](_0x257e1f['shift']());}};_0xa85736(++_0x11a95a);}(_0xc21e,0x1ca));var _0xec21=function(_0x4565bf,_0x5ad9d6){_0x4565bf=_0x4565bf-0x0;var _0x5610ba=_0xc21e[_0x4565bf];return _0x5610ba;};'use strict';var _=require('lodash');var moment=require(_0xec21('0x0'));var BPromise=require(_0xec21('0x1'));var rs=require(_0xec21('0x2'));var Redis=require(_0xec21('0x3'));var db=require(_0xec21('0x4'))['db'];var logger=require(_0xec21('0x5'))('rpc');var config=require(_0xec21('0x6'));var jayson=require(_0xec21('0x7'));var client=jayson[_0xec21('0x8')][_0xec21('0x9')]({'port':0x232c});config[_0xec21('0xa')]=_[_0xec21('0xb')](config[_0xec21('0xa')],{'host':_0xec21('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xec21('0xa')]));require(_0xec21('0xd'))[_0xec21('0xe')](socket);function respondWithRpcPromise(_0xfbab77,_0x4d478,_0x569559){return new BPromise(function(_0x110420,_0x1d5e4b){return client[_0xec21('0xf')](_0xfbab77,_0x569559)['then'](function(_0x5f059d){logger[_0xec21('0x10')](_0xec21('0x11'),_0x4d478,'request\x20sent');logger[_0xec21('0x12')](_0xec21('0x13'),_0x4d478,_0xec21('0x14'),JSON[_0xec21('0x15')](_0x5f059d));if(_0x5f059d[_0xec21('0x16')]){if(_0x5f059d['error'][_0xec21('0x17')]===0x1f4){logger['error'](_0xec21('0x11'),_0x4d478,_0x5f059d[_0xec21('0x16')][_0xec21('0x18')]);return _0x1d5e4b(_0x5f059d['error'][_0xec21('0x18')]);}logger[_0xec21('0x16')](_0xec21('0x11'),_0x4d478,_0x5f059d[_0xec21('0x16')][_0xec21('0x18')]);return _0x110420(_0x5f059d[_0xec21('0x16')][_0xec21('0x18')]);}else{logger[_0xec21('0x10')]('MailAccount,\x20%s,\x20%s',_0x4d478,_0xec21('0x14'));_0x110420(_0x5f059d[_0xec21('0x19')][_0xec21('0x18')]);}})[_0xec21('0x1a')](function(_0x3ab226){logger[_0xec21('0x16')](_0xec21('0x11'),_0x4d478,_0x3ab226);_0x1d5e4b(_0x3ab226);});});}exports[_0xec21('0x1b')]=function(_0x3c790e){var _0x350443=this;return new Promise(function(_0x4f4b12,_0x4c244b){return db[_0xec21('0x1c')][_0xec21('0x1d')]({'raw':_0x3c790e['options']?_0x3c790e['options'][_0xec21('0x1e')]===undefined?!![]:![]:!![],'where':_0x3c790e[_0xec21('0x1f')]?_0x3c790e[_0xec21('0x1f')]['where']||null:null,'attributes':_0x3c790e[_0xec21('0x1f')]?_0x3c790e[_0xec21('0x1f')][_0xec21('0x20')]||null:null,'limit':_0x3c790e['options']?_0x3c790e[_0xec21('0x1f')][_0xec21('0x21')]||null:null,'include':_0x3c790e[_0xec21('0x1f')]?_0x3c790e[_0xec21('0x1f')][_0xec21('0x22')]?_[_0xec21('0x23')](_0x3c790e['options'][_0xec21('0x22')],function(_0x26cdae){return{'model':db[_0x26cdae['model']],'as':_0x26cdae['as'],'attributes':_0x26cdae[_0xec21('0x20')],'include':_0x26cdae['include']?_[_0xec21('0x23')](_0x26cdae['include'],function(_0x4ef840){return{'model':db[_0x4ef840[_0xec21('0x24')]],'as':_0x4ef840['as'],'attributes':_0x4ef840[_0xec21('0x20')],'include':_0x4ef840[_0xec21('0x22')]?_[_0xec21('0x23')](_0x4ef840[_0xec21('0x22')],function(_0x5521e3){return{'model':db[_0x5521e3[_0xec21('0x24')]],'as':_0x5521e3['as'],'attributes':_0x5521e3['attributes']};}):[]};}):[]};}):[]:[]})[_0xec21('0x25')](function(_0x233bf9){logger[_0xec21('0x10')](_0xec21('0x1b'),_0x3c790e);logger['debug'](_0xec21('0x1b'),_0x3c790e,JSON[_0xec21('0x15')](_0x233bf9));_0x4f4b12(_0x233bf9);})[_0xec21('0x1a')](function(_0x233231){logger[_0xec21('0x16')](_0xec21('0x1b'),_0x233231[_0xec21('0x18')],_0x3c790e);_0x4c244b(_0x350443[_0xec21('0x16')](0x1f4,_0x233231[_0xec21('0x18')]));});});};exports[_0xec21('0x26')]=function(_0x43a2de){var _0x57e004=this;return new Promise(function(_0x31f861,_0x2a14aa){return db[_0xec21('0x1c')][_0xec21('0x27')]({'raw':_0x43a2de[_0xec21('0x1f')]?_0x43a2de['options'][_0xec21('0x1e')]===undefined?!![]:![]:!![],'where':_0x43a2de['options']?_0x43a2de['options']['where']||null:null,'attributes':_0x43a2de[_0xec21('0x1f')]?_0x43a2de[_0xec21('0x1f')][_0xec21('0x20')]||null:null,'include':_0x43a2de[_0xec21('0x1f')]?_0x43a2de[_0xec21('0x1f')][_0xec21('0x22')]?_[_0xec21('0x23')](_0x43a2de[_0xec21('0x1f')][_0xec21('0x22')],function(_0x1a7586){return{'model':db[_0x1a7586[_0xec21('0x24')]],'as':_0x1a7586['as'],'attributes':_0x1a7586[_0xec21('0x20')],'include':_0x1a7586['include']?_[_0xec21('0x23')](_0x1a7586[_0xec21('0x22')],function(_0x4a91a8){return{'model':db[_0x4a91a8[_0xec21('0x24')]],'as':_0x4a91a8['as'],'attributes':_0x4a91a8['attributes'],'include':_0x4a91a8['include']?_[_0xec21('0x23')](_0x4a91a8['include'],function(_0x4556c2){return{'model':db[_0x4556c2['model']],'as':_0x4556c2['as'],'attributes':_0x4556c2[_0xec21('0x20')]};}):[]};}):[]};}):[]:[]})[_0xec21('0x25')](function(_0x54b3a6){if(_0x43a2de[_0xec21('0x1f')][_0xec21('0x28')]===!![])_0x54b3a6[_0xec21('0x29')]('smtpOptions',_0x54b3a6[_0xec21('0x2a')]());logger[_0xec21('0x10')](_0xec21('0x26'),_0x43a2de);logger['debug'](_0xec21('0x26'),_0x43a2de,JSON[_0xec21('0x15')](_0x54b3a6));_0x31f861(_0x54b3a6);})[_0xec21('0x1a')](function(_0x154b8b){logger[_0xec21('0x16')]('ShowMailAccount',_0x154b8b[_0xec21('0x18')],_0x43a2de);_0x2a14aa(_0x57e004[_0xec21('0x16')](0x1f4,_0x154b8b['message']));});});};exports[_0xec21('0x2b')]=function(_0x54e642){var _0x1f0916=this;return new Promise(function(_0x18e20d,_0xf13561){var _0x49f90a={'body':_0x54e642[_0xec21('0x2c')],'channel':_0xec21('0x2d')};var _0x1093f6=_[_0xec21('0x2e')](_['keys'](db['CmContact'][_0xec21('0x2f')]),['createdAt',_0xec21('0x30'),'CompanyId',_0xec21('0x31')]);var _0x52e024=![];if(_0x54e642[_0xec21('0x2c')]['id']){delete _0x54e642[_0xec21('0x2c')]['id'];}if(_['isNil'](_0x54e642[_0xec21('0x2c')][_0xec21('0x32')])){return _0xf13561(_0x1f0916['error'](0x1f4,_0xec21('0x33')));}if(_[_0xec21('0x34')](_0x54e642[_0xec21('0x2c')][_0xec21('0x2c')])||_0x54e642[_0xec21('0x2c')][_0xec21('0x2c')]===''){return _0xf13561(_0x1f0916[_0xec21('0x16')](0x1f4,_0xec21('0x35')));}if(_[_0xec21('0x34')](_0x54e642['body']['mapKey'])){return _0xf13561(_0x1f0916[_0xec21('0x16')](0x1f4,_0xec21('0x36')+_0x1093f6));}if(!_[_0xec21('0x37')](_0x1093f6,_0x54e642['body'][_0xec21('0x38')])){return _0xf13561(_0x1f0916[_0xec21('0x16')](0x1f4,_0xec21('0x39')+_0x1093f6));}var _0x555d95={};_0x555d95[_0x54e642['body']['mapKey']]=_0x54e642[_0xec21('0x2c')][_0xec21('0x32')];return db[_0xec21('0x1c')][_0xec21('0x27')]({'where':{'id':_0x54e642[_0xec21('0x3a')]['id']},'include':[{'model':db[_0xec21('0x3b')],'as':_0xec21('0x3c'),'include':[{'model':db['CmContact'],'as':_0xec21('0x3d'),'where':_0x555d95,'limit':0x1,'order':[[_0xec21('0x30'),_0xec21('0x3e')]]}]},{'model':db[_0xec21('0x3f')],'as':_0xec21('0x40')},{'model':db[_0xec21('0x41')],'as':_0xec21('0x42'),'include':[{'model':db[_0xec21('0x43')],'as':'CloudProvider'}]}]})[_0xec21('0x25')](function(_0x21e67f){if(_0x21e67f&&_0x21e67f[_0xec21('0x3c')]){var _0x58e490=_0x21e67f['get']({'plain':!![]});_0x49f90a['account']=_[_0xec21('0x44')](_0x58e490,[_0xec21('0x40'),'List']);_0x49f90a[_0xec21('0x3a')][_0xec21('0x45')]=_0x21e67f[_0xec21('0x2a')]();_0x49f90a['applications']=_0x58e490[_0xec21('0x40')];_0x49f90a['list']=_0x58e490[_0xec21('0x3c')];_0x49f90a['applications']=_[_0xec21('0x46')](_0x49f90a[_0xec21('0x47')],[_0xec21('0x48')],[_0xec21('0x49')]);if(_0x49f90a[_0xec21('0x3a')]&&_0x49f90a['account'][_0xec21('0x4a')]){_0x49f90a['applications'][_0xec21('0x4b')]({'id':0x0,'priority':_0x49f90a['applications'][_0xec21('0x4c')]+0x1,'app':_0xec21('0x4d'),'appdata':_0xec21('0x4a'),'interval':_0xec21('0x4e')});}if(_0x49f90a[_0xec21('0x3a')][_0xec21('0x40')]){delete _0x49f90a['account'][_0xec21('0x40')];}if(_0x49f90a[_0xec21('0x3a')][_0xec21('0x3c')]){delete _0x49f90a[_0xec21('0x3a')]['List'];}if(_0x58e490[_0xec21('0x3c')][_0xec21('0x3d')][_0xec21('0x4c')]){return _0x58e490['List']['Contacts'][0x0];}var _0x674ba7=_['defaults'](_0x54e642[_0xec21('0x2c')],{'firstName':_0x54e642[_0xec21('0x2c')]['from'],'ListId':_0x58e490['ListId']});_0x674ba7[_0x54e642[_0xec21('0x2c')][_0xec21('0x38')]]=_0x54e642[_0xec21('0x2c')][_0xec21('0x32')];return db[_0xec21('0x4f')][_0xec21('0x50')](_0x674ba7);}else{throw new Error(_0xec21('0x51'));}})[_0xec21('0x25')](function(_0x4a5351){_0x49f90a[_0xec21('0x52')]=_0x4a5351;if(_0x4a5351){if(!_0x54e642['body'][_0xec21('0x18')]['messageId']){_0x54e642[_0xec21('0x2c')][_0xec21('0x18')][_0xec21('0x53')]=rs[_0xec21('0x54')]()+'\x20'+_0x54e642[_0xec21('0x2c')]['message']['from'];}var _0x49cd02={'ContactId':_0x4a5351['id'],'MailAccountId':_0x54e642[_0xec21('0x3a')]['id'],'inReplyTo':_0x54e642['body'][_0xec21('0x18')][_0xec21('0x53')],'to':_0x54e642[_0xec21('0x2c')][_0xec21('0x18')][_0xec21('0x32')],'cc':_0x54e642[_0xec21('0x2c')][_0xec21('0x18')]['cc'],'subject':_0x54e642[_0xec21('0x2c')][_0xec21('0x18')]['subject'],'attach':_0x54e642[_0xec21('0x2c')]['message'][_0xec21('0x55')],'lastMsgAt':moment()[_0xec21('0x56')](_0xec21('0x57')),'lastMsgDirection':'in'};return db['MailInteraction']['find']({'where':{'closed':![],'MailAccountId':_0x54e642[_0xec21('0x3a')]['id']},'include':[{'model':db['MailMessage'],'as':'Messages','attributes':[_0xec21('0x53')],'where':{'messageId':_0x54e642[_0xec21('0x2c')][_0xec21('0x18')]['inReplyTo']}}]})[_0xec21('0x25')](function(_0x43848f){if(_0x43848f){return[_0x43848f,![]];}return db[_0xec21('0x58')][_0xec21('0x50')](_0x49cd02)[_0xec21('0x25')](function(_0x2ae987){return[_0x2ae987,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0xec21('0x59')](function(_0x1cb2b1,_0x3a4bd6){if(_0x1cb2b1){_0x52e024=_0x3a4bd6;if(!_0x3a4bd6){return _0x1cb2b1[_0xec21('0x5a')]({'inReplyTo':_0x54e642['body']['message']['messageId'],'to':_0x54e642[_0xec21('0x2c')][_0xec21('0x18')][_0xec21('0x32')],'cc':_0x54e642[_0xec21('0x2c')][_0xec21('0x18')]['cc'],'subject':_0x54e642[_0xec21('0x2c')][_0xec21('0x18')][_0xec21('0x5b')],'attach':_0x1cb2b1[_0xec21('0x55')]?_0x1cb2b1[_0xec21('0x55')]:_0x54e642[_0xec21('0x2c')][_0xec21('0x18')][_0xec21('0x55')],'substatus':null,'substatusAt':moment()[_0xec21('0x56')](_0xec21('0x57')),'lastMsgAt':moment()['format'](_0xec21('0x57')),'lastMsgDirection':'in'});}else{return _0x1cb2b1;}}})[_0xec21('0x25')](function(_0x11d9e7){_0x49f90a[_0xec21('0x5c')]=_0x11d9e7['get']({'plain':!![]});_0x49f90a['interaction'][_0xec21('0x5d')]=_0x52e024;return db[_0xec21('0x5e')][_0xec21('0x50')]({'body':_0x54e642[_0xec21('0x2c')]['body'],'MailAccountId':_0x54e642[_0xec21('0x3a')]['id'],'MailInteractionId':_0x11d9e7['id'],'direction':'in','ContactId':_0x49f90a['contact']['id'],'messageId':_0x54e642[_0xec21('0x2c')]['message'][_0xec21('0x53')],'from':_0x54e642[_0xec21('0x2c')][_0xec21('0x18')]['from'],'to':_0x54e642['body'][_0xec21('0x18')]['to'],'cc':_0x54e642[_0xec21('0x2c')]['message']['cc'],'subject':_0x54e642['body'][_0xec21('0x18')][_0xec21('0x5b')],'attach':_0x54e642['body']['message'][_0xec21('0x55')],'Attachments':_0x54e642[_0xec21('0x2c')]['message'][_0xec21('0x5f')],'originTo':_0x54e642['body']['message'][_0xec21('0x60')],'originCc':_0x54e642[_0xec21('0x2c')]['message'][_0xec21('0x61')],'bcc':_0x54e642[_0xec21('0x2c')]['message'][_0xec21('0x62')],'ChatWebsiteId':_0x54e642['body']['message'][_0xec21('0x63')]||null,'originChannel':_0x54e642[_0xec21('0x2c')][_0xec21('0x18')][_0xec21('0x64')]||_0xec21('0x65'),'ChatOfflineMessageId':_0x54e642[_0xec21('0x2c')][_0xec21('0x18')][_0xec21('0x66')]||null},{'include':[{'model':db[_0xec21('0x67')],'as':'Attachments'}]});})[_0xec21('0x25')](function(_0x194287){_0x49f90a['message']=_0x194287;if(!_0x49f90a['interaction'][_0xec21('0x68')]){return;}return db[_0xec21('0x69')][_0xec21('0x27')]({'attributes':['id',_0xec21('0x6a')],'where':{'id':_0x49f90a[_0xec21('0x5c')][_0xec21('0x68')]}});})['then'](function(_0x2cb4d6){if(_0x2cb4d6){_0x49f90a[_0xec21('0x47')][_0xec21('0x6b')]({'id':0x0,'priority':0x0,'app':_0xec21('0x6c'),'appdata':_0x2cb4d6[_0xec21('0x6a')]+','+(_0x49f90a[_0xec21('0x3a')][_0xec21('0x6d')]||0xa),'interval':_0xec21('0x4e')});}if(!_0x49f90a[_0xec21('0x5c')][_0xec21('0x6e')]){return;}return db[_0xec21('0x6f')][_0xec21('0x27')]({'attributes':['id',_0xec21('0x6a')],'where':{'id':_0x49f90a[_0xec21('0x5c')]['queueId']}});})[_0xec21('0x25')](function(_0x502fb8){if(_0x502fb8){_0x49f90a[_0xec21('0x47')][_0xec21('0x6b')]({'id':0x0,'priority':0x1,'app':_0xec21('0x70'),'appdata':_0x502fb8[_0xec21('0x6a')]+','+(_0x49f90a[_0xec21('0x3a')][_0xec21('0x71')]||0x12c),'interval':_0xec21('0x4e')});}return respondWithRpcPromise(_0xec21('0x72'),_0xec21('0x73'),_0x49f90a);})['then'](function(_0x44077f){_0x18e20d(_0x44077f);})[_0xec21('0x1a')](function(_0x5def11){_0xf13561(_0x1f0916[_0xec21('0x16')](0x1f4,_0x5def11[_0xec21('0x18')]));});});};