Built motion from commit (unavailable).|2.5.23
[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 _0x3d87=['error','message','result','GetMailAccount','MailAccount','findAll','options','raw','where','attributes','limit','include','map','model','then','catch','ShowMailAccount','find','body','mail','difference','keys','CmContact','updatedAt','CompanyId','ListId','isNil','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','from','account','List','Contacts','DESC','MailApplication','Smtp','get','omit','Applications','applications','orderBy','priority','asc','autoclose','push','length','close','*,*,*,*','create','List\x20not\x20found','contact','messageId','generate','attach','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Messages','inReplyTo','spread','update','subject','format','interaction','created','attachments','originTo','originCc','bcc','ChatWebsiteId','Email','ChatOfflineMessageId','Attachment','Attachments','User','UserId','unshift','agent','Start','startRouting','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','register','request','info','MailAccount,\x20%s,\x20%s','request\x20sent','stringify'];(function(_0x5b27da,_0x4a6532){var _0x3254f4=function(_0x4194c6){while(--_0x4194c6){_0x5b27da['push'](_0x5b27da['shift']());}};_0x3254f4(++_0x4a6532);}(_0x3d87,0xbf));var _0x73d8=function(_0x3ff085,_0x27c92e){_0x3ff085=_0x3ff085-0x0;var _0x2b68c3=_0x3d87[_0x3ff085];return _0x2b68c3;};'use strict';var _=require(_0x73d8('0x0'));var util=require(_0x73d8('0x1'));var moment=require(_0x73d8('0x2'));var BPromise=require('bluebird');var rs=require(_0x73d8('0x3'));var fs=require('fs');var Redis=require(_0x73d8('0x4'));var db=require(_0x73d8('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x73d8('0x6'))(_0x73d8('0x7'));var config=require(_0x73d8('0x8'));var jayson=require(_0x73d8('0x9'));var client=jayson[_0x73d8('0xa')][_0x73d8('0xb')]({'port':0x232c});config[_0x73d8('0xc')]=_[_0x73d8('0xd')](config[_0x73d8('0xc')],{'host':_0x73d8('0xe'),'port':0x18eb});var socket=require(_0x73d8('0xf'))(new Redis(config[_0x73d8('0xc')]));require(_0x73d8('0x10'))[_0x73d8('0x11')](socket);function respondWithRpcPromise(_0x22b1c2,_0x162037,_0x490ea4){return new BPromise(function(_0x11cc2b,_0x35c78f){return client[_0x73d8('0x12')](_0x22b1c2,_0x490ea4)['then'](function(_0x3fdb63){logger[_0x73d8('0x13')](_0x73d8('0x14'),_0x162037,'request\x20sent');logger['debug']('MailAccount,\x20%s,\x20%s,\x20%s',_0x162037,_0x73d8('0x15'),JSON[_0x73d8('0x16')](_0x3fdb63));if(_0x3fdb63[_0x73d8('0x17')]){if(_0x3fdb63[_0x73d8('0x17')]['code']===0x1f4){logger[_0x73d8('0x17')]('MailAccount,\x20%s,\x20%s',_0x162037,_0x3fdb63['error'][_0x73d8('0x18')]);return _0x35c78f(_0x3fdb63[_0x73d8('0x17')][_0x73d8('0x18')]);}logger[_0x73d8('0x17')]('MailAccount,\x20%s,\x20%s',_0x162037,_0x3fdb63[_0x73d8('0x17')]['message']);return _0x11cc2b(_0x3fdb63[_0x73d8('0x17')]['message']);}else{logger[_0x73d8('0x13')]('MailAccount,\x20%s,\x20%s',_0x162037,_0x73d8('0x15'));_0x11cc2b(_0x3fdb63[_0x73d8('0x19')][_0x73d8('0x18')]);}})['catch'](function(_0x5e3dc1){logger['error'](_0x73d8('0x14'),_0x162037,_0x5e3dc1);_0x35c78f(_0x5e3dc1);});});}exports[_0x73d8('0x1a')]=function(_0x386b9e){var _0x427b39=this;return new Promise(function(_0x247e6b,_0x319813){return db[_0x73d8('0x1b')][_0x73d8('0x1c')]({'raw':_0x386b9e[_0x73d8('0x1d')]?_0x386b9e['options'][_0x73d8('0x1e')]===undefined?!![]:![]:!![],'where':_0x386b9e[_0x73d8('0x1d')]?_0x386b9e['options'][_0x73d8('0x1f')]||null:null,'attributes':_0x386b9e[_0x73d8('0x1d')]?_0x386b9e[_0x73d8('0x1d')][_0x73d8('0x20')]||null:null,'limit':_0x386b9e[_0x73d8('0x1d')]?_0x386b9e[_0x73d8('0x1d')][_0x73d8('0x21')]||null:null,'include':_0x386b9e[_0x73d8('0x1d')]?_0x386b9e[_0x73d8('0x1d')][_0x73d8('0x22')]?_['map'](_0x386b9e['options']['include'],function(_0x2dec49){return{'model':db[_0x2dec49['model']],'as':_0x2dec49['as'],'attributes':_0x2dec49['attributes'],'include':_0x2dec49[_0x73d8('0x22')]?_[_0x73d8('0x23')](_0x2dec49[_0x73d8('0x22')],function(_0xa4152e){return{'model':db[_0xa4152e[_0x73d8('0x24')]],'as':_0xa4152e['as'],'attributes':_0xa4152e[_0x73d8('0x20')],'include':_0xa4152e[_0x73d8('0x22')]?_[_0x73d8('0x23')](_0xa4152e['include'],function(_0xa2306e){return{'model':db[_0xa2306e[_0x73d8('0x24')]],'as':_0xa2306e['as'],'attributes':_0xa2306e[_0x73d8('0x20')]};}):[]};}):[]};}):[]:[]})[_0x73d8('0x25')](function(_0x157e96){logger[_0x73d8('0x13')]('GetMailAccount',_0x386b9e);logger['debug'](_0x73d8('0x1a'),_0x386b9e,JSON[_0x73d8('0x16')](_0x157e96));_0x247e6b(_0x157e96);})[_0x73d8('0x26')](function(_0x1dd78c){logger[_0x73d8('0x17')](_0x73d8('0x1a'),_0x1dd78c['message'],_0x386b9e);_0x319813(_0x427b39[_0x73d8('0x17')](0x1f4,_0x1dd78c[_0x73d8('0x18')]));});});};exports[_0x73d8('0x27')]=function(_0x71209d){var _0x44e427=this;return new Promise(function(_0x16930a,_0x5425f8){return db[_0x73d8('0x1b')][_0x73d8('0x28')]({'raw':_0x71209d[_0x73d8('0x1d')]?_0x71209d[_0x73d8('0x1d')][_0x73d8('0x1e')]===undefined?!![]:![]:!![],'where':_0x71209d[_0x73d8('0x1d')]?_0x71209d[_0x73d8('0x1d')][_0x73d8('0x1f')]||null:null,'attributes':_0x71209d[_0x73d8('0x1d')]?_0x71209d[_0x73d8('0x1d')]['attributes']||null:null,'include':_0x71209d[_0x73d8('0x1d')]?_0x71209d[_0x73d8('0x1d')][_0x73d8('0x22')]?_[_0x73d8('0x23')](_0x71209d[_0x73d8('0x1d')]['include'],function(_0x1eb68d){return{'model':db[_0x1eb68d[_0x73d8('0x24')]],'as':_0x1eb68d['as'],'attributes':_0x1eb68d['attributes'],'include':_0x1eb68d['include']?_['map'](_0x1eb68d[_0x73d8('0x22')],function(_0x5e1e9b){return{'model':db[_0x5e1e9b['model']],'as':_0x5e1e9b['as'],'attributes':_0x5e1e9b['attributes'],'include':_0x5e1e9b[_0x73d8('0x22')]?_['map'](_0x5e1e9b[_0x73d8('0x22')],function(_0x55ab79){return{'model':db[_0x55ab79[_0x73d8('0x24')]],'as':_0x55ab79['as'],'attributes':_0x55ab79['attributes']};}):[]};}):[]};}):[]:[]})[_0x73d8('0x25')](function(_0x56a1b4){logger[_0x73d8('0x13')]('ShowMailAccount',_0x71209d);logger['debug'](_0x73d8('0x27'),_0x71209d,JSON[_0x73d8('0x16')](_0x56a1b4));_0x16930a(_0x56a1b4);})[_0x73d8('0x26')](function(_0x3c6c95){logger[_0x73d8('0x17')](_0x73d8('0x27'),_0x3c6c95[_0x73d8('0x18')],_0x71209d);_0x5425f8(_0x44e427[_0x73d8('0x17')](0x1f4,_0x3c6c95[_0x73d8('0x18')]));});});};exports['NotifyMailAccount']=function(_0x5da96d){var _0x46e1ef=this;return new Promise(function(_0x501c3d,_0x43625c){var _0x17176e={'body':_0x5da96d[_0x73d8('0x29')],'channel':_0x73d8('0x2a')};var _0x42a720=_[_0x73d8('0x2b')](_[_0x73d8('0x2c')](db[_0x73d8('0x2d')]['rawAttributes']),['createdAt',_0x73d8('0x2e'),_0x73d8('0x2f'),_0x73d8('0x30')]);var _0x3cb23a=![];if(_0x5da96d[_0x73d8('0x29')]['id']){delete _0x5da96d['body']['id'];}if(_[_0x73d8('0x31')](_0x5da96d[_0x73d8('0x29')]['from'])){return _0x43625c(_0x46e1ef['error'](0x1f4,_0x73d8('0x32')));}if(_[_0x73d8('0x31')](_0x5da96d[_0x73d8('0x29')]['body'])||_0x5da96d['body'][_0x73d8('0x29')]===''){return _0x43625c(_0x46e1ef[_0x73d8('0x17')](0x1f4,_0x73d8('0x33')));}if(_[_0x73d8('0x31')](_0x5da96d[_0x73d8('0x29')]['mapKey'])){return _0x43625c(_0x46e1ef['error'](0x1f4,_0x73d8('0x34')+_0x42a720));}if(!_[_0x73d8('0x35')](_0x42a720,_0x5da96d[_0x73d8('0x29')][_0x73d8('0x36')])){return _0x43625c(_0x46e1ef[_0x73d8('0x17')](0x1f4,_0x73d8('0x37')+_0x42a720));}var _0x32285b={};_0x32285b[_0x5da96d[_0x73d8('0x29')][_0x73d8('0x36')]]=_0x5da96d[_0x73d8('0x29')][_0x73d8('0x38')];return db['MailAccount'][_0x73d8('0x28')]({'where':{'id':_0x5da96d[_0x73d8('0x39')]['id']},'include':[{'model':db['CmList'],'as':_0x73d8('0x3a'),'include':[{'model':db[_0x73d8('0x2d')],'as':_0x73d8('0x3b'),'where':_0x32285b,'limit':0x1,'order':[[_0x73d8('0x2e'),_0x73d8('0x3c')]]}]},{'model':db[_0x73d8('0x3d')],'as':'Applications'},{'model':db['MailServerOut'],'as':_0x73d8('0x3e')}]})[_0x73d8('0x25')](function(_0x16be04){if(_0x16be04&&_0x16be04[_0x73d8('0x3a')]){var _0x44a3f7=_0x16be04[_0x73d8('0x3f')]({'plain':!![]});_0x17176e[_0x73d8('0x39')]=_[_0x73d8('0x40')](_0x44a3f7,[_0x73d8('0x41'),_0x73d8('0x3a')]);_0x17176e[_0x73d8('0x42')]=_0x44a3f7[_0x73d8('0x41')];_0x17176e['list']=_0x44a3f7['List'];_0x17176e['applications']=_[_0x73d8('0x43')](_0x17176e[_0x73d8('0x42')],[_0x73d8('0x44')],[_0x73d8('0x45')]);if(_0x17176e[_0x73d8('0x39')]&&_0x17176e[_0x73d8('0x39')][_0x73d8('0x46')]){_0x17176e[_0x73d8('0x42')][_0x73d8('0x47')]({'id':0x0,'priority':_0x17176e['applications'][_0x73d8('0x48')]+0x1,'app':_0x73d8('0x49'),'appdata':_0x73d8('0x46'),'interval':_0x73d8('0x4a')});}if(_0x17176e[_0x73d8('0x39')][_0x73d8('0x41')]){delete _0x17176e[_0x73d8('0x39')]['Applications'];}if(_0x17176e[_0x73d8('0x39')][_0x73d8('0x3a')]){delete _0x17176e[_0x73d8('0x39')]['List'];}if(_0x44a3f7[_0x73d8('0x3a')][_0x73d8('0x3b')][_0x73d8('0x48')]){return _0x44a3f7[_0x73d8('0x3a')]['Contacts'][0x0];}var _0x58dfa9=_[_0x73d8('0xd')](_0x5da96d[_0x73d8('0x29')],{'firstName':_0x5da96d['body'][_0x73d8('0x38')],'ListId':_0x44a3f7['ListId']});_0x58dfa9[_0x5da96d[_0x73d8('0x29')][_0x73d8('0x36')]]=_0x5da96d[_0x73d8('0x29')]['from'];return db[_0x73d8('0x2d')][_0x73d8('0x4b')](_0x58dfa9);}else{throw new Error(_0x73d8('0x4c'));}})['then'](function(_0x5bce13){_0x17176e[_0x73d8('0x4d')]=_0x5bce13;if(_0x5bce13){if(!_0x5da96d['body'][_0x73d8('0x18')][_0x73d8('0x4e')]){_0x5da96d['body'][_0x73d8('0x18')][_0x73d8('0x4e')]=rs[_0x73d8('0x4f')]()+'\x20'+_0x5da96d[_0x73d8('0x29')][_0x73d8('0x18')][_0x73d8('0x38')];}var _0x485e3e={'ContactId':_0x5bce13['id'],'MailAccountId':_0x5da96d[_0x73d8('0x39')]['id'],'inReplyTo':_0x5da96d['body'][_0x73d8('0x18')][_0x73d8('0x4e')],'to':_0x5da96d[_0x73d8('0x29')][_0x73d8('0x18')][_0x73d8('0x38')],'cc':_0x5da96d[_0x73d8('0x29')]['message']['cc'],'subject':_0x5da96d[_0x73d8('0x29')][_0x73d8('0x18')]['subject'],'attach':_0x5da96d[_0x73d8('0x29')][_0x73d8('0x18')][_0x73d8('0x50')],'lastMsgAt':moment()['format'](_0x73d8('0x51')),'lastMsgDirection':'in'};return db[_0x73d8('0x52')][_0x73d8('0x28')]({'where':{'closed':![],'MailAccountId':_0x5da96d['account']['id']},'include':[{'model':db[_0x73d8('0x53')],'as':_0x73d8('0x54'),'attributes':['messageId'],'where':{'messageId':_0x5da96d['body'][_0x73d8('0x18')][_0x73d8('0x55')]}}]})['then'](function(_0x56651e){if(_0x56651e){return[_0x56651e,![]];}return db[_0x73d8('0x52')][_0x73d8('0x4b')](_0x485e3e)[_0x73d8('0x25')](function(_0x2b309e){return[_0x2b309e,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0x73d8('0x56')](function(_0x144ebf,_0x44a8bc){if(_0x144ebf){_0x3cb23a=_0x44a8bc;if(!_0x44a8bc){return _0x144ebf[_0x73d8('0x57')]({'inReplyTo':_0x5da96d[_0x73d8('0x29')][_0x73d8('0x18')]['messageId'],'to':_0x5da96d[_0x73d8('0x29')][_0x73d8('0x18')]['from'],'cc':_0x5da96d[_0x73d8('0x29')]['message']['cc'],'subject':_0x5da96d[_0x73d8('0x29')]['message'][_0x73d8('0x58')],'attach':_0x144ebf[_0x73d8('0x50')]?_0x144ebf[_0x73d8('0x50')]:_0x5da96d['body'][_0x73d8('0x18')][_0x73d8('0x50')],'substatus':null,'substatusAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgAt':moment()[_0x73d8('0x59')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in'});}else{return _0x144ebf;}}})[_0x73d8('0x25')](function(_0x1788ab){_0x17176e[_0x73d8('0x5a')]=_0x1788ab[_0x73d8('0x3f')]({'plain':!![]});_0x17176e[_0x73d8('0x5a')][_0x73d8('0x5b')]=_0x3cb23a;return db[_0x73d8('0x53')]['create']({'body':_0x5da96d[_0x73d8('0x29')][_0x73d8('0x29')],'MailAccountId':_0x5da96d[_0x73d8('0x39')]['id'],'MailInteractionId':_0x1788ab['id'],'direction':'in','ContactId':_0x17176e['contact']['id'],'messageId':_0x5da96d['body'][_0x73d8('0x18')][_0x73d8('0x4e')],'from':_0x5da96d['body'][_0x73d8('0x18')][_0x73d8('0x38')],'to':_0x5da96d[_0x73d8('0x29')][_0x73d8('0x18')]['to'],'cc':_0x5da96d['body']['message']['cc'],'subject':_0x5da96d[_0x73d8('0x29')][_0x73d8('0x18')][_0x73d8('0x58')],'attach':_0x5da96d['body'][_0x73d8('0x18')][_0x73d8('0x50')],'Attachments':_0x5da96d['body'][_0x73d8('0x18')][_0x73d8('0x5c')],'originTo':_0x5da96d[_0x73d8('0x29')][_0x73d8('0x18')][_0x73d8('0x5d')],'originCc':_0x5da96d[_0x73d8('0x29')][_0x73d8('0x18')][_0x73d8('0x5e')],'bcc':_0x5da96d[_0x73d8('0x29')][_0x73d8('0x18')][_0x73d8('0x5f')],'ChatWebsiteId':_0x5da96d['body'][_0x73d8('0x18')][_0x73d8('0x60')]||null,'originChannel':_0x5da96d[_0x73d8('0x29')][_0x73d8('0x18')]['originChannel']||_0x73d8('0x61'),'ChatOfflineMessageId':_0x5da96d[_0x73d8('0x29')][_0x73d8('0x18')][_0x73d8('0x62')]||null},{'include':[{'model':db[_0x73d8('0x63')],'as':_0x73d8('0x64')}]});})[_0x73d8('0x25')](function(_0x595872){_0x17176e[_0x73d8('0x18')]=_0x595872;if(_0x17176e[_0x73d8('0x5a')]['UserId']){return db[_0x73d8('0x65')][_0x73d8('0x28')]({'attributes':['id','name'],'where':{'id':_0x17176e[_0x73d8('0x5a')][_0x73d8('0x66')]}})[_0x73d8('0x25')](function(_0x457a35){if(_0x457a35){_0x17176e[_0x73d8('0x42')][_0x73d8('0x67')]({'id':0x0,'priority':0x0,'app':_0x73d8('0x68'),'appdata':_0x457a35['name']+','+(_0x17176e['account']['waitForTheAssignedAgent']||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise(_0x73d8('0x69'),_0x73d8('0x6a'),_0x17176e);});}return respondWithRpcPromise(_0x73d8('0x69'),'startRouting',_0x17176e);})[_0x73d8('0x25')](function(_0x306aa4){_0x501c3d(_0x306aa4);})[_0x73d8('0x26')](function(_0x19748){_0x43625c(_0x46e1ef[_0x73d8('0x17')](0x1f4,_0x19748['message']));});});};