Built motion from commit ffdca78c.|2.6.24
[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 _0x8f9d=['generate','attach','format','MailMessage','Messages','inReplyTo','MailInteraction','Contact\x20not\x20found','spread','update','subject','YYYY-MM-DD\x20HH:mm:ss','interaction','created','attachments','originTo','originCc','bcc','ChatWebsiteId','originChannel','Email','ChatOfflineMessageId','Attachments','User','name','UserId','queueId','queue','waitForTheAssignedQueue','Start','startRouting','lodash','bluebird','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','register','request','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','result','catch','MailAccount','findAll','options','raw','where','attributes','limit','include','map','model','GetMailAccount','ShowMailAccount','find','smtp','setDataValue','smtpOptions','getSmtpOptions','debug','NotifyMailAccount','difference','keys','CmContact','rawAttributes','createdAt','updatedAt','CompanyId','ListId','body','isNil','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','from','account','CmList','List','DESC','MailApplication','Applications','Smtp','get','omit','list','applications','orderBy','priority','asc','autoclose','push','length','close','*,*,*,*','Contacts','create','List\x20not\x20found','contact','messageId'];(function(_0xfa6ca2,_0x83d7){var _0x5b9d02=function(_0x269d79){while(--_0x269d79){_0xfa6ca2['push'](_0xfa6ca2['shift']());}};_0x5b9d02(++_0x83d7);}(_0x8f9d,0x93));var _0xd8f9=function(_0x321bb2,_0x202794){_0x321bb2=_0x321bb2-0x0;var _0x9c12ed=_0x8f9d[_0x321bb2];return _0x9c12ed;};'use strict';var _=require(_0xd8f9('0x0'));var moment=require('moment');var BPromise=require(_0xd8f9('0x1'));var rs=require('randomstring');var Redis=require(_0xd8f9('0x2'));var db=require(_0xd8f9('0x3'))['db'];var logger=require(_0xd8f9('0x4'))(_0xd8f9('0x5'));var config=require(_0xd8f9('0x6'));var jayson=require(_0xd8f9('0x7'));var client=jayson[_0xd8f9('0x8')]['http']({'port':0x232c});config[_0xd8f9('0x9')]=_[_0xd8f9('0xa')](config[_0xd8f9('0x9')],{'host':_0xd8f9('0xb'),'port':0x18eb});var socket=require(_0xd8f9('0xc'))(new Redis(config['redis']));require(_0xd8f9('0xd'))[_0xd8f9('0xe')](socket);function respondWithRpcPromise(_0x4957ae,_0x33c31e,_0x4ac0ea){return new BPromise(function(_0x5caee9,_0x421aca){return client[_0xd8f9('0xf')](_0x4957ae,_0x4ac0ea)[_0xd8f9('0x10')](function(_0x379359){logger[_0xd8f9('0x11')](_0xd8f9('0x12'),_0x33c31e,_0xd8f9('0x13'));logger['debug'](_0xd8f9('0x14'),_0x33c31e,'request\x20sent',JSON[_0xd8f9('0x15')](_0x379359));if(_0x379359[_0xd8f9('0x16')]){if(_0x379359[_0xd8f9('0x16')]['code']===0x1f4){logger[_0xd8f9('0x16')](_0xd8f9('0x12'),_0x33c31e,_0x379359[_0xd8f9('0x16')][_0xd8f9('0x17')]);return _0x421aca(_0x379359['error'][_0xd8f9('0x17')]);}logger[_0xd8f9('0x16')](_0xd8f9('0x12'),_0x33c31e,_0x379359[_0xd8f9('0x16')][_0xd8f9('0x17')]);return _0x5caee9(_0x379359[_0xd8f9('0x16')][_0xd8f9('0x17')]);}else{logger['info']('MailAccount,\x20%s,\x20%s',_0x33c31e,_0xd8f9('0x13'));_0x5caee9(_0x379359[_0xd8f9('0x18')]['message']);}})[_0xd8f9('0x19')](function(_0x47bdea){logger[_0xd8f9('0x16')]('MailAccount,\x20%s,\x20%s',_0x33c31e,_0x47bdea);_0x421aca(_0x47bdea);});});}exports['GetMailAccount']=function(_0x58956e){var _0xa3b0cd=this;return new Promise(function(_0x5d094d,_0x37a252){return db[_0xd8f9('0x1a')][_0xd8f9('0x1b')]({'raw':_0x58956e[_0xd8f9('0x1c')]?_0x58956e[_0xd8f9('0x1c')][_0xd8f9('0x1d')]===undefined?!![]:![]:!![],'where':_0x58956e['options']?_0x58956e[_0xd8f9('0x1c')][_0xd8f9('0x1e')]||null:null,'attributes':_0x58956e[_0xd8f9('0x1c')]?_0x58956e[_0xd8f9('0x1c')][_0xd8f9('0x1f')]||null:null,'limit':_0x58956e[_0xd8f9('0x1c')]?_0x58956e['options'][_0xd8f9('0x20')]||null:null,'include':_0x58956e[_0xd8f9('0x1c')]?_0x58956e[_0xd8f9('0x1c')][_0xd8f9('0x21')]?_[_0xd8f9('0x22')](_0x58956e['options'][_0xd8f9('0x21')],function(_0x1d6796){return{'model':db[_0x1d6796[_0xd8f9('0x23')]],'as':_0x1d6796['as'],'attributes':_0x1d6796[_0xd8f9('0x1f')],'include':_0x1d6796[_0xd8f9('0x21')]?_[_0xd8f9('0x22')](_0x1d6796[_0xd8f9('0x21')],function(_0x461880){return{'model':db[_0x461880['model']],'as':_0x461880['as'],'attributes':_0x461880[_0xd8f9('0x1f')],'include':_0x461880[_0xd8f9('0x21')]?_[_0xd8f9('0x22')](_0x461880['include'],function(_0x5bd32e){return{'model':db[_0x5bd32e['model']],'as':_0x5bd32e['as'],'attributes':_0x5bd32e[_0xd8f9('0x1f')]};}):[]};}):[]};}):[]:[]})[_0xd8f9('0x10')](function(_0x5050a4){logger[_0xd8f9('0x11')](_0xd8f9('0x24'),_0x58956e);logger['debug'](_0xd8f9('0x24'),_0x58956e,JSON[_0xd8f9('0x15')](_0x5050a4));_0x5d094d(_0x5050a4);})[_0xd8f9('0x19')](function(_0x4caa27){logger[_0xd8f9('0x16')]('GetMailAccount',_0x4caa27[_0xd8f9('0x17')],_0x58956e);_0x37a252(_0xa3b0cd[_0xd8f9('0x16')](0x1f4,_0x4caa27['message']));});});};exports[_0xd8f9('0x25')]=function(_0x54b8c1){var _0x340f0a=this;return new Promise(function(_0x45f8bf,_0x26b7ff){return db[_0xd8f9('0x1a')][_0xd8f9('0x26')]({'raw':_0x54b8c1[_0xd8f9('0x1c')]?_0x54b8c1[_0xd8f9('0x1c')]['raw']===undefined?!![]:![]:!![],'where':_0x54b8c1[_0xd8f9('0x1c')]?_0x54b8c1['options']['where']||null:null,'attributes':_0x54b8c1['options']?_0x54b8c1['options'][_0xd8f9('0x1f')]||null:null,'include':_0x54b8c1[_0xd8f9('0x1c')]?_0x54b8c1[_0xd8f9('0x1c')][_0xd8f9('0x21')]?_[_0xd8f9('0x22')](_0x54b8c1['options']['include'],function(_0x1d5c7d){return{'model':db[_0x1d5c7d[_0xd8f9('0x23')]],'as':_0x1d5c7d['as'],'attributes':_0x1d5c7d['attributes'],'include':_0x1d5c7d[_0xd8f9('0x21')]?_[_0xd8f9('0x22')](_0x1d5c7d[_0xd8f9('0x21')],function(_0x5cd7a7){return{'model':db[_0x5cd7a7['model']],'as':_0x5cd7a7['as'],'attributes':_0x5cd7a7['attributes'],'include':_0x5cd7a7['include']?_[_0xd8f9('0x22')](_0x5cd7a7[_0xd8f9('0x21')],function(_0x324541){return{'model':db[_0x324541[_0xd8f9('0x23')]],'as':_0x324541['as'],'attributes':_0x324541[_0xd8f9('0x1f')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x3333ea){if(_0x54b8c1[_0xd8f9('0x1c')][_0xd8f9('0x27')]===!![])_0x3333ea[_0xd8f9('0x28')](_0xd8f9('0x29'),_0x3333ea[_0xd8f9('0x2a')]());logger[_0xd8f9('0x11')](_0xd8f9('0x25'),_0x54b8c1);logger[_0xd8f9('0x2b')](_0xd8f9('0x25'),_0x54b8c1,JSON[_0xd8f9('0x15')](_0x3333ea));_0x45f8bf(_0x3333ea);})['catch'](function(_0x310836){logger[_0xd8f9('0x16')](_0xd8f9('0x25'),_0x310836[_0xd8f9('0x17')],_0x54b8c1);_0x26b7ff(_0x340f0a['error'](0x1f4,_0x310836[_0xd8f9('0x17')]));});});};exports[_0xd8f9('0x2c')]=function(_0x8d41c4){var _0x32159f=this;return new Promise(function(_0x1ab301,_0x23330a){var _0x597357={'body':_0x8d41c4['body'],'channel':'mail'};var _0x3c6643=_[_0xd8f9('0x2d')](_[_0xd8f9('0x2e')](db[_0xd8f9('0x2f')][_0xd8f9('0x30')]),[_0xd8f9('0x31'),_0xd8f9('0x32'),_0xd8f9('0x33'),_0xd8f9('0x34')]);var _0x5ed1b7=![];if(_0x8d41c4['body']['id']){delete _0x8d41c4[_0xd8f9('0x35')]['id'];}if(_[_0xd8f9('0x36')](_0x8d41c4[_0xd8f9('0x35')]['from'])){return _0x23330a(_0x32159f['error'](0x1f4,_0xd8f9('0x37')));}if(_[_0xd8f9('0x36')](_0x8d41c4[_0xd8f9('0x35')]['body'])||_0x8d41c4[_0xd8f9('0x35')][_0xd8f9('0x35')]===''){return _0x23330a(_0x32159f[_0xd8f9('0x16')](0x1f4,_0xd8f9('0x38')));}if(_[_0xd8f9('0x36')](_0x8d41c4[_0xd8f9('0x35')][_0xd8f9('0x39')])){return _0x23330a(_0x32159f[_0xd8f9('0x16')](0x1f4,_0xd8f9('0x3a')+_0x3c6643));}if(!_['includes'](_0x3c6643,_0x8d41c4['body']['mapKey'])){return _0x23330a(_0x32159f[_0xd8f9('0x16')](0x1f4,_0xd8f9('0x3b')+_0x3c6643));}var _0x2c2396={};_0x2c2396[_0x8d41c4[_0xd8f9('0x35')][_0xd8f9('0x39')]]=_0x8d41c4[_0xd8f9('0x35')][_0xd8f9('0x3c')];return db[_0xd8f9('0x1a')][_0xd8f9('0x26')]({'where':{'id':_0x8d41c4[_0xd8f9('0x3d')]['id']},'include':[{'model':db[_0xd8f9('0x3e')],'as':_0xd8f9('0x3f'),'include':[{'model':db[_0xd8f9('0x2f')],'as':'Contacts','where':_0x2c2396,'limit':0x1,'order':[[_0xd8f9('0x32'),_0xd8f9('0x40')]]}]},{'model':db[_0xd8f9('0x41')],'as':_0xd8f9('0x42')},{'model':db['MailServerOut'],'as':_0xd8f9('0x43'),'include':[{'model':db['CloudProvider'],'as':'CloudProvider'}]}]})[_0xd8f9('0x10')](function(_0x14e622){if(_0x14e622&&_0x14e622[_0xd8f9('0x3f')]){var _0x1361c4=_0x14e622[_0xd8f9('0x44')]({'plain':!![]});_0x597357[_0xd8f9('0x3d')]=_[_0xd8f9('0x45')](_0x1361c4,[_0xd8f9('0x42'),_0xd8f9('0x3f')]);_0x597357[_0xd8f9('0x3d')]['smtpOptions']=_0x14e622['getSmtpOptions']();_0x597357['applications']=_0x1361c4[_0xd8f9('0x42')];_0x597357[_0xd8f9('0x46')]=_0x1361c4['List'];_0x597357[_0xd8f9('0x47')]=_[_0xd8f9('0x48')](_0x597357[_0xd8f9('0x47')],[_0xd8f9('0x49')],[_0xd8f9('0x4a')]);if(_0x597357[_0xd8f9('0x3d')]&&_0x597357[_0xd8f9('0x3d')][_0xd8f9('0x4b')]){_0x597357['applications'][_0xd8f9('0x4c')]({'id':0x0,'priority':_0x597357[_0xd8f9('0x47')][_0xd8f9('0x4d')]+0x1,'app':_0xd8f9('0x4e'),'appdata':_0xd8f9('0x4b'),'interval':_0xd8f9('0x4f')});}if(_0x597357[_0xd8f9('0x3d')][_0xd8f9('0x42')]){delete _0x597357[_0xd8f9('0x3d')][_0xd8f9('0x42')];}if(_0x597357[_0xd8f9('0x3d')]['List']){delete _0x597357[_0xd8f9('0x3d')][_0xd8f9('0x3f')];}if(_0x1361c4[_0xd8f9('0x3f')][_0xd8f9('0x50')]['length']){return _0x1361c4[_0xd8f9('0x3f')][_0xd8f9('0x50')][0x0];}var _0x3ac9f6=_['defaults'](_0x8d41c4[_0xd8f9('0x35')],{'firstName':_0x8d41c4[_0xd8f9('0x35')][_0xd8f9('0x3c')],'ListId':_0x1361c4[_0xd8f9('0x34')]});_0x3ac9f6[_0x8d41c4['body'][_0xd8f9('0x39')]]=_0x8d41c4[_0xd8f9('0x35')]['from'];return db['CmContact'][_0xd8f9('0x51')](_0x3ac9f6);}else{throw new Error(_0xd8f9('0x52'));}})[_0xd8f9('0x10')](function(_0x5043f5){_0x597357[_0xd8f9('0x53')]=_0x5043f5;if(_0x5043f5){if(!_0x8d41c4['body'][_0xd8f9('0x17')]['messageId']){_0x8d41c4[_0xd8f9('0x35')][_0xd8f9('0x17')][_0xd8f9('0x54')]=rs[_0xd8f9('0x55')]()+'\x20'+_0x8d41c4['body'][_0xd8f9('0x17')][_0xd8f9('0x3c')];}var _0x10aa0a={'ContactId':_0x5043f5['id'],'MailAccountId':_0x8d41c4[_0xd8f9('0x3d')]['id'],'inReplyTo':_0x8d41c4[_0xd8f9('0x35')][_0xd8f9('0x17')][_0xd8f9('0x54')],'to':_0x8d41c4[_0xd8f9('0x35')]['message'][_0xd8f9('0x3c')],'cc':_0x8d41c4[_0xd8f9('0x35')][_0xd8f9('0x17')]['cc'],'subject':_0x8d41c4[_0xd8f9('0x35')][_0xd8f9('0x17')]['subject'],'attach':_0x8d41c4['body']['message'][_0xd8f9('0x56')],'lastMsgAt':moment()[_0xd8f9('0x57')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in'};return db['MailInteraction'][_0xd8f9('0x26')]({'where':{'closed':![],'MailAccountId':_0x8d41c4[_0xd8f9('0x3d')]['id']},'include':[{'model':db[_0xd8f9('0x58')],'as':_0xd8f9('0x59'),'attributes':[_0xd8f9('0x54')],'where':{'messageId':_0x8d41c4[_0xd8f9('0x35')]['message'][_0xd8f9('0x5a')]}}]})[_0xd8f9('0x10')](function(_0x15d4e5){if(_0x15d4e5){return[_0x15d4e5,![]];}return db[_0xd8f9('0x5b')]['create'](_0x10aa0a)[_0xd8f9('0x10')](function(_0x1e7251){return[_0x1e7251,!![]];});});}else{throw new Error(_0xd8f9('0x5c'));}})[_0xd8f9('0x5d')](function(_0xf900a3,_0x156c68){if(_0xf900a3){_0x5ed1b7=_0x156c68;if(!_0x156c68){return _0xf900a3[_0xd8f9('0x5e')]({'inReplyTo':_0x8d41c4[_0xd8f9('0x35')][_0xd8f9('0x17')]['messageId'],'to':_0x8d41c4['body']['message'][_0xd8f9('0x3c')],'cc':_0x8d41c4[_0xd8f9('0x35')][_0xd8f9('0x17')]['cc'],'subject':_0x8d41c4[_0xd8f9('0x35')][_0xd8f9('0x17')][_0xd8f9('0x5f')],'attach':_0xf900a3[_0xd8f9('0x56')]?_0xf900a3[_0xd8f9('0x56')]:_0x8d41c4['body'][_0xd8f9('0x17')]['attach'],'substatus':null,'substatusAt':moment()[_0xd8f9('0x57')](_0xd8f9('0x60')),'lastMsgAt':moment()[_0xd8f9('0x57')](_0xd8f9('0x60')),'lastMsgDirection':'in'});}else{return _0xf900a3;}}})[_0xd8f9('0x10')](function(_0x19b6c0){_0x597357[_0xd8f9('0x61')]=_0x19b6c0[_0xd8f9('0x44')]({'plain':!![]});_0x597357['interaction'][_0xd8f9('0x62')]=_0x5ed1b7;return db['MailMessage'][_0xd8f9('0x51')]({'body':_0x8d41c4['body']['body'],'MailAccountId':_0x8d41c4[_0xd8f9('0x3d')]['id'],'MailInteractionId':_0x19b6c0['id'],'direction':'in','ContactId':_0x597357['contact']['id'],'messageId':_0x8d41c4['body'][_0xd8f9('0x17')][_0xd8f9('0x54')],'from':_0x8d41c4[_0xd8f9('0x35')][_0xd8f9('0x17')][_0xd8f9('0x3c')],'to':_0x8d41c4['body'][_0xd8f9('0x17')]['to'],'cc':_0x8d41c4[_0xd8f9('0x35')]['message']['cc'],'subject':_0x8d41c4[_0xd8f9('0x35')][_0xd8f9('0x17')][_0xd8f9('0x5f')],'attach':_0x8d41c4[_0xd8f9('0x35')]['message'][_0xd8f9('0x56')],'Attachments':_0x8d41c4['body'][_0xd8f9('0x17')][_0xd8f9('0x63')],'originTo':_0x8d41c4[_0xd8f9('0x35')][_0xd8f9('0x17')][_0xd8f9('0x64')],'originCc':_0x8d41c4[_0xd8f9('0x35')][_0xd8f9('0x17')][_0xd8f9('0x65')],'bcc':_0x8d41c4[_0xd8f9('0x35')][_0xd8f9('0x17')][_0xd8f9('0x66')],'ChatWebsiteId':_0x8d41c4[_0xd8f9('0x35')][_0xd8f9('0x17')][_0xd8f9('0x67')]||null,'originChannel':_0x8d41c4[_0xd8f9('0x35')][_0xd8f9('0x17')][_0xd8f9('0x68')]||_0xd8f9('0x69'),'ChatOfflineMessageId':_0x8d41c4['body'][_0xd8f9('0x17')][_0xd8f9('0x6a')]||null},{'include':[{'model':db['Attachment'],'as':_0xd8f9('0x6b')}]});})[_0xd8f9('0x10')](function(_0x3a3e83){_0x597357[_0xd8f9('0x17')]=_0x3a3e83;if(!_0x597357[_0xd8f9('0x61')]['UserId']){return;}return db[_0xd8f9('0x6c')]['find']({'attributes':['id',_0xd8f9('0x6d')],'where':{'id':_0x597357['interaction'][_0xd8f9('0x6e')]}});})[_0xd8f9('0x10')](function(_0x556bb2){if(_0x556bb2){_0x597357[_0xd8f9('0x47')]['unshift']({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x556bb2[_0xd8f9('0x6d')]+','+(_0x597357['account']['waitForTheAssignedAgent']||0xa),'interval':_0xd8f9('0x4f')});}if(!_0x597357['interaction'][_0xd8f9('0x6f')]){return;}return db['MailQueue'][_0xd8f9('0x26')]({'attributes':['id',_0xd8f9('0x6d')],'where':{'id':_0x597357['interaction'][_0xd8f9('0x6f')]}});})[_0xd8f9('0x10')](function(_0x3754bd){if(_0x3754bd){_0x597357[_0xd8f9('0x47')]['unshift']({'id':0x0,'priority':0x1,'app':_0xd8f9('0x70'),'appdata':_0x3754bd[_0xd8f9('0x6d')]+','+(_0x597357[_0xd8f9('0x3d')][_0xd8f9('0x71')]||0x12c),'interval':_0xd8f9('0x4f')});}return respondWithRpcPromise(_0xd8f9('0x72'),_0xd8f9('0x73'),_0x597357);})[_0xd8f9('0x10')](function(_0x56e4b0){_0x1ab301(_0x56e4b0);})[_0xd8f9('0x19')](function(_0x3c0966){_0x23330a(_0x32159f['error'](0x1f4,_0x3c0966['message']));});});};