a3d8523c3b6b324c77377949642da9db0f051d0a
[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 _0x80df=['map','model','stringify','ShowMailAccount','find','NotifyMailAccount','body','mail','difference','CmContact','rawAttributes','createdAt','updatedAt','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','CmList','List','Contacts','DESC','MailApplication','Applications','MailServerOut','Smtp','omit','applications','list','orderBy','priority','asc','autoclose','push','length','close','create','contact','generate','messageId','subject','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailMessage','inReplyTo','interaction','created','attachments','originTo','originCc','bcc','Attachment','Attachments','UserId','User','name','unshift','agent','*,*,*,*','startRouting','Start','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','localhost','socket.io-emitter','./mailAccount.socket','register','request','then','request\x20sent','debug','error','code','MailAccount,\x20%s,\x20%s','message','info','result','catch','GetMailAccount','MailAccount','findAll','options','raw','where','attributes','limit','include'];(function(_0x1443a4,_0x2f755c){var _0x10f54c=function(_0x50b8b4){while(--_0x50b8b4){_0x1443a4['push'](_0x1443a4['shift']());}};_0x10f54c(++_0x2f755c);}(_0x80df,0x17e));var _0xf80d=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x80df[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0xf80d('0x0'));var util=require(_0xf80d('0x1'));var moment=require(_0xf80d('0x2'));var BPromise=require(_0xf80d('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xf80d('0x4'));var db=require(_0xf80d('0x5'))['db'];var utils=require(_0xf80d('0x6'));var logger=require(_0xf80d('0x7'))(_0xf80d('0x8'));var config=require(_0xf80d('0x9'));var jayson=require(_0xf80d('0xa'));var client=jayson[_0xf80d('0xb')][_0xf80d('0xc')]({'port':0x232c});config[_0xf80d('0xd')]=_['defaults'](config[_0xf80d('0xd')],{'host':_0xf80d('0xe'),'port':0x18eb});var socket=require(_0xf80d('0xf'))(new Redis(config[_0xf80d('0xd')]));require(_0xf80d('0x10'))[_0xf80d('0x11')](socket);function respondWithRpcPromise(_0x41595f,_0x45d290,_0x2fddc2){return new BPromise(function(_0x2ef5d1,_0x30df95){return client[_0xf80d('0x12')](_0x41595f,_0x2fddc2)[_0xf80d('0x13')](function(_0x29bd2c){logger['info']('MailAccount,\x20%s,\x20%s',_0x45d290,_0xf80d('0x14'));logger[_0xf80d('0x15')]('MailAccount,\x20%s,\x20%s,\x20%s',_0x45d290,_0xf80d('0x14'),JSON['stringify'](_0x29bd2c));if(_0x29bd2c[_0xf80d('0x16')]){if(_0x29bd2c['error'][_0xf80d('0x17')]===0x1f4){logger['error'](_0xf80d('0x18'),_0x45d290,_0x29bd2c[_0xf80d('0x16')][_0xf80d('0x19')]);return _0x30df95(_0x29bd2c[_0xf80d('0x16')][_0xf80d('0x19')]);}logger[_0xf80d('0x16')](_0xf80d('0x18'),_0x45d290,_0x29bd2c[_0xf80d('0x16')][_0xf80d('0x19')]);return _0x2ef5d1(_0x29bd2c[_0xf80d('0x16')][_0xf80d('0x19')]);}else{logger[_0xf80d('0x1a')](_0xf80d('0x18'),_0x45d290,_0xf80d('0x14'));_0x2ef5d1(_0x29bd2c[_0xf80d('0x1b')][_0xf80d('0x19')]);}})[_0xf80d('0x1c')](function(_0x124174){logger[_0xf80d('0x16')]('MailAccount,\x20%s,\x20%s',_0x45d290,_0x124174);_0x30df95(_0x124174);});});}exports[_0xf80d('0x1d')]=function(_0x18fba8){var _0x49ddb7=this;return new Promise(function(_0x189292,_0x539c80){return db[_0xf80d('0x1e')][_0xf80d('0x1f')]({'raw':_0x18fba8[_0xf80d('0x20')]?_0x18fba8[_0xf80d('0x20')][_0xf80d('0x21')]===undefined?!![]:![]:!![],'where':_0x18fba8[_0xf80d('0x20')]?_0x18fba8[_0xf80d('0x20')][_0xf80d('0x22')]||null:null,'attributes':_0x18fba8[_0xf80d('0x20')]?_0x18fba8[_0xf80d('0x20')][_0xf80d('0x23')]||null:null,'limit':_0x18fba8[_0xf80d('0x20')]?_0x18fba8['options'][_0xf80d('0x24')]||null:null,'include':_0x18fba8[_0xf80d('0x20')]?_0x18fba8['options'][_0xf80d('0x25')]?_[_0xf80d('0x26')](_0x18fba8[_0xf80d('0x20')][_0xf80d('0x25')],function(_0x4986ad){return{'model':db[_0x4986ad[_0xf80d('0x27')]],'as':_0x4986ad['as'],'attributes':_0x4986ad[_0xf80d('0x23')],'include':_0x4986ad[_0xf80d('0x25')]?_[_0xf80d('0x26')](_0x4986ad[_0xf80d('0x25')],function(_0xde054a){return{'model':db[_0xde054a[_0xf80d('0x27')]],'as':_0xde054a['as'],'attributes':_0xde054a[_0xf80d('0x23')],'include':_0xde054a[_0xf80d('0x25')]?_['map'](_0xde054a[_0xf80d('0x25')],function(_0x1603a4){return{'model':db[_0x1603a4[_0xf80d('0x27')]],'as':_0x1603a4['as'],'attributes':_0x1603a4[_0xf80d('0x23')]};}):[]};}):[]};}):[]:[]})[_0xf80d('0x13')](function(_0x5eab42){logger[_0xf80d('0x1a')]('GetMailAccount',_0x18fba8);logger[_0xf80d('0x15')](_0xf80d('0x1d'),_0x18fba8,JSON[_0xf80d('0x28')](_0x5eab42));_0x189292(_0x5eab42);})[_0xf80d('0x1c')](function(_0x5c3a1d){logger['error'](_0xf80d('0x1d'),_0x5c3a1d['message'],_0x18fba8);_0x539c80(_0x49ddb7[_0xf80d('0x16')](0x1f4,_0x5c3a1d[_0xf80d('0x19')]));});});};exports[_0xf80d('0x29')]=function(_0x5aea6e){var _0x3c7fb9=this;return new Promise(function(_0x314585,_0x5b7070){return db[_0xf80d('0x1e')][_0xf80d('0x2a')]({'raw':_0x5aea6e[_0xf80d('0x20')]?_0x5aea6e['options'][_0xf80d('0x21')]===undefined?!![]:![]:!![],'where':_0x5aea6e[_0xf80d('0x20')]?_0x5aea6e[_0xf80d('0x20')][_0xf80d('0x22')]||null:null,'attributes':_0x5aea6e[_0xf80d('0x20')]?_0x5aea6e['options'][_0xf80d('0x23')]||null:null,'include':_0x5aea6e['options']?_0x5aea6e[_0xf80d('0x20')][_0xf80d('0x25')]?_[_0xf80d('0x26')](_0x5aea6e[_0xf80d('0x20')]['include'],function(_0x1cc91e){return{'model':db[_0x1cc91e[_0xf80d('0x27')]],'as':_0x1cc91e['as'],'attributes':_0x1cc91e[_0xf80d('0x23')],'include':_0x1cc91e[_0xf80d('0x25')]?_['map'](_0x1cc91e[_0xf80d('0x25')],function(_0x37c2ab){return{'model':db[_0x37c2ab[_0xf80d('0x27')]],'as':_0x37c2ab['as'],'attributes':_0x37c2ab[_0xf80d('0x23')],'include':_0x37c2ab[_0xf80d('0x25')]?_[_0xf80d('0x26')](_0x37c2ab[_0xf80d('0x25')],function(_0x45765a){return{'model':db[_0x45765a['model']],'as':_0x45765a['as'],'attributes':_0x45765a[_0xf80d('0x23')]};}):[]};}):[]};}):[]:[]})[_0xf80d('0x13')](function(_0x2e9e12){logger['info'](_0xf80d('0x29'),_0x5aea6e);logger['debug'](_0xf80d('0x29'),_0x5aea6e,JSON[_0xf80d('0x28')](_0x2e9e12));_0x314585(_0x2e9e12);})[_0xf80d('0x1c')](function(_0xed4cc5){logger['error']('ShowMailAccount',_0xed4cc5['message'],_0x5aea6e);_0x5b7070(_0x3c7fb9[_0xf80d('0x16')](0x1f4,_0xed4cc5[_0xf80d('0x19')]));});});};exports[_0xf80d('0x2b')]=function(_0x4b9f1d){var _0x651863=this;return new Promise(function(_0x100dc7,_0x4b4c55){var _0x13e606={'body':_0x4b9f1d[_0xf80d('0x2c')],'channel':_0xf80d('0x2d')};var _0x5b3d97=_[_0xf80d('0x2e')](_['keys'](db[_0xf80d('0x2f')][_0xf80d('0x30')]),[_0xf80d('0x31'),_0xf80d('0x32'),_0xf80d('0x33'),_0xf80d('0x34')]);var _0x2d2a2b=![];if(_0x4b9f1d[_0xf80d('0x2c')]['id']){delete _0x4b9f1d[_0xf80d('0x2c')]['id'];}if(_[_0xf80d('0x35')](_0x4b9f1d[_0xf80d('0x2c')][_0xf80d('0x36')])){return _0x4b4c55(_0x651863[_0xf80d('0x16')](0x1f4,_0xf80d('0x37')));}if(_[_0xf80d('0x35')](_0x4b9f1d[_0xf80d('0x2c')][_0xf80d('0x2c')])||_0x4b9f1d[_0xf80d('0x2c')][_0xf80d('0x2c')]===''){return _0x4b4c55(_0x651863[_0xf80d('0x16')](0x1f4,_0xf80d('0x38')));}if(_[_0xf80d('0x35')](_0x4b9f1d[_0xf80d('0x2c')][_0xf80d('0x39')])){return _0x4b4c55(_0x651863[_0xf80d('0x16')](0x1f4,'mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x5b3d97));}if(!_[_0xf80d('0x3a')](_0x5b3d97,_0x4b9f1d[_0xf80d('0x2c')][_0xf80d('0x39')])){return _0x4b4c55(_0x651863[_0xf80d('0x16')](0x1f4,_0xf80d('0x3b')+_0x5b3d97));}var _0x558c24={};_0x558c24[_0x4b9f1d[_0xf80d('0x2c')][_0xf80d('0x39')]]=_0x4b9f1d[_0xf80d('0x2c')][_0xf80d('0x36')];return db[_0xf80d('0x1e')][_0xf80d('0x2a')]({'where':{'id':_0x4b9f1d[_0xf80d('0x3c')]['id']},'include':[{'model':db[_0xf80d('0x3d')],'as':_0xf80d('0x3e'),'include':[{'model':db[_0xf80d('0x2f')],'as':_0xf80d('0x3f'),'where':_0x558c24,'limit':0x1,'order':[[_0xf80d('0x32'),_0xf80d('0x40')]]}]},{'model':db[_0xf80d('0x41')],'as':_0xf80d('0x42')},{'model':db[_0xf80d('0x43')],'as':_0xf80d('0x44')}]})['then'](function(_0x468024){if(_0x468024&&_0x468024[_0xf80d('0x3e')]){var _0x1604a7=_0x468024['get']({'plain':!![]});_0x13e606[_0xf80d('0x3c')]=_[_0xf80d('0x45')](_0x1604a7,['Applications','List']);_0x13e606[_0xf80d('0x46')]=_0x1604a7['Applications'];_0x13e606[_0xf80d('0x47')]=_0x1604a7[_0xf80d('0x3e')];_0x13e606[_0xf80d('0x46')]=_[_0xf80d('0x48')](_0x13e606[_0xf80d('0x46')],[_0xf80d('0x49')],[_0xf80d('0x4a')]);if(_0x13e606[_0xf80d('0x3c')]&&_0x13e606[_0xf80d('0x3c')][_0xf80d('0x4b')]){_0x13e606[_0xf80d('0x46')][_0xf80d('0x4c')]({'id':0x0,'priority':_0x13e606['applications'][_0xf80d('0x4d')]+0x1,'app':_0xf80d('0x4e'),'appdata':_0xf80d('0x4b'),'interval':'*,*,*,*'});}if(_0x13e606[_0xf80d('0x3c')][_0xf80d('0x42')]){delete _0x13e606['account'][_0xf80d('0x42')];}if(_0x13e606[_0xf80d('0x3c')]['List']){delete _0x13e606[_0xf80d('0x3c')][_0xf80d('0x3e')];}if(_0x1604a7[_0xf80d('0x3e')][_0xf80d('0x3f')]['length']){return _0x1604a7[_0xf80d('0x3e')][_0xf80d('0x3f')][0x0];}var _0x1a4c08=_['defaults'](_0x4b9f1d[_0xf80d('0x2c')],{'firstName':_0x4b9f1d[_0xf80d('0x2c')][_0xf80d('0x36')],'ListId':_0x1604a7[_0xf80d('0x34')]});_0x1a4c08[_0x4b9f1d[_0xf80d('0x2c')][_0xf80d('0x39')]]=_0x4b9f1d[_0xf80d('0x2c')][_0xf80d('0x36')];return db[_0xf80d('0x2f')][_0xf80d('0x4f')](_0x1a4c08);}else{throw new Error('List\x20not\x20found');}})[_0xf80d('0x13')](function(_0x15aa20){_0x13e606[_0xf80d('0x50')]=_0x15aa20;if(_0x15aa20){if(!_0x4b9f1d[_0xf80d('0x2c')]['message']['messageId']){_0x4b9f1d[_0xf80d('0x2c')][_0xf80d('0x19')]['messageId']=rs[_0xf80d('0x51')]()+'\x20'+_0x4b9f1d[_0xf80d('0x2c')][_0xf80d('0x19')][_0xf80d('0x36')];}var _0x4d3e67={'ContactId':_0x15aa20['id'],'MailAccountId':_0x4b9f1d[_0xf80d('0x3c')]['id'],'inReplyTo':_0x4b9f1d['body'][_0xf80d('0x19')][_0xf80d('0x52')],'to':_0x4b9f1d[_0xf80d('0x2c')]['message']['from'],'cc':_0x4b9f1d[_0xf80d('0x2c')][_0xf80d('0x19')]['cc'],'subject':_0x4b9f1d['body']['message'][_0xf80d('0x53')],'attach':_0x4b9f1d[_0xf80d('0x2c')][_0xf80d('0x19')][_0xf80d('0x54')],'lastMsgAt':moment()[_0xf80d('0x55')](_0xf80d('0x56')),'lastMsgDirection':'in','lastMsgBody':_0x4b9f1d[_0xf80d('0x2c')][_0xf80d('0x2c')]};return db['MailInteraction'][_0xf80d('0x2a')]({'where':{'closed':![],'MailAccountId':_0x4b9f1d[_0xf80d('0x3c')]['id']},'include':[{'model':db[_0xf80d('0x57')],'as':'Messages','attributes':[_0xf80d('0x52')],'where':{'messageId':_0x4b9f1d[_0xf80d('0x2c')]['message'][_0xf80d('0x58')]}}]})[_0xf80d('0x13')](function(_0x34b2b6){if(_0x34b2b6){return[_0x34b2b6,![]];}return db['MailInteraction'][_0xf80d('0x4f')](_0x4d3e67)[_0xf80d('0x13')](function(_0x38fe01){return[_0x38fe01,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})['spread'](function(_0xcbfd25,_0x2457b3){if(_0xcbfd25){_0x2d2a2b=_0x2457b3;if(!_0x2457b3){return _0xcbfd25['update']({'inReplyTo':_0x4b9f1d[_0xf80d('0x2c')]['message'][_0xf80d('0x52')],'to':_0x4b9f1d[_0xf80d('0x2c')][_0xf80d('0x19')]['from'],'cc':_0x4b9f1d[_0xf80d('0x2c')][_0xf80d('0x19')]['cc'],'subject':_0x4b9f1d[_0xf80d('0x2c')][_0xf80d('0x19')][_0xf80d('0x53')],'attach':_0xcbfd25[_0xf80d('0x54')]?_0xcbfd25[_0xf80d('0x54')]:_0x4b9f1d[_0xf80d('0x2c')][_0xf80d('0x19')][_0xf80d('0x54')],'substatus':null,'substatusAt':moment()[_0xf80d('0x55')](_0xf80d('0x56')),'lastMsgAt':moment()['format'](_0xf80d('0x56')),'lastMsgDirection':'in','lastMsgBody':_0x4b9f1d[_0xf80d('0x2c')][_0xf80d('0x2c')]});}else{return _0xcbfd25;}}})['then'](function(_0x346616){_0x13e606[_0xf80d('0x59')]=_0x346616['get']({'plain':!![]});_0x13e606['interaction'][_0xf80d('0x5a')]=_0x2d2a2b;return db[_0xf80d('0x57')]['create']({'body':_0x4b9f1d[_0xf80d('0x2c')][_0xf80d('0x2c')],'MailAccountId':_0x4b9f1d[_0xf80d('0x3c')]['id'],'MailInteractionId':_0x346616['id'],'direction':'in','ContactId':_0x13e606['contact']['id'],'messageId':_0x4b9f1d['body'][_0xf80d('0x19')][_0xf80d('0x52')],'from':_0x4b9f1d[_0xf80d('0x2c')][_0xf80d('0x19')][_0xf80d('0x36')],'to':_0x4b9f1d['body'][_0xf80d('0x19')]['to'],'cc':_0x4b9f1d[_0xf80d('0x2c')]['message']['cc'],'subject':_0x4b9f1d[_0xf80d('0x2c')][_0xf80d('0x19')][_0xf80d('0x53')],'attach':_0x4b9f1d[_0xf80d('0x2c')]['message'][_0xf80d('0x54')],'Attachments':_0x4b9f1d[_0xf80d('0x2c')][_0xf80d('0x19')][_0xf80d('0x5b')],'originTo':_0x4b9f1d[_0xf80d('0x2c')][_0xf80d('0x19')][_0xf80d('0x5c')],'originCc':_0x4b9f1d[_0xf80d('0x2c')][_0xf80d('0x19')][_0xf80d('0x5d')],'bcc':_0x4b9f1d[_0xf80d('0x2c')][_0xf80d('0x19')][_0xf80d('0x5e')]},{'include':[{'model':db[_0xf80d('0x5f')],'as':_0xf80d('0x60')}]});})[_0xf80d('0x13')](function(_0x24ef52){_0x13e606['message']=_0x24ef52;if(_0x13e606['interaction'][_0xf80d('0x61')]){return db[_0xf80d('0x62')][_0xf80d('0x2a')]({'attributes':['id',_0xf80d('0x63')],'where':{'id':_0x13e606['interaction'][_0xf80d('0x61')]}})[_0xf80d('0x13')](function(_0x2d1209){if(_0x2d1209){_0x13e606[_0xf80d('0x46')][_0xf80d('0x64')]({'id':0x0,'priority':0x0,'app':_0xf80d('0x65'),'appdata':_0x2d1209[_0xf80d('0x63')]+','+(_0x13e606[_0xf80d('0x3c')]['waitForTheAssignedAgent']||0xa),'interval':_0xf80d('0x66')});}return respondWithRpcPromise('Start',_0xf80d('0x67'),_0x13e606);});}return respondWithRpcPromise(_0xf80d('0x68'),_0xf80d('0x67'),_0x13e606);})[_0xf80d('0x13')](function(_0x582768){_0x100dc7(_0x582768);})['catch'](function(_0x34e414){_0x4b4c55(_0x651863[_0xf80d('0x16')](0x1f4,_0x34e414[_0xf80d('0x19')]));});});};