Built motion from commit (unavailable).|2.6.0
[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 _0x5c7a=['../../config/environment','jayson/promise','client','http','redis','defaults','localhost','./mailAccount.socket','register','info','MailAccount,\x20%s,\x20%s','debug','MailAccount,\x20%s,\x20%s,\x20%s','request\x20sent','error','code','message','result','catch','GetMailAccount','findAll','options','raw','where','limit','include','map','model','attributes','then','stringify','ShowMailAccount','MailAccount','find','mail','difference','CmContact','rawAttributes','createdAt','updatedAt','CompanyId','ListId','body','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','MailApplication','Applications','MailServerOut','Smtp','get','omit','applications','orderBy','priority','asc','autoclose','push','length','*,*,*,*','create','List\x20not\x20found','messageId','generate','subject','format','MailInteraction','MailMessage','Messages','inReplyTo','update','attach','YYYY-MM-DD\x20HH:mm:ss','interaction','contact','originTo','originCc','bcc','ChatWebsiteId','originChannel','Email','ChatOfflineMessageId','UserId','User','name','unshift','agent','waitForTheAssignedAgent','Start','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger'];(function(_0x315d84,_0x3dacc3){var _0x560da1=function(_0x22ccb0){while(--_0x22ccb0){_0x315d84['push'](_0x315d84['shift']());}};_0x560da1(++_0x3dacc3);}(_0x5c7a,0xca));var _0xa5c7=function(_0x16de68,_0x33d7ff){_0x16de68=_0x16de68-0x0;var _0x1c277e=_0x5c7a[_0x16de68];return _0x1c277e;};'use strict';var _=require(_0xa5c7('0x0'));var util=require(_0xa5c7('0x1'));var moment=require(_0xa5c7('0x2'));var BPromise=require(_0xa5c7('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xa5c7('0x4'));var db=require(_0xa5c7('0x5'))['db'];var utils=require(_0xa5c7('0x6'));var logger=require(_0xa5c7('0x7'))('rpc');var config=require(_0xa5c7('0x8'));var jayson=require(_0xa5c7('0x9'));var client=jayson[_0xa5c7('0xa')][_0xa5c7('0xb')]({'port':0x232c});config[_0xa5c7('0xc')]=_[_0xa5c7('0xd')](config[_0xa5c7('0xc')],{'host':_0xa5c7('0xe'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0xa5c7('0xf'))[_0xa5c7('0x10')](socket);function respondWithRpcPromise(_0x3a6da5,_0x2d1c50,_0xb51ae9){return new BPromise(function(_0x154e02,_0x554f21){return client['request'](_0x3a6da5,_0xb51ae9)['then'](function(_0x523b1c){logger[_0xa5c7('0x11')](_0xa5c7('0x12'),_0x2d1c50,'request\x20sent');logger[_0xa5c7('0x13')](_0xa5c7('0x14'),_0x2d1c50,_0xa5c7('0x15'),JSON['stringify'](_0x523b1c));if(_0x523b1c[_0xa5c7('0x16')]){if(_0x523b1c[_0xa5c7('0x16')][_0xa5c7('0x17')]===0x1f4){logger[_0xa5c7('0x16')](_0xa5c7('0x12'),_0x2d1c50,_0x523b1c[_0xa5c7('0x16')][_0xa5c7('0x18')]);return _0x554f21(_0x523b1c['error'][_0xa5c7('0x18')]);}logger[_0xa5c7('0x16')](_0xa5c7('0x12'),_0x2d1c50,_0x523b1c['error'][_0xa5c7('0x18')]);return _0x154e02(_0x523b1c[_0xa5c7('0x16')]['message']);}else{logger[_0xa5c7('0x11')](_0xa5c7('0x12'),_0x2d1c50,_0xa5c7('0x15'));_0x154e02(_0x523b1c[_0xa5c7('0x19')][_0xa5c7('0x18')]);}})[_0xa5c7('0x1a')](function(_0x407667){logger[_0xa5c7('0x16')](_0xa5c7('0x12'),_0x2d1c50,_0x407667);_0x554f21(_0x407667);});});}exports[_0xa5c7('0x1b')]=function(_0x25880f){var _0x1afc0c=this;return new Promise(function(_0x58f012,_0x41406d){return db['MailAccount'][_0xa5c7('0x1c')]({'raw':_0x25880f[_0xa5c7('0x1d')]?_0x25880f[_0xa5c7('0x1d')][_0xa5c7('0x1e')]===undefined?!![]:![]:!![],'where':_0x25880f[_0xa5c7('0x1d')]?_0x25880f[_0xa5c7('0x1d')][_0xa5c7('0x1f')]||null:null,'attributes':_0x25880f[_0xa5c7('0x1d')]?_0x25880f[_0xa5c7('0x1d')]['attributes']||null:null,'limit':_0x25880f[_0xa5c7('0x1d')]?_0x25880f[_0xa5c7('0x1d')][_0xa5c7('0x20')]||null:null,'include':_0x25880f[_0xa5c7('0x1d')]?_0x25880f[_0xa5c7('0x1d')]['include']?_['map'](_0x25880f[_0xa5c7('0x1d')][_0xa5c7('0x21')],function(_0x23ebe8){return{'model':db[_0x23ebe8['model']],'as':_0x23ebe8['as'],'attributes':_0x23ebe8['attributes'],'include':_0x23ebe8[_0xa5c7('0x21')]?_[_0xa5c7('0x22')](_0x23ebe8[_0xa5c7('0x21')],function(_0x5e453b){return{'model':db[_0x5e453b[_0xa5c7('0x23')]],'as':_0x5e453b['as'],'attributes':_0x5e453b['attributes'],'include':_0x5e453b['include']?_['map'](_0x5e453b['include'],function(_0x5aa168){return{'model':db[_0x5aa168[_0xa5c7('0x23')]],'as':_0x5aa168['as'],'attributes':_0x5aa168[_0xa5c7('0x24')]};}):[]};}):[]};}):[]:[]})[_0xa5c7('0x25')](function(_0x554211){logger[_0xa5c7('0x11')](_0xa5c7('0x1b'),_0x25880f);logger[_0xa5c7('0x13')](_0xa5c7('0x1b'),_0x25880f,JSON[_0xa5c7('0x26')](_0x554211));_0x58f012(_0x554211);})[_0xa5c7('0x1a')](function(_0x508bc0){logger[_0xa5c7('0x16')]('GetMailAccount',_0x508bc0[_0xa5c7('0x18')],_0x25880f);_0x41406d(_0x1afc0c[_0xa5c7('0x16')](0x1f4,_0x508bc0[_0xa5c7('0x18')]));});});};exports[_0xa5c7('0x27')]=function(_0x14c18f){var _0x48b9d6=this;return new Promise(function(_0x5044ed,_0x5aaac3){return db[_0xa5c7('0x28')][_0xa5c7('0x29')]({'raw':_0x14c18f['options']?_0x14c18f[_0xa5c7('0x1d')]['raw']===undefined?!![]:![]:!![],'where':_0x14c18f[_0xa5c7('0x1d')]?_0x14c18f[_0xa5c7('0x1d')][_0xa5c7('0x1f')]||null:null,'attributes':_0x14c18f[_0xa5c7('0x1d')]?_0x14c18f[_0xa5c7('0x1d')][_0xa5c7('0x24')]||null:null,'include':_0x14c18f[_0xa5c7('0x1d')]?_0x14c18f['options']['include']?_['map'](_0x14c18f[_0xa5c7('0x1d')][_0xa5c7('0x21')],function(_0x12f049){return{'model':db[_0x12f049[_0xa5c7('0x23')]],'as':_0x12f049['as'],'attributes':_0x12f049[_0xa5c7('0x24')],'include':_0x12f049[_0xa5c7('0x21')]?_[_0xa5c7('0x22')](_0x12f049[_0xa5c7('0x21')],function(_0x42f2){return{'model':db[_0x42f2[_0xa5c7('0x23')]],'as':_0x42f2['as'],'attributes':_0x42f2['attributes'],'include':_0x42f2[_0xa5c7('0x21')]?_['map'](_0x42f2[_0xa5c7('0x21')],function(_0x5932b8){return{'model':db[_0x5932b8['model']],'as':_0x5932b8['as'],'attributes':_0x5932b8[_0xa5c7('0x24')]};}):[]};}):[]};}):[]:[]})[_0xa5c7('0x25')](function(_0x277193){logger[_0xa5c7('0x11')](_0xa5c7('0x27'),_0x14c18f);logger['debug'](_0xa5c7('0x27'),_0x14c18f,JSON[_0xa5c7('0x26')](_0x277193));_0x5044ed(_0x277193);})[_0xa5c7('0x1a')](function(_0x54be0d){logger[_0xa5c7('0x16')]('ShowMailAccount',_0x54be0d[_0xa5c7('0x18')],_0x14c18f);_0x5aaac3(_0x48b9d6[_0xa5c7('0x16')](0x1f4,_0x54be0d[_0xa5c7('0x18')]));});});};exports['NotifyMailAccount']=function(_0x21b40f){var _0x39a696=this;return new Promise(function(_0x4daa50,_0x3b3f66){var _0x542050={'body':_0x21b40f['body'],'channel':_0xa5c7('0x2a')};var _0x1e605c=_[_0xa5c7('0x2b')](_['keys'](db[_0xa5c7('0x2c')][_0xa5c7('0x2d')]),[_0xa5c7('0x2e'),_0xa5c7('0x2f'),_0xa5c7('0x30'),_0xa5c7('0x31')]);var _0x3cc360=![];if(_0x21b40f['body']['id']){delete _0x21b40f[_0xa5c7('0x32')]['id'];}if(_['isNil'](_0x21b40f[_0xa5c7('0x32')][_0xa5c7('0x33')])){return _0x3b3f66(_0x39a696[_0xa5c7('0x16')](0x1f4,_0xa5c7('0x34')));}if(_['isNil'](_0x21b40f['body'][_0xa5c7('0x32')])||_0x21b40f[_0xa5c7('0x32')][_0xa5c7('0x32')]===''){return _0x3b3f66(_0x39a696[_0xa5c7('0x16')](0x1f4,_0xa5c7('0x35')));}if(_['isNil'](_0x21b40f['body'][_0xa5c7('0x36')])){return _0x3b3f66(_0x39a696[_0xa5c7('0x16')](0x1f4,_0xa5c7('0x37')+_0x1e605c));}if(!_[_0xa5c7('0x38')](_0x1e605c,_0x21b40f[_0xa5c7('0x32')][_0xa5c7('0x36')])){return _0x3b3f66(_0x39a696[_0xa5c7('0x16')](0x1f4,_0xa5c7('0x39')+_0x1e605c));}var _0xdcfd7c={};_0xdcfd7c[_0x21b40f[_0xa5c7('0x32')]['mapKey']]=_0x21b40f['body'][_0xa5c7('0x33')];return db['MailAccount'][_0xa5c7('0x29')]({'where':{'id':_0x21b40f[_0xa5c7('0x3a')]['id']},'include':[{'model':db[_0xa5c7('0x3b')],'as':_0xa5c7('0x3c'),'include':[{'model':db[_0xa5c7('0x2c')],'as':_0xa5c7('0x3d'),'where':_0xdcfd7c,'limit':0x1,'order':[[_0xa5c7('0x2f'),'DESC']]}]},{'model':db[_0xa5c7('0x3e')],'as':_0xa5c7('0x3f')},{'model':db[_0xa5c7('0x40')],'as':_0xa5c7('0x41')}]})[_0xa5c7('0x25')](function(_0x1a25a3){if(_0x1a25a3&&_0x1a25a3[_0xa5c7('0x3c')]){var _0x4259f0=_0x1a25a3[_0xa5c7('0x42')]({'plain':!![]});_0x542050[_0xa5c7('0x3a')]=_[_0xa5c7('0x43')](_0x4259f0,[_0xa5c7('0x3f'),_0xa5c7('0x3c')]);_0x542050[_0xa5c7('0x44')]=_0x4259f0['Applications'];_0x542050['list']=_0x4259f0[_0xa5c7('0x3c')];_0x542050[_0xa5c7('0x44')]=_[_0xa5c7('0x45')](_0x542050[_0xa5c7('0x44')],[_0xa5c7('0x46')],[_0xa5c7('0x47')]);if(_0x542050['account']&&_0x542050[_0xa5c7('0x3a')][_0xa5c7('0x48')]){_0x542050[_0xa5c7('0x44')][_0xa5c7('0x49')]({'id':0x0,'priority':_0x542050[_0xa5c7('0x44')][_0xa5c7('0x4a')]+0x1,'app':'close','appdata':_0xa5c7('0x48'),'interval':_0xa5c7('0x4b')});}if(_0x542050[_0xa5c7('0x3a')][_0xa5c7('0x3f')]){delete _0x542050[_0xa5c7('0x3a')][_0xa5c7('0x3f')];}if(_0x542050[_0xa5c7('0x3a')][_0xa5c7('0x3c')]){delete _0x542050[_0xa5c7('0x3a')][_0xa5c7('0x3c')];}if(_0x4259f0[_0xa5c7('0x3c')][_0xa5c7('0x3d')][_0xa5c7('0x4a')]){return _0x4259f0[_0xa5c7('0x3c')][_0xa5c7('0x3d')][0x0];}var _0x4ae0ab=_[_0xa5c7('0xd')](_0x21b40f['body'],{'firstName':_0x21b40f[_0xa5c7('0x32')][_0xa5c7('0x33')],'ListId':_0x4259f0[_0xa5c7('0x31')]});_0x4ae0ab[_0x21b40f[_0xa5c7('0x32')][_0xa5c7('0x36')]]=_0x21b40f['body'][_0xa5c7('0x33')];return db[_0xa5c7('0x2c')][_0xa5c7('0x4c')](_0x4ae0ab);}else{throw new Error(_0xa5c7('0x4d'));}})[_0xa5c7('0x25')](function(_0x4a0c70){_0x542050['contact']=_0x4a0c70;if(_0x4a0c70){if(!_0x21b40f[_0xa5c7('0x32')][_0xa5c7('0x18')][_0xa5c7('0x4e')]){_0x21b40f[_0xa5c7('0x32')][_0xa5c7('0x18')]['messageId']=rs[_0xa5c7('0x4f')]()+'\x20'+_0x21b40f[_0xa5c7('0x32')]['message'][_0xa5c7('0x33')];}var _0x513f9d={'ContactId':_0x4a0c70['id'],'MailAccountId':_0x21b40f[_0xa5c7('0x3a')]['id'],'inReplyTo':_0x21b40f[_0xa5c7('0x32')][_0xa5c7('0x18')]['messageId'],'to':_0x21b40f[_0xa5c7('0x32')][_0xa5c7('0x18')][_0xa5c7('0x33')],'cc':_0x21b40f['body']['message']['cc'],'subject':_0x21b40f[_0xa5c7('0x32')]['message'][_0xa5c7('0x50')],'attach':_0x21b40f[_0xa5c7('0x32')]['message']['attach'],'lastMsgAt':moment()[_0xa5c7('0x51')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in'};return db[_0xa5c7('0x52')]['find']({'where':{'closed':![],'MailAccountId':_0x21b40f[_0xa5c7('0x3a')]['id']},'include':[{'model':db[_0xa5c7('0x53')],'as':_0xa5c7('0x54'),'attributes':[_0xa5c7('0x4e')],'where':{'messageId':_0x21b40f[_0xa5c7('0x32')][_0xa5c7('0x18')][_0xa5c7('0x55')]}}]})[_0xa5c7('0x25')](function(_0x265b5f){if(_0x265b5f){return[_0x265b5f,![]];}return db[_0xa5c7('0x52')][_0xa5c7('0x4c')](_0x513f9d)['then'](function(_0x385a91){return[_0x385a91,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})['spread'](function(_0x257f2b,_0x341954){if(_0x257f2b){_0x3cc360=_0x341954;if(!_0x341954){return _0x257f2b[_0xa5c7('0x56')]({'inReplyTo':_0x21b40f[_0xa5c7('0x32')][_0xa5c7('0x18')][_0xa5c7('0x4e')],'to':_0x21b40f[_0xa5c7('0x32')]['message'][_0xa5c7('0x33')],'cc':_0x21b40f['body']['message']['cc'],'subject':_0x21b40f[_0xa5c7('0x32')][_0xa5c7('0x18')]['subject'],'attach':_0x257f2b[_0xa5c7('0x57')]?_0x257f2b['attach']:_0x21b40f[_0xa5c7('0x32')][_0xa5c7('0x18')][_0xa5c7('0x57')],'substatus':null,'substatusAt':moment()[_0xa5c7('0x51')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgAt':moment()[_0xa5c7('0x51')](_0xa5c7('0x58')),'lastMsgDirection':'in'});}else{return _0x257f2b;}}})[_0xa5c7('0x25')](function(_0x3eb0b9){_0x542050['interaction']=_0x3eb0b9[_0xa5c7('0x42')]({'plain':!![]});_0x542050[_0xa5c7('0x59')]['created']=_0x3cc360;return db[_0xa5c7('0x53')][_0xa5c7('0x4c')]({'body':_0x21b40f[_0xa5c7('0x32')][_0xa5c7('0x32')],'MailAccountId':_0x21b40f['account']['id'],'MailInteractionId':_0x3eb0b9['id'],'direction':'in','ContactId':_0x542050[_0xa5c7('0x5a')]['id'],'messageId':_0x21b40f[_0xa5c7('0x32')][_0xa5c7('0x18')][_0xa5c7('0x4e')],'from':_0x21b40f[_0xa5c7('0x32')][_0xa5c7('0x18')][_0xa5c7('0x33')],'to':_0x21b40f[_0xa5c7('0x32')]['message']['to'],'cc':_0x21b40f[_0xa5c7('0x32')][_0xa5c7('0x18')]['cc'],'subject':_0x21b40f[_0xa5c7('0x32')][_0xa5c7('0x18')][_0xa5c7('0x50')],'attach':_0x21b40f['body'][_0xa5c7('0x18')][_0xa5c7('0x57')],'Attachments':_0x21b40f['body'][_0xa5c7('0x18')]['attachments'],'originTo':_0x21b40f['body']['message'][_0xa5c7('0x5b')],'originCc':_0x21b40f[_0xa5c7('0x32')][_0xa5c7('0x18')][_0xa5c7('0x5c')],'bcc':_0x21b40f[_0xa5c7('0x32')][_0xa5c7('0x18')][_0xa5c7('0x5d')],'ChatWebsiteId':_0x21b40f[_0xa5c7('0x32')][_0xa5c7('0x18')][_0xa5c7('0x5e')]||null,'originChannel':_0x21b40f['body'][_0xa5c7('0x18')][_0xa5c7('0x5f')]||_0xa5c7('0x60'),'ChatOfflineMessageId':_0x21b40f[_0xa5c7('0x32')]['message'][_0xa5c7('0x61')]||null},{'include':[{'model':db['Attachment'],'as':'Attachments'}]});})[_0xa5c7('0x25')](function(_0x2635d6){_0x542050[_0xa5c7('0x18')]=_0x2635d6;if(_0x542050[_0xa5c7('0x59')][_0xa5c7('0x62')]){return db[_0xa5c7('0x63')][_0xa5c7('0x29')]({'attributes':['id',_0xa5c7('0x64')],'where':{'id':_0x542050[_0xa5c7('0x59')]['UserId']}})['then'](function(_0x2da455){if(_0x2da455){_0x542050[_0xa5c7('0x44')][_0xa5c7('0x65')]({'id':0x0,'priority':0x0,'app':_0xa5c7('0x66'),'appdata':_0x2da455[_0xa5c7('0x64')]+','+(_0x542050[_0xa5c7('0x3a')][_0xa5c7('0x67')]||0xa),'interval':_0xa5c7('0x4b')});}return respondWithRpcPromise(_0xa5c7('0x68'),'startRouting',_0x542050);});}return respondWithRpcPromise('Start','startRouting',_0x542050);})[_0xa5c7('0x25')](function(_0x367c48){_0x4daa50(_0x367c48);})[_0xa5c7('0x1a')](function(_0x8acb1d){_0x3b3f66(_0x39a696[_0xa5c7('0x16')](0x1f4,_0x8acb1d[_0xa5c7('0x18')]));});});};