Built motion from commit c0cdc9d8.|2.6.28
[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 _0xae30=['asc','autoclose','push','length','*,*,*,*','from','create','List\x20not\x20found','contact','messageId','subject','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','Messages','inReplyTo','Contact\x20not\x20found','spread','update','attach','interaction','attachments','originTo','originCc','bcc','ChatWebsiteId','originChannel','Email','Attachment','UserId','User','name','unshift','agent','waitForTheAssignedAgent','MailQueue','queueId','waitForTheAssignedQueue','Start','startRouting','lodash','moment','bluebird','ioredis','../../mysqldb','../../config/logger','rpc','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','register','info','MailAccount,\x20%s,\x20%s','request\x20sent','stringify','code','error','message','result','catch','GetMailAccount','options','raw','where','limit','include','model','attributes','map','then','debug','ShowMailAccount','MailAccount','find','smtp','setDataValue','getSmtpOptions','NotifyMailAccount','difference','keys','CmContact','rawAttributes','createdAt','updatedAt','CompanyId','ListId','body','isNil','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','CmList','List','Contacts','MailApplication','Applications','MailServerOut','Smtp','CloudProvider','get','account','omit','applications','list','orderBy','priority'];(function(_0x414c81,_0x5a7823){var _0x3e73b9=function(_0x561216){while(--_0x561216){_0x414c81['push'](_0x414c81['shift']());}};_0x3e73b9(++_0x5a7823);}(_0xae30,0x10a));var _0x0ae3=function(_0x498e3c,_0x2455c4){_0x498e3c=_0x498e3c-0x0;var _0x1e5f5f=_0xae30[_0x498e3c];return _0x1e5f5f;};'use strict';var _=require(_0x0ae3('0x0'));var moment=require(_0x0ae3('0x1'));var BPromise=require(_0x0ae3('0x2'));var rs=require('randomstring');var Redis=require(_0x0ae3('0x3'));var db=require(_0x0ae3('0x4'))['db'];var logger=require(_0x0ae3('0x5'))(_0x0ae3('0x6'));var config=require('../../config/environment');var jayson=require(_0x0ae3('0x7'));var client=jayson[_0x0ae3('0x8')][_0x0ae3('0x9')]({'port':0x232c});config[_0x0ae3('0xa')]=_[_0x0ae3('0xb')](config[_0x0ae3('0xa')],{'host':_0x0ae3('0xc'),'port':0x18eb});var socket=require(_0x0ae3('0xd'))(new Redis(config[_0x0ae3('0xa')]));require(_0x0ae3('0xe'))[_0x0ae3('0xf')](socket);function respondWithRpcPromise(_0x22566f,_0x32ca2c,_0x49e0a5){return new BPromise(function(_0x98ab46,_0xee8a4c){return client['request'](_0x22566f,_0x49e0a5)['then'](function(_0x59cf73){logger[_0x0ae3('0x10')](_0x0ae3('0x11'),_0x32ca2c,_0x0ae3('0x12'));logger['debug']('MailAccount,\x20%s,\x20%s,\x20%s',_0x32ca2c,_0x0ae3('0x12'),JSON[_0x0ae3('0x13')](_0x59cf73));if(_0x59cf73['error']){if(_0x59cf73['error'][_0x0ae3('0x14')]===0x1f4){logger['error'](_0x0ae3('0x11'),_0x32ca2c,_0x59cf73[_0x0ae3('0x15')][_0x0ae3('0x16')]);return _0xee8a4c(_0x59cf73[_0x0ae3('0x15')][_0x0ae3('0x16')]);}logger[_0x0ae3('0x15')](_0x0ae3('0x11'),_0x32ca2c,_0x59cf73['error'][_0x0ae3('0x16')]);return _0x98ab46(_0x59cf73['error'][_0x0ae3('0x16')]);}else{logger[_0x0ae3('0x10')](_0x0ae3('0x11'),_0x32ca2c,_0x0ae3('0x12'));_0x98ab46(_0x59cf73[_0x0ae3('0x17')][_0x0ae3('0x16')]);}})[_0x0ae3('0x18')](function(_0x1bf406){logger[_0x0ae3('0x15')]('MailAccount,\x20%s,\x20%s',_0x32ca2c,_0x1bf406);_0xee8a4c(_0x1bf406);});});}exports[_0x0ae3('0x19')]=function(_0x4b8949){var _0x49d4b7=this;return new Promise(function(_0x571135,_0x4ac074){return db['MailAccount']['findAll']({'raw':_0x4b8949['options']?_0x4b8949[_0x0ae3('0x1a')][_0x0ae3('0x1b')]===undefined?!![]:![]:!![],'where':_0x4b8949[_0x0ae3('0x1a')]?_0x4b8949['options'][_0x0ae3('0x1c')]||null:null,'attributes':_0x4b8949['options']?_0x4b8949[_0x0ae3('0x1a')]['attributes']||null:null,'limit':_0x4b8949['options']?_0x4b8949['options'][_0x0ae3('0x1d')]||null:null,'include':_0x4b8949[_0x0ae3('0x1a')]?_0x4b8949[_0x0ae3('0x1a')]['include']?_['map'](_0x4b8949[_0x0ae3('0x1a')][_0x0ae3('0x1e')],function(_0x5a76e5){return{'model':db[_0x5a76e5[_0x0ae3('0x1f')]],'as':_0x5a76e5['as'],'attributes':_0x5a76e5[_0x0ae3('0x20')],'include':_0x5a76e5[_0x0ae3('0x1e')]?_['map'](_0x5a76e5[_0x0ae3('0x1e')],function(_0x1f9cde){return{'model':db[_0x1f9cde[_0x0ae3('0x1f')]],'as':_0x1f9cde['as'],'attributes':_0x1f9cde['attributes'],'include':_0x1f9cde[_0x0ae3('0x1e')]?_[_0x0ae3('0x21')](_0x1f9cde[_0x0ae3('0x1e')],function(_0x59a265){return{'model':db[_0x59a265[_0x0ae3('0x1f')]],'as':_0x59a265['as'],'attributes':_0x59a265[_0x0ae3('0x20')]};}):[]};}):[]};}):[]:[]})[_0x0ae3('0x22')](function(_0x152876){logger[_0x0ae3('0x10')](_0x0ae3('0x19'),_0x4b8949);logger[_0x0ae3('0x23')](_0x0ae3('0x19'),_0x4b8949,JSON[_0x0ae3('0x13')](_0x152876));_0x571135(_0x152876);})[_0x0ae3('0x18')](function(_0x4032f4){logger[_0x0ae3('0x15')](_0x0ae3('0x19'),_0x4032f4[_0x0ae3('0x16')],_0x4b8949);_0x4ac074(_0x49d4b7[_0x0ae3('0x15')](0x1f4,_0x4032f4['message']));});});};exports[_0x0ae3('0x24')]=function(_0x25ec0d){var _0x34480d=this;return new Promise(function(_0x39886e,_0x5243da){return db[_0x0ae3('0x25')][_0x0ae3('0x26')]({'raw':_0x25ec0d[_0x0ae3('0x1a')]?_0x25ec0d[_0x0ae3('0x1a')][_0x0ae3('0x1b')]===undefined?!![]:![]:!![],'where':_0x25ec0d[_0x0ae3('0x1a')]?_0x25ec0d['options'][_0x0ae3('0x1c')]||null:null,'attributes':_0x25ec0d[_0x0ae3('0x1a')]?_0x25ec0d[_0x0ae3('0x1a')][_0x0ae3('0x20')]||null:null,'include':_0x25ec0d[_0x0ae3('0x1a')]?_0x25ec0d[_0x0ae3('0x1a')][_0x0ae3('0x1e')]?_['map'](_0x25ec0d['options'][_0x0ae3('0x1e')],function(_0x45ac7d){return{'model':db[_0x45ac7d[_0x0ae3('0x1f')]],'as':_0x45ac7d['as'],'attributes':_0x45ac7d['attributes'],'include':_0x45ac7d['include']?_[_0x0ae3('0x21')](_0x45ac7d[_0x0ae3('0x1e')],function(_0x1ef996){return{'model':db[_0x1ef996[_0x0ae3('0x1f')]],'as':_0x1ef996['as'],'attributes':_0x1ef996[_0x0ae3('0x20')],'include':_0x1ef996[_0x0ae3('0x1e')]?_[_0x0ae3('0x21')](_0x1ef996['include'],function(_0x1453aa){return{'model':db[_0x1453aa[_0x0ae3('0x1f')]],'as':_0x1453aa['as'],'attributes':_0x1453aa[_0x0ae3('0x20')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x4c7adf){if(_0x25ec0d['options'][_0x0ae3('0x27')]===!![])_0x4c7adf[_0x0ae3('0x28')]('smtpOptions',_0x4c7adf[_0x0ae3('0x29')]());logger[_0x0ae3('0x10')](_0x0ae3('0x24'),_0x25ec0d);logger['debug'](_0x0ae3('0x24'),_0x25ec0d,JSON['stringify'](_0x4c7adf));_0x39886e(_0x4c7adf);})[_0x0ae3('0x18')](function(_0x1626e1){logger['error'](_0x0ae3('0x24'),_0x1626e1[_0x0ae3('0x16')],_0x25ec0d);_0x5243da(_0x34480d[_0x0ae3('0x15')](0x1f4,_0x1626e1[_0x0ae3('0x16')]));});});};exports[_0x0ae3('0x2a')]=function(_0x53eda3){var _0x5298aa=this;return new Promise(function(_0x2e95e5,_0x334163){var _0x5c6874={'body':_0x53eda3['body'],'channel':'mail'};var _0x5b006c=_[_0x0ae3('0x2b')](_[_0x0ae3('0x2c')](db[_0x0ae3('0x2d')][_0x0ae3('0x2e')]),[_0x0ae3('0x2f'),_0x0ae3('0x30'),_0x0ae3('0x31'),_0x0ae3('0x32')]);var _0x2cfc16=![];if(_0x53eda3[_0x0ae3('0x33')]['id']){delete _0x53eda3['body']['id'];}if(_[_0x0ae3('0x34')](_0x53eda3[_0x0ae3('0x33')]['from'])){return _0x334163(_0x5298aa[_0x0ae3('0x15')](0x1f4,_0x0ae3('0x35')));}if(_[_0x0ae3('0x34')](_0x53eda3[_0x0ae3('0x33')][_0x0ae3('0x33')])||_0x53eda3['body'][_0x0ae3('0x33')]===''){return _0x334163(_0x5298aa[_0x0ae3('0x15')](0x1f4,_0x0ae3('0x36')));}if(_[_0x0ae3('0x34')](_0x53eda3['body'][_0x0ae3('0x37')])){return _0x334163(_0x5298aa[_0x0ae3('0x15')](0x1f4,'mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x5b006c));}if(!_[_0x0ae3('0x38')](_0x5b006c,_0x53eda3[_0x0ae3('0x33')]['mapKey'])){return _0x334163(_0x5298aa['error'](0x1f4,_0x0ae3('0x39')+_0x5b006c));}var _0x21b49f={};_0x21b49f[_0x53eda3[_0x0ae3('0x33')][_0x0ae3('0x37')]]=_0x53eda3[_0x0ae3('0x33')]['from'];return db['MailAccount'][_0x0ae3('0x26')]({'where':{'id':_0x53eda3['account']['id']},'include':[{'model':db[_0x0ae3('0x3a')],'as':_0x0ae3('0x3b'),'include':[{'model':db['CmContact'],'as':_0x0ae3('0x3c'),'where':_0x21b49f,'limit':0x1,'order':[[_0x0ae3('0x30'),'DESC']]}]},{'model':db[_0x0ae3('0x3d')],'as':_0x0ae3('0x3e')},{'model':db[_0x0ae3('0x3f')],'as':_0x0ae3('0x40'),'include':[{'model':db[_0x0ae3('0x41')],'as':'CloudProvider'}]}]})[_0x0ae3('0x22')](function(_0x53393b){if(_0x53393b&&_0x53393b[_0x0ae3('0x3b')]){var _0x25310c=_0x53393b[_0x0ae3('0x42')]({'plain':!![]});_0x5c6874[_0x0ae3('0x43')]=_[_0x0ae3('0x44')](_0x25310c,[_0x0ae3('0x3e'),_0x0ae3('0x3b')]);_0x5c6874[_0x0ae3('0x43')]['smtpOptions']=_0x53393b[_0x0ae3('0x29')]();_0x5c6874[_0x0ae3('0x45')]=_0x25310c[_0x0ae3('0x3e')];_0x5c6874[_0x0ae3('0x46')]=_0x25310c[_0x0ae3('0x3b')];_0x5c6874[_0x0ae3('0x45')]=_[_0x0ae3('0x47')](_0x5c6874[_0x0ae3('0x45')],[_0x0ae3('0x48')],[_0x0ae3('0x49')]);if(_0x5c6874[_0x0ae3('0x43')]&&_0x5c6874['account'][_0x0ae3('0x4a')]){_0x5c6874['applications'][_0x0ae3('0x4b')]({'id':0x0,'priority':_0x5c6874[_0x0ae3('0x45')][_0x0ae3('0x4c')]+0x1,'app':'close','appdata':'autoclose','interval':_0x0ae3('0x4d')});}if(_0x5c6874['account'][_0x0ae3('0x3e')]){delete _0x5c6874['account'][_0x0ae3('0x3e')];}if(_0x5c6874[_0x0ae3('0x43')]['List']){delete _0x5c6874[_0x0ae3('0x43')][_0x0ae3('0x3b')];}if(_0x25310c[_0x0ae3('0x3b')][_0x0ae3('0x3c')][_0x0ae3('0x4c')]){return _0x25310c['List'][_0x0ae3('0x3c')][0x0];}var _0x4596b5=_['defaults'](_0x53eda3[_0x0ae3('0x33')],{'firstName':_0x53eda3[_0x0ae3('0x33')]['from'],'ListId':_0x25310c[_0x0ae3('0x32')]});_0x4596b5[_0x53eda3[_0x0ae3('0x33')][_0x0ae3('0x37')]]=_0x53eda3[_0x0ae3('0x33')][_0x0ae3('0x4e')];return db['CmContact'][_0x0ae3('0x4f')](_0x4596b5);}else{throw new Error(_0x0ae3('0x50'));}})[_0x0ae3('0x22')](function(_0x3d554c){_0x5c6874[_0x0ae3('0x51')]=_0x3d554c;if(_0x3d554c){if(!_0x53eda3[_0x0ae3('0x33')][_0x0ae3('0x16')]['messageId']){_0x53eda3[_0x0ae3('0x33')][_0x0ae3('0x16')][_0x0ae3('0x52')]=rs['generate']()+'\x20'+_0x53eda3[_0x0ae3('0x33')][_0x0ae3('0x16')][_0x0ae3('0x4e')];}var _0x3794df={'ContactId':_0x3d554c['id'],'MailAccountId':_0x53eda3[_0x0ae3('0x43')]['id'],'inReplyTo':_0x53eda3[_0x0ae3('0x33')][_0x0ae3('0x16')]['messageId'],'to':_0x53eda3[_0x0ae3('0x33')]['message']['from'],'cc':_0x53eda3['body'][_0x0ae3('0x16')]['cc'],'subject':_0x53eda3[_0x0ae3('0x33')][_0x0ae3('0x16')][_0x0ae3('0x53')],'attach':_0x53eda3[_0x0ae3('0x33')][_0x0ae3('0x16')]['attach'],'lastMsgAt':moment()[_0x0ae3('0x54')](_0x0ae3('0x55')),'lastMsgDirection':'in'};return db[_0x0ae3('0x56')][_0x0ae3('0x26')]({'where':{'closed':![],'MailAccountId':_0x53eda3[_0x0ae3('0x43')]['id']},'include':[{'model':db['MailMessage'],'as':_0x0ae3('0x57'),'attributes':[_0x0ae3('0x52')],'where':{'messageId':_0x53eda3[_0x0ae3('0x33')][_0x0ae3('0x16')][_0x0ae3('0x58')]}}]})[_0x0ae3('0x22')](function(_0x4f5e27){if(_0x4f5e27){return[_0x4f5e27,![]];}return db['MailInteraction']['create'](_0x3794df)[_0x0ae3('0x22')](function(_0xd07bf7){return[_0xd07bf7,!![]];});});}else{throw new Error(_0x0ae3('0x59'));}})[_0x0ae3('0x5a')](function(_0x4c3808,_0x2f80f2){if(_0x4c3808){_0x2cfc16=_0x2f80f2;if(!_0x2f80f2){return _0x4c3808[_0x0ae3('0x5b')]({'inReplyTo':_0x53eda3[_0x0ae3('0x33')][_0x0ae3('0x16')][_0x0ae3('0x52')],'to':_0x53eda3[_0x0ae3('0x33')][_0x0ae3('0x16')][_0x0ae3('0x4e')],'cc':_0x53eda3[_0x0ae3('0x33')][_0x0ae3('0x16')]['cc'],'subject':_0x53eda3[_0x0ae3('0x33')][_0x0ae3('0x16')][_0x0ae3('0x53')],'attach':_0x4c3808['attach']?_0x4c3808[_0x0ae3('0x5c')]:_0x53eda3[_0x0ae3('0x33')][_0x0ae3('0x16')][_0x0ae3('0x5c')],'substatus':null,'substatusAt':moment()[_0x0ae3('0x54')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgAt':moment()[_0x0ae3('0x54')](_0x0ae3('0x55')),'lastMsgDirection':'in'});}else{return _0x4c3808;}}})[_0x0ae3('0x22')](function(_0x5bc332){_0x5c6874[_0x0ae3('0x5d')]=_0x5bc332[_0x0ae3('0x42')]({'plain':!![]});_0x5c6874[_0x0ae3('0x5d')]['created']=_0x2cfc16;return db['MailMessage'][_0x0ae3('0x4f')]({'body':_0x53eda3[_0x0ae3('0x33')][_0x0ae3('0x33')],'MailAccountId':_0x53eda3['account']['id'],'MailInteractionId':_0x5bc332['id'],'direction':'in','ContactId':_0x5c6874['contact']['id'],'messageId':_0x53eda3[_0x0ae3('0x33')][_0x0ae3('0x16')][_0x0ae3('0x52')],'from':_0x53eda3['body'][_0x0ae3('0x16')]['from'],'to':_0x53eda3[_0x0ae3('0x33')][_0x0ae3('0x16')]['to'],'cc':_0x53eda3['body'][_0x0ae3('0x16')]['cc'],'subject':_0x53eda3[_0x0ae3('0x33')][_0x0ae3('0x16')][_0x0ae3('0x53')],'attach':_0x53eda3[_0x0ae3('0x33')][_0x0ae3('0x16')][_0x0ae3('0x5c')],'Attachments':_0x53eda3[_0x0ae3('0x33')]['message'][_0x0ae3('0x5e')],'originTo':_0x53eda3[_0x0ae3('0x33')]['message'][_0x0ae3('0x5f')],'originCc':_0x53eda3[_0x0ae3('0x33')][_0x0ae3('0x16')][_0x0ae3('0x60')],'bcc':_0x53eda3[_0x0ae3('0x33')]['message'][_0x0ae3('0x61')],'ChatWebsiteId':_0x53eda3[_0x0ae3('0x33')][_0x0ae3('0x16')][_0x0ae3('0x62')]||null,'originChannel':_0x53eda3['body'][_0x0ae3('0x16')][_0x0ae3('0x63')]||_0x0ae3('0x64'),'ChatOfflineMessageId':_0x53eda3[_0x0ae3('0x33')][_0x0ae3('0x16')]['ChatOfflineMessageId']||null},{'include':[{'model':db[_0x0ae3('0x65')],'as':'Attachments'}]});})['then'](function(_0x284dbe){_0x5c6874[_0x0ae3('0x16')]=_0x284dbe;if(!_0x5c6874[_0x0ae3('0x5d')][_0x0ae3('0x66')]){return;}return db[_0x0ae3('0x67')]['find']({'attributes':['id',_0x0ae3('0x68')],'where':{'id':_0x5c6874[_0x0ae3('0x5d')][_0x0ae3('0x66')]}});})[_0x0ae3('0x22')](function(_0x1b94d6){if(_0x1b94d6){_0x5c6874[_0x0ae3('0x45')][_0x0ae3('0x69')]({'id':0x0,'priority':0x0,'app':_0x0ae3('0x6a'),'appdata':_0x1b94d6[_0x0ae3('0x68')]+','+(_0x5c6874[_0x0ae3('0x43')][_0x0ae3('0x6b')]||0xa),'interval':_0x0ae3('0x4d')});}if(!_0x5c6874[_0x0ae3('0x5d')]['queueId']){return;}return db[_0x0ae3('0x6c')][_0x0ae3('0x26')]({'attributes':['id',_0x0ae3('0x68')],'where':{'id':_0x5c6874['interaction'][_0x0ae3('0x6d')]}});})[_0x0ae3('0x22')](function(_0x535ebd){if(_0x535ebd){_0x5c6874[_0x0ae3('0x45')]['unshift']({'id':0x0,'priority':0x1,'app':'queue','appdata':_0x535ebd[_0x0ae3('0x68')]+','+(_0x5c6874[_0x0ae3('0x43')][_0x0ae3('0x6e')]||0x12c),'interval':'*,*,*,*'});}return respondWithRpcPromise(_0x0ae3('0x6f'),_0x0ae3('0x70'),_0x5c6874);})[_0x0ae3('0x22')](function(_0x5d4f97){_0x2e95e5(_0x5d4f97);})['catch'](function(_0x21d3d1){_0x334163(_0x5298aa['error'](0x1f4,_0x21d3d1['message']));});});};