Built motion from commit 953226e6.|2.6.32
[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 _0xb138=['messageId','generate','attach','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','inReplyTo','Contact\x20not\x20found','spread','update','format','interaction','created','create','subject','attachments','originTo','bcc','ChatWebsiteId','originChannel','Email','ChatOfflineMessageId','Attachment','UserId','name','unshift','waitForTheAssignedAgent','MailQueue','queueId','queue','waitForTheAssignedQueue','*,*,*,*','Start','startRouting','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','../../config/environment','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','register','request','then','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','code','error','message','info','result','catch','GetMailAccount','findAll','options','where','attributes','limit','include','model','map','ShowMailAccount','find','raw','setDataValue','getSmtpOptions','body','mail','CmContact','rawAttributes','createdAt','updatedAt','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','MailAccount','account','CmList','List','Contacts','MailApplication','MailServerOut','Smtp','CloudProvider','get','omit','smtpOptions','applications','Applications','list','orderBy','priority','asc','autoclose','push','close','length','List\x20not\x20found'];(function(_0x528375,_0x49a89e){var _0x363892=function(_0x504565){while(--_0x504565){_0x528375['push'](_0x528375['shift']());}};_0x363892(++_0x49a89e);}(_0xb138,0x1dd));var _0x8b13=function(_0x5323a0,_0x481644){_0x5323a0=_0x5323a0-0x0;var _0x1dc6bc=_0xb138[_0x5323a0];return _0x1dc6bc;};'use strict';var _=require(_0x8b13('0x0'));var moment=require(_0x8b13('0x1'));var BPromise=require(_0x8b13('0x2'));var rs=require(_0x8b13('0x3'));var Redis=require(_0x8b13('0x4'));var db=require(_0x8b13('0x5'))['db'];var logger=require(_0x8b13('0x6'))('rpc');var config=require(_0x8b13('0x7'));var jayson=require(_0x8b13('0x8'));var client=jayson[_0x8b13('0x9')]['http']({'port':0x232c});config[_0x8b13('0xa')]=_[_0x8b13('0xb')](config['redis'],{'host':_0x8b13('0xc'),'port':0x18eb});var socket=require(_0x8b13('0xd'))(new Redis(config[_0x8b13('0xa')]));require('./mailAccount.socket')[_0x8b13('0xe')](socket);function respondWithRpcPromise(_0x1aed6f,_0x58683a,_0x53ae50){return new BPromise(function(_0x1f2528,_0x21fcd9){return client[_0x8b13('0xf')](_0x1aed6f,_0x53ae50)[_0x8b13('0x10')](function(_0x3e8eca){logger['info'](_0x8b13('0x11'),_0x58683a,_0x8b13('0x12'));logger[_0x8b13('0x13')](_0x8b13('0x14'),_0x58683a,_0x8b13('0x12'),JSON[_0x8b13('0x15')](_0x3e8eca));if(_0x3e8eca['error']){if(_0x3e8eca['error'][_0x8b13('0x16')]===0x1f4){logger[_0x8b13('0x17')]('MailAccount,\x20%s,\x20%s',_0x58683a,_0x3e8eca['error']['message']);return _0x21fcd9(_0x3e8eca[_0x8b13('0x17')][_0x8b13('0x18')]);}logger[_0x8b13('0x17')](_0x8b13('0x11'),_0x58683a,_0x3e8eca[_0x8b13('0x17')]['message']);return _0x1f2528(_0x3e8eca[_0x8b13('0x17')][_0x8b13('0x18')]);}else{logger[_0x8b13('0x19')](_0x8b13('0x11'),_0x58683a,_0x8b13('0x12'));_0x1f2528(_0x3e8eca[_0x8b13('0x1a')][_0x8b13('0x18')]);}})[_0x8b13('0x1b')](function(_0x4989d3){logger['error'](_0x8b13('0x11'),_0x58683a,_0x4989d3);_0x21fcd9(_0x4989d3);});});}exports[_0x8b13('0x1c')]=function(_0x14a8ac){var _0x9c03b4=this;return new Promise(function(_0x1e0fe3,_0x3cc9a0){return db['MailAccount'][_0x8b13('0x1d')]({'raw':_0x14a8ac[_0x8b13('0x1e')]?_0x14a8ac[_0x8b13('0x1e')]['raw']===undefined?!![]:![]:!![],'where':_0x14a8ac['options']?_0x14a8ac[_0x8b13('0x1e')][_0x8b13('0x1f')]||null:null,'attributes':_0x14a8ac['options']?_0x14a8ac[_0x8b13('0x1e')][_0x8b13('0x20')]||null:null,'limit':_0x14a8ac[_0x8b13('0x1e')]?_0x14a8ac[_0x8b13('0x1e')][_0x8b13('0x21')]||null:null,'include':_0x14a8ac['options']?_0x14a8ac[_0x8b13('0x1e')][_0x8b13('0x22')]?_['map'](_0x14a8ac[_0x8b13('0x1e')]['include'],function(_0x420772){return{'model':db[_0x420772[_0x8b13('0x23')]],'as':_0x420772['as'],'attributes':_0x420772['attributes'],'include':_0x420772[_0x8b13('0x22')]?_[_0x8b13('0x24')](_0x420772['include'],function(_0x134c5e){return{'model':db[_0x134c5e[_0x8b13('0x23')]],'as':_0x134c5e['as'],'attributes':_0x134c5e[_0x8b13('0x20')],'include':_0x134c5e[_0x8b13('0x22')]?_[_0x8b13('0x24')](_0x134c5e['include'],function(_0x6023f5){return{'model':db[_0x6023f5[_0x8b13('0x23')]],'as':_0x6023f5['as'],'attributes':_0x6023f5[_0x8b13('0x20')]};}):[]};}):[]};}):[]:[]})[_0x8b13('0x10')](function(_0x114b01){logger[_0x8b13('0x19')]('GetMailAccount',_0x14a8ac);logger[_0x8b13('0x13')](_0x8b13('0x1c'),_0x14a8ac,JSON[_0x8b13('0x15')](_0x114b01));_0x1e0fe3(_0x114b01);})[_0x8b13('0x1b')](function(_0x23fde7){logger[_0x8b13('0x17')](_0x8b13('0x1c'),_0x23fde7[_0x8b13('0x18')],_0x14a8ac);_0x3cc9a0(_0x9c03b4[_0x8b13('0x17')](0x1f4,_0x23fde7['message']));});});};exports[_0x8b13('0x25')]=function(_0x193965){var _0x288ff7=this;return new Promise(function(_0x2878a6,_0x51a334){return db['MailAccount'][_0x8b13('0x26')]({'raw':_0x193965['options']?_0x193965['options'][_0x8b13('0x27')]===undefined?!![]:![]:!![],'where':_0x193965['options']?_0x193965[_0x8b13('0x1e')][_0x8b13('0x1f')]||null:null,'attributes':_0x193965[_0x8b13('0x1e')]?_0x193965[_0x8b13('0x1e')][_0x8b13('0x20')]||null:null,'include':_0x193965[_0x8b13('0x1e')]?_0x193965[_0x8b13('0x1e')][_0x8b13('0x22')]?_[_0x8b13('0x24')](_0x193965[_0x8b13('0x1e')]['include'],function(_0xa07850){return{'model':db[_0xa07850[_0x8b13('0x23')]],'as':_0xa07850['as'],'attributes':_0xa07850[_0x8b13('0x20')],'include':_0xa07850[_0x8b13('0x22')]?_[_0x8b13('0x24')](_0xa07850[_0x8b13('0x22')],function(_0x6b4645){return{'model':db[_0x6b4645[_0x8b13('0x23')]],'as':_0x6b4645['as'],'attributes':_0x6b4645['attributes'],'include':_0x6b4645[_0x8b13('0x22')]?_['map'](_0x6b4645[_0x8b13('0x22')],function(_0x37732c){return{'model':db[_0x37732c[_0x8b13('0x23')]],'as':_0x37732c['as'],'attributes':_0x37732c[_0x8b13('0x20')]};}):[]};}):[]};}):[]:[]})[_0x8b13('0x10')](function(_0x327eb1){if(_0x193965['options']['smtp']===!![])_0x327eb1[_0x8b13('0x28')]('smtpOptions',_0x327eb1[_0x8b13('0x29')]());logger['info'](_0x8b13('0x25'),_0x193965);logger[_0x8b13('0x13')](_0x8b13('0x25'),_0x193965,JSON[_0x8b13('0x15')](_0x327eb1));_0x2878a6(_0x327eb1);})[_0x8b13('0x1b')](function(_0x4e16e7){logger['error'](_0x8b13('0x25'),_0x4e16e7['message'],_0x193965);_0x51a334(_0x288ff7[_0x8b13('0x17')](0x1f4,_0x4e16e7[_0x8b13('0x18')]));});});};exports['NotifyMailAccount']=function(_0x1012eb){var _0x41d710=this;return new Promise(function(_0x35c1d6,_0x81b931){var _0x2f4e7f={'body':_0x1012eb[_0x8b13('0x2a')],'channel':_0x8b13('0x2b')};var _0x516c70=_['difference'](_['keys'](db[_0x8b13('0x2c')][_0x8b13('0x2d')]),[_0x8b13('0x2e'),_0x8b13('0x2f'),_0x8b13('0x30'),_0x8b13('0x31')]);var _0x492f7d=![];if(_0x1012eb[_0x8b13('0x2a')]['id']){delete _0x1012eb['body']['id'];}if(_[_0x8b13('0x32')](_0x1012eb['body'][_0x8b13('0x33')])){return _0x81b931(_0x41d710[_0x8b13('0x17')](0x1f4,_0x8b13('0x34')));}if(_[_0x8b13('0x32')](_0x1012eb[_0x8b13('0x2a')][_0x8b13('0x2a')])||_0x1012eb[_0x8b13('0x2a')]['body']===''){return _0x81b931(_0x41d710['error'](0x1f4,'body\x20is\x20mandatory\x20and\x20not\x20empty'));}if(_[_0x8b13('0x32')](_0x1012eb[_0x8b13('0x2a')][_0x8b13('0x35')])){return _0x81b931(_0x41d710[_0x8b13('0x17')](0x1f4,'mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x516c70));}if(!_['includes'](_0x516c70,_0x1012eb[_0x8b13('0x2a')]['mapKey'])){return _0x81b931(_0x41d710[_0x8b13('0x17')](0x1f4,_0x8b13('0x36')+_0x516c70));}var _0x20c363={};_0x20c363[_0x1012eb[_0x8b13('0x2a')][_0x8b13('0x35')]]=_0x1012eb['body'][_0x8b13('0x33')];return db[_0x8b13('0x37')][_0x8b13('0x26')]({'where':{'id':_0x1012eb[_0x8b13('0x38')]['id']},'include':[{'model':db[_0x8b13('0x39')],'as':_0x8b13('0x3a'),'include':[{'model':db[_0x8b13('0x2c')],'as':_0x8b13('0x3b'),'where':_0x20c363,'limit':0x1,'order':[[_0x8b13('0x2f'),'DESC']]}]},{'model':db[_0x8b13('0x3c')],'as':'Applications'},{'model':db[_0x8b13('0x3d')],'as':_0x8b13('0x3e'),'include':[{'model':db[_0x8b13('0x3f')],'as':'CloudProvider'}]}]})[_0x8b13('0x10')](function(_0x35f612){if(_0x35f612&&_0x35f612[_0x8b13('0x3a')]){var _0x4129c0=_0x35f612[_0x8b13('0x40')]({'plain':!![]});_0x2f4e7f[_0x8b13('0x38')]=_[_0x8b13('0x41')](_0x4129c0,['Applications',_0x8b13('0x3a')]);_0x2f4e7f['account'][_0x8b13('0x42')]=_0x35f612[_0x8b13('0x29')]();_0x2f4e7f[_0x8b13('0x43')]=_0x4129c0[_0x8b13('0x44')];_0x2f4e7f[_0x8b13('0x45')]=_0x4129c0[_0x8b13('0x3a')];_0x2f4e7f[_0x8b13('0x43')]=_[_0x8b13('0x46')](_0x2f4e7f[_0x8b13('0x43')],[_0x8b13('0x47')],[_0x8b13('0x48')]);if(_0x2f4e7f[_0x8b13('0x38')]&&_0x2f4e7f[_0x8b13('0x38')][_0x8b13('0x49')]){_0x2f4e7f[_0x8b13('0x43')][_0x8b13('0x4a')]({'id':0x0,'priority':_0x2f4e7f[_0x8b13('0x43')]['length']+0x1,'app':_0x8b13('0x4b'),'appdata':_0x8b13('0x49'),'interval':'*,*,*,*'});}if(_0x2f4e7f[_0x8b13('0x38')][_0x8b13('0x44')]){delete _0x2f4e7f[_0x8b13('0x38')][_0x8b13('0x44')];}if(_0x2f4e7f[_0x8b13('0x38')][_0x8b13('0x3a')]){delete _0x2f4e7f[_0x8b13('0x38')][_0x8b13('0x3a')];}if(_0x4129c0[_0x8b13('0x3a')][_0x8b13('0x3b')][_0x8b13('0x4c')]){return _0x4129c0[_0x8b13('0x3a')][_0x8b13('0x3b')][0x0];}var _0x25ab1f=_[_0x8b13('0xb')](_0x1012eb['body'],{'firstName':_0x1012eb[_0x8b13('0x2a')][_0x8b13('0x33')],'ListId':_0x4129c0['ListId']});_0x25ab1f[_0x1012eb[_0x8b13('0x2a')][_0x8b13('0x35')]]=_0x1012eb[_0x8b13('0x2a')][_0x8b13('0x33')];return db[_0x8b13('0x2c')]['create'](_0x25ab1f);}else{throw new Error(_0x8b13('0x4d'));}})[_0x8b13('0x10')](function(_0x46850a){_0x2f4e7f['contact']=_0x46850a;if(_0x46850a){if(!_0x1012eb[_0x8b13('0x2a')][_0x8b13('0x18')]['messageId']){_0x1012eb[_0x8b13('0x2a')][_0x8b13('0x18')][_0x8b13('0x4e')]=rs[_0x8b13('0x4f')]()+'\x20'+_0x1012eb['body'][_0x8b13('0x18')][_0x8b13('0x33')];}var _0x52e705={'ContactId':_0x46850a['id'],'MailAccountId':_0x1012eb[_0x8b13('0x38')]['id'],'inReplyTo':_0x1012eb[_0x8b13('0x2a')][_0x8b13('0x18')][_0x8b13('0x4e')],'to':_0x1012eb['body'][_0x8b13('0x18')][_0x8b13('0x33')],'cc':_0x1012eb[_0x8b13('0x2a')][_0x8b13('0x18')]['cc'],'subject':_0x1012eb[_0x8b13('0x2a')][_0x8b13('0x18')]['subject'],'attach':_0x1012eb[_0x8b13('0x2a')][_0x8b13('0x18')][_0x8b13('0x50')],'lastMsgAt':moment()['format'](_0x8b13('0x51')),'lastMsgDirection':'in'};return db[_0x8b13('0x52')][_0x8b13('0x26')]({'where':{'closed':![],'MailAccountId':_0x1012eb[_0x8b13('0x38')]['id']},'include':[{'model':db['MailMessage'],'as':'Messages','attributes':['messageId'],'where':{'messageId':_0x1012eb['body']['message'][_0x8b13('0x53')]}}]})[_0x8b13('0x10')](function(_0x574f98){if(_0x574f98){return[_0x574f98,![]];}return db[_0x8b13('0x52')]['create'](_0x52e705)[_0x8b13('0x10')](function(_0x2d2fa3){return[_0x2d2fa3,!![]];});});}else{throw new Error(_0x8b13('0x54'));}})[_0x8b13('0x55')](function(_0x43f12a,_0x2ff9c3){if(_0x43f12a){_0x492f7d=_0x2ff9c3;if(!_0x2ff9c3){return _0x43f12a[_0x8b13('0x56')]({'inReplyTo':_0x1012eb['body'][_0x8b13('0x18')]['messageId'],'to':_0x1012eb[_0x8b13('0x2a')][_0x8b13('0x18')][_0x8b13('0x33')],'cc':_0x1012eb[_0x8b13('0x2a')][_0x8b13('0x18')]['cc'],'subject':_0x1012eb[_0x8b13('0x2a')][_0x8b13('0x18')]['subject'],'attach':_0x43f12a[_0x8b13('0x50')]?_0x43f12a['attach']:_0x1012eb[_0x8b13('0x2a')][_0x8b13('0x18')][_0x8b13('0x50')],'substatus':null,'substatusAt':moment()[_0x8b13('0x57')](_0x8b13('0x51')),'lastMsgAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in'});}else{return _0x43f12a;}}})[_0x8b13('0x10')](function(_0x37a243){_0x2f4e7f['interaction']=_0x37a243[_0x8b13('0x40')]({'plain':!![]});_0x2f4e7f[_0x8b13('0x58')][_0x8b13('0x59')]=_0x492f7d;return db['MailMessage'][_0x8b13('0x5a')]({'body':_0x1012eb[_0x8b13('0x2a')][_0x8b13('0x2a')],'MailAccountId':_0x1012eb[_0x8b13('0x38')]['id'],'MailInteractionId':_0x37a243['id'],'direction':'in','ContactId':_0x2f4e7f['contact']['id'],'messageId':_0x1012eb[_0x8b13('0x2a')][_0x8b13('0x18')]['messageId'],'from':_0x1012eb[_0x8b13('0x2a')][_0x8b13('0x18')][_0x8b13('0x33')],'to':_0x1012eb[_0x8b13('0x2a')][_0x8b13('0x18')]['to'],'cc':_0x1012eb[_0x8b13('0x2a')][_0x8b13('0x18')]['cc'],'subject':_0x1012eb[_0x8b13('0x2a')][_0x8b13('0x18')][_0x8b13('0x5b')],'attach':_0x1012eb[_0x8b13('0x2a')][_0x8b13('0x18')][_0x8b13('0x50')],'Attachments':_0x1012eb[_0x8b13('0x2a')]['message'][_0x8b13('0x5c')],'originTo':_0x1012eb['body'][_0x8b13('0x18')][_0x8b13('0x5d')],'originCc':_0x1012eb[_0x8b13('0x2a')][_0x8b13('0x18')]['originCc'],'bcc':_0x1012eb['body'][_0x8b13('0x18')][_0x8b13('0x5e')],'ChatWebsiteId':_0x1012eb['body'][_0x8b13('0x18')][_0x8b13('0x5f')]||null,'originChannel':_0x1012eb[_0x8b13('0x2a')][_0x8b13('0x18')][_0x8b13('0x60')]||_0x8b13('0x61'),'ChatOfflineMessageId':_0x1012eb[_0x8b13('0x2a')][_0x8b13('0x18')][_0x8b13('0x62')]||null},{'include':[{'model':db[_0x8b13('0x63')],'as':'Attachments'}]});})[_0x8b13('0x10')](function(_0x2e7477){_0x2f4e7f['message']=_0x2e7477;if(!_0x2f4e7f[_0x8b13('0x58')][_0x8b13('0x64')]){return;}return db['User'][_0x8b13('0x26')]({'attributes':['id',_0x8b13('0x65')],'where':{'id':_0x2f4e7f[_0x8b13('0x58')][_0x8b13('0x64')]}});})[_0x8b13('0x10')](function(_0xe81c2e){if(_0xe81c2e){_0x2f4e7f[_0x8b13('0x43')][_0x8b13('0x66')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0xe81c2e[_0x8b13('0x65')]+','+(_0x2f4e7f[_0x8b13('0x38')][_0x8b13('0x67')]||0xa),'interval':'*,*,*,*'});}if(!_0x2f4e7f[_0x8b13('0x58')]['queueId']){return;}return db[_0x8b13('0x68')][_0x8b13('0x26')]({'attributes':['id',_0x8b13('0x65')],'where':{'id':_0x2f4e7f[_0x8b13('0x58')][_0x8b13('0x69')]}});})[_0x8b13('0x10')](function(_0x41cefe){if(_0x41cefe){_0x2f4e7f[_0x8b13('0x43')][_0x8b13('0x66')]({'id':0x0,'priority':0x1,'app':_0x8b13('0x6a'),'appdata':_0x41cefe['name']+','+(_0x2f4e7f[_0x8b13('0x38')][_0x8b13('0x6b')]||0x12c),'interval':_0x8b13('0x6c')});}return respondWithRpcPromise(_0x8b13('0x6d'),_0x8b13('0x6e'),_0x2f4e7f);})[_0x8b13('0x10')](function(_0x2c69f5){_0x35c1d6(_0x2c69f5);})[_0x8b13('0x1b')](function(_0x5cb836){_0x81b931(_0x41d710[_0x8b13('0x17')](0x1f4,_0x5cb836[_0x8b13('0x18')]));});});};