Built motion from commit 3c2ce842.|2.6.31
[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 _0x2caf=['randomstring','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','defaults','redis','localhost','./mailAccount.socket','register','request','then','info','MailAccount,\x20%s,\x20%s','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','message','request\x20sent','result','catch','GetMailAccount','MailAccount','findAll','options','raw','where','attributes','limit','include','map','model','ShowMailAccount','find','smtp','smtpOptions','getSmtpOptions','NotifyMailAccount','body','difference','keys','CmContact','rawAttributes','createdAt','updatedAt','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','account','List','Contacts','MailApplication','Applications','MailServerOut','CloudProvider','get','applications','list','orderBy','asc','autoclose','push','length','close','*,*,*,*','create','List\x20not\x20found','contact','messageId','subject','attach','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Contact\x20not\x20found','update','format','interaction','attachments','originTo','originCc','bcc','ChatWebsiteId','originChannel','ChatOfflineMessageId','Attachment','UserId','User','agent','name','waitForTheAssignedAgent','queueId','MailQueue','unshift','queue','Start','startRouting'];(function(_0x54ee03,_0x3119c7){var _0x799488=function(_0x8933d1){while(--_0x8933d1){_0x54ee03['push'](_0x54ee03['shift']());}};_0x799488(++_0x3119c7);}(_0x2caf,0x6a));var _0xf2ca=function(_0x539ea9,_0x612408){_0x539ea9=_0x539ea9-0x0;var _0x17dd9d=_0x2caf[_0x539ea9];return _0x17dd9d;};'use strict';var _=require('lodash');var moment=require('moment');var BPromise=require('bluebird');var rs=require(_0xf2ca('0x0'));var Redis=require('ioredis');var db=require(_0xf2ca('0x1'))['db'];var logger=require(_0xf2ca('0x2'))(_0xf2ca('0x3'));var config=require(_0xf2ca('0x4'));var jayson=require(_0xf2ca('0x5'));var client=jayson[_0xf2ca('0x6')][_0xf2ca('0x7')]({'port':0x232c});config['redis']=_[_0xf2ca('0x8')](config[_0xf2ca('0x9')],{'host':_0xf2ca('0xa'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xf2ca('0xb'))[_0xf2ca('0xc')](socket);function respondWithRpcPromise(_0x1177f0,_0x1cf4a0,_0x1c1afd){return new BPromise(function(_0x5be288,_0x1ecd50){return client[_0xf2ca('0xd')](_0x1177f0,_0x1c1afd)[_0xf2ca('0xe')](function(_0x4063e9){logger[_0xf2ca('0xf')](_0xf2ca('0x10'),_0x1cf4a0,'request\x20sent');logger[_0xf2ca('0x11')](_0xf2ca('0x12'),_0x1cf4a0,'request\x20sent',JSON[_0xf2ca('0x13')](_0x4063e9));if(_0x4063e9[_0xf2ca('0x14')]){if(_0x4063e9['error']['code']===0x1f4){logger[_0xf2ca('0x14')]('MailAccount,\x20%s,\x20%s',_0x1cf4a0,_0x4063e9[_0xf2ca('0x14')][_0xf2ca('0x15')]);return _0x1ecd50(_0x4063e9[_0xf2ca('0x14')][_0xf2ca('0x15')]);}logger[_0xf2ca('0x14')](_0xf2ca('0x10'),_0x1cf4a0,_0x4063e9[_0xf2ca('0x14')]['message']);return _0x5be288(_0x4063e9[_0xf2ca('0x14')]['message']);}else{logger[_0xf2ca('0xf')]('MailAccount,\x20%s,\x20%s',_0x1cf4a0,_0xf2ca('0x16'));_0x5be288(_0x4063e9[_0xf2ca('0x17')]['message']);}})[_0xf2ca('0x18')](function(_0x160230){logger[_0xf2ca('0x14')](_0xf2ca('0x10'),_0x1cf4a0,_0x160230);_0x1ecd50(_0x160230);});});}exports[_0xf2ca('0x19')]=function(_0x1ca233){var _0x17eafa=this;return new Promise(function(_0x1548a4,_0x1718e6){return db[_0xf2ca('0x1a')][_0xf2ca('0x1b')]({'raw':_0x1ca233['options']?_0x1ca233[_0xf2ca('0x1c')][_0xf2ca('0x1d')]===undefined?!![]:![]:!![],'where':_0x1ca233[_0xf2ca('0x1c')]?_0x1ca233[_0xf2ca('0x1c')][_0xf2ca('0x1e')]||null:null,'attributes':_0x1ca233[_0xf2ca('0x1c')]?_0x1ca233[_0xf2ca('0x1c')][_0xf2ca('0x1f')]||null:null,'limit':_0x1ca233['options']?_0x1ca233[_0xf2ca('0x1c')][_0xf2ca('0x20')]||null:null,'include':_0x1ca233['options']?_0x1ca233[_0xf2ca('0x1c')][_0xf2ca('0x21')]?_[_0xf2ca('0x22')](_0x1ca233['options']['include'],function(_0xbfcb0b){return{'model':db[_0xbfcb0b[_0xf2ca('0x23')]],'as':_0xbfcb0b['as'],'attributes':_0xbfcb0b[_0xf2ca('0x1f')],'include':_0xbfcb0b[_0xf2ca('0x21')]?_[_0xf2ca('0x22')](_0xbfcb0b[_0xf2ca('0x21')],function(_0x339e10){return{'model':db[_0x339e10[_0xf2ca('0x23')]],'as':_0x339e10['as'],'attributes':_0x339e10['attributes'],'include':_0x339e10[_0xf2ca('0x21')]?_[_0xf2ca('0x22')](_0x339e10[_0xf2ca('0x21')],function(_0x1b36e0){return{'model':db[_0x1b36e0[_0xf2ca('0x23')]],'as':_0x1b36e0['as'],'attributes':_0x1b36e0[_0xf2ca('0x1f')]};}):[]};}):[]};}):[]:[]})[_0xf2ca('0xe')](function(_0xb0ae21){logger[_0xf2ca('0xf')](_0xf2ca('0x19'),_0x1ca233);logger[_0xf2ca('0x11')](_0xf2ca('0x19'),_0x1ca233,JSON[_0xf2ca('0x13')](_0xb0ae21));_0x1548a4(_0xb0ae21);})[_0xf2ca('0x18')](function(_0x2b0649){logger[_0xf2ca('0x14')](_0xf2ca('0x19'),_0x2b0649[_0xf2ca('0x15')],_0x1ca233);_0x1718e6(_0x17eafa[_0xf2ca('0x14')](0x1f4,_0x2b0649['message']));});});};exports[_0xf2ca('0x24')]=function(_0x1e817f){var _0x1c5310=this;return new Promise(function(_0x25066b,_0xb75964){return db[_0xf2ca('0x1a')][_0xf2ca('0x25')]({'raw':_0x1e817f[_0xf2ca('0x1c')]?_0x1e817f[_0xf2ca('0x1c')]['raw']===undefined?!![]:![]:!![],'where':_0x1e817f[_0xf2ca('0x1c')]?_0x1e817f[_0xf2ca('0x1c')][_0xf2ca('0x1e')]||null:null,'attributes':_0x1e817f['options']?_0x1e817f[_0xf2ca('0x1c')]['attributes']||null:null,'include':_0x1e817f[_0xf2ca('0x1c')]?_0x1e817f[_0xf2ca('0x1c')][_0xf2ca('0x21')]?_[_0xf2ca('0x22')](_0x1e817f[_0xf2ca('0x1c')]['include'],function(_0x521b94){return{'model':db[_0x521b94[_0xf2ca('0x23')]],'as':_0x521b94['as'],'attributes':_0x521b94['attributes'],'include':_0x521b94[_0xf2ca('0x21')]?_[_0xf2ca('0x22')](_0x521b94[_0xf2ca('0x21')],function(_0x3152eb){return{'model':db[_0x3152eb[_0xf2ca('0x23')]],'as':_0x3152eb['as'],'attributes':_0x3152eb[_0xf2ca('0x1f')],'include':_0x3152eb[_0xf2ca('0x21')]?_[_0xf2ca('0x22')](_0x3152eb[_0xf2ca('0x21')],function(_0x1ad216){return{'model':db[_0x1ad216[_0xf2ca('0x23')]],'as':_0x1ad216['as'],'attributes':_0x1ad216[_0xf2ca('0x1f')]};}):[]};}):[]};}):[]:[]})[_0xf2ca('0xe')](function(_0x3c8d63){if(_0x1e817f[_0xf2ca('0x1c')][_0xf2ca('0x26')]===!![])_0x3c8d63['setDataValue'](_0xf2ca('0x27'),_0x3c8d63[_0xf2ca('0x28')]());logger[_0xf2ca('0xf')](_0xf2ca('0x24'),_0x1e817f);logger['debug'](_0xf2ca('0x24'),_0x1e817f,JSON['stringify'](_0x3c8d63));_0x25066b(_0x3c8d63);})[_0xf2ca('0x18')](function(_0x33680b){logger[_0xf2ca('0x14')](_0xf2ca('0x24'),_0x33680b[_0xf2ca('0x15')],_0x1e817f);_0xb75964(_0x1c5310['error'](0x1f4,_0x33680b[_0xf2ca('0x15')]));});});};exports[_0xf2ca('0x29')]=function(_0x4f39de){var _0x36740d=this;return new Promise(function(_0x29ebce,_0x3f014f){var _0x5396ef={'body':_0x4f39de[_0xf2ca('0x2a')],'channel':'mail'};var _0x128419=_[_0xf2ca('0x2b')](_[_0xf2ca('0x2c')](db[_0xf2ca('0x2d')][_0xf2ca('0x2e')]),[_0xf2ca('0x2f'),_0xf2ca('0x30'),_0xf2ca('0x31'),_0xf2ca('0x32')]);var _0x128535=![];if(_0x4f39de[_0xf2ca('0x2a')]['id']){delete _0x4f39de[_0xf2ca('0x2a')]['id'];}if(_[_0xf2ca('0x33')](_0x4f39de[_0xf2ca('0x2a')][_0xf2ca('0x34')])){return _0x3f014f(_0x36740d['error'](0x1f4,_0xf2ca('0x35')));}if(_[_0xf2ca('0x33')](_0x4f39de[_0xf2ca('0x2a')][_0xf2ca('0x2a')])||_0x4f39de[_0xf2ca('0x2a')][_0xf2ca('0x2a')]===''){return _0x3f014f(_0x36740d[_0xf2ca('0x14')](0x1f4,_0xf2ca('0x36')));}if(_[_0xf2ca('0x33')](_0x4f39de[_0xf2ca('0x2a')][_0xf2ca('0x37')])){return _0x3f014f(_0x36740d[_0xf2ca('0x14')](0x1f4,_0xf2ca('0x38')+_0x128419));}if(!_['includes'](_0x128419,_0x4f39de['body'][_0xf2ca('0x37')])){return _0x3f014f(_0x36740d[_0xf2ca('0x14')](0x1f4,'mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x128419));}var _0x102c3c={};_0x102c3c[_0x4f39de['body'][_0xf2ca('0x37')]]=_0x4f39de[_0xf2ca('0x2a')][_0xf2ca('0x34')];return db['MailAccount'][_0xf2ca('0x25')]({'where':{'id':_0x4f39de[_0xf2ca('0x39')]['id']},'include':[{'model':db['CmList'],'as':_0xf2ca('0x3a'),'include':[{'model':db[_0xf2ca('0x2d')],'as':_0xf2ca('0x3b'),'where':_0x102c3c,'limit':0x1,'order':[[_0xf2ca('0x30'),'DESC']]}]},{'model':db[_0xf2ca('0x3c')],'as':_0xf2ca('0x3d')},{'model':db[_0xf2ca('0x3e')],'as':'Smtp','include':[{'model':db['CloudProvider'],'as':_0xf2ca('0x3f')}]}]})[_0xf2ca('0xe')](function(_0x1a65c6){if(_0x1a65c6&&_0x1a65c6[_0xf2ca('0x3a')]){var _0x3f31de=_0x1a65c6[_0xf2ca('0x40')]({'plain':!![]});_0x5396ef['account']=_['omit'](_0x3f31de,[_0xf2ca('0x3d'),_0xf2ca('0x3a')]);_0x5396ef['account'][_0xf2ca('0x27')]=_0x1a65c6['getSmtpOptions']();_0x5396ef[_0xf2ca('0x41')]=_0x3f31de['Applications'];_0x5396ef[_0xf2ca('0x42')]=_0x3f31de['List'];_0x5396ef['applications']=_[_0xf2ca('0x43')](_0x5396ef[_0xf2ca('0x41')],['priority'],[_0xf2ca('0x44')]);if(_0x5396ef[_0xf2ca('0x39')]&&_0x5396ef[_0xf2ca('0x39')][_0xf2ca('0x45')]){_0x5396ef[_0xf2ca('0x41')][_0xf2ca('0x46')]({'id':0x0,'priority':_0x5396ef['applications'][_0xf2ca('0x47')]+0x1,'app':_0xf2ca('0x48'),'appdata':'autoclose','interval':_0xf2ca('0x49')});}if(_0x5396ef[_0xf2ca('0x39')][_0xf2ca('0x3d')]){delete _0x5396ef[_0xf2ca('0x39')][_0xf2ca('0x3d')];}if(_0x5396ef['account']['List']){delete _0x5396ef['account'][_0xf2ca('0x3a')];}if(_0x3f31de[_0xf2ca('0x3a')][_0xf2ca('0x3b')][_0xf2ca('0x47')]){return _0x3f31de['List'][_0xf2ca('0x3b')][0x0];}var _0x4683fe=_[_0xf2ca('0x8')](_0x4f39de[_0xf2ca('0x2a')],{'firstName':_0x4f39de[_0xf2ca('0x2a')][_0xf2ca('0x34')],'ListId':_0x3f31de[_0xf2ca('0x32')]});_0x4683fe[_0x4f39de['body'][_0xf2ca('0x37')]]=_0x4f39de[_0xf2ca('0x2a')][_0xf2ca('0x34')];return db['CmContact'][_0xf2ca('0x4a')](_0x4683fe);}else{throw new Error(_0xf2ca('0x4b'));}})['then'](function(_0x3d71e2){_0x5396ef[_0xf2ca('0x4c')]=_0x3d71e2;if(_0x3d71e2){if(!_0x4f39de[_0xf2ca('0x2a')]['message'][_0xf2ca('0x4d')]){_0x4f39de[_0xf2ca('0x2a')][_0xf2ca('0x15')][_0xf2ca('0x4d')]=rs['generate']()+'\x20'+_0x4f39de['body'][_0xf2ca('0x15')][_0xf2ca('0x34')];}var _0x1fba4d={'ContactId':_0x3d71e2['id'],'MailAccountId':_0x4f39de[_0xf2ca('0x39')]['id'],'inReplyTo':_0x4f39de['body'][_0xf2ca('0x15')]['messageId'],'to':_0x4f39de[_0xf2ca('0x2a')][_0xf2ca('0x15')][_0xf2ca('0x34')],'cc':_0x4f39de[_0xf2ca('0x2a')]['message']['cc'],'subject':_0x4f39de[_0xf2ca('0x2a')][_0xf2ca('0x15')][_0xf2ca('0x4e')],'attach':_0x4f39de[_0xf2ca('0x2a')][_0xf2ca('0x15')][_0xf2ca('0x4f')],'lastMsgAt':moment()['format'](_0xf2ca('0x50')),'lastMsgDirection':'in'};return db[_0xf2ca('0x51')][_0xf2ca('0x25')]({'where':{'closed':![],'MailAccountId':_0x4f39de[_0xf2ca('0x39')]['id']},'include':[{'model':db[_0xf2ca('0x52')],'as':'Messages','attributes':[_0xf2ca('0x4d')],'where':{'messageId':_0x4f39de[_0xf2ca('0x2a')][_0xf2ca('0x15')]['inReplyTo']}}]})[_0xf2ca('0xe')](function(_0x152f0c){if(_0x152f0c){return[_0x152f0c,![]];}return db[_0xf2ca('0x51')][_0xf2ca('0x4a')](_0x1fba4d)[_0xf2ca('0xe')](function(_0x219854){return[_0x219854,!![]];});});}else{throw new Error(_0xf2ca('0x53'));}})['spread'](function(_0x5b1554,_0x4baca3){if(_0x5b1554){_0x128535=_0x4baca3;if(!_0x4baca3){return _0x5b1554[_0xf2ca('0x54')]({'inReplyTo':_0x4f39de[_0xf2ca('0x2a')][_0xf2ca('0x15')][_0xf2ca('0x4d')],'to':_0x4f39de[_0xf2ca('0x2a')]['message']['from'],'cc':_0x4f39de[_0xf2ca('0x2a')]['message']['cc'],'subject':_0x4f39de[_0xf2ca('0x2a')]['message']['subject'],'attach':_0x5b1554['attach']?_0x5b1554[_0xf2ca('0x4f')]:_0x4f39de[_0xf2ca('0x2a')][_0xf2ca('0x15')][_0xf2ca('0x4f')],'substatus':null,'substatusAt':moment()[_0xf2ca('0x55')](_0xf2ca('0x50')),'lastMsgAt':moment()[_0xf2ca('0x55')](_0xf2ca('0x50')),'lastMsgDirection':'in'});}else{return _0x5b1554;}}})['then'](function(_0x1be4cb){_0x5396ef[_0xf2ca('0x56')]=_0x1be4cb[_0xf2ca('0x40')]({'plain':!![]});_0x5396ef[_0xf2ca('0x56')]['created']=_0x128535;return db[_0xf2ca('0x52')][_0xf2ca('0x4a')]({'body':_0x4f39de['body'][_0xf2ca('0x2a')],'MailAccountId':_0x4f39de['account']['id'],'MailInteractionId':_0x1be4cb['id'],'direction':'in','ContactId':_0x5396ef[_0xf2ca('0x4c')]['id'],'messageId':_0x4f39de['body'][_0xf2ca('0x15')][_0xf2ca('0x4d')],'from':_0x4f39de[_0xf2ca('0x2a')]['message'][_0xf2ca('0x34')],'to':_0x4f39de['body']['message']['to'],'cc':_0x4f39de['body'][_0xf2ca('0x15')]['cc'],'subject':_0x4f39de[_0xf2ca('0x2a')][_0xf2ca('0x15')][_0xf2ca('0x4e')],'attach':_0x4f39de['body'][_0xf2ca('0x15')][_0xf2ca('0x4f')],'Attachments':_0x4f39de['body'][_0xf2ca('0x15')][_0xf2ca('0x57')],'originTo':_0x4f39de['body'][_0xf2ca('0x15')][_0xf2ca('0x58')],'originCc':_0x4f39de[_0xf2ca('0x2a')][_0xf2ca('0x15')][_0xf2ca('0x59')],'bcc':_0x4f39de[_0xf2ca('0x2a')]['message'][_0xf2ca('0x5a')],'ChatWebsiteId':_0x4f39de[_0xf2ca('0x2a')][_0xf2ca('0x15')][_0xf2ca('0x5b')]||null,'originChannel':_0x4f39de[_0xf2ca('0x2a')][_0xf2ca('0x15')][_0xf2ca('0x5c')]||'Email','ChatOfflineMessageId':_0x4f39de[_0xf2ca('0x2a')][_0xf2ca('0x15')][_0xf2ca('0x5d')]||null},{'include':[{'model':db[_0xf2ca('0x5e')],'as':'Attachments'}]});})['then'](function(_0x30d500){_0x5396ef['message']=_0x30d500;if(!_0x5396ef['interaction'][_0xf2ca('0x5f')]){return;}return db[_0xf2ca('0x60')][_0xf2ca('0x25')]({'attributes':['id','name'],'where':{'id':_0x5396ef[_0xf2ca('0x56')][_0xf2ca('0x5f')]}});})[_0xf2ca('0xe')](function(_0x294d6f){if(_0x294d6f){_0x5396ef[_0xf2ca('0x41')]['unshift']({'id':0x0,'priority':0x0,'app':_0xf2ca('0x61'),'appdata':_0x294d6f[_0xf2ca('0x62')]+','+(_0x5396ef['account'][_0xf2ca('0x63')]||0xa),'interval':_0xf2ca('0x49')});}if(!_0x5396ef[_0xf2ca('0x56')][_0xf2ca('0x64')]){return;}return db[_0xf2ca('0x65')][_0xf2ca('0x25')]({'attributes':['id',_0xf2ca('0x62')],'where':{'id':_0x5396ef[_0xf2ca('0x56')][_0xf2ca('0x64')]}});})['then'](function(_0x4453ba){if(_0x4453ba){_0x5396ef[_0xf2ca('0x41')][_0xf2ca('0x66')]({'id':0x0,'priority':0x1,'app':_0xf2ca('0x67'),'appdata':_0x4453ba[_0xf2ca('0x62')]+','+(_0x5396ef[_0xf2ca('0x39')]['waitForTheAssignedQueue']||0x12c),'interval':'*,*,*,*'});}return respondWithRpcPromise(_0xf2ca('0x68'),_0xf2ca('0x69'),_0x5396ef);})[_0xf2ca('0xe')](function(_0xda8883){_0x29ebce(_0xda8883);})[_0xf2ca('0x18')](function(_0x6c8186){_0x3f014f(_0x36740d[_0xf2ca('0x14')](0x1f4,_0x6c8186[_0xf2ca('0x15')]));});});};