Built motion from commit (unavailable).|2.6.0
[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 _0xc59e=['mail','difference','keys','CmContact','rawAttributes','createdAt','CompanyId','ListId','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','isNil','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','from','find','List','Contacts','updatedAt','Applications','Smtp','get','account','priority','autoclose','applications','push','length','close','*,*,*,*','contact','messageId','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Messages','inReplyTo','create','Contact\x20not\x20found','spread','subject','interaction','created','originTo','originCc','bcc','originChannel','Email','Attachment','Attachments','UserId','name','unshift','agent','startRouting','Start','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/environment','jayson/promise','http','redis','defaults','localhost','./mailAccount.socket','register','request','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','code','error','message','result','catch','GetMailAccount','MailAccount','options','raw','where','attributes','include','map','model','ShowMailAccount','NotifyMailAccount','body'];(function(_0xc6c4db,_0xbca52){var _0x46eb00=function(_0xc91dda){while(--_0xc91dda){_0xc6c4db['push'](_0xc6c4db['shift']());}};_0x46eb00(++_0xbca52);}(_0xc59e,0xfe));var _0xec59=function(_0x2d83da,_0x574b1c){_0x2d83da=_0x2d83da-0x0;var _0x5cd146=_0xc59e[_0x2d83da];return _0x5cd146;};'use strict';var _=require(_0xec59('0x0'));var util=require(_0xec59('0x1'));var moment=require(_0xec59('0x2'));var BPromise=require(_0xec59('0x3'));var rs=require(_0xec59('0x4'));var fs=require('fs');var Redis=require(_0xec59('0x5'));var db=require(_0xec59('0x6'))['db'];var utils=require('../../config/utils');var logger=require('../../config/logger')('rpc');var config=require(_0xec59('0x7'));var jayson=require(_0xec59('0x8'));var client=jayson['client'][_0xec59('0x9')]({'port':0x232c});config[_0xec59('0xa')]=_[_0xec59('0xb')](config[_0xec59('0xa')],{'host':_0xec59('0xc'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xec59('0xa')]));require(_0xec59('0xd'))[_0xec59('0xe')](socket);function respondWithRpcPromise(_0x3ece65,_0x347150,_0x331d7c){return new BPromise(function(_0x39a285,_0x57474b){return client[_0xec59('0xf')](_0x3ece65,_0x331d7c)[_0xec59('0x10')](function(_0x395006){logger[_0xec59('0x11')](_0xec59('0x12'),_0x347150,_0xec59('0x13'));logger[_0xec59('0x14')](_0xec59('0x15'),_0x347150,_0xec59('0x13'),JSON[_0xec59('0x16')](_0x395006));if(_0x395006['error']){if(_0x395006['error'][_0xec59('0x17')]===0x1f4){logger['error'](_0xec59('0x12'),_0x347150,_0x395006[_0xec59('0x18')][_0xec59('0x19')]);return _0x57474b(_0x395006[_0xec59('0x18')][_0xec59('0x19')]);}logger['error']('MailAccount,\x20%s,\x20%s',_0x347150,_0x395006[_0xec59('0x18')][_0xec59('0x19')]);return _0x39a285(_0x395006[_0xec59('0x18')][_0xec59('0x19')]);}else{logger[_0xec59('0x11')](_0xec59('0x12'),_0x347150,_0xec59('0x13'));_0x39a285(_0x395006[_0xec59('0x1a')][_0xec59('0x19')]);}})[_0xec59('0x1b')](function(_0x379e50){logger[_0xec59('0x18')](_0xec59('0x12'),_0x347150,_0x379e50);_0x57474b(_0x379e50);});});}exports[_0xec59('0x1c')]=function(_0x1919c7){var _0x25afba=this;return new Promise(function(_0x20047b,_0x4cc23e){return db[_0xec59('0x1d')]['findAll']({'raw':_0x1919c7[_0xec59('0x1e')]?_0x1919c7[_0xec59('0x1e')][_0xec59('0x1f')]===undefined?!![]:![]:!![],'where':_0x1919c7[_0xec59('0x1e')]?_0x1919c7[_0xec59('0x1e')][_0xec59('0x20')]||null:null,'attributes':_0x1919c7[_0xec59('0x1e')]?_0x1919c7['options'][_0xec59('0x21')]||null:null,'limit':_0x1919c7[_0xec59('0x1e')]?_0x1919c7[_0xec59('0x1e')]['limit']||null:null,'include':_0x1919c7[_0xec59('0x1e')]?_0x1919c7[_0xec59('0x1e')][_0xec59('0x22')]?_[_0xec59('0x23')](_0x1919c7[_0xec59('0x1e')][_0xec59('0x22')],function(_0x56936c){return{'model':db[_0x56936c['model']],'as':_0x56936c['as'],'attributes':_0x56936c[_0xec59('0x21')],'include':_0x56936c['include']?_[_0xec59('0x23')](_0x56936c[_0xec59('0x22')],function(_0x13d808){return{'model':db[_0x13d808[_0xec59('0x24')]],'as':_0x13d808['as'],'attributes':_0x13d808['attributes'],'include':_0x13d808[_0xec59('0x22')]?_[_0xec59('0x23')](_0x13d808[_0xec59('0x22')],function(_0x2f7b42){return{'model':db[_0x2f7b42['model']],'as':_0x2f7b42['as'],'attributes':_0x2f7b42[_0xec59('0x21')]};}):[]};}):[]};}):[]:[]})[_0xec59('0x10')](function(_0x488818){logger[_0xec59('0x11')]('GetMailAccount',_0x1919c7);logger[_0xec59('0x14')](_0xec59('0x1c'),_0x1919c7,JSON['stringify'](_0x488818));_0x20047b(_0x488818);})[_0xec59('0x1b')](function(_0x314fe8){logger[_0xec59('0x18')](_0xec59('0x1c'),_0x314fe8[_0xec59('0x19')],_0x1919c7);_0x4cc23e(_0x25afba[_0xec59('0x18')](0x1f4,_0x314fe8[_0xec59('0x19')]));});});};exports[_0xec59('0x25')]=function(_0x4bd0c9){var _0x1de732=this;return new Promise(function(_0x1f9615,_0x160d3f){return db['MailAccount']['find']({'raw':_0x4bd0c9[_0xec59('0x1e')]?_0x4bd0c9[_0xec59('0x1e')][_0xec59('0x1f')]===undefined?!![]:![]:!![],'where':_0x4bd0c9['options']?_0x4bd0c9['options']['where']||null:null,'attributes':_0x4bd0c9[_0xec59('0x1e')]?_0x4bd0c9[_0xec59('0x1e')][_0xec59('0x21')]||null:null,'include':_0x4bd0c9[_0xec59('0x1e')]?_0x4bd0c9['options'][_0xec59('0x22')]?_['map'](_0x4bd0c9['options'][_0xec59('0x22')],function(_0x70939e){return{'model':db[_0x70939e[_0xec59('0x24')]],'as':_0x70939e['as'],'attributes':_0x70939e[_0xec59('0x21')],'include':_0x70939e[_0xec59('0x22')]?_[_0xec59('0x23')](_0x70939e[_0xec59('0x22')],function(_0x29fbcb){return{'model':db[_0x29fbcb[_0xec59('0x24')]],'as':_0x29fbcb['as'],'attributes':_0x29fbcb[_0xec59('0x21')],'include':_0x29fbcb[_0xec59('0x22')]?_[_0xec59('0x23')](_0x29fbcb[_0xec59('0x22')],function(_0x586a4f){return{'model':db[_0x586a4f[_0xec59('0x24')]],'as':_0x586a4f['as'],'attributes':_0x586a4f[_0xec59('0x21')]};}):[]};}):[]};}):[]:[]})[_0xec59('0x10')](function(_0x1a4704){logger[_0xec59('0x11')](_0xec59('0x25'),_0x4bd0c9);logger[_0xec59('0x14')](_0xec59('0x25'),_0x4bd0c9,JSON['stringify'](_0x1a4704));_0x1f9615(_0x1a4704);})[_0xec59('0x1b')](function(_0x354fe7){logger['error'](_0xec59('0x25'),_0x354fe7[_0xec59('0x19')],_0x4bd0c9);_0x160d3f(_0x1de732[_0xec59('0x18')](0x1f4,_0x354fe7[_0xec59('0x19')]));});});};exports[_0xec59('0x26')]=function(_0x2387ac){var _0x493899=this;return new Promise(function(_0x19c6de,_0x598095){var _0x5d8aa7={'body':_0x2387ac[_0xec59('0x27')],'channel':_0xec59('0x28')};var _0x494cf5=_[_0xec59('0x29')](_[_0xec59('0x2a')](db[_0xec59('0x2b')][_0xec59('0x2c')]),[_0xec59('0x2d'),'updatedAt',_0xec59('0x2e'),_0xec59('0x2f')]);var _0x21574f=![];if(_0x2387ac[_0xec59('0x27')]['id']){delete _0x2387ac['body']['id'];}if(_['isNil'](_0x2387ac[_0xec59('0x27')]['from'])){return _0x598095(_0x493899[_0xec59('0x18')](0x1f4,_0xec59('0x30')));}if(_['isNil'](_0x2387ac[_0xec59('0x27')][_0xec59('0x27')])||_0x2387ac[_0xec59('0x27')][_0xec59('0x27')]===''){return _0x598095(_0x493899[_0xec59('0x18')](0x1f4,_0xec59('0x31')));}if(_[_0xec59('0x32')](_0x2387ac[_0xec59('0x27')][_0xec59('0x33')])){return _0x598095(_0x493899['error'](0x1f4,'mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x494cf5));}if(!_[_0xec59('0x34')](_0x494cf5,_0x2387ac[_0xec59('0x27')][_0xec59('0x33')])){return _0x598095(_0x493899[_0xec59('0x18')](0x1f4,_0xec59('0x35')+_0x494cf5));}var _0xce3430={};_0xce3430[_0x2387ac['body']['mapKey']]=_0x2387ac[_0xec59('0x27')][_0xec59('0x36')];return db['MailAccount'][_0xec59('0x37')]({'where':{'id':_0x2387ac['account']['id']},'include':[{'model':db['CmList'],'as':_0xec59('0x38'),'include':[{'model':db['CmContact'],'as':_0xec59('0x39'),'where':_0xce3430,'limit':0x1,'order':[[_0xec59('0x3a'),'DESC']]}]},{'model':db['MailApplication'],'as':_0xec59('0x3b')},{'model':db['MailServerOut'],'as':_0xec59('0x3c')}]})[_0xec59('0x10')](function(_0x2a46b1){if(_0x2a46b1&&_0x2a46b1['List']){var _0x37c085=_0x2a46b1[_0xec59('0x3d')]({'plain':!![]});_0x5d8aa7[_0xec59('0x3e')]=_['omit'](_0x37c085,['Applications',_0xec59('0x38')]);_0x5d8aa7['applications']=_0x37c085[_0xec59('0x3b')];_0x5d8aa7['list']=_0x37c085['List'];_0x5d8aa7['applications']=_['orderBy'](_0x5d8aa7['applications'],[_0xec59('0x3f')],['asc']);if(_0x5d8aa7[_0xec59('0x3e')]&&_0x5d8aa7[_0xec59('0x3e')][_0xec59('0x40')]){_0x5d8aa7[_0xec59('0x41')][_0xec59('0x42')]({'id':0x0,'priority':_0x5d8aa7[_0xec59('0x41')][_0xec59('0x43')]+0x1,'app':_0xec59('0x44'),'appdata':_0xec59('0x40'),'interval':_0xec59('0x45')});}if(_0x5d8aa7['account'][_0xec59('0x3b')]){delete _0x5d8aa7[_0xec59('0x3e')]['Applications'];}if(_0x5d8aa7[_0xec59('0x3e')][_0xec59('0x38')]){delete _0x5d8aa7['account'][_0xec59('0x38')];}if(_0x37c085[_0xec59('0x38')][_0xec59('0x39')][_0xec59('0x43')]){return _0x37c085[_0xec59('0x38')][_0xec59('0x39')][0x0];}var _0x3ee2c6=_[_0xec59('0xb')](_0x2387ac['body'],{'firstName':_0x2387ac[_0xec59('0x27')]['from'],'ListId':_0x37c085['ListId']});_0x3ee2c6[_0x2387ac[_0xec59('0x27')]['mapKey']]=_0x2387ac[_0xec59('0x27')]['from'];return db[_0xec59('0x2b')]['create'](_0x3ee2c6);}else{throw new Error('List\x20not\x20found');}})[_0xec59('0x10')](function(_0x33aceb){_0x5d8aa7[_0xec59('0x46')]=_0x33aceb;if(_0x33aceb){if(!_0x2387ac[_0xec59('0x27')]['message']['messageId']){_0x2387ac[_0xec59('0x27')][_0xec59('0x19')][_0xec59('0x47')]=rs['generate']()+'\x20'+_0x2387ac[_0xec59('0x27')][_0xec59('0x19')][_0xec59('0x36')];}var _0x4bb86a={'ContactId':_0x33aceb['id'],'MailAccountId':_0x2387ac[_0xec59('0x3e')]['id'],'inReplyTo':_0x2387ac[_0xec59('0x27')]['message']['messageId'],'to':_0x2387ac[_0xec59('0x27')]['message'][_0xec59('0x36')],'cc':_0x2387ac['body']['message']['cc'],'subject':_0x2387ac['body'][_0xec59('0x19')]['subject'],'attach':_0x2387ac[_0xec59('0x27')][_0xec59('0x19')][_0xec59('0x48')],'lastMsgAt':moment()[_0xec59('0x49')](_0xec59('0x4a')),'lastMsgDirection':'in'};return db[_0xec59('0x4b')]['find']({'where':{'closed':![],'MailAccountId':_0x2387ac[_0xec59('0x3e')]['id']},'include':[{'model':db[_0xec59('0x4c')],'as':_0xec59('0x4d'),'attributes':[_0xec59('0x47')],'where':{'messageId':_0x2387ac[_0xec59('0x27')][_0xec59('0x19')][_0xec59('0x4e')]}}]})['then'](function(_0x47c1fa){if(_0x47c1fa){return[_0x47c1fa,![]];}return db['MailInteraction'][_0xec59('0x4f')](_0x4bb86a)['then'](function(_0x1233a7){return[_0x1233a7,!![]];});});}else{throw new Error(_0xec59('0x50'));}})[_0xec59('0x51')](function(_0x2a9e1d,_0x5e0f7e){if(_0x2a9e1d){_0x21574f=_0x5e0f7e;if(!_0x5e0f7e){return _0x2a9e1d['update']({'inReplyTo':_0x2387ac[_0xec59('0x27')]['message'][_0xec59('0x47')],'to':_0x2387ac[_0xec59('0x27')][_0xec59('0x19')][_0xec59('0x36')],'cc':_0x2387ac['body']['message']['cc'],'subject':_0x2387ac[_0xec59('0x27')][_0xec59('0x19')][_0xec59('0x52')],'attach':_0x2a9e1d[_0xec59('0x48')]?_0x2a9e1d[_0xec59('0x48')]:_0x2387ac[_0xec59('0x27')]['message']['attach'],'substatus':null,'substatusAt':moment()[_0xec59('0x49')](_0xec59('0x4a')),'lastMsgAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in'});}else{return _0x2a9e1d;}}})[_0xec59('0x10')](function(_0x266717){_0x5d8aa7[_0xec59('0x53')]=_0x266717['get']({'plain':!![]});_0x5d8aa7[_0xec59('0x53')][_0xec59('0x54')]=_0x21574f;return db[_0xec59('0x4c')][_0xec59('0x4f')]({'body':_0x2387ac['body'][_0xec59('0x27')],'MailAccountId':_0x2387ac[_0xec59('0x3e')]['id'],'MailInteractionId':_0x266717['id'],'direction':'in','ContactId':_0x5d8aa7[_0xec59('0x46')]['id'],'messageId':_0x2387ac['body']['message'][_0xec59('0x47')],'from':_0x2387ac['body'][_0xec59('0x19')][_0xec59('0x36')],'to':_0x2387ac[_0xec59('0x27')][_0xec59('0x19')]['to'],'cc':_0x2387ac[_0xec59('0x27')][_0xec59('0x19')]['cc'],'subject':_0x2387ac[_0xec59('0x27')][_0xec59('0x19')][_0xec59('0x52')],'attach':_0x2387ac[_0xec59('0x27')][_0xec59('0x19')]['attach'],'Attachments':_0x2387ac[_0xec59('0x27')][_0xec59('0x19')]['attachments'],'originTo':_0x2387ac[_0xec59('0x27')]['message'][_0xec59('0x55')],'originCc':_0x2387ac[_0xec59('0x27')]['message'][_0xec59('0x56')],'bcc':_0x2387ac[_0xec59('0x27')][_0xec59('0x19')][_0xec59('0x57')],'ChatWebsiteId':_0x2387ac[_0xec59('0x27')][_0xec59('0x19')]['ChatWebsiteId']||null,'originChannel':_0x2387ac[_0xec59('0x27')][_0xec59('0x19')][_0xec59('0x58')]||_0xec59('0x59'),'ChatOfflineMessageId':_0x2387ac[_0xec59('0x27')][_0xec59('0x19')]['ChatOfflineMessageId']||null},{'include':[{'model':db[_0xec59('0x5a')],'as':_0xec59('0x5b')}]});})[_0xec59('0x10')](function(_0x153fb0){_0x5d8aa7[_0xec59('0x19')]=_0x153fb0;if(_0x5d8aa7['interaction'][_0xec59('0x5c')]){return db['User'][_0xec59('0x37')]({'attributes':['id',_0xec59('0x5d')],'where':{'id':_0x5d8aa7['interaction']['UserId']}})[_0xec59('0x10')](function(_0x196465){if(_0x196465){_0x5d8aa7[_0xec59('0x41')][_0xec59('0x5e')]({'id':0x0,'priority':0x0,'app':_0xec59('0x5f'),'appdata':_0x196465[_0xec59('0x5d')]+','+(_0x5d8aa7[_0xec59('0x3e')]['waitForTheAssignedAgent']||0xa),'interval':_0xec59('0x45')});}return respondWithRpcPromise('Start',_0xec59('0x60'),_0x5d8aa7);});}return respondWithRpcPromise(_0xec59('0x61'),'startRouting',_0x5d8aa7);})[_0xec59('0x10')](function(_0x52bd86){_0x19c6de(_0x52bd86);})['catch'](function(_0x59c9bb){_0x598095(_0x493899[_0xec59('0x18')](0x1f4,_0x59c9bb[_0xec59('0x19')]));});});};