9b614192f5971bdebeec9e9c0c999a8ce856688f
[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 _0x44e8=['waitForTheAssignedQueue','Start','startRouting','lodash','randomstring','ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','client','http','defaults','redis','localhost','socket.io-emitter','./mailAccount.socket','register','request','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','GetMailAccount','MailAccount','findAll','options','where','include','map','model','attributes','catch','ShowMailAccount','find','raw','smtp','setDataValue','smtpOptions','getSmtpOptions','NotifyMailAccount','body','mail','difference','CmContact','rawAttributes','createdAt','ListId','from\x20is\x20mandatory','isNil','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','from','account','List','Contacts','updatedAt','DESC','MailApplication','Applications','MailServerOut','Smtp','CloudProvider','get','omit','applications','list','orderBy','priority','asc','autoclose','length','close','*,*,*,*','List\x20not\x20found','messageId','subject','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Messages','inReplyTo','create','update','attach','created','originCc','bcc','ChatWebsiteId','originChannel','Email','Attachments','interaction','UserId','User','name','queueId','MailQueue','queue'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x44e8,0xd7));var _0x844e=function(_0x202be7,_0x507cb2){_0x202be7=_0x202be7-0x0;var _0x384155=_0x44e8[_0x202be7];return _0x384155;};'use strict';var _=require(_0x844e('0x0'));var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0x844e('0x1'));var Redis=require(_0x844e('0x2'));var db=require(_0x844e('0x3'))['db'];var logger=require(_0x844e('0x4'))('rpc');var config=require(_0x844e('0x5'));var jayson=require(_0x844e('0x6'));var client=jayson[_0x844e('0x7')][_0x844e('0x8')]({'port':0x232c});config['redis']=_[_0x844e('0x9')](config[_0x844e('0xa')],{'host':_0x844e('0xb'),'port':0x18eb});var socket=require(_0x844e('0xc'))(new Redis(config['redis']));require(_0x844e('0xd'))[_0x844e('0xe')](socket);function respondWithRpcPromise(_0x336881,_0x134672,_0x32c6c7){return new BPromise(function(_0x1f9921,_0x536601){return client[_0x844e('0xf')](_0x336881,_0x32c6c7)[_0x844e('0x10')](function(_0x183c7e){logger[_0x844e('0x11')](_0x844e('0x12'),_0x134672,_0x844e('0x13'));logger[_0x844e('0x14')]('MailAccount,\x20%s,\x20%s,\x20%s',_0x134672,_0x844e('0x13'),JSON[_0x844e('0x15')](_0x183c7e));if(_0x183c7e['error']){if(_0x183c7e[_0x844e('0x16')][_0x844e('0x17')]===0x1f4){logger['error'](_0x844e('0x12'),_0x134672,_0x183c7e[_0x844e('0x16')][_0x844e('0x18')]);return _0x536601(_0x183c7e['error'][_0x844e('0x18')]);}logger[_0x844e('0x16')](_0x844e('0x12'),_0x134672,_0x183c7e[_0x844e('0x16')][_0x844e('0x18')]);return _0x1f9921(_0x183c7e[_0x844e('0x16')][_0x844e('0x18')]);}else{logger[_0x844e('0x11')]('MailAccount,\x20%s,\x20%s',_0x134672,_0x844e('0x13'));_0x1f9921(_0x183c7e['result'][_0x844e('0x18')]);}})['catch'](function(_0x315c50){logger['error'](_0x844e('0x12'),_0x134672,_0x315c50);_0x536601(_0x315c50);});});}exports[_0x844e('0x19')]=function(_0x2d6ba8){var _0x410325=this;return new Promise(function(_0x3ea7da,_0x2b58c7){return db[_0x844e('0x1a')][_0x844e('0x1b')]({'raw':_0x2d6ba8['options']?_0x2d6ba8[_0x844e('0x1c')]['raw']===undefined?!![]:![]:!![],'where':_0x2d6ba8['options']?_0x2d6ba8[_0x844e('0x1c')][_0x844e('0x1d')]||null:null,'attributes':_0x2d6ba8[_0x844e('0x1c')]?_0x2d6ba8[_0x844e('0x1c')]['attributes']||null:null,'limit':_0x2d6ba8[_0x844e('0x1c')]?_0x2d6ba8[_0x844e('0x1c')]['limit']||null:null,'include':_0x2d6ba8[_0x844e('0x1c')]?_0x2d6ba8[_0x844e('0x1c')][_0x844e('0x1e')]?_[_0x844e('0x1f')](_0x2d6ba8[_0x844e('0x1c')][_0x844e('0x1e')],function(_0x498ae0){return{'model':db[_0x498ae0[_0x844e('0x20')]],'as':_0x498ae0['as'],'attributes':_0x498ae0[_0x844e('0x21')],'include':_0x498ae0[_0x844e('0x1e')]?_[_0x844e('0x1f')](_0x498ae0[_0x844e('0x1e')],function(_0x5d6856){return{'model':db[_0x5d6856[_0x844e('0x20')]],'as':_0x5d6856['as'],'attributes':_0x5d6856['attributes'],'include':_0x5d6856['include']?_[_0x844e('0x1f')](_0x5d6856[_0x844e('0x1e')],function(_0x355456){return{'model':db[_0x355456['model']],'as':_0x355456['as'],'attributes':_0x355456[_0x844e('0x21')]};}):[]};}):[]};}):[]:[]})[_0x844e('0x10')](function(_0xc3ec93){logger['info'](_0x844e('0x19'),_0x2d6ba8);logger[_0x844e('0x14')](_0x844e('0x19'),_0x2d6ba8,JSON[_0x844e('0x15')](_0xc3ec93));_0x3ea7da(_0xc3ec93);})[_0x844e('0x22')](function(_0x799cde){logger[_0x844e('0x16')](_0x844e('0x19'),_0x799cde[_0x844e('0x18')],_0x2d6ba8);_0x2b58c7(_0x410325[_0x844e('0x16')](0x1f4,_0x799cde['message']));});});};exports[_0x844e('0x23')]=function(_0x397546){var _0x13fc3f=this;return new Promise(function(_0x5f5dc3,_0x43ae36){return db[_0x844e('0x1a')][_0x844e('0x24')]({'raw':_0x397546['options']?_0x397546[_0x844e('0x1c')][_0x844e('0x25')]===undefined?!![]:![]:!![],'where':_0x397546[_0x844e('0x1c')]?_0x397546['options'][_0x844e('0x1d')]||null:null,'attributes':_0x397546[_0x844e('0x1c')]?_0x397546['options'][_0x844e('0x21')]||null:null,'include':_0x397546[_0x844e('0x1c')]?_0x397546['options'][_0x844e('0x1e')]?_[_0x844e('0x1f')](_0x397546[_0x844e('0x1c')][_0x844e('0x1e')],function(_0x672265){return{'model':db[_0x672265[_0x844e('0x20')]],'as':_0x672265['as'],'attributes':_0x672265[_0x844e('0x21')],'include':_0x672265['include']?_[_0x844e('0x1f')](_0x672265[_0x844e('0x1e')],function(_0x29637e){return{'model':db[_0x29637e[_0x844e('0x20')]],'as':_0x29637e['as'],'attributes':_0x29637e[_0x844e('0x21')],'include':_0x29637e[_0x844e('0x1e')]?_[_0x844e('0x1f')](_0x29637e[_0x844e('0x1e')],function(_0x10dc63){return{'model':db[_0x10dc63[_0x844e('0x20')]],'as':_0x10dc63['as'],'attributes':_0x10dc63[_0x844e('0x21')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x5701d5){if(_0x397546[_0x844e('0x1c')][_0x844e('0x26')]===!![])_0x5701d5[_0x844e('0x27')](_0x844e('0x28'),_0x5701d5[_0x844e('0x29')]());logger[_0x844e('0x11')](_0x844e('0x23'),_0x397546);logger[_0x844e('0x14')](_0x844e('0x23'),_0x397546,JSON['stringify'](_0x5701d5));_0x5f5dc3(_0x5701d5);})[_0x844e('0x22')](function(_0x51cd65){logger[_0x844e('0x16')]('ShowMailAccount',_0x51cd65[_0x844e('0x18')],_0x397546);_0x43ae36(_0x13fc3f['error'](0x1f4,_0x51cd65[_0x844e('0x18')]));});});};exports[_0x844e('0x2a')]=function(_0x206daa){var _0xb1a630=this;return new Promise(function(_0x2eb412,_0x3b4c9e){var _0x131cdd={'body':_0x206daa[_0x844e('0x2b')],'channel':_0x844e('0x2c')};var _0x2f3c00=_[_0x844e('0x2d')](_['keys'](db[_0x844e('0x2e')][_0x844e('0x2f')]),[_0x844e('0x30'),'updatedAt','CompanyId',_0x844e('0x31')]);var _0x3e24ca=![];if(_0x206daa[_0x844e('0x2b')]['id']){delete _0x206daa['body']['id'];}if(_['isNil'](_0x206daa['body']['from'])){return _0x3b4c9e(_0xb1a630[_0x844e('0x16')](0x1f4,_0x844e('0x32')));}if(_[_0x844e('0x33')](_0x206daa[_0x844e('0x2b')][_0x844e('0x2b')])||_0x206daa['body'][_0x844e('0x2b')]===''){return _0x3b4c9e(_0xb1a630['error'](0x1f4,'body\x20is\x20mandatory\x20and\x20not\x20empty'));}if(_[_0x844e('0x33')](_0x206daa[_0x844e('0x2b')][_0x844e('0x34')])){return _0x3b4c9e(_0xb1a630[_0x844e('0x16')](0x1f4,'mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x2f3c00));}if(!_[_0x844e('0x35')](_0x2f3c00,_0x206daa[_0x844e('0x2b')][_0x844e('0x34')])){return _0x3b4c9e(_0xb1a630['error'](0x1f4,_0x844e('0x36')+_0x2f3c00));}var _0x1bcbda={};_0x1bcbda[_0x206daa['body'][_0x844e('0x34')]]=_0x206daa[_0x844e('0x2b')][_0x844e('0x37')];return db[_0x844e('0x1a')][_0x844e('0x24')]({'where':{'id':_0x206daa[_0x844e('0x38')]['id']},'include':[{'model':db['CmList'],'as':_0x844e('0x39'),'include':[{'model':db[_0x844e('0x2e')],'as':_0x844e('0x3a'),'where':_0x1bcbda,'limit':0x1,'order':[[_0x844e('0x3b'),_0x844e('0x3c')]]}]},{'model':db[_0x844e('0x3d')],'as':_0x844e('0x3e')},{'model':db[_0x844e('0x3f')],'as':_0x844e('0x40'),'include':[{'model':db[_0x844e('0x41')],'as':'CloudProvider'}]}]})[_0x844e('0x10')](function(_0x694791){if(_0x694791&&_0x694791[_0x844e('0x39')]){var _0x510089=_0x694791[_0x844e('0x42')]({'plain':!![]});_0x131cdd[_0x844e('0x38')]=_[_0x844e('0x43')](_0x510089,[_0x844e('0x3e'),_0x844e('0x39')]);_0x131cdd[_0x844e('0x38')][_0x844e('0x28')]=_0x694791['getSmtpOptions']();_0x131cdd[_0x844e('0x44')]=_0x510089[_0x844e('0x3e')];_0x131cdd[_0x844e('0x45')]=_0x510089[_0x844e('0x39')];_0x131cdd[_0x844e('0x44')]=_[_0x844e('0x46')](_0x131cdd[_0x844e('0x44')],[_0x844e('0x47')],[_0x844e('0x48')]);if(_0x131cdd[_0x844e('0x38')]&&_0x131cdd[_0x844e('0x38')][_0x844e('0x49')]){_0x131cdd[_0x844e('0x44')]['push']({'id':0x0,'priority':_0x131cdd[_0x844e('0x44')][_0x844e('0x4a')]+0x1,'app':_0x844e('0x4b'),'appdata':_0x844e('0x49'),'interval':_0x844e('0x4c')});}if(_0x131cdd[_0x844e('0x38')]['Applications']){delete _0x131cdd[_0x844e('0x38')][_0x844e('0x3e')];}if(_0x131cdd['account'][_0x844e('0x39')]){delete _0x131cdd[_0x844e('0x38')][_0x844e('0x39')];}if(_0x510089[_0x844e('0x39')][_0x844e('0x3a')][_0x844e('0x4a')]){return _0x510089[_0x844e('0x39')][_0x844e('0x3a')][0x0];}var _0x43718a=_[_0x844e('0x9')](_0x206daa[_0x844e('0x2b')],{'firstName':_0x206daa[_0x844e('0x2b')][_0x844e('0x37')],'ListId':_0x510089[_0x844e('0x31')]});_0x43718a[_0x206daa['body'][_0x844e('0x34')]]=_0x206daa[_0x844e('0x2b')]['from'];return db[_0x844e('0x2e')]['create'](_0x43718a);}else{throw new Error(_0x844e('0x4d'));}})[_0x844e('0x10')](function(_0x1a84a7){_0x131cdd['contact']=_0x1a84a7;if(_0x1a84a7){if(!_0x206daa['body'][_0x844e('0x18')][_0x844e('0x4e')]){_0x206daa[_0x844e('0x2b')][_0x844e('0x18')][_0x844e('0x4e')]=rs['generate']()+'\x20'+_0x206daa[_0x844e('0x2b')][_0x844e('0x18')][_0x844e('0x37')];}var _0x192457={'ContactId':_0x1a84a7['id'],'MailAccountId':_0x206daa['account']['id'],'inReplyTo':_0x206daa[_0x844e('0x2b')][_0x844e('0x18')][_0x844e('0x4e')],'to':_0x206daa['body']['message'][_0x844e('0x37')],'cc':_0x206daa[_0x844e('0x2b')][_0x844e('0x18')]['cc'],'subject':_0x206daa['body']['message'][_0x844e('0x4f')],'attach':_0x206daa[_0x844e('0x2b')][_0x844e('0x18')]['attach'],'lastMsgAt':moment()[_0x844e('0x50')](_0x844e('0x51')),'lastMsgDirection':'in'};return db[_0x844e('0x52')]['find']({'where':{'closed':![],'MailAccountId':_0x206daa[_0x844e('0x38')]['id']},'include':[{'model':db[_0x844e('0x53')],'as':_0x844e('0x54'),'attributes':[_0x844e('0x4e')],'where':{'messageId':_0x206daa['body'][_0x844e('0x18')][_0x844e('0x55')]}}]})[_0x844e('0x10')](function(_0x4420b4){if(_0x4420b4){return[_0x4420b4,![]];}return db[_0x844e('0x52')][_0x844e('0x56')](_0x192457)[_0x844e('0x10')](function(_0x651093){return[_0x651093,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})['spread'](function(_0x3f32cc,_0x530ed6){if(_0x3f32cc){_0x3e24ca=_0x530ed6;if(!_0x530ed6){return _0x3f32cc[_0x844e('0x57')]({'inReplyTo':_0x206daa[_0x844e('0x2b')][_0x844e('0x18')][_0x844e('0x4e')],'to':_0x206daa['body']['message']['from'],'cc':_0x206daa['body']['message']['cc'],'subject':_0x206daa['body'][_0x844e('0x18')][_0x844e('0x4f')],'attach':_0x3f32cc[_0x844e('0x58')]?_0x3f32cc['attach']:_0x206daa[_0x844e('0x2b')][_0x844e('0x18')]['attach'],'substatus':null,'substatusAt':moment()[_0x844e('0x50')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgAt':moment()[_0x844e('0x50')](_0x844e('0x51')),'lastMsgDirection':'in'});}else{return _0x3f32cc;}}})[_0x844e('0x10')](function(_0x361e36){_0x131cdd['interaction']=_0x361e36['get']({'plain':!![]});_0x131cdd['interaction'][_0x844e('0x59')]=_0x3e24ca;return db[_0x844e('0x53')][_0x844e('0x56')]({'body':_0x206daa[_0x844e('0x2b')][_0x844e('0x2b')],'MailAccountId':_0x206daa['account']['id'],'MailInteractionId':_0x361e36['id'],'direction':'in','ContactId':_0x131cdd['contact']['id'],'messageId':_0x206daa[_0x844e('0x2b')][_0x844e('0x18')][_0x844e('0x4e')],'from':_0x206daa[_0x844e('0x2b')][_0x844e('0x18')][_0x844e('0x37')],'to':_0x206daa['body'][_0x844e('0x18')]['to'],'cc':_0x206daa[_0x844e('0x2b')]['message']['cc'],'subject':_0x206daa[_0x844e('0x2b')][_0x844e('0x18')]['subject'],'attach':_0x206daa['body'][_0x844e('0x18')][_0x844e('0x58')],'Attachments':_0x206daa[_0x844e('0x2b')]['message']['attachments'],'originTo':_0x206daa['body'][_0x844e('0x18')]['originTo'],'originCc':_0x206daa[_0x844e('0x2b')][_0x844e('0x18')][_0x844e('0x5a')],'bcc':_0x206daa[_0x844e('0x2b')][_0x844e('0x18')][_0x844e('0x5b')],'ChatWebsiteId':_0x206daa['body'][_0x844e('0x18')][_0x844e('0x5c')]||null,'originChannel':_0x206daa['body'][_0x844e('0x18')][_0x844e('0x5d')]||_0x844e('0x5e'),'ChatOfflineMessageId':_0x206daa[_0x844e('0x2b')][_0x844e('0x18')]['ChatOfflineMessageId']||null},{'include':[{'model':db['Attachment'],'as':_0x844e('0x5f')}]});})[_0x844e('0x10')](function(_0x233875){_0x131cdd[_0x844e('0x18')]=_0x233875;if(!_0x131cdd[_0x844e('0x60')][_0x844e('0x61')]){return;}return db[_0x844e('0x62')]['find']({'attributes':['id',_0x844e('0x63')],'where':{'id':_0x131cdd[_0x844e('0x60')]['UserId']}});})[_0x844e('0x10')](function(_0x3a0b58){if(_0x3a0b58){_0x131cdd[_0x844e('0x44')]['unshift']({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x3a0b58[_0x844e('0x63')]+','+(_0x131cdd[_0x844e('0x38')]['waitForTheAssignedAgent']||0xa),'interval':_0x844e('0x4c')});}if(!_0x131cdd[_0x844e('0x60')][_0x844e('0x64')]){return;}return db[_0x844e('0x65')][_0x844e('0x24')]({'attributes':['id',_0x844e('0x63')],'where':{'id':_0x131cdd[_0x844e('0x60')]['queueId']}});})[_0x844e('0x10')](function(_0x579bbf){if(_0x579bbf){_0x131cdd[_0x844e('0x44')]['unshift']({'id':0x0,'priority':0x1,'app':_0x844e('0x66'),'appdata':_0x579bbf['name']+','+(_0x131cdd[_0x844e('0x38')][_0x844e('0x67')]||0x12c),'interval':'*,*,*,*'});}return respondWithRpcPromise(_0x844e('0x68'),_0x844e('0x69'),_0x131cdd);})[_0x844e('0x10')](function(_0x1a9c64){_0x2eb412(_0x1a9c64);})[_0x844e('0x22')](function(_0x5bf74d){_0x3b4c9e(_0xb1a630[_0x844e('0x16')](0x1f4,_0x5bf74d[_0x844e('0x18')]));});});};