f6848286affceffe7b3ca76a2a107277055f1ff7
[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 _0x3c17=['findAll','options','raw','attributes','limit','include','model','map','ShowMailAccount','where','smtp','setDataValue','smtpOptions','getSmtpOptions','NotifyMailAccount','body','difference','rawAttributes','createdAt','updatedAt','CompanyId','ListId','isNil','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey','from','find','account','CmList','List','Contacts','DESC','MailApplication','Applications','MailServerOut','Smtp','CloudProvider','get','omit','applications','list','asc','close','autoclose','length','CmContact','contact','messageId','generate','attach','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Messages','inReplyTo','Contact\x20not\x20found','spread','update','subject','format','interaction','created','attachments','originCc','ChatWebsiteId','originChannel','Email','ChatOfflineMessageId','Attachment','Attachments','User','name','UserId','waitForTheAssignedAgent','*,*,*,*','queueId','MailQueue','waitForTheAssignedQueue','Start','startRouting','lodash','bluebird','ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','client','http','defaults','localhost','socket.io-emitter','redis','request','then','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','info','result','catch','GetMailAccount','MailAccount'];(function(_0x25c4f6,_0x1d79a6){var _0x1279a7=function(_0x50102f){while(--_0x50102f){_0x25c4f6['push'](_0x25c4f6['shift']());}};_0x1279a7(++_0x1d79a6);}(_0x3c17,0x1a1));var _0x73c1=function(_0x31cb5f,_0x2df766){_0x31cb5f=_0x31cb5f-0x0;var _0x586042=_0x3c17[_0x31cb5f];return _0x586042;};'use strict';var _=require(_0x73c1('0x0'));var moment=require('moment');var BPromise=require(_0x73c1('0x1'));var rs=require('randomstring');var Redis=require(_0x73c1('0x2'));var db=require(_0x73c1('0x3'))['db'];var logger=require(_0x73c1('0x4'))('rpc');var config=require(_0x73c1('0x5'));var jayson=require(_0x73c1('0x6'));var client=jayson[_0x73c1('0x7')][_0x73c1('0x8')]({'port':0x232c});config['redis']=_[_0x73c1('0x9')](config['redis'],{'host':_0x73c1('0xa'),'port':0x18eb});var socket=require(_0x73c1('0xb'))(new Redis(config[_0x73c1('0xc')]));require('./mailAccount.socket')['register'](socket);function respondWithRpcPromise(_0x176227,_0x2eb6fe,_0x400875){return new BPromise(function(_0x16c774,_0x2b2578){return client[_0x73c1('0xd')](_0x176227,_0x400875)[_0x73c1('0xe')](function(_0x4e5bc6){logger['info'](_0x73c1('0xf'),_0x2eb6fe,_0x73c1('0x10'));logger[_0x73c1('0x11')](_0x73c1('0x12'),_0x2eb6fe,'request\x20sent',JSON[_0x73c1('0x13')](_0x4e5bc6));if(_0x4e5bc6['error']){if(_0x4e5bc6[_0x73c1('0x14')]['code']===0x1f4){logger[_0x73c1('0x14')](_0x73c1('0xf'),_0x2eb6fe,_0x4e5bc6['error']['message']);return _0x2b2578(_0x4e5bc6[_0x73c1('0x14')]['message']);}logger[_0x73c1('0x14')]('MailAccount,\x20%s,\x20%s',_0x2eb6fe,_0x4e5bc6[_0x73c1('0x14')]['message']);return _0x16c774(_0x4e5bc6[_0x73c1('0x14')][_0x73c1('0x15')]);}else{logger[_0x73c1('0x16')](_0x73c1('0xf'),_0x2eb6fe,_0x73c1('0x10'));_0x16c774(_0x4e5bc6[_0x73c1('0x17')][_0x73c1('0x15')]);}})[_0x73c1('0x18')](function(_0x1ce19e){logger['error'](_0x73c1('0xf'),_0x2eb6fe,_0x1ce19e);_0x2b2578(_0x1ce19e);});});}exports[_0x73c1('0x19')]=function(_0x28df60){var _0x121bef=this;return new Promise(function(_0x4b1b94,_0x3fbaea){return db[_0x73c1('0x1a')][_0x73c1('0x1b')]({'raw':_0x28df60[_0x73c1('0x1c')]?_0x28df60[_0x73c1('0x1c')][_0x73c1('0x1d')]===undefined?!![]:![]:!![],'where':_0x28df60[_0x73c1('0x1c')]?_0x28df60[_0x73c1('0x1c')]['where']||null:null,'attributes':_0x28df60[_0x73c1('0x1c')]?_0x28df60[_0x73c1('0x1c')][_0x73c1('0x1e')]||null:null,'limit':_0x28df60['options']?_0x28df60[_0x73c1('0x1c')][_0x73c1('0x1f')]||null:null,'include':_0x28df60[_0x73c1('0x1c')]?_0x28df60[_0x73c1('0x1c')][_0x73c1('0x20')]?_['map'](_0x28df60[_0x73c1('0x1c')]['include'],function(_0x54feeb){return{'model':db[_0x54feeb[_0x73c1('0x21')]],'as':_0x54feeb['as'],'attributes':_0x54feeb[_0x73c1('0x1e')],'include':_0x54feeb[_0x73c1('0x20')]?_[_0x73c1('0x22')](_0x54feeb[_0x73c1('0x20')],function(_0x30ec73){return{'model':db[_0x30ec73[_0x73c1('0x21')]],'as':_0x30ec73['as'],'attributes':_0x30ec73[_0x73c1('0x1e')],'include':_0x30ec73[_0x73c1('0x20')]?_[_0x73c1('0x22')](_0x30ec73[_0x73c1('0x20')],function(_0x460b69){return{'model':db[_0x460b69[_0x73c1('0x21')]],'as':_0x460b69['as'],'attributes':_0x460b69[_0x73c1('0x1e')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x2b2996){logger[_0x73c1('0x16')](_0x73c1('0x19'),_0x28df60);logger[_0x73c1('0x11')](_0x73c1('0x19'),_0x28df60,JSON[_0x73c1('0x13')](_0x2b2996));_0x4b1b94(_0x2b2996);})[_0x73c1('0x18')](function(_0x45c411){logger[_0x73c1('0x14')]('GetMailAccount',_0x45c411['message'],_0x28df60);_0x3fbaea(_0x121bef[_0x73c1('0x14')](0x1f4,_0x45c411[_0x73c1('0x15')]));});});};exports[_0x73c1('0x23')]=function(_0x2a9ff8){var _0x52a05e=this;return new Promise(function(_0x3e54b2,_0x11432d){return db[_0x73c1('0x1a')]['find']({'raw':_0x2a9ff8[_0x73c1('0x1c')]?_0x2a9ff8[_0x73c1('0x1c')][_0x73c1('0x1d')]===undefined?!![]:![]:!![],'where':_0x2a9ff8[_0x73c1('0x1c')]?_0x2a9ff8[_0x73c1('0x1c')][_0x73c1('0x24')]||null:null,'attributes':_0x2a9ff8['options']?_0x2a9ff8[_0x73c1('0x1c')][_0x73c1('0x1e')]||null:null,'include':_0x2a9ff8[_0x73c1('0x1c')]?_0x2a9ff8[_0x73c1('0x1c')][_0x73c1('0x20')]?_[_0x73c1('0x22')](_0x2a9ff8[_0x73c1('0x1c')][_0x73c1('0x20')],function(_0x3103ec){return{'model':db[_0x3103ec[_0x73c1('0x21')]],'as':_0x3103ec['as'],'attributes':_0x3103ec['attributes'],'include':_0x3103ec[_0x73c1('0x20')]?_['map'](_0x3103ec[_0x73c1('0x20')],function(_0x25e2f6){return{'model':db[_0x25e2f6[_0x73c1('0x21')]],'as':_0x25e2f6['as'],'attributes':_0x25e2f6[_0x73c1('0x1e')],'include':_0x25e2f6['include']?_['map'](_0x25e2f6['include'],function(_0x26ab79){return{'model':db[_0x26ab79['model']],'as':_0x26ab79['as'],'attributes':_0x26ab79[_0x73c1('0x1e')]};}):[]};}):[]};}):[]:[]})[_0x73c1('0xe')](function(_0x2dcdc4){if(_0x2a9ff8[_0x73c1('0x1c')][_0x73c1('0x25')]===!![])_0x2dcdc4[_0x73c1('0x26')](_0x73c1('0x27'),_0x2dcdc4[_0x73c1('0x28')]());logger[_0x73c1('0x16')](_0x73c1('0x23'),_0x2a9ff8);logger[_0x73c1('0x11')]('ShowMailAccount',_0x2a9ff8,JSON[_0x73c1('0x13')](_0x2dcdc4));_0x3e54b2(_0x2dcdc4);})[_0x73c1('0x18')](function(_0x4728e2){logger[_0x73c1('0x14')](_0x73c1('0x23'),_0x4728e2[_0x73c1('0x15')],_0x2a9ff8);_0x11432d(_0x52a05e['error'](0x1f4,_0x4728e2[_0x73c1('0x15')]));});});};exports[_0x73c1('0x29')]=function(_0x3c6b35){var _0x2411bb=this;return new Promise(function(_0x21feb9,_0x20668f){var _0x4d87fb={'body':_0x3c6b35[_0x73c1('0x2a')],'channel':'mail'};var _0x3fdc4f=_[_0x73c1('0x2b')](_['keys'](db['CmContact'][_0x73c1('0x2c')]),[_0x73c1('0x2d'),_0x73c1('0x2e'),_0x73c1('0x2f'),_0x73c1('0x30')]);var _0x282b73=![];if(_0x3c6b35['body']['id']){delete _0x3c6b35['body']['id'];}if(_[_0x73c1('0x31')](_0x3c6b35[_0x73c1('0x2a')]['from'])){return _0x20668f(_0x2411bb['error'](0x1f4,_0x73c1('0x32')));}if(_['isNil'](_0x3c6b35[_0x73c1('0x2a')][_0x73c1('0x2a')])||_0x3c6b35[_0x73c1('0x2a')][_0x73c1('0x2a')]===''){return _0x20668f(_0x2411bb[_0x73c1('0x14')](0x1f4,_0x73c1('0x33')));}if(_[_0x73c1('0x31')](_0x3c6b35[_0x73c1('0x2a')]['mapKey'])){return _0x20668f(_0x2411bb['error'](0x1f4,_0x73c1('0x34')+_0x3fdc4f));}if(!_[_0x73c1('0x35')](_0x3fdc4f,_0x3c6b35[_0x73c1('0x2a')]['mapKey'])){return _0x20668f(_0x2411bb[_0x73c1('0x14')](0x1f4,_0x73c1('0x36')+_0x3fdc4f));}var _0x3c504d={};_0x3c504d[_0x3c6b35[_0x73c1('0x2a')][_0x73c1('0x37')]]=_0x3c6b35[_0x73c1('0x2a')][_0x73c1('0x38')];return db[_0x73c1('0x1a')][_0x73c1('0x39')]({'where':{'id':_0x3c6b35[_0x73c1('0x3a')]['id']},'include':[{'model':db[_0x73c1('0x3b')],'as':_0x73c1('0x3c'),'include':[{'model':db['CmContact'],'as':_0x73c1('0x3d'),'where':_0x3c504d,'limit':0x1,'order':[['updatedAt',_0x73c1('0x3e')]]}]},{'model':db[_0x73c1('0x3f')],'as':_0x73c1('0x40')},{'model':db[_0x73c1('0x41')],'as':_0x73c1('0x42'),'include':[{'model':db[_0x73c1('0x43')],'as':'CloudProvider'}]}]})[_0x73c1('0xe')](function(_0x2ccd11){if(_0x2ccd11&&_0x2ccd11[_0x73c1('0x3c')]){var _0x4c1f5f=_0x2ccd11[_0x73c1('0x44')]({'plain':!![]});_0x4d87fb[_0x73c1('0x3a')]=_[_0x73c1('0x45')](_0x4c1f5f,[_0x73c1('0x40'),_0x73c1('0x3c')]);_0x4d87fb[_0x73c1('0x3a')][_0x73c1('0x27')]=_0x2ccd11[_0x73c1('0x28')]();_0x4d87fb[_0x73c1('0x46')]=_0x4c1f5f['Applications'];_0x4d87fb[_0x73c1('0x47')]=_0x4c1f5f['List'];_0x4d87fb['applications']=_['orderBy'](_0x4d87fb['applications'],['priority'],[_0x73c1('0x48')]);if(_0x4d87fb['account']&&_0x4d87fb[_0x73c1('0x3a')]['autoclose']){_0x4d87fb['applications']['push']({'id':0x0,'priority':_0x4d87fb[_0x73c1('0x46')]['length']+0x1,'app':_0x73c1('0x49'),'appdata':_0x73c1('0x4a'),'interval':'*,*,*,*'});}if(_0x4d87fb[_0x73c1('0x3a')][_0x73c1('0x40')]){delete _0x4d87fb[_0x73c1('0x3a')][_0x73c1('0x40')];}if(_0x4d87fb[_0x73c1('0x3a')][_0x73c1('0x3c')]){delete _0x4d87fb[_0x73c1('0x3a')][_0x73c1('0x3c')];}if(_0x4c1f5f[_0x73c1('0x3c')][_0x73c1('0x3d')][_0x73c1('0x4b')]){return _0x4c1f5f[_0x73c1('0x3c')][_0x73c1('0x3d')][0x0];}var _0x2cb41b=_[_0x73c1('0x9')](_0x3c6b35[_0x73c1('0x2a')],{'firstName':_0x3c6b35[_0x73c1('0x2a')][_0x73c1('0x38')],'ListId':_0x4c1f5f[_0x73c1('0x30')]});_0x2cb41b[_0x3c6b35[_0x73c1('0x2a')][_0x73c1('0x37')]]=_0x3c6b35['body']['from'];return db[_0x73c1('0x4c')]['create'](_0x2cb41b);}else{throw new Error('List\x20not\x20found');}})[_0x73c1('0xe')](function(_0x854ef6){_0x4d87fb[_0x73c1('0x4d')]=_0x854ef6;if(_0x854ef6){if(!_0x3c6b35[_0x73c1('0x2a')][_0x73c1('0x15')][_0x73c1('0x4e')]){_0x3c6b35[_0x73c1('0x2a')][_0x73c1('0x15')][_0x73c1('0x4e')]=rs[_0x73c1('0x4f')]()+'\x20'+_0x3c6b35[_0x73c1('0x2a')][_0x73c1('0x15')]['from'];}var _0x385817={'ContactId':_0x854ef6['id'],'MailAccountId':_0x3c6b35[_0x73c1('0x3a')]['id'],'inReplyTo':_0x3c6b35[_0x73c1('0x2a')]['message'][_0x73c1('0x4e')],'to':_0x3c6b35[_0x73c1('0x2a')][_0x73c1('0x15')]['from'],'cc':_0x3c6b35['body']['message']['cc'],'subject':_0x3c6b35[_0x73c1('0x2a')][_0x73c1('0x15')]['subject'],'attach':_0x3c6b35[_0x73c1('0x2a')][_0x73c1('0x15')][_0x73c1('0x50')],'lastMsgAt':moment()['format'](_0x73c1('0x51')),'lastMsgDirection':'in'};return db[_0x73c1('0x52')][_0x73c1('0x39')]({'where':{'closed':![],'MailAccountId':_0x3c6b35[_0x73c1('0x3a')]['id']},'include':[{'model':db[_0x73c1('0x53')],'as':_0x73c1('0x54'),'attributes':[_0x73c1('0x4e')],'where':{'messageId':_0x3c6b35[_0x73c1('0x2a')][_0x73c1('0x15')][_0x73c1('0x55')]}}]})[_0x73c1('0xe')](function(_0x1575f4){if(_0x1575f4){return[_0x1575f4,![]];}return db[_0x73c1('0x52')]['create'](_0x385817)[_0x73c1('0xe')](function(_0x5517e3){return[_0x5517e3,!![]];});});}else{throw new Error(_0x73c1('0x56'));}})[_0x73c1('0x57')](function(_0x595086,_0x2295c5){if(_0x595086){_0x282b73=_0x2295c5;if(!_0x2295c5){return _0x595086[_0x73c1('0x58')]({'inReplyTo':_0x3c6b35['body'][_0x73c1('0x15')]['messageId'],'to':_0x3c6b35[_0x73c1('0x2a')][_0x73c1('0x15')][_0x73c1('0x38')],'cc':_0x3c6b35[_0x73c1('0x2a')][_0x73c1('0x15')]['cc'],'subject':_0x3c6b35[_0x73c1('0x2a')][_0x73c1('0x15')][_0x73c1('0x59')],'attach':_0x595086[_0x73c1('0x50')]?_0x595086[_0x73c1('0x50')]:_0x3c6b35['body'][_0x73c1('0x15')][_0x73c1('0x50')],'substatus':null,'substatusAt':moment()[_0x73c1('0x5a')](_0x73c1('0x51')),'lastMsgAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in'});}else{return _0x595086;}}})[_0x73c1('0xe')](function(_0x466f4d){_0x4d87fb[_0x73c1('0x5b')]=_0x466f4d[_0x73c1('0x44')]({'plain':!![]});_0x4d87fb[_0x73c1('0x5b')][_0x73c1('0x5c')]=_0x282b73;return db[_0x73c1('0x53')]['create']({'body':_0x3c6b35[_0x73c1('0x2a')]['body'],'MailAccountId':_0x3c6b35[_0x73c1('0x3a')]['id'],'MailInteractionId':_0x466f4d['id'],'direction':'in','ContactId':_0x4d87fb[_0x73c1('0x4d')]['id'],'messageId':_0x3c6b35['body'][_0x73c1('0x15')][_0x73c1('0x4e')],'from':_0x3c6b35[_0x73c1('0x2a')][_0x73c1('0x15')]['from'],'to':_0x3c6b35[_0x73c1('0x2a')][_0x73c1('0x15')]['to'],'cc':_0x3c6b35['body']['message']['cc'],'subject':_0x3c6b35[_0x73c1('0x2a')][_0x73c1('0x15')]['subject'],'attach':_0x3c6b35['body'][_0x73c1('0x15')][_0x73c1('0x50')],'Attachments':_0x3c6b35[_0x73c1('0x2a')][_0x73c1('0x15')][_0x73c1('0x5d')],'originTo':_0x3c6b35[_0x73c1('0x2a')][_0x73c1('0x15')]['originTo'],'originCc':_0x3c6b35['body'][_0x73c1('0x15')][_0x73c1('0x5e')],'bcc':_0x3c6b35[_0x73c1('0x2a')][_0x73c1('0x15')]['bcc'],'ChatWebsiteId':_0x3c6b35['body'][_0x73c1('0x15')][_0x73c1('0x5f')]||null,'originChannel':_0x3c6b35[_0x73c1('0x2a')][_0x73c1('0x15')][_0x73c1('0x60')]||_0x73c1('0x61'),'ChatOfflineMessageId':_0x3c6b35[_0x73c1('0x2a')][_0x73c1('0x15')][_0x73c1('0x62')]||null},{'include':[{'model':db[_0x73c1('0x63')],'as':_0x73c1('0x64')}]});})[_0x73c1('0xe')](function(_0xa8ed18){_0x4d87fb[_0x73c1('0x15')]=_0xa8ed18;if(!_0x4d87fb[_0x73c1('0x5b')]['UserId']){return;}return db[_0x73c1('0x65')]['find']({'attributes':['id',_0x73c1('0x66')],'where':{'id':_0x4d87fb['interaction'][_0x73c1('0x67')]}});})[_0x73c1('0xe')](function(_0x3ae4d7){if(_0x3ae4d7){_0x4d87fb[_0x73c1('0x46')]['unshift']({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x3ae4d7[_0x73c1('0x66')]+','+(_0x4d87fb[_0x73c1('0x3a')][_0x73c1('0x68')]||0xa),'interval':_0x73c1('0x69')});}if(!_0x4d87fb[_0x73c1('0x5b')][_0x73c1('0x6a')]){return;}return db[_0x73c1('0x6b')][_0x73c1('0x39')]({'attributes':['id',_0x73c1('0x66')],'where':{'id':_0x4d87fb['interaction'][_0x73c1('0x6a')]}});})[_0x73c1('0xe')](function(_0x281310){if(_0x281310){_0x4d87fb[_0x73c1('0x46')]['unshift']({'id':0x0,'priority':0x1,'app':'queue','appdata':_0x281310[_0x73c1('0x66')]+','+(_0x4d87fb[_0x73c1('0x3a')][_0x73c1('0x6c')]||0x12c),'interval':_0x73c1('0x69')});}return respondWithRpcPromise(_0x73c1('0x6d'),_0x73c1('0x6e'),_0x4d87fb);})[_0x73c1('0xe')](function(_0x5458e1){_0x21feb9(_0x5458e1);})[_0x73c1('0x18')](function(_0x1040b4){_0x20668f(_0x2411bb[_0x73c1('0x14')](0x1f4,_0x1040b4[_0x73c1('0x15')]));});});};