Built motion from commit (unavailable).|2.4.17
[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 _0x1782=['push','length','close','autoclose','defaults','create','contact','messageId','attach','format','MailInteraction','MailMessage','Messages','inReplyTo','Contact\x20not\x20found','spread','subject','YYYY-MM-DD\x20HH:mm:ss','interaction','created','originCc','Attachment','Attachments','UserId','name','unshift','startRouting','lodash','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','client','http','localhost','socket.io-emitter','redis','./mailAccount.socket','register','request','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','GetMailAccount','MailAccount','options','raw','where','attributes','limit','include','map','model','find','ShowMailAccount','NotifyMailAccount','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','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','CmList','List','Contacts','DESC','Applications','MailServerOut','Smtp','get','applications','list','orderBy','priority','asc'];(function(_0x334599,_0x4b1cfa){var _0x4cdff2=function(_0x297be7){while(--_0x297be7){_0x334599['push'](_0x334599['shift']());}};_0x4cdff2(++_0x4b1cfa);}(_0x1782,0x13e));var _0x2178=function(_0x1614ee,_0x487233){_0x1614ee=_0x1614ee-0x0;var _0x46d6f8=_0x1782[_0x1614ee];return _0x46d6f8;};'use strict';var _=require(_0x2178('0x0'));var util=require('util');var moment=require(_0x2178('0x1'));var BPromise=require(_0x2178('0x2'));var rs=require(_0x2178('0x3'));var fs=require('fs');var Redis=require(_0x2178('0x4'));var db=require(_0x2178('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x2178('0x6'))(_0x2178('0x7'));var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x2178('0x8')][_0x2178('0x9')]({'port':0x232c});config['redis']=_['defaults'](config['redis'],{'host':_0x2178('0xa'),'port':0x18eb});var socket=require(_0x2178('0xb'))(new Redis(config[_0x2178('0xc')]));require(_0x2178('0xd'))[_0x2178('0xe')](socket);function respondWithRpcPromise(_0x5ac52e,_0x5119ea,_0x380ab6){return new BPromise(function(_0x201b7b,_0x33a201){return client[_0x2178('0xf')](_0x5ac52e,_0x380ab6)[_0x2178('0x10')](function(_0x2de258){logger[_0x2178('0x11')](_0x2178('0x12'),_0x5119ea,_0x2178('0x13'));logger[_0x2178('0x14')]('MailAccount,\x20%s,\x20%s,\x20%s',_0x5119ea,_0x2178('0x13'),JSON[_0x2178('0x15')](_0x2de258));if(_0x2de258['error']){if(_0x2de258[_0x2178('0x16')][_0x2178('0x17')]===0x1f4){logger[_0x2178('0x16')](_0x2178('0x12'),_0x5119ea,_0x2de258[_0x2178('0x16')]['message']);return _0x33a201(_0x2de258['error']['message']);}logger[_0x2178('0x16')]('MailAccount,\x20%s,\x20%s',_0x5119ea,_0x2de258[_0x2178('0x16')][_0x2178('0x18')]);return _0x201b7b(_0x2de258['error']['message']);}else{logger[_0x2178('0x11')](_0x2178('0x12'),_0x5119ea,'request\x20sent');_0x201b7b(_0x2de258[_0x2178('0x19')][_0x2178('0x18')]);}})[_0x2178('0x1a')](function(_0x3a6493){logger[_0x2178('0x16')](_0x2178('0x12'),_0x5119ea,_0x3a6493);_0x33a201(_0x3a6493);});});}exports[_0x2178('0x1b')]=function(_0x1833be){var _0x3e308b=this;return new Promise(function(_0x2cb878,_0x1d2dd5){return db[_0x2178('0x1c')]['findAll']({'raw':_0x1833be[_0x2178('0x1d')]?_0x1833be[_0x2178('0x1d')][_0x2178('0x1e')]===undefined?!![]:![]:!![],'where':_0x1833be[_0x2178('0x1d')]?_0x1833be[_0x2178('0x1d')][_0x2178('0x1f')]||null:null,'attributes':_0x1833be[_0x2178('0x1d')]?_0x1833be[_0x2178('0x1d')][_0x2178('0x20')]||null:null,'limit':_0x1833be[_0x2178('0x1d')]?_0x1833be[_0x2178('0x1d')][_0x2178('0x21')]||null:null,'include':_0x1833be[_0x2178('0x1d')]?_0x1833be[_0x2178('0x1d')][_0x2178('0x22')]?_[_0x2178('0x23')](_0x1833be[_0x2178('0x1d')][_0x2178('0x22')],function(_0x27179c){return{'model':db[_0x27179c[_0x2178('0x24')]],'as':_0x27179c['as'],'attributes':_0x27179c[_0x2178('0x20')],'include':_0x27179c[_0x2178('0x22')]?_[_0x2178('0x23')](_0x27179c['include'],function(_0x403087){return{'model':db[_0x403087[_0x2178('0x24')]],'as':_0x403087['as'],'attributes':_0x403087['attributes'],'include':_0x403087['include']?_[_0x2178('0x23')](_0x403087['include'],function(_0xffcd00){return{'model':db[_0xffcd00[_0x2178('0x24')]],'as':_0xffcd00['as'],'attributes':_0xffcd00[_0x2178('0x20')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x50f596){logger[_0x2178('0x11')](_0x2178('0x1b'),_0x1833be);logger[_0x2178('0x14')]('GetMailAccount',_0x1833be,JSON['stringify'](_0x50f596));_0x2cb878(_0x50f596);})[_0x2178('0x1a')](function(_0x22df8a){logger[_0x2178('0x16')](_0x2178('0x1b'),_0x22df8a[_0x2178('0x18')],_0x1833be);_0x1d2dd5(_0x3e308b[_0x2178('0x16')](0x1f4,_0x22df8a[_0x2178('0x18')]));});});};exports['ShowMailAccount']=function(_0x84b7a5){var _0x3a8d6a=this;return new Promise(function(_0x4e67f7,_0x4332ac){return db[_0x2178('0x1c')][_0x2178('0x25')]({'raw':_0x84b7a5[_0x2178('0x1d')]?_0x84b7a5['options'][_0x2178('0x1e')]===undefined?!![]:![]:!![],'where':_0x84b7a5['options']?_0x84b7a5['options'][_0x2178('0x1f')]||null:null,'attributes':_0x84b7a5[_0x2178('0x1d')]?_0x84b7a5[_0x2178('0x1d')][_0x2178('0x20')]||null:null,'include':_0x84b7a5[_0x2178('0x1d')]?_0x84b7a5[_0x2178('0x1d')][_0x2178('0x22')]?_['map'](_0x84b7a5[_0x2178('0x1d')]['include'],function(_0x3f063a){return{'model':db[_0x3f063a[_0x2178('0x24')]],'as':_0x3f063a['as'],'attributes':_0x3f063a['attributes'],'include':_0x3f063a[_0x2178('0x22')]?_[_0x2178('0x23')](_0x3f063a[_0x2178('0x22')],function(_0x3a4e5d){return{'model':db[_0x3a4e5d[_0x2178('0x24')]],'as':_0x3a4e5d['as'],'attributes':_0x3a4e5d[_0x2178('0x20')],'include':_0x3a4e5d[_0x2178('0x22')]?_['map'](_0x3a4e5d['include'],function(_0x5c91a5){return{'model':db[_0x5c91a5['model']],'as':_0x5c91a5['as'],'attributes':_0x5c91a5[_0x2178('0x20')]};}):[]};}):[]};}):[]:[]})[_0x2178('0x10')](function(_0x43a5fb){logger[_0x2178('0x11')](_0x2178('0x26'),_0x84b7a5);logger['debug']('ShowMailAccount',_0x84b7a5,JSON['stringify'](_0x43a5fb));_0x4e67f7(_0x43a5fb);})['catch'](function(_0x99f039){logger[_0x2178('0x16')](_0x2178('0x26'),_0x99f039['message'],_0x84b7a5);_0x4332ac(_0x3a8d6a[_0x2178('0x16')](0x1f4,_0x99f039[_0x2178('0x18')]));});});};exports[_0x2178('0x27')]=function(_0x165167){var _0x2ff473=this;return new Promise(function(_0xa6b7d2,_0x1b31cd){var _0x2730c6={'body':_0x165167[_0x2178('0x28')],'channel':_0x2178('0x29')};var _0x4656bd=_['difference'](_[_0x2178('0x2a')](db[_0x2178('0x2b')][_0x2178('0x2c')]),[_0x2178('0x2d'),_0x2178('0x2e'),'CompanyId',_0x2178('0x2f')]);var _0x2e1b35=![];if(_0x165167[_0x2178('0x28')]['id']){delete _0x165167[_0x2178('0x28')]['id'];}if(_[_0x2178('0x30')](_0x165167[_0x2178('0x28')][_0x2178('0x31')])){return _0x1b31cd(_0x2ff473[_0x2178('0x16')](0x1f4,_0x2178('0x32')));}if(_[_0x2178('0x30')](_0x165167[_0x2178('0x28')]['body'])||_0x165167[_0x2178('0x28')]['body']===''){return _0x1b31cd(_0x2ff473[_0x2178('0x16')](0x1f4,_0x2178('0x33')));}if(_[_0x2178('0x30')](_0x165167[_0x2178('0x28')][_0x2178('0x34')])){return _0x1b31cd(_0x2ff473[_0x2178('0x16')](0x1f4,_0x2178('0x35')+_0x4656bd));}if(!_[_0x2178('0x36')](_0x4656bd,_0x165167['body'][_0x2178('0x34')])){return _0x1b31cd(_0x2ff473[_0x2178('0x16')](0x1f4,_0x2178('0x37')+_0x4656bd));}var _0xf69d6={};_0xf69d6[_0x165167[_0x2178('0x28')][_0x2178('0x34')]]=_0x165167[_0x2178('0x28')][_0x2178('0x31')];return db[_0x2178('0x1c')][_0x2178('0x25')]({'where':{'id':_0x165167[_0x2178('0x38')]['id']},'include':[{'model':db[_0x2178('0x39')],'as':_0x2178('0x3a'),'include':[{'model':db[_0x2178('0x2b')],'as':_0x2178('0x3b'),'where':_0xf69d6,'limit':0x1,'order':[['updatedAt',_0x2178('0x3c')]]}]},{'model':db['MailApplication'],'as':_0x2178('0x3d')},{'model':db[_0x2178('0x3e')],'as':_0x2178('0x3f')}]})['then'](function(_0x3b63f0){if(_0x3b63f0&&_0x3b63f0[_0x2178('0x3a')]){var _0x2f7c21=_0x3b63f0[_0x2178('0x40')]({'plain':!![]});_0x2730c6[_0x2178('0x38')]=_['omit'](_0x2f7c21,[_0x2178('0x3d'),_0x2178('0x3a')]);_0x2730c6[_0x2178('0x41')]=_0x2f7c21[_0x2178('0x3d')];_0x2730c6[_0x2178('0x42')]=_0x2f7c21['List'];_0x2730c6['applications']=_[_0x2178('0x43')](_0x2730c6[_0x2178('0x41')],[_0x2178('0x44')],[_0x2178('0x45')]);if(_0x2730c6['account']&&_0x2730c6['account']['autoclose']){_0x2730c6[_0x2178('0x41')][_0x2178('0x46')]({'id':0x0,'priority':_0x2730c6[_0x2178('0x41')][_0x2178('0x47')]+0x1,'app':_0x2178('0x48'),'appdata':_0x2178('0x49'),'interval':'*,*,*,*'});}if(_0x2730c6['account'][_0x2178('0x3d')]){delete _0x2730c6[_0x2178('0x38')]['Applications'];}if(_0x2730c6['account']['List']){delete _0x2730c6[_0x2178('0x38')][_0x2178('0x3a')];}if(_0x2f7c21[_0x2178('0x3a')][_0x2178('0x3b')]['length']){return _0x2f7c21['List'][_0x2178('0x3b')][0x0];}var _0x1f6a69=_[_0x2178('0x4a')](_0x165167[_0x2178('0x28')],{'firstName':_0x165167[_0x2178('0x28')][_0x2178('0x31')],'ListId':_0x2f7c21['ListId']});_0x1f6a69[_0x165167[_0x2178('0x28')]['mapKey']]=_0x165167['body']['from'];return db['CmContact'][_0x2178('0x4b')](_0x1f6a69);}else{throw new Error('List\x20not\x20found');}})[_0x2178('0x10')](function(_0x22b91f){_0x2730c6[_0x2178('0x4c')]=_0x22b91f;if(_0x22b91f){if(!_0x165167[_0x2178('0x28')][_0x2178('0x18')][_0x2178('0x4d')]){_0x165167[_0x2178('0x28')]['message'][_0x2178('0x4d')]=rs['generate']()+'\x20'+_0x165167['body'][_0x2178('0x18')][_0x2178('0x31')];}var _0x350ef5={'ContactId':_0x22b91f['id'],'MailAccountId':_0x165167[_0x2178('0x38')]['id'],'inReplyTo':_0x165167[_0x2178('0x28')]['message']['messageId'],'to':_0x165167[_0x2178('0x28')][_0x2178('0x18')][_0x2178('0x31')],'cc':_0x165167[_0x2178('0x28')]['message']['cc'],'subject':_0x165167[_0x2178('0x28')][_0x2178('0x18')]['subject'],'attach':_0x165167['body'][_0x2178('0x18')][_0x2178('0x4e')],'lastMsgAt':moment()[_0x2178('0x4f')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in','lastMsgBody':_0x165167['body'][_0x2178('0x28')]};return db[_0x2178('0x50')][_0x2178('0x25')]({'where':{'closed':![],'MailAccountId':_0x165167[_0x2178('0x38')]['id']},'include':[{'model':db[_0x2178('0x51')],'as':_0x2178('0x52'),'attributes':[_0x2178('0x4d')],'where':{'messageId':_0x165167['body'][_0x2178('0x18')][_0x2178('0x53')]}}]})[_0x2178('0x10')](function(_0x5d7991){if(_0x5d7991){return[_0x5d7991,![]];}return db[_0x2178('0x50')][_0x2178('0x4b')](_0x350ef5)[_0x2178('0x10')](function(_0xbf22f2){return[_0xbf22f2,!![]];});});}else{throw new Error(_0x2178('0x54'));}})[_0x2178('0x55')](function(_0x446caa,_0x2d1e88){if(_0x446caa){_0x2e1b35=_0x2d1e88;if(!_0x2d1e88){return _0x446caa['update']({'inReplyTo':_0x165167['body'][_0x2178('0x18')]['messageId'],'to':_0x165167[_0x2178('0x28')][_0x2178('0x18')][_0x2178('0x31')],'cc':_0x165167[_0x2178('0x28')][_0x2178('0x18')]['cc'],'subject':_0x165167['body'][_0x2178('0x18')][_0x2178('0x56')],'attach':_0x446caa[_0x2178('0x4e')]?_0x446caa[_0x2178('0x4e')]:_0x165167[_0x2178('0x28')]['message'][_0x2178('0x4e')],'substatus':null,'substatusAt':moment()[_0x2178('0x4f')](_0x2178('0x57')),'lastMsgAt':moment()['format'](_0x2178('0x57')),'lastMsgDirection':'in','lastMsgBody':_0x165167['body'][_0x2178('0x28')]});}else{return _0x446caa;}}})[_0x2178('0x10')](function(_0x26540f){_0x2730c6[_0x2178('0x58')]=_0x26540f[_0x2178('0x40')]({'plain':!![]});_0x2730c6[_0x2178('0x58')][_0x2178('0x59')]=_0x2e1b35;return db[_0x2178('0x51')]['create']({'body':_0x165167['body'][_0x2178('0x28')],'MailAccountId':_0x165167[_0x2178('0x38')]['id'],'MailInteractionId':_0x26540f['id'],'direction':'in','ContactId':_0x2730c6['contact']['id'],'messageId':_0x165167['body'][_0x2178('0x18')]['messageId'],'from':_0x165167['body'][_0x2178('0x18')][_0x2178('0x31')],'to':_0x165167[_0x2178('0x28')][_0x2178('0x18')]['to'],'cc':_0x165167[_0x2178('0x28')][_0x2178('0x18')]['cc'],'subject':_0x165167[_0x2178('0x28')][_0x2178('0x18')][_0x2178('0x56')],'attach':_0x165167[_0x2178('0x28')][_0x2178('0x18')][_0x2178('0x4e')],'Attachments':_0x165167[_0x2178('0x28')][_0x2178('0x18')]['attachments'],'originTo':_0x165167[_0x2178('0x28')][_0x2178('0x18')]['originTo'],'originCc':_0x165167[_0x2178('0x28')]['message'][_0x2178('0x5a')],'bcc':_0x165167[_0x2178('0x28')][_0x2178('0x18')]['bcc']},{'include':[{'model':db[_0x2178('0x5b')],'as':_0x2178('0x5c')}]});})['then'](function(_0x11c825){_0x2730c6[_0x2178('0x18')]=_0x11c825;if(_0x2730c6[_0x2178('0x58')][_0x2178('0x5d')]){return db['User'][_0x2178('0x25')]({'attributes':['id',_0x2178('0x5e')],'where':{'id':_0x2730c6['interaction'][_0x2178('0x5d')]}})[_0x2178('0x10')](function(_0x23d610){if(_0x23d610){_0x2730c6[_0x2178('0x41')][_0x2178('0x5f')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x23d610['name']+','+(_0x2730c6[_0x2178('0x38')]['waitForTheAssignedAgent']||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise('Start',_0x2178('0x60'),_0x2730c6);});}return respondWithRpcPromise('Start',_0x2178('0x60'),_0x2730c6);})[_0x2178('0x10')](function(_0x66e500){_0xa6b7d2(_0x66e500);})[_0x2178('0x1a')](function(_0x1d77e4){_0x1b31cd(_0x2ff473[_0x2178('0x16')](0x1f4,_0x1d77e4['message']));});});};