be00a79e7ab4973eb982485f93606bf6bdba2f9d
[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 _0xf69d=['redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','register','request','then','info','MailAccount,\x20%s,\x20%s','stringify','error','code','message','request\x20sent','result','MailAccount','findAll','raw','options','attributes','limit','map','include','GetMailAccount','debug','catch','ShowMailAccount','find','where','model','setDataValue','smtpOptions','NotifyMailAccount','body','mail','CmContact','rawAttributes','createdAt','updatedAt','from\x20is\x20mandatory','isNil','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','from','account','CmList','List','Contacts','Applications','MailServerOut','Smtp','CloudProvider','get','omit','getSmtpOptions','applications','list','orderBy','asc','length','close','autoclose','create','List\x20not\x20found','contact','messageId','generate','subject','attach','YYYY-MM-DD\x20HH:mm:ss','Messages','inReplyTo','MailInteraction','Contact\x20not\x20found','update','format','interaction','attachments','originTo','originCc','bcc','ChatWebsiteId','originChannel','Attachment','Attachments','UserId','User','name','waitForTheAssignedAgent','queueId','MailQueue','unshift','queue','waitForTheAssignedQueue','*,*,*,*','startRouting','lodash','moment','bluebird','randomstring','ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','client','http'];(function(_0x459b74,_0x5773bd){var _0x46cb16=function(_0x97867f){while(--_0x97867f){_0x459b74['push'](_0x459b74['shift']());}};_0x46cb16(++_0x5773bd);}(_0xf69d,0xd3));var _0xdf69=function(_0x429681,_0x112ee7){_0x429681=_0x429681-0x0;var _0x5ca793=_0xf69d[_0x429681];return _0x5ca793;};'use strict';var _=require(_0xdf69('0x0'));var moment=require(_0xdf69('0x1'));var BPromise=require(_0xdf69('0x2'));var rs=require(_0xdf69('0x3'));var Redis=require(_0xdf69('0x4'));var db=require('../../mysqldb')['db'];var logger=require(_0xdf69('0x5'))(_0xdf69('0x6'));var config=require(_0xdf69('0x7'));var jayson=require(_0xdf69('0x8'));var client=jayson[_0xdf69('0x9')][_0xdf69('0xa')]({'port':0x232c});config[_0xdf69('0xb')]=_[_0xdf69('0xc')](config[_0xdf69('0xb')],{'host':_0xdf69('0xd'),'port':0x18eb});var socket=require(_0xdf69('0xe'))(new Redis(config[_0xdf69('0xb')]));require(_0xdf69('0xf'))[_0xdf69('0x10')](socket);function respondWithRpcPromise(_0x40217f,_0x211ea9,_0x1e0e8d){return new BPromise(function(_0x4fcc93,_0x305726){return client[_0xdf69('0x11')](_0x40217f,_0x1e0e8d)[_0xdf69('0x12')](function(_0x21d8e0){logger[_0xdf69('0x13')](_0xdf69('0x14'),_0x211ea9,'request\x20sent');logger['debug']('MailAccount,\x20%s,\x20%s,\x20%s',_0x211ea9,'request\x20sent',JSON[_0xdf69('0x15')](_0x21d8e0));if(_0x21d8e0[_0xdf69('0x16')]){if(_0x21d8e0[_0xdf69('0x16')][_0xdf69('0x17')]===0x1f4){logger[_0xdf69('0x16')](_0xdf69('0x14'),_0x211ea9,_0x21d8e0['error'][_0xdf69('0x18')]);return _0x305726(_0x21d8e0[_0xdf69('0x16')][_0xdf69('0x18')]);}logger[_0xdf69('0x16')]('MailAccount,\x20%s,\x20%s',_0x211ea9,_0x21d8e0[_0xdf69('0x16')]['message']);return _0x4fcc93(_0x21d8e0[_0xdf69('0x16')][_0xdf69('0x18')]);}else{logger['info'](_0xdf69('0x14'),_0x211ea9,_0xdf69('0x19'));_0x4fcc93(_0x21d8e0[_0xdf69('0x1a')][_0xdf69('0x18')]);}})['catch'](function(_0x5ae237){logger[_0xdf69('0x16')](_0xdf69('0x14'),_0x211ea9,_0x5ae237);_0x305726(_0x5ae237);});});}exports['GetMailAccount']=function(_0x32cf65){var _0x259e90=this;return new Promise(function(_0x68fa80,_0x526cbc){return db[_0xdf69('0x1b')][_0xdf69('0x1c')]({'raw':_0x32cf65['options']?_0x32cf65['options'][_0xdf69('0x1d')]===undefined?!![]:![]:!![],'where':_0x32cf65[_0xdf69('0x1e')]?_0x32cf65[_0xdf69('0x1e')]['where']||null:null,'attributes':_0x32cf65['options']?_0x32cf65['options'][_0xdf69('0x1f')]||null:null,'limit':_0x32cf65['options']?_0x32cf65[_0xdf69('0x1e')][_0xdf69('0x20')]||null:null,'include':_0x32cf65[_0xdf69('0x1e')]?_0x32cf65['options']['include']?_[_0xdf69('0x21')](_0x32cf65[_0xdf69('0x1e')][_0xdf69('0x22')],function(_0x3fd933){return{'model':db[_0x3fd933['model']],'as':_0x3fd933['as'],'attributes':_0x3fd933[_0xdf69('0x1f')],'include':_0x3fd933[_0xdf69('0x22')]?_[_0xdf69('0x21')](_0x3fd933['include'],function(_0x2da3df){return{'model':db[_0x2da3df['model']],'as':_0x2da3df['as'],'attributes':_0x2da3df['attributes'],'include':_0x2da3df['include']?_['map'](_0x2da3df[_0xdf69('0x22')],function(_0xe339ac){return{'model':db[_0xe339ac['model']],'as':_0xe339ac['as'],'attributes':_0xe339ac[_0xdf69('0x1f')]};}):[]};}):[]};}):[]:[]})[_0xdf69('0x12')](function(_0x19cf2d){logger[_0xdf69('0x13')](_0xdf69('0x23'),_0x32cf65);logger[_0xdf69('0x24')](_0xdf69('0x23'),_0x32cf65,JSON[_0xdf69('0x15')](_0x19cf2d));_0x68fa80(_0x19cf2d);})[_0xdf69('0x25')](function(_0x3b97df){logger[_0xdf69('0x16')](_0xdf69('0x23'),_0x3b97df[_0xdf69('0x18')],_0x32cf65);_0x526cbc(_0x259e90[_0xdf69('0x16')](0x1f4,_0x3b97df[_0xdf69('0x18')]));});});};exports[_0xdf69('0x26')]=function(_0x1f4602){var _0x5ade53=this;return new Promise(function(_0xf910a0,_0x2aab76){return db[_0xdf69('0x1b')][_0xdf69('0x27')]({'raw':_0x1f4602[_0xdf69('0x1e')]?_0x1f4602['options'][_0xdf69('0x1d')]===undefined?!![]:![]:!![],'where':_0x1f4602['options']?_0x1f4602[_0xdf69('0x1e')][_0xdf69('0x28')]||null:null,'attributes':_0x1f4602['options']?_0x1f4602[_0xdf69('0x1e')]['attributes']||null:null,'include':_0x1f4602[_0xdf69('0x1e')]?_0x1f4602[_0xdf69('0x1e')][_0xdf69('0x22')]?_[_0xdf69('0x21')](_0x1f4602[_0xdf69('0x1e')]['include'],function(_0x175d5a){return{'model':db[_0x175d5a['model']],'as':_0x175d5a['as'],'attributes':_0x175d5a[_0xdf69('0x1f')],'include':_0x175d5a[_0xdf69('0x22')]?_[_0xdf69('0x21')](_0x175d5a[_0xdf69('0x22')],function(_0x5c38db){return{'model':db[_0x5c38db[_0xdf69('0x29')]],'as':_0x5c38db['as'],'attributes':_0x5c38db['attributes'],'include':_0x5c38db[_0xdf69('0x22')]?_['map'](_0x5c38db[_0xdf69('0x22')],function(_0x5d8e26){return{'model':db[_0x5d8e26[_0xdf69('0x29')]],'as':_0x5d8e26['as'],'attributes':_0x5d8e26[_0xdf69('0x1f')]};}):[]};}):[]};}):[]:[]})[_0xdf69('0x12')](function(_0x2b7628){if(_0x1f4602[_0xdf69('0x1e')]['smtp']===!![])_0x2b7628[_0xdf69('0x2a')](_0xdf69('0x2b'),_0x2b7628['getSmtpOptions']());logger['info']('ShowMailAccount',_0x1f4602);logger['debug'](_0xdf69('0x26'),_0x1f4602,JSON['stringify'](_0x2b7628));_0xf910a0(_0x2b7628);})[_0xdf69('0x25')](function(_0x1c45b1){logger[_0xdf69('0x16')](_0xdf69('0x26'),_0x1c45b1['message'],_0x1f4602);_0x2aab76(_0x5ade53[_0xdf69('0x16')](0x1f4,_0x1c45b1[_0xdf69('0x18')]));});});};exports[_0xdf69('0x2c')]=function(_0x4f3370){var _0x216f62=this;return new Promise(function(_0xdd919d,_0x34ab67){var _0x1101ad={'body':_0x4f3370[_0xdf69('0x2d')],'channel':_0xdf69('0x2e')};var _0x4094d7=_['difference'](_['keys'](db[_0xdf69('0x2f')][_0xdf69('0x30')]),[_0xdf69('0x31'),_0xdf69('0x32'),'CompanyId','ListId']);var _0x5980b1=![];if(_0x4f3370['body']['id']){delete _0x4f3370[_0xdf69('0x2d')]['id'];}if(_['isNil'](_0x4f3370[_0xdf69('0x2d')]['from'])){return _0x34ab67(_0x216f62[_0xdf69('0x16')](0x1f4,_0xdf69('0x33')));}if(_[_0xdf69('0x34')](_0x4f3370[_0xdf69('0x2d')][_0xdf69('0x2d')])||_0x4f3370[_0xdf69('0x2d')][_0xdf69('0x2d')]===''){return _0x34ab67(_0x216f62[_0xdf69('0x16')](0x1f4,_0xdf69('0x35')));}if(_['isNil'](_0x4f3370['body'][_0xdf69('0x36')])){return _0x34ab67(_0x216f62['error'](0x1f4,_0xdf69('0x37')+_0x4094d7));}if(!_[_0xdf69('0x38')](_0x4094d7,_0x4f3370[_0xdf69('0x2d')]['mapKey'])){return _0x34ab67(_0x216f62[_0xdf69('0x16')](0x1f4,_0xdf69('0x39')+_0x4094d7));}var _0x4093e9={};_0x4093e9[_0x4f3370[_0xdf69('0x2d')]['mapKey']]=_0x4f3370[_0xdf69('0x2d')][_0xdf69('0x3a')];return db['MailAccount']['find']({'where':{'id':_0x4f3370[_0xdf69('0x3b')]['id']},'include':[{'model':db[_0xdf69('0x3c')],'as':_0xdf69('0x3d'),'include':[{'model':db[_0xdf69('0x2f')],'as':_0xdf69('0x3e'),'where':_0x4093e9,'limit':0x1,'order':[[_0xdf69('0x32'),'DESC']]}]},{'model':db['MailApplication'],'as':_0xdf69('0x3f')},{'model':db[_0xdf69('0x40')],'as':_0xdf69('0x41'),'include':[{'model':db[_0xdf69('0x42')],'as':'CloudProvider'}]}]})['then'](function(_0xb34f76){if(_0xb34f76&&_0xb34f76[_0xdf69('0x3d')]){var _0x3ee7a5=_0xb34f76[_0xdf69('0x43')]({'plain':!![]});_0x1101ad[_0xdf69('0x3b')]=_[_0xdf69('0x44')](_0x3ee7a5,[_0xdf69('0x3f'),_0xdf69('0x3d')]);_0x1101ad[_0xdf69('0x3b')][_0xdf69('0x2b')]=_0xb34f76[_0xdf69('0x45')]();_0x1101ad[_0xdf69('0x46')]=_0x3ee7a5[_0xdf69('0x3f')];_0x1101ad[_0xdf69('0x47')]=_0x3ee7a5['List'];_0x1101ad[_0xdf69('0x46')]=_[_0xdf69('0x48')](_0x1101ad[_0xdf69('0x46')],['priority'],[_0xdf69('0x49')]);if(_0x1101ad[_0xdf69('0x3b')]&&_0x1101ad[_0xdf69('0x3b')]['autoclose']){_0x1101ad[_0xdf69('0x46')]['push']({'id':0x0,'priority':_0x1101ad[_0xdf69('0x46')][_0xdf69('0x4a')]+0x1,'app':_0xdf69('0x4b'),'appdata':_0xdf69('0x4c'),'interval':'*,*,*,*'});}if(_0x1101ad[_0xdf69('0x3b')][_0xdf69('0x3f')]){delete _0x1101ad[_0xdf69('0x3b')][_0xdf69('0x3f')];}if(_0x1101ad[_0xdf69('0x3b')][_0xdf69('0x3d')]){delete _0x1101ad[_0xdf69('0x3b')][_0xdf69('0x3d')];}if(_0x3ee7a5[_0xdf69('0x3d')]['Contacts'][_0xdf69('0x4a')]){return _0x3ee7a5[_0xdf69('0x3d')]['Contacts'][0x0];}var _0x44b011=_[_0xdf69('0xc')](_0x4f3370['body'],{'firstName':_0x4f3370['body'][_0xdf69('0x3a')],'ListId':_0x3ee7a5['ListId']});_0x44b011[_0x4f3370[_0xdf69('0x2d')][_0xdf69('0x36')]]=_0x4f3370[_0xdf69('0x2d')]['from'];return db['CmContact'][_0xdf69('0x4d')](_0x44b011);}else{throw new Error(_0xdf69('0x4e'));}})[_0xdf69('0x12')](function(_0x45ed01){_0x1101ad[_0xdf69('0x4f')]=_0x45ed01;if(_0x45ed01){if(!_0x4f3370[_0xdf69('0x2d')][_0xdf69('0x18')][_0xdf69('0x50')]){_0x4f3370[_0xdf69('0x2d')][_0xdf69('0x18')]['messageId']=rs[_0xdf69('0x51')]()+'\x20'+_0x4f3370[_0xdf69('0x2d')][_0xdf69('0x18')][_0xdf69('0x3a')];}var _0x11ee6c={'ContactId':_0x45ed01['id'],'MailAccountId':_0x4f3370[_0xdf69('0x3b')]['id'],'inReplyTo':_0x4f3370[_0xdf69('0x2d')][_0xdf69('0x18')][_0xdf69('0x50')],'to':_0x4f3370['body']['message'][_0xdf69('0x3a')],'cc':_0x4f3370[_0xdf69('0x2d')]['message']['cc'],'subject':_0x4f3370[_0xdf69('0x2d')][_0xdf69('0x18')][_0xdf69('0x52')],'attach':_0x4f3370[_0xdf69('0x2d')][_0xdf69('0x18')][_0xdf69('0x53')],'lastMsgAt':moment()['format'](_0xdf69('0x54')),'lastMsgDirection':'in'};return db['MailInteraction'][_0xdf69('0x27')]({'where':{'closed':![],'MailAccountId':_0x4f3370['account']['id']},'include':[{'model':db['MailMessage'],'as':_0xdf69('0x55'),'attributes':[_0xdf69('0x50')],'where':{'messageId':_0x4f3370['body'][_0xdf69('0x18')][_0xdf69('0x56')]}}]})[_0xdf69('0x12')](function(_0x29e6a3){if(_0x29e6a3){return[_0x29e6a3,![]];}return db[_0xdf69('0x57')][_0xdf69('0x4d')](_0x11ee6c)[_0xdf69('0x12')](function(_0x232a69){return[_0x232a69,!![]];});});}else{throw new Error(_0xdf69('0x58'));}})['spread'](function(_0x5cd512,_0x5a2c39){if(_0x5cd512){_0x5980b1=_0x5a2c39;if(!_0x5a2c39){return _0x5cd512[_0xdf69('0x59')]({'inReplyTo':_0x4f3370['body'][_0xdf69('0x18')][_0xdf69('0x50')],'to':_0x4f3370['body']['message'][_0xdf69('0x3a')],'cc':_0x4f3370[_0xdf69('0x2d')][_0xdf69('0x18')]['cc'],'subject':_0x4f3370[_0xdf69('0x2d')][_0xdf69('0x18')][_0xdf69('0x52')],'attach':_0x5cd512[_0xdf69('0x53')]?_0x5cd512[_0xdf69('0x53')]:_0x4f3370['body'][_0xdf69('0x18')][_0xdf69('0x53')],'substatus':null,'substatusAt':moment()[_0xdf69('0x5a')](_0xdf69('0x54')),'lastMsgAt':moment()['format'](_0xdf69('0x54')),'lastMsgDirection':'in'});}else{return _0x5cd512;}}})[_0xdf69('0x12')](function(_0x3914bf){_0x1101ad[_0xdf69('0x5b')]=_0x3914bf[_0xdf69('0x43')]({'plain':!![]});_0x1101ad['interaction']['created']=_0x5980b1;return db['MailMessage']['create']({'body':_0x4f3370['body'][_0xdf69('0x2d')],'MailAccountId':_0x4f3370['account']['id'],'MailInteractionId':_0x3914bf['id'],'direction':'in','ContactId':_0x1101ad['contact']['id'],'messageId':_0x4f3370['body']['message'][_0xdf69('0x50')],'from':_0x4f3370[_0xdf69('0x2d')][_0xdf69('0x18')][_0xdf69('0x3a')],'to':_0x4f3370['body'][_0xdf69('0x18')]['to'],'cc':_0x4f3370[_0xdf69('0x2d')]['message']['cc'],'subject':_0x4f3370[_0xdf69('0x2d')][_0xdf69('0x18')][_0xdf69('0x52')],'attach':_0x4f3370[_0xdf69('0x2d')][_0xdf69('0x18')][_0xdf69('0x53')],'Attachments':_0x4f3370[_0xdf69('0x2d')]['message'][_0xdf69('0x5c')],'originTo':_0x4f3370[_0xdf69('0x2d')][_0xdf69('0x18')][_0xdf69('0x5d')],'originCc':_0x4f3370[_0xdf69('0x2d')][_0xdf69('0x18')][_0xdf69('0x5e')],'bcc':_0x4f3370[_0xdf69('0x2d')][_0xdf69('0x18')][_0xdf69('0x5f')],'ChatWebsiteId':_0x4f3370[_0xdf69('0x2d')][_0xdf69('0x18')][_0xdf69('0x60')]||null,'originChannel':_0x4f3370[_0xdf69('0x2d')][_0xdf69('0x18')][_0xdf69('0x61')]||'Email','ChatOfflineMessageId':_0x4f3370[_0xdf69('0x2d')][_0xdf69('0x18')]['ChatOfflineMessageId']||null},{'include':[{'model':db[_0xdf69('0x62')],'as':_0xdf69('0x63')}]});})[_0xdf69('0x12')](function(_0x3aa055){_0x1101ad[_0xdf69('0x18')]=_0x3aa055;if(!_0x1101ad[_0xdf69('0x5b')][_0xdf69('0x64')]){return;}return db[_0xdf69('0x65')]['find']({'attributes':['id','name'],'where':{'id':_0x1101ad['interaction'][_0xdf69('0x64')]}});})[_0xdf69('0x12')](function(_0x4659b5){if(_0x4659b5){_0x1101ad['applications']['unshift']({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x4659b5[_0xdf69('0x66')]+','+(_0x1101ad[_0xdf69('0x3b')][_0xdf69('0x67')]||0xa),'interval':'*,*,*,*'});}if(!_0x1101ad['interaction'][_0xdf69('0x68')]){return;}return db[_0xdf69('0x69')][_0xdf69('0x27')]({'attributes':['id',_0xdf69('0x66')],'where':{'id':_0x1101ad['interaction'][_0xdf69('0x68')]}});})[_0xdf69('0x12')](function(_0x5b6a69){if(_0x5b6a69){_0x1101ad['applications'][_0xdf69('0x6a')]({'id':0x0,'priority':0x1,'app':_0xdf69('0x6b'),'appdata':_0x5b6a69['name']+','+(_0x1101ad[_0xdf69('0x3b')][_0xdf69('0x6c')]||0x12c),'interval':_0xdf69('0x6d')});}return respondWithRpcPromise('Start',_0xdf69('0x6e'),_0x1101ad);})['then'](function(_0x4ba3a0){_0xdd919d(_0x4ba3a0);})['catch'](function(_0x33f057){_0x34ab67(_0x216f62[_0xdf69('0x16')](0x1f4,_0x33f057[_0xdf69('0x18')]));});});};