Built motion from commit d1eab355.|2.6.28
[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 _0x0309=['omit','Applications','account','list','applications','orderBy','asc','autoclose','length','close','*,*,*,*','create','List\x20not\x20found','contact','messageId','generate','subject','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Contact\x20not\x20found','spread','update','interaction','attachments','originTo','originCc','ChatWebsiteId','originChannel','Email','Attachment','Attachments','UserId','name','unshift','agent','waitForTheAssignedAgent','queueId','queue','startRouting','lodash','bluebird','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','defaults','redis','socket.io-emitter','./mailAccount.socket','register','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','GetMailAccount','MailAccount','findAll','raw','options','where','attributes','include','map','model','ShowMailAccount','find','setDataValue','getSmtpOptions','body','mail','keys','CmContact','rawAttributes','createdAt','updatedAt','ListId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','CmList','Contacts','DESC','MailApplication','MailServerOut','CloudProvider','List','get'];(function(_0x30a779,_0x1bb32b){var _0x1f4a91=function(_0x5e6e91){while(--_0x5e6e91){_0x30a779['push'](_0x30a779['shift']());}};_0x1f4a91(++_0x1bb32b);}(_0x0309,0x165));var _0x9030=function(_0x359a5b,_0x1636e2){_0x359a5b=_0x359a5b-0x0;var _0x570cd1=_0x0309[_0x359a5b];return _0x570cd1;};'use strict';var _=require(_0x9030('0x0'));var moment=require('moment');var BPromise=require(_0x9030('0x1'));var rs=require('randomstring');var Redis=require(_0x9030('0x2'));var db=require(_0x9030('0x3'))['db'];var logger=require(_0x9030('0x4'))(_0x9030('0x5'));var config=require(_0x9030('0x6'));var jayson=require(_0x9030('0x7'));var client=jayson[_0x9030('0x8')]['http']({'port':0x232c});config['redis']=_[_0x9030('0x9')](config[_0x9030('0xa')],{'host':'localhost','port':0x18eb});var socket=require(_0x9030('0xb'))(new Redis(config['redis']));require(_0x9030('0xc'))[_0x9030('0xd')](socket);function respondWithRpcPromise(_0x289add,_0x5711b4,_0xe2c28b){return new BPromise(function(_0x1da9ec,_0x337b86){return client['request'](_0x289add,_0xe2c28b)[_0x9030('0xe')](function(_0x21bc06){logger[_0x9030('0xf')](_0x9030('0x10'),_0x5711b4,_0x9030('0x11'));logger[_0x9030('0x12')](_0x9030('0x13'),_0x5711b4,'request\x20sent',JSON[_0x9030('0x14')](_0x21bc06));if(_0x21bc06[_0x9030('0x15')]){if(_0x21bc06[_0x9030('0x15')][_0x9030('0x16')]===0x1f4){logger['error'](_0x9030('0x10'),_0x5711b4,_0x21bc06[_0x9030('0x15')][_0x9030('0x17')]);return _0x337b86(_0x21bc06[_0x9030('0x15')][_0x9030('0x17')]);}logger[_0x9030('0x15')](_0x9030('0x10'),_0x5711b4,_0x21bc06[_0x9030('0x15')][_0x9030('0x17')]);return _0x1da9ec(_0x21bc06['error'][_0x9030('0x17')]);}else{logger[_0x9030('0xf')](_0x9030('0x10'),_0x5711b4,_0x9030('0x11'));_0x1da9ec(_0x21bc06[_0x9030('0x18')][_0x9030('0x17')]);}})[_0x9030('0x19')](function(_0x28c035){logger[_0x9030('0x15')](_0x9030('0x10'),_0x5711b4,_0x28c035);_0x337b86(_0x28c035);});});}exports[_0x9030('0x1a')]=function(_0x41d506){var _0x372716=this;return new Promise(function(_0x243e7d,_0x1e5988){return db[_0x9030('0x1b')][_0x9030('0x1c')]({'raw':_0x41d506['options']?_0x41d506['options'][_0x9030('0x1d')]===undefined?!![]:![]:!![],'where':_0x41d506[_0x9030('0x1e')]?_0x41d506['options'][_0x9030('0x1f')]||null:null,'attributes':_0x41d506[_0x9030('0x1e')]?_0x41d506[_0x9030('0x1e')][_0x9030('0x20')]||null:null,'limit':_0x41d506['options']?_0x41d506[_0x9030('0x1e')]['limit']||null:null,'include':_0x41d506['options']?_0x41d506[_0x9030('0x1e')][_0x9030('0x21')]?_[_0x9030('0x22')](_0x41d506['options'][_0x9030('0x21')],function(_0x408ce6){return{'model':db[_0x408ce6[_0x9030('0x23')]],'as':_0x408ce6['as'],'attributes':_0x408ce6[_0x9030('0x20')],'include':_0x408ce6[_0x9030('0x21')]?_['map'](_0x408ce6[_0x9030('0x21')],function(_0x455eeb){return{'model':db[_0x455eeb[_0x9030('0x23')]],'as':_0x455eeb['as'],'attributes':_0x455eeb[_0x9030('0x20')],'include':_0x455eeb[_0x9030('0x21')]?_[_0x9030('0x22')](_0x455eeb[_0x9030('0x21')],function(_0x2112cf){return{'model':db[_0x2112cf[_0x9030('0x23')]],'as':_0x2112cf['as'],'attributes':_0x2112cf[_0x9030('0x20')]};}):[]};}):[]};}):[]:[]})[_0x9030('0xe')](function(_0x1d0c5c){logger[_0x9030('0xf')](_0x9030('0x1a'),_0x41d506);logger['debug'](_0x9030('0x1a'),_0x41d506,JSON['stringify'](_0x1d0c5c));_0x243e7d(_0x1d0c5c);})[_0x9030('0x19')](function(_0x5b745a){logger[_0x9030('0x15')](_0x9030('0x1a'),_0x5b745a[_0x9030('0x17')],_0x41d506);_0x1e5988(_0x372716['error'](0x1f4,_0x5b745a[_0x9030('0x17')]));});});};exports[_0x9030('0x24')]=function(_0x3b70ff){var _0xb2ff18=this;return new Promise(function(_0xe2f7c1,_0x14619b){return db[_0x9030('0x1b')][_0x9030('0x25')]({'raw':_0x3b70ff[_0x9030('0x1e')]?_0x3b70ff[_0x9030('0x1e')][_0x9030('0x1d')]===undefined?!![]:![]:!![],'where':_0x3b70ff[_0x9030('0x1e')]?_0x3b70ff[_0x9030('0x1e')][_0x9030('0x1f')]||null:null,'attributes':_0x3b70ff[_0x9030('0x1e')]?_0x3b70ff[_0x9030('0x1e')][_0x9030('0x20')]||null:null,'include':_0x3b70ff[_0x9030('0x1e')]?_0x3b70ff['options']['include']?_[_0x9030('0x22')](_0x3b70ff[_0x9030('0x1e')]['include'],function(_0x58cea7){return{'model':db[_0x58cea7[_0x9030('0x23')]],'as':_0x58cea7['as'],'attributes':_0x58cea7[_0x9030('0x20')],'include':_0x58cea7[_0x9030('0x21')]?_[_0x9030('0x22')](_0x58cea7['include'],function(_0xc8123e){return{'model':db[_0xc8123e['model']],'as':_0xc8123e['as'],'attributes':_0xc8123e[_0x9030('0x20')],'include':_0xc8123e[_0x9030('0x21')]?_['map'](_0xc8123e[_0x9030('0x21')],function(_0x19c515){return{'model':db[_0x19c515[_0x9030('0x23')]],'as':_0x19c515['as'],'attributes':_0x19c515['attributes']};}):[]};}):[]};}):[]:[]})[_0x9030('0xe')](function(_0x4864d4){if(_0x3b70ff[_0x9030('0x1e')]['smtp']===!![])_0x4864d4[_0x9030('0x26')]('smtpOptions',_0x4864d4[_0x9030('0x27')]());logger[_0x9030('0xf')](_0x9030('0x24'),_0x3b70ff);logger[_0x9030('0x12')](_0x9030('0x24'),_0x3b70ff,JSON[_0x9030('0x14')](_0x4864d4));_0xe2f7c1(_0x4864d4);})[_0x9030('0x19')](function(_0x429850){logger[_0x9030('0x15')]('ShowMailAccount',_0x429850[_0x9030('0x17')],_0x3b70ff);_0x14619b(_0xb2ff18[_0x9030('0x15')](0x1f4,_0x429850[_0x9030('0x17')]));});});};exports['NotifyMailAccount']=function(_0x72dd20){var _0x281b89=this;return new Promise(function(_0x3ebb74,_0x1a9ee5){var _0x5df7eb={'body':_0x72dd20[_0x9030('0x28')],'channel':_0x9030('0x29')};var _0x2709a8=_['difference'](_[_0x9030('0x2a')](db[_0x9030('0x2b')][_0x9030('0x2c')]),[_0x9030('0x2d'),_0x9030('0x2e'),'CompanyId',_0x9030('0x2f')]);var _0x4c7272=![];if(_0x72dd20[_0x9030('0x28')]['id']){delete _0x72dd20[_0x9030('0x28')]['id'];}if(_[_0x9030('0x30')](_0x72dd20[_0x9030('0x28')][_0x9030('0x31')])){return _0x1a9ee5(_0x281b89[_0x9030('0x15')](0x1f4,_0x9030('0x32')));}if(_[_0x9030('0x30')](_0x72dd20['body'][_0x9030('0x28')])||_0x72dd20[_0x9030('0x28')][_0x9030('0x28')]===''){return _0x1a9ee5(_0x281b89[_0x9030('0x15')](0x1f4,_0x9030('0x33')));}if(_[_0x9030('0x30')](_0x72dd20[_0x9030('0x28')][_0x9030('0x34')])){return _0x1a9ee5(_0x281b89[_0x9030('0x15')](0x1f4,_0x9030('0x35')+_0x2709a8));}if(!_[_0x9030('0x36')](_0x2709a8,_0x72dd20[_0x9030('0x28')][_0x9030('0x34')])){return _0x1a9ee5(_0x281b89[_0x9030('0x15')](0x1f4,'mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x2709a8));}var _0x4725e5={};_0x4725e5[_0x72dd20[_0x9030('0x28')]['mapKey']]=_0x72dd20[_0x9030('0x28')][_0x9030('0x31')];return db[_0x9030('0x1b')]['find']({'where':{'id':_0x72dd20['account']['id']},'include':[{'model':db[_0x9030('0x37')],'as':'List','include':[{'model':db['CmContact'],'as':_0x9030('0x38'),'where':_0x4725e5,'limit':0x1,'order':[[_0x9030('0x2e'),_0x9030('0x39')]]}]},{'model':db[_0x9030('0x3a')],'as':'Applications'},{'model':db[_0x9030('0x3b')],'as':'Smtp','include':[{'model':db[_0x9030('0x3c')],'as':_0x9030('0x3c')}]}]})[_0x9030('0xe')](function(_0x513ee4){if(_0x513ee4&&_0x513ee4[_0x9030('0x3d')]){var _0xf54697=_0x513ee4[_0x9030('0x3e')]({'plain':!![]});_0x5df7eb['account']=_[_0x9030('0x3f')](_0xf54697,[_0x9030('0x40'),'List']);_0x5df7eb[_0x9030('0x41')]['smtpOptions']=_0x513ee4[_0x9030('0x27')]();_0x5df7eb['applications']=_0xf54697[_0x9030('0x40')];_0x5df7eb[_0x9030('0x42')]=_0xf54697[_0x9030('0x3d')];_0x5df7eb[_0x9030('0x43')]=_[_0x9030('0x44')](_0x5df7eb[_0x9030('0x43')],['priority'],[_0x9030('0x45')]);if(_0x5df7eb[_0x9030('0x41')]&&_0x5df7eb[_0x9030('0x41')][_0x9030('0x46')]){_0x5df7eb[_0x9030('0x43')]['push']({'id':0x0,'priority':_0x5df7eb['applications'][_0x9030('0x47')]+0x1,'app':_0x9030('0x48'),'appdata':_0x9030('0x46'),'interval':_0x9030('0x49')});}if(_0x5df7eb[_0x9030('0x41')][_0x9030('0x40')]){delete _0x5df7eb[_0x9030('0x41')][_0x9030('0x40')];}if(_0x5df7eb[_0x9030('0x41')][_0x9030('0x3d')]){delete _0x5df7eb[_0x9030('0x41')][_0x9030('0x3d')];}if(_0xf54697[_0x9030('0x3d')]['Contacts'][_0x9030('0x47')]){return _0xf54697[_0x9030('0x3d')]['Contacts'][0x0];}var _0x5c4218=_[_0x9030('0x9')](_0x72dd20[_0x9030('0x28')],{'firstName':_0x72dd20[_0x9030('0x28')][_0x9030('0x31')],'ListId':_0xf54697[_0x9030('0x2f')]});_0x5c4218[_0x72dd20[_0x9030('0x28')]['mapKey']]=_0x72dd20['body'][_0x9030('0x31')];return db[_0x9030('0x2b')][_0x9030('0x4a')](_0x5c4218);}else{throw new Error(_0x9030('0x4b'));}})['then'](function(_0x30710d){_0x5df7eb[_0x9030('0x4c')]=_0x30710d;if(_0x30710d){if(!_0x72dd20[_0x9030('0x28')][_0x9030('0x17')][_0x9030('0x4d')]){_0x72dd20['body']['message'][_0x9030('0x4d')]=rs[_0x9030('0x4e')]()+'\x20'+_0x72dd20[_0x9030('0x28')][_0x9030('0x17')][_0x9030('0x31')];}var _0x17bf72={'ContactId':_0x30710d['id'],'MailAccountId':_0x72dd20[_0x9030('0x41')]['id'],'inReplyTo':_0x72dd20[_0x9030('0x28')][_0x9030('0x17')][_0x9030('0x4d')],'to':_0x72dd20['body'][_0x9030('0x17')][_0x9030('0x31')],'cc':_0x72dd20[_0x9030('0x28')][_0x9030('0x17')]['cc'],'subject':_0x72dd20[_0x9030('0x28')][_0x9030('0x17')][_0x9030('0x4f')],'attach':_0x72dd20['body']['message'][_0x9030('0x50')],'lastMsgAt':moment()[_0x9030('0x51')](_0x9030('0x52')),'lastMsgDirection':'in'};return db[_0x9030('0x53')][_0x9030('0x25')]({'where':{'closed':![],'MailAccountId':_0x72dd20[_0x9030('0x41')]['id']},'include':[{'model':db[_0x9030('0x54')],'as':'Messages','attributes':['messageId'],'where':{'messageId':_0x72dd20['body'][_0x9030('0x17')]['inReplyTo']}}]})[_0x9030('0xe')](function(_0x54f34a){if(_0x54f34a){return[_0x54f34a,![]];}return db[_0x9030('0x53')][_0x9030('0x4a')](_0x17bf72)[_0x9030('0xe')](function(_0xb4b84e){return[_0xb4b84e,!![]];});});}else{throw new Error(_0x9030('0x55'));}})[_0x9030('0x56')](function(_0x3f46de,_0x404d20){if(_0x3f46de){_0x4c7272=_0x404d20;if(!_0x404d20){return _0x3f46de[_0x9030('0x57')]({'inReplyTo':_0x72dd20[_0x9030('0x28')][_0x9030('0x17')][_0x9030('0x4d')],'to':_0x72dd20[_0x9030('0x28')][_0x9030('0x17')]['from'],'cc':_0x72dd20[_0x9030('0x28')][_0x9030('0x17')]['cc'],'subject':_0x72dd20[_0x9030('0x28')][_0x9030('0x17')][_0x9030('0x4f')],'attach':_0x3f46de[_0x9030('0x50')]?_0x3f46de['attach']:_0x72dd20[_0x9030('0x28')][_0x9030('0x17')][_0x9030('0x50')],'substatus':null,'substatusAt':moment()[_0x9030('0x51')](_0x9030('0x52')),'lastMsgAt':moment()['format'](_0x9030('0x52')),'lastMsgDirection':'in'});}else{return _0x3f46de;}}})[_0x9030('0xe')](function(_0x2bea48){_0x5df7eb['interaction']=_0x2bea48[_0x9030('0x3e')]({'plain':!![]});_0x5df7eb[_0x9030('0x58')]['created']=_0x4c7272;return db['MailMessage']['create']({'body':_0x72dd20[_0x9030('0x28')][_0x9030('0x28')],'MailAccountId':_0x72dd20[_0x9030('0x41')]['id'],'MailInteractionId':_0x2bea48['id'],'direction':'in','ContactId':_0x5df7eb[_0x9030('0x4c')]['id'],'messageId':_0x72dd20[_0x9030('0x28')]['message'][_0x9030('0x4d')],'from':_0x72dd20[_0x9030('0x28')][_0x9030('0x17')][_0x9030('0x31')],'to':_0x72dd20['body'][_0x9030('0x17')]['to'],'cc':_0x72dd20[_0x9030('0x28')][_0x9030('0x17')]['cc'],'subject':_0x72dd20['body'][_0x9030('0x17')][_0x9030('0x4f')],'attach':_0x72dd20['body'][_0x9030('0x17')][_0x9030('0x50')],'Attachments':_0x72dd20[_0x9030('0x28')]['message'][_0x9030('0x59')],'originTo':_0x72dd20['body'][_0x9030('0x17')][_0x9030('0x5a')],'originCc':_0x72dd20[_0x9030('0x28')][_0x9030('0x17')][_0x9030('0x5b')],'bcc':_0x72dd20[_0x9030('0x28')][_0x9030('0x17')]['bcc'],'ChatWebsiteId':_0x72dd20[_0x9030('0x28')]['message'][_0x9030('0x5c')]||null,'originChannel':_0x72dd20[_0x9030('0x28')][_0x9030('0x17')][_0x9030('0x5d')]||_0x9030('0x5e'),'ChatOfflineMessageId':_0x72dd20['body']['message']['ChatOfflineMessageId']||null},{'include':[{'model':db[_0x9030('0x5f')],'as':_0x9030('0x60')}]});})[_0x9030('0xe')](function(_0x50fb8c){_0x5df7eb[_0x9030('0x17')]=_0x50fb8c;if(!_0x5df7eb[_0x9030('0x58')][_0x9030('0x61')]){return;}return db['User'][_0x9030('0x25')]({'attributes':['id',_0x9030('0x62')],'where':{'id':_0x5df7eb[_0x9030('0x58')][_0x9030('0x61')]}});})[_0x9030('0xe')](function(_0x588042){if(_0x588042){_0x5df7eb[_0x9030('0x43')][_0x9030('0x63')]({'id':0x0,'priority':0x0,'app':_0x9030('0x64'),'appdata':_0x588042['name']+','+(_0x5df7eb[_0x9030('0x41')][_0x9030('0x65')]||0xa),'interval':_0x9030('0x49')});}if(!_0x5df7eb[_0x9030('0x58')]['queueId']){return;}return db['MailQueue'][_0x9030('0x25')]({'attributes':['id',_0x9030('0x62')],'where':{'id':_0x5df7eb[_0x9030('0x58')][_0x9030('0x66')]}});})[_0x9030('0xe')](function(_0x59e5fe){if(_0x59e5fe){_0x5df7eb[_0x9030('0x43')][_0x9030('0x63')]({'id':0x0,'priority':0x1,'app':_0x9030('0x67'),'appdata':_0x59e5fe[_0x9030('0x62')]+','+(_0x5df7eb[_0x9030('0x41')]['waitForTheAssignedQueue']||0x12c),'interval':_0x9030('0x49')});}return respondWithRpcPromise('Start',_0x9030('0x68'),_0x5df7eb);})[_0x9030('0xe')](function(_0x351265){_0x3ebb74(_0x351265);})['catch'](function(_0x513184){_0x1a9ee5(_0x281b89[_0x9030('0x15')](0x1f4,_0x513184[_0x9030('0x17')]));});});};