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 _0x4006=['MailInteraction','update','format','interaction','created','attachments','originTo','originCc','ChatWebsiteId','originChannel','Email','ChatOfflineMessageId','Attachment','UserId','User','name','unshift','waitForTheAssignedAgent','queueId','queue','*,*,*,*','Start','startRouting','moment','bluebird','randomstring','ioredis','rpc','jayson/promise','redis','localhost','socket.io-emitter','register','request','then','info','MailAccount,\x20%s,\x20%s','debug','MailAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','MailAccount','findAll','options','raw','where','include','map','model','attributes','GetMailAccount','ShowMailAccount','smtp','setDataValue','getSmtpOptions','NotifyMailAccount','body','difference','keys','CmContact','createdAt','updatedAt','CompanyId','ListId','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','account','CmList','List','Contacts','DESC','Applications','MailServerOut','Smtp','CloudProvider','get','omit','smtpOptions','list','applications','orderBy','priority','autoclose','push','length','defaults','create','List\x20not\x20found','contact','messageId','generate','subject','attach','YYYY-MM-DD\x20HH:mm:ss','MailMessage','Messages','inReplyTo'];(function(_0x539665,_0x2e21eb){var _0xd709b5=function(_0x2f7583){while(--_0x2f7583){_0x539665['push'](_0x539665['shift']());}};_0xd709b5(++_0x2e21eb);}(_0x4006,0x1c7));var _0x6400=function(_0x544d17,_0x2672ea){_0x544d17=_0x544d17-0x0;var _0x5e5fcc=_0x4006[_0x544d17];return _0x5e5fcc;};'use strict';var _=require('lodash');var moment=require(_0x6400('0x0'));var BPromise=require(_0x6400('0x1'));var rs=require(_0x6400('0x2'));var Redis=require(_0x6400('0x3'));var db=require('../../mysqldb')['db'];var logger=require('../../config/logger')(_0x6400('0x4'));var config=require('../../config/environment');var jayson=require(_0x6400('0x5'));var client=jayson['client']['http']({'port':0x232c});config[_0x6400('0x6')]=_['defaults'](config[_0x6400('0x6')],{'host':_0x6400('0x7'),'port':0x18eb});var socket=require(_0x6400('0x8'))(new Redis(config[_0x6400('0x6')]));require('./mailAccount.socket')[_0x6400('0x9')](socket);function respondWithRpcPromise(_0x46819e,_0x31a8d0,_0x356982){return new BPromise(function(_0x3b124f,_0x1c59d0){return client[_0x6400('0xa')](_0x46819e,_0x356982)[_0x6400('0xb')](function(_0x237e22){logger[_0x6400('0xc')](_0x6400('0xd'),_0x31a8d0,'request\x20sent');logger[_0x6400('0xe')](_0x6400('0xf'),_0x31a8d0,_0x6400('0x10'),JSON[_0x6400('0x11')](_0x237e22));if(_0x237e22['error']){if(_0x237e22[_0x6400('0x12')][_0x6400('0x13')]===0x1f4){logger['error']('MailAccount,\x20%s,\x20%s',_0x31a8d0,_0x237e22['error'][_0x6400('0x14')]);return _0x1c59d0(_0x237e22[_0x6400('0x12')]['message']);}logger[_0x6400('0x12')]('MailAccount,\x20%s,\x20%s',_0x31a8d0,_0x237e22[_0x6400('0x12')]['message']);return _0x3b124f(_0x237e22[_0x6400('0x12')][_0x6400('0x14')]);}else{logger[_0x6400('0xc')](_0x6400('0xd'),_0x31a8d0,'request\x20sent');_0x3b124f(_0x237e22[_0x6400('0x15')][_0x6400('0x14')]);}})[_0x6400('0x16')](function(_0x50524f){logger[_0x6400('0x12')](_0x6400('0xd'),_0x31a8d0,_0x50524f);_0x1c59d0(_0x50524f);});});}exports['GetMailAccount']=function(_0x36a8f5){var _0x32a8d8=this;return new Promise(function(_0xb4d0ca,_0x5d8ddb){return db[_0x6400('0x17')][_0x6400('0x18')]({'raw':_0x36a8f5[_0x6400('0x19')]?_0x36a8f5[_0x6400('0x19')][_0x6400('0x1a')]===undefined?!![]:![]:!![],'where':_0x36a8f5[_0x6400('0x19')]?_0x36a8f5[_0x6400('0x19')][_0x6400('0x1b')]||null:null,'attributes':_0x36a8f5[_0x6400('0x19')]?_0x36a8f5[_0x6400('0x19')]['attributes']||null:null,'limit':_0x36a8f5[_0x6400('0x19')]?_0x36a8f5['options']['limit']||null:null,'include':_0x36a8f5[_0x6400('0x19')]?_0x36a8f5[_0x6400('0x19')][_0x6400('0x1c')]?_[_0x6400('0x1d')](_0x36a8f5['options'][_0x6400('0x1c')],function(_0x56d9e6){return{'model':db[_0x56d9e6[_0x6400('0x1e')]],'as':_0x56d9e6['as'],'attributes':_0x56d9e6['attributes'],'include':_0x56d9e6[_0x6400('0x1c')]?_[_0x6400('0x1d')](_0x56d9e6['include'],function(_0x434550){return{'model':db[_0x434550[_0x6400('0x1e')]],'as':_0x434550['as'],'attributes':_0x434550[_0x6400('0x1f')],'include':_0x434550['include']?_[_0x6400('0x1d')](_0x434550['include'],function(_0x5f06ae){return{'model':db[_0x5f06ae[_0x6400('0x1e')]],'as':_0x5f06ae['as'],'attributes':_0x5f06ae['attributes']};}):[]};}):[]};}):[]:[]})[_0x6400('0xb')](function(_0x197b9d){logger['info'](_0x6400('0x20'),_0x36a8f5);logger['debug']('GetMailAccount',_0x36a8f5,JSON[_0x6400('0x11')](_0x197b9d));_0xb4d0ca(_0x197b9d);})[_0x6400('0x16')](function(_0x10005a){logger[_0x6400('0x12')](_0x6400('0x20'),_0x10005a['message'],_0x36a8f5);_0x5d8ddb(_0x32a8d8[_0x6400('0x12')](0x1f4,_0x10005a[_0x6400('0x14')]));});});};exports[_0x6400('0x21')]=function(_0x1f66c3){var _0x57c3fb=this;return new Promise(function(_0x437624,_0x356f4d){return db[_0x6400('0x17')]['find']({'raw':_0x1f66c3[_0x6400('0x19')]?_0x1f66c3[_0x6400('0x19')][_0x6400('0x1a')]===undefined?!![]:![]:!![],'where':_0x1f66c3[_0x6400('0x19')]?_0x1f66c3['options'][_0x6400('0x1b')]||null:null,'attributes':_0x1f66c3[_0x6400('0x19')]?_0x1f66c3['options'][_0x6400('0x1f')]||null:null,'include':_0x1f66c3[_0x6400('0x19')]?_0x1f66c3['options']['include']?_[_0x6400('0x1d')](_0x1f66c3[_0x6400('0x19')][_0x6400('0x1c')],function(_0x5286a0){return{'model':db[_0x5286a0['model']],'as':_0x5286a0['as'],'attributes':_0x5286a0['attributes'],'include':_0x5286a0[_0x6400('0x1c')]?_[_0x6400('0x1d')](_0x5286a0[_0x6400('0x1c')],function(_0x1a9e17){return{'model':db[_0x1a9e17[_0x6400('0x1e')]],'as':_0x1a9e17['as'],'attributes':_0x1a9e17['attributes'],'include':_0x1a9e17[_0x6400('0x1c')]?_[_0x6400('0x1d')](_0x1a9e17['include'],function(_0x51425c){return{'model':db[_0x51425c[_0x6400('0x1e')]],'as':_0x51425c['as'],'attributes':_0x51425c[_0x6400('0x1f')]};}):[]};}):[]};}):[]:[]})[_0x6400('0xb')](function(_0x51a7c0){if(_0x1f66c3[_0x6400('0x19')][_0x6400('0x22')]===!![])_0x51a7c0[_0x6400('0x23')]('smtpOptions',_0x51a7c0[_0x6400('0x24')]());logger[_0x6400('0xc')](_0x6400('0x21'),_0x1f66c3);logger['debug']('ShowMailAccount',_0x1f66c3,JSON['stringify'](_0x51a7c0));_0x437624(_0x51a7c0);})[_0x6400('0x16')](function(_0x5c4845){logger['error'](_0x6400('0x21'),_0x5c4845[_0x6400('0x14')],_0x1f66c3);_0x356f4d(_0x57c3fb['error'](0x1f4,_0x5c4845[_0x6400('0x14')]));});});};exports[_0x6400('0x25')]=function(_0x43b7bb){var _0x51ee86=this;return new Promise(function(_0x9536e5,_0x443ff0){var _0x5f27cd={'body':_0x43b7bb[_0x6400('0x26')],'channel':'mail'};var _0x51a9e8=_[_0x6400('0x27')](_[_0x6400('0x28')](db[_0x6400('0x29')]['rawAttributes']),[_0x6400('0x2a'),_0x6400('0x2b'),_0x6400('0x2c'),_0x6400('0x2d')]);var _0x3069f0=![];if(_0x43b7bb['body']['id']){delete _0x43b7bb[_0x6400('0x26')]['id'];}if(_['isNil'](_0x43b7bb[_0x6400('0x26')][_0x6400('0x2e')])){return _0x443ff0(_0x51ee86[_0x6400('0x12')](0x1f4,_0x6400('0x2f')));}if(_['isNil'](_0x43b7bb[_0x6400('0x26')][_0x6400('0x26')])||_0x43b7bb[_0x6400('0x26')][_0x6400('0x26')]===''){return _0x443ff0(_0x51ee86['error'](0x1f4,_0x6400('0x30')));}if(_['isNil'](_0x43b7bb[_0x6400('0x26')]['mapKey'])){return _0x443ff0(_0x51ee86[_0x6400('0x12')](0x1f4,_0x6400('0x31')+_0x51a9e8));}if(!_[_0x6400('0x32')](_0x51a9e8,_0x43b7bb['body'][_0x6400('0x33')])){return _0x443ff0(_0x51ee86['error'](0x1f4,_0x6400('0x34')+_0x51a9e8));}var _0x146358={};_0x146358[_0x43b7bb[_0x6400('0x26')][_0x6400('0x33')]]=_0x43b7bb[_0x6400('0x26')][_0x6400('0x2e')];return db[_0x6400('0x17')][_0x6400('0x35')]({'where':{'id':_0x43b7bb[_0x6400('0x36')]['id']},'include':[{'model':db[_0x6400('0x37')],'as':_0x6400('0x38'),'include':[{'model':db['CmContact'],'as':_0x6400('0x39'),'where':_0x146358,'limit':0x1,'order':[[_0x6400('0x2b'),_0x6400('0x3a')]]}]},{'model':db['MailApplication'],'as':_0x6400('0x3b')},{'model':db[_0x6400('0x3c')],'as':_0x6400('0x3d'),'include':[{'model':db['CloudProvider'],'as':_0x6400('0x3e')}]}]})['then'](function(_0x518ee4){if(_0x518ee4&&_0x518ee4['List']){var _0x32c3d0=_0x518ee4[_0x6400('0x3f')]({'plain':!![]});_0x5f27cd['account']=_[_0x6400('0x40')](_0x32c3d0,[_0x6400('0x3b'),'List']);_0x5f27cd['account'][_0x6400('0x41')]=_0x518ee4[_0x6400('0x24')]();_0x5f27cd['applications']=_0x32c3d0[_0x6400('0x3b')];_0x5f27cd[_0x6400('0x42')]=_0x32c3d0[_0x6400('0x38')];_0x5f27cd[_0x6400('0x43')]=_[_0x6400('0x44')](_0x5f27cd[_0x6400('0x43')],[_0x6400('0x45')],['asc']);if(_0x5f27cd[_0x6400('0x36')]&&_0x5f27cd[_0x6400('0x36')][_0x6400('0x46')]){_0x5f27cd[_0x6400('0x43')][_0x6400('0x47')]({'id':0x0,'priority':_0x5f27cd[_0x6400('0x43')][_0x6400('0x48')]+0x1,'app':'close','appdata':_0x6400('0x46'),'interval':'*,*,*,*'});}if(_0x5f27cd['account'][_0x6400('0x3b')]){delete _0x5f27cd[_0x6400('0x36')][_0x6400('0x3b')];}if(_0x5f27cd['account'][_0x6400('0x38')]){delete _0x5f27cd[_0x6400('0x36')][_0x6400('0x38')];}if(_0x32c3d0[_0x6400('0x38')][_0x6400('0x39')]['length']){return _0x32c3d0[_0x6400('0x38')][_0x6400('0x39')][0x0];}var _0x55e49c=_[_0x6400('0x49')](_0x43b7bb[_0x6400('0x26')],{'firstName':_0x43b7bb[_0x6400('0x26')]['from'],'ListId':_0x32c3d0[_0x6400('0x2d')]});_0x55e49c[_0x43b7bb['body'][_0x6400('0x33')]]=_0x43b7bb[_0x6400('0x26')][_0x6400('0x2e')];return db[_0x6400('0x29')][_0x6400('0x4a')](_0x55e49c);}else{throw new Error(_0x6400('0x4b'));}})['then'](function(_0x1ce65e){_0x5f27cd[_0x6400('0x4c')]=_0x1ce65e;if(_0x1ce65e){if(!_0x43b7bb['body'][_0x6400('0x14')][_0x6400('0x4d')]){_0x43b7bb[_0x6400('0x26')][_0x6400('0x14')]['messageId']=rs[_0x6400('0x4e')]()+'\x20'+_0x43b7bb[_0x6400('0x26')][_0x6400('0x14')][_0x6400('0x2e')];}var _0x38abb3={'ContactId':_0x1ce65e['id'],'MailAccountId':_0x43b7bb[_0x6400('0x36')]['id'],'inReplyTo':_0x43b7bb[_0x6400('0x26')][_0x6400('0x14')][_0x6400('0x4d')],'to':_0x43b7bb[_0x6400('0x26')][_0x6400('0x14')][_0x6400('0x2e')],'cc':_0x43b7bb['body'][_0x6400('0x14')]['cc'],'subject':_0x43b7bb[_0x6400('0x26')]['message'][_0x6400('0x4f')],'attach':_0x43b7bb['body'][_0x6400('0x14')][_0x6400('0x50')],'lastMsgAt':moment()['format'](_0x6400('0x51')),'lastMsgDirection':'in'};return db['MailInteraction'][_0x6400('0x35')]({'where':{'closed':![],'MailAccountId':_0x43b7bb['account']['id']},'include':[{'model':db[_0x6400('0x52')],'as':_0x6400('0x53'),'attributes':[_0x6400('0x4d')],'where':{'messageId':_0x43b7bb[_0x6400('0x26')][_0x6400('0x14')][_0x6400('0x54')]}}]})['then'](function(_0x53215e){if(_0x53215e){return[_0x53215e,![]];}return db[_0x6400('0x55')][_0x6400('0x4a')](_0x38abb3)['then'](function(_0x10d6a8){return[_0x10d6a8,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})['spread'](function(_0x4379cf,_0x391c23){if(_0x4379cf){_0x3069f0=_0x391c23;if(!_0x391c23){return _0x4379cf[_0x6400('0x56')]({'inReplyTo':_0x43b7bb[_0x6400('0x26')][_0x6400('0x14')][_0x6400('0x4d')],'to':_0x43b7bb[_0x6400('0x26')]['message'][_0x6400('0x2e')],'cc':_0x43b7bb[_0x6400('0x26')][_0x6400('0x14')]['cc'],'subject':_0x43b7bb['body']['message'][_0x6400('0x4f')],'attach':_0x4379cf[_0x6400('0x50')]?_0x4379cf[_0x6400('0x50')]:_0x43b7bb['body'][_0x6400('0x14')]['attach'],'substatus':null,'substatusAt':moment()[_0x6400('0x57')](_0x6400('0x51')),'lastMsgAt':moment()['format'](_0x6400('0x51')),'lastMsgDirection':'in'});}else{return _0x4379cf;}}})[_0x6400('0xb')](function(_0x2c3e81){_0x5f27cd[_0x6400('0x58')]=_0x2c3e81[_0x6400('0x3f')]({'plain':!![]});_0x5f27cd[_0x6400('0x58')][_0x6400('0x59')]=_0x3069f0;return db['MailMessage'][_0x6400('0x4a')]({'body':_0x43b7bb[_0x6400('0x26')][_0x6400('0x26')],'MailAccountId':_0x43b7bb[_0x6400('0x36')]['id'],'MailInteractionId':_0x2c3e81['id'],'direction':'in','ContactId':_0x5f27cd[_0x6400('0x4c')]['id'],'messageId':_0x43b7bb[_0x6400('0x26')]['message'][_0x6400('0x4d')],'from':_0x43b7bb[_0x6400('0x26')]['message']['from'],'to':_0x43b7bb['body']['message']['to'],'cc':_0x43b7bb[_0x6400('0x26')][_0x6400('0x14')]['cc'],'subject':_0x43b7bb[_0x6400('0x26')][_0x6400('0x14')]['subject'],'attach':_0x43b7bb[_0x6400('0x26')][_0x6400('0x14')][_0x6400('0x50')],'Attachments':_0x43b7bb[_0x6400('0x26')][_0x6400('0x14')][_0x6400('0x5a')],'originTo':_0x43b7bb['body'][_0x6400('0x14')][_0x6400('0x5b')],'originCc':_0x43b7bb[_0x6400('0x26')][_0x6400('0x14')][_0x6400('0x5c')],'bcc':_0x43b7bb[_0x6400('0x26')][_0x6400('0x14')]['bcc'],'ChatWebsiteId':_0x43b7bb[_0x6400('0x26')][_0x6400('0x14')][_0x6400('0x5d')]||null,'originChannel':_0x43b7bb[_0x6400('0x26')][_0x6400('0x14')][_0x6400('0x5e')]||_0x6400('0x5f'),'ChatOfflineMessageId':_0x43b7bb[_0x6400('0x26')][_0x6400('0x14')][_0x6400('0x60')]||null},{'include':[{'model':db[_0x6400('0x61')],'as':'Attachments'}]});})['then'](function(_0x471b2b){_0x5f27cd['message']=_0x471b2b;if(!_0x5f27cd['interaction'][_0x6400('0x62')]){return;}return db[_0x6400('0x63')][_0x6400('0x35')]({'attributes':['id',_0x6400('0x64')],'where':{'id':_0x5f27cd['interaction'][_0x6400('0x62')]}});})['then'](function(_0x11d006){if(_0x11d006){_0x5f27cd[_0x6400('0x43')][_0x6400('0x65')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x11d006[_0x6400('0x64')]+','+(_0x5f27cd[_0x6400('0x36')][_0x6400('0x66')]||0xa),'interval':'*,*,*,*'});}if(!_0x5f27cd[_0x6400('0x58')][_0x6400('0x67')]){return;}return db['MailQueue'][_0x6400('0x35')]({'attributes':['id',_0x6400('0x64')],'where':{'id':_0x5f27cd[_0x6400('0x58')][_0x6400('0x67')]}});})['then'](function(_0x5cefda){if(_0x5cefda){_0x5f27cd['applications'][_0x6400('0x65')]({'id':0x0,'priority':0x1,'app':_0x6400('0x68'),'appdata':_0x5cefda[_0x6400('0x64')]+','+(_0x5f27cd[_0x6400('0x36')]['waitForTheAssignedQueue']||0x12c),'interval':_0x6400('0x69')});}return respondWithRpcPromise(_0x6400('0x6a'),_0x6400('0x6b'),_0x5f27cd);})[_0x6400('0xb')](function(_0x43c2c6){_0x9536e5(_0x43c2c6);})['catch'](function(_0x486026){_0x443ff0(_0x51ee86[_0x6400('0x12')](0x1f4,_0x486026['message']));});});};