Built motion from commit 9d7072cc.|2.5.39
[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 _0x8a64=['Messages','inReplyTo','Contact\x20not\x20found','spread','update','subject','get','interaction','created','attachments','originTo','bcc','originChannel','Email','ChatOfflineMessageId','Attachment','UserId','User','unshift','agent','waitForTheAssignedAgent','*,*,*,*','Start','startRouting','lodash','bluebird','randomstring','ioredis','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','register','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','catch','MailAccount','findAll','raw','options','where','attributes','limit','include','map','model','GetMailAccount','find','ShowMailAccount','NotifyMailAccount','body','mail','keys','CmContact','rawAttributes','createdAt','CompanyId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey','CmList','List','Contacts','updatedAt','DESC','MailApplication','MailServerOut','omit','Applications','applications','list','orderBy','asc','account','push','close','autoclose','length','create','List\x20not\x20found','contact','messageId','generate','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage'];(function(_0x39d711,_0xe11eb7){var _0xee1d0c=function(_0x457e08){while(--_0x457e08){_0x39d711['push'](_0x39d711['shift']());}};_0xee1d0c(++_0xe11eb7);}(_0x8a64,0x159));var _0x48a6=function(_0x212b61,_0x5a022b){_0x212b61=_0x212b61-0x0;var _0x4e3cdf=_0x8a64[_0x212b61];return _0x4e3cdf;};'use strict';var _=require(_0x48a6('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0x48a6('0x1'));var rs=require(_0x48a6('0x2'));var fs=require('fs');var Redis=require(_0x48a6('0x3'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0x48a6('0x4'))(_0x48a6('0x5'));var config=require(_0x48a6('0x6'));var jayson=require(_0x48a6('0x7'));var client=jayson[_0x48a6('0x8')][_0x48a6('0x9')]({'port':0x232c});config[_0x48a6('0xa')]=_[_0x48a6('0xb')](config[_0x48a6('0xa')],{'host':_0x48a6('0xc'),'port':0x18eb});var socket=require(_0x48a6('0xd'))(new Redis(config[_0x48a6('0xa')]));require(_0x48a6('0xe'))[_0x48a6('0xf')](socket);function respondWithRpcPromise(_0x1c80ba,_0x5c9ec6,_0xf4f324){return new BPromise(function(_0x3640ff,_0x48ee75){return client['request'](_0x1c80ba,_0xf4f324)[_0x48a6('0x10')](function(_0x4014f3){logger[_0x48a6('0x11')](_0x48a6('0x12'),_0x5c9ec6,_0x48a6('0x13'));logger[_0x48a6('0x14')]('MailAccount,\x20%s,\x20%s,\x20%s',_0x5c9ec6,_0x48a6('0x13'),JSON[_0x48a6('0x15')](_0x4014f3));if(_0x4014f3[_0x48a6('0x16')]){if(_0x4014f3[_0x48a6('0x16')][_0x48a6('0x17')]===0x1f4){logger[_0x48a6('0x16')]('MailAccount,\x20%s,\x20%s',_0x5c9ec6,_0x4014f3[_0x48a6('0x16')][_0x48a6('0x18')]);return _0x48ee75(_0x4014f3[_0x48a6('0x16')][_0x48a6('0x18')]);}logger[_0x48a6('0x16')](_0x48a6('0x12'),_0x5c9ec6,_0x4014f3[_0x48a6('0x16')][_0x48a6('0x18')]);return _0x3640ff(_0x4014f3[_0x48a6('0x16')][_0x48a6('0x18')]);}else{logger[_0x48a6('0x11')](_0x48a6('0x12'),_0x5c9ec6,_0x48a6('0x13'));_0x3640ff(_0x4014f3[_0x48a6('0x19')][_0x48a6('0x18')]);}})[_0x48a6('0x1a')](function(_0x48c9a2){logger['error'](_0x48a6('0x12'),_0x5c9ec6,_0x48c9a2);_0x48ee75(_0x48c9a2);});});}exports['GetMailAccount']=function(_0x112af7){var _0x111170=this;return new Promise(function(_0x32a797,_0x2ca473){return db[_0x48a6('0x1b')][_0x48a6('0x1c')]({'raw':_0x112af7['options']?_0x112af7['options'][_0x48a6('0x1d')]===undefined?!![]:![]:!![],'where':_0x112af7[_0x48a6('0x1e')]?_0x112af7[_0x48a6('0x1e')][_0x48a6('0x1f')]||null:null,'attributes':_0x112af7[_0x48a6('0x1e')]?_0x112af7[_0x48a6('0x1e')][_0x48a6('0x20')]||null:null,'limit':_0x112af7[_0x48a6('0x1e')]?_0x112af7[_0x48a6('0x1e')][_0x48a6('0x21')]||null:null,'include':_0x112af7['options']?_0x112af7['options'][_0x48a6('0x22')]?_[_0x48a6('0x23')](_0x112af7[_0x48a6('0x1e')][_0x48a6('0x22')],function(_0x41846e){return{'model':db[_0x41846e[_0x48a6('0x24')]],'as':_0x41846e['as'],'attributes':_0x41846e[_0x48a6('0x20')],'include':_0x41846e[_0x48a6('0x22')]?_[_0x48a6('0x23')](_0x41846e[_0x48a6('0x22')],function(_0x5d4d21){return{'model':db[_0x5d4d21[_0x48a6('0x24')]],'as':_0x5d4d21['as'],'attributes':_0x5d4d21['attributes'],'include':_0x5d4d21[_0x48a6('0x22')]?_[_0x48a6('0x23')](_0x5d4d21['include'],function(_0xbb8d01){return{'model':db[_0xbb8d01[_0x48a6('0x24')]],'as':_0xbb8d01['as'],'attributes':_0xbb8d01[_0x48a6('0x20')]};}):[]};}):[]};}):[]:[]})[_0x48a6('0x10')](function(_0xa8fa7d){logger[_0x48a6('0x11')](_0x48a6('0x25'),_0x112af7);logger['debug'](_0x48a6('0x25'),_0x112af7,JSON['stringify'](_0xa8fa7d));_0x32a797(_0xa8fa7d);})[_0x48a6('0x1a')](function(_0x32cca6){logger[_0x48a6('0x16')]('GetMailAccount',_0x32cca6[_0x48a6('0x18')],_0x112af7);_0x2ca473(_0x111170[_0x48a6('0x16')](0x1f4,_0x32cca6[_0x48a6('0x18')]));});});};exports['ShowMailAccount']=function(_0xe1427a){var _0x11f368=this;return new Promise(function(_0x33cffc,_0x5b2e43){return db['MailAccount'][_0x48a6('0x26')]({'raw':_0xe1427a['options']?_0xe1427a[_0x48a6('0x1e')][_0x48a6('0x1d')]===undefined?!![]:![]:!![],'where':_0xe1427a[_0x48a6('0x1e')]?_0xe1427a['options'][_0x48a6('0x1f')]||null:null,'attributes':_0xe1427a['options']?_0xe1427a[_0x48a6('0x1e')][_0x48a6('0x20')]||null:null,'include':_0xe1427a[_0x48a6('0x1e')]?_0xe1427a[_0x48a6('0x1e')][_0x48a6('0x22')]?_['map'](_0xe1427a['options'][_0x48a6('0x22')],function(_0x19795){return{'model':db[_0x19795[_0x48a6('0x24')]],'as':_0x19795['as'],'attributes':_0x19795[_0x48a6('0x20')],'include':_0x19795['include']?_['map'](_0x19795[_0x48a6('0x22')],function(_0x22a886){return{'model':db[_0x22a886[_0x48a6('0x24')]],'as':_0x22a886['as'],'attributes':_0x22a886[_0x48a6('0x20')],'include':_0x22a886[_0x48a6('0x22')]?_[_0x48a6('0x23')](_0x22a886['include'],function(_0xa2b197){return{'model':db[_0xa2b197[_0x48a6('0x24')]],'as':_0xa2b197['as'],'attributes':_0xa2b197['attributes']};}):[]};}):[]};}):[]:[]})[_0x48a6('0x10')](function(_0xa1cb27){logger[_0x48a6('0x11')](_0x48a6('0x27'),_0xe1427a);logger[_0x48a6('0x14')](_0x48a6('0x27'),_0xe1427a,JSON[_0x48a6('0x15')](_0xa1cb27));_0x33cffc(_0xa1cb27);})['catch'](function(_0x39c7e4){logger[_0x48a6('0x16')](_0x48a6('0x27'),_0x39c7e4[_0x48a6('0x18')],_0xe1427a);_0x5b2e43(_0x11f368[_0x48a6('0x16')](0x1f4,_0x39c7e4[_0x48a6('0x18')]));});});};exports[_0x48a6('0x28')]=function(_0xd61dfe){var _0x31c08f=this;return new Promise(function(_0x5439e4,_0x41721c){var _0x8395c0={'body':_0xd61dfe[_0x48a6('0x29')],'channel':_0x48a6('0x2a')};var _0x529def=_['difference'](_[_0x48a6('0x2b')](db[_0x48a6('0x2c')][_0x48a6('0x2d')]),[_0x48a6('0x2e'),'updatedAt',_0x48a6('0x2f'),'ListId']);var _0x4fbea2=![];if(_0xd61dfe[_0x48a6('0x29')]['id']){delete _0xd61dfe[_0x48a6('0x29')]['id'];}if(_[_0x48a6('0x30')](_0xd61dfe[_0x48a6('0x29')][_0x48a6('0x31')])){return _0x41721c(_0x31c08f['error'](0x1f4,_0x48a6('0x32')));}if(_['isNil'](_0xd61dfe[_0x48a6('0x29')][_0x48a6('0x29')])||_0xd61dfe['body'][_0x48a6('0x29')]===''){return _0x41721c(_0x31c08f[_0x48a6('0x16')](0x1f4,_0x48a6('0x33')));}if(_[_0x48a6('0x30')](_0xd61dfe['body']['mapKey'])){return _0x41721c(_0x31c08f['error'](0x1f4,_0x48a6('0x34')+_0x529def));}if(!_[_0x48a6('0x35')](_0x529def,_0xd61dfe[_0x48a6('0x29')]['mapKey'])){return _0x41721c(_0x31c08f[_0x48a6('0x16')](0x1f4,'mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x529def));}var _0x4c5670={};_0x4c5670[_0xd61dfe[_0x48a6('0x29')][_0x48a6('0x36')]]=_0xd61dfe[_0x48a6('0x29')][_0x48a6('0x31')];return db[_0x48a6('0x1b')][_0x48a6('0x26')]({'where':{'id':_0xd61dfe['account']['id']},'include':[{'model':db[_0x48a6('0x37')],'as':_0x48a6('0x38'),'include':[{'model':db['CmContact'],'as':_0x48a6('0x39'),'where':_0x4c5670,'limit':0x1,'order':[[_0x48a6('0x3a'),_0x48a6('0x3b')]]}]},{'model':db[_0x48a6('0x3c')],'as':'Applications'},{'model':db[_0x48a6('0x3d')],'as':'Smtp'}]})[_0x48a6('0x10')](function(_0x49f715){if(_0x49f715&&_0x49f715['List']){var _0x28dbaf=_0x49f715['get']({'plain':!![]});_0x8395c0['account']=_[_0x48a6('0x3e')](_0x28dbaf,[_0x48a6('0x3f'),_0x48a6('0x38')]);_0x8395c0[_0x48a6('0x40')]=_0x28dbaf[_0x48a6('0x3f')];_0x8395c0[_0x48a6('0x41')]=_0x28dbaf['List'];_0x8395c0[_0x48a6('0x40')]=_[_0x48a6('0x42')](_0x8395c0[_0x48a6('0x40')],['priority'],[_0x48a6('0x43')]);if(_0x8395c0[_0x48a6('0x44')]&&_0x8395c0['account']['autoclose']){_0x8395c0[_0x48a6('0x40')][_0x48a6('0x45')]({'id':0x0,'priority':_0x8395c0['applications']['length']+0x1,'app':_0x48a6('0x46'),'appdata':_0x48a6('0x47'),'interval':'*,*,*,*'});}if(_0x8395c0[_0x48a6('0x44')][_0x48a6('0x3f')]){delete _0x8395c0['account'][_0x48a6('0x3f')];}if(_0x8395c0[_0x48a6('0x44')]['List']){delete _0x8395c0[_0x48a6('0x44')][_0x48a6('0x38')];}if(_0x28dbaf[_0x48a6('0x38')][_0x48a6('0x39')][_0x48a6('0x48')]){return _0x28dbaf['List'][_0x48a6('0x39')][0x0];}var _0xb91497=_[_0x48a6('0xb')](_0xd61dfe['body'],{'firstName':_0xd61dfe[_0x48a6('0x29')]['from'],'ListId':_0x28dbaf['ListId']});_0xb91497[_0xd61dfe[_0x48a6('0x29')][_0x48a6('0x36')]]=_0xd61dfe[_0x48a6('0x29')][_0x48a6('0x31')];return db[_0x48a6('0x2c')][_0x48a6('0x49')](_0xb91497);}else{throw new Error(_0x48a6('0x4a'));}})[_0x48a6('0x10')](function(_0x2437b3){_0x8395c0[_0x48a6('0x4b')]=_0x2437b3;if(_0x2437b3){if(!_0xd61dfe[_0x48a6('0x29')][_0x48a6('0x18')]['messageId']){_0xd61dfe[_0x48a6('0x29')][_0x48a6('0x18')][_0x48a6('0x4c')]=rs[_0x48a6('0x4d')]()+'\x20'+_0xd61dfe[_0x48a6('0x29')][_0x48a6('0x18')][_0x48a6('0x31')];}var _0x2ec8ec={'ContactId':_0x2437b3['id'],'MailAccountId':_0xd61dfe[_0x48a6('0x44')]['id'],'inReplyTo':_0xd61dfe['body'][_0x48a6('0x18')][_0x48a6('0x4c')],'to':_0xd61dfe['body'][_0x48a6('0x18')][_0x48a6('0x31')],'cc':_0xd61dfe[_0x48a6('0x29')][_0x48a6('0x18')]['cc'],'subject':_0xd61dfe[_0x48a6('0x29')]['message']['subject'],'attach':_0xd61dfe[_0x48a6('0x29')][_0x48a6('0x18')][_0x48a6('0x4e')],'lastMsgAt':moment()[_0x48a6('0x4f')](_0x48a6('0x50')),'lastMsgDirection':'in'};return db[_0x48a6('0x51')][_0x48a6('0x26')]({'where':{'closed':![],'MailAccountId':_0xd61dfe[_0x48a6('0x44')]['id']},'include':[{'model':db[_0x48a6('0x52')],'as':_0x48a6('0x53'),'attributes':[_0x48a6('0x4c')],'where':{'messageId':_0xd61dfe['body'][_0x48a6('0x18')][_0x48a6('0x54')]}}]})[_0x48a6('0x10')](function(_0x5dba89){if(_0x5dba89){return[_0x5dba89,![]];}return db[_0x48a6('0x51')]['create'](_0x2ec8ec)[_0x48a6('0x10')](function(_0x46afe3){return[_0x46afe3,!![]];});});}else{throw new Error(_0x48a6('0x55'));}})[_0x48a6('0x56')](function(_0x4b6915,_0x3dce3e){if(_0x4b6915){_0x4fbea2=_0x3dce3e;if(!_0x3dce3e){return _0x4b6915[_0x48a6('0x57')]({'inReplyTo':_0xd61dfe[_0x48a6('0x29')][_0x48a6('0x18')][_0x48a6('0x4c')],'to':_0xd61dfe[_0x48a6('0x29')][_0x48a6('0x18')][_0x48a6('0x31')],'cc':_0xd61dfe['body']['message']['cc'],'subject':_0xd61dfe[_0x48a6('0x29')][_0x48a6('0x18')][_0x48a6('0x58')],'attach':_0x4b6915['attach']?_0x4b6915[_0x48a6('0x4e')]:_0xd61dfe[_0x48a6('0x29')][_0x48a6('0x18')][_0x48a6('0x4e')],'substatus':null,'substatusAt':moment()[_0x48a6('0x4f')](_0x48a6('0x50')),'lastMsgAt':moment()[_0x48a6('0x4f')](_0x48a6('0x50')),'lastMsgDirection':'in'});}else{return _0x4b6915;}}})[_0x48a6('0x10')](function(_0x486928){_0x8395c0['interaction']=_0x486928[_0x48a6('0x59')]({'plain':!![]});_0x8395c0[_0x48a6('0x5a')][_0x48a6('0x5b')]=_0x4fbea2;return db[_0x48a6('0x52')][_0x48a6('0x49')]({'body':_0xd61dfe[_0x48a6('0x29')][_0x48a6('0x29')],'MailAccountId':_0xd61dfe[_0x48a6('0x44')]['id'],'MailInteractionId':_0x486928['id'],'direction':'in','ContactId':_0x8395c0[_0x48a6('0x4b')]['id'],'messageId':_0xd61dfe[_0x48a6('0x29')][_0x48a6('0x18')]['messageId'],'from':_0xd61dfe[_0x48a6('0x29')][_0x48a6('0x18')][_0x48a6('0x31')],'to':_0xd61dfe[_0x48a6('0x29')][_0x48a6('0x18')]['to'],'cc':_0xd61dfe['body']['message']['cc'],'subject':_0xd61dfe['body'][_0x48a6('0x18')][_0x48a6('0x58')],'attach':_0xd61dfe[_0x48a6('0x29')][_0x48a6('0x18')]['attach'],'Attachments':_0xd61dfe['body'][_0x48a6('0x18')][_0x48a6('0x5c')],'originTo':_0xd61dfe[_0x48a6('0x29')][_0x48a6('0x18')][_0x48a6('0x5d')],'originCc':_0xd61dfe[_0x48a6('0x29')][_0x48a6('0x18')]['originCc'],'bcc':_0xd61dfe[_0x48a6('0x29')][_0x48a6('0x18')][_0x48a6('0x5e')],'ChatWebsiteId':_0xd61dfe['body'][_0x48a6('0x18')]['ChatWebsiteId']||null,'originChannel':_0xd61dfe['body'][_0x48a6('0x18')][_0x48a6('0x5f')]||_0x48a6('0x60'),'ChatOfflineMessageId':_0xd61dfe['body'][_0x48a6('0x18')][_0x48a6('0x61')]||null},{'include':[{'model':db[_0x48a6('0x62')],'as':'Attachments'}]});})['then'](function(_0x40d5aa){_0x8395c0[_0x48a6('0x18')]=_0x40d5aa;if(_0x8395c0['interaction'][_0x48a6('0x63')]){return db[_0x48a6('0x64')][_0x48a6('0x26')]({'attributes':['id','name'],'where':{'id':_0x8395c0['interaction']['UserId']}})[_0x48a6('0x10')](function(_0x4e2288){if(_0x4e2288){_0x8395c0['applications'][_0x48a6('0x65')]({'id':0x0,'priority':0x0,'app':_0x48a6('0x66'),'appdata':_0x4e2288['name']+','+(_0x8395c0[_0x48a6('0x44')][_0x48a6('0x67')]||0xa),'interval':_0x48a6('0x68')});}return respondWithRpcPromise(_0x48a6('0x69'),_0x48a6('0x6a'),_0x8395c0);});}return respondWithRpcPromise('Start',_0x48a6('0x6a'),_0x8395c0);})[_0x48a6('0x10')](function(_0x32e93a){_0x5439e4(_0x32e93a);})[_0x48a6('0x1a')](function(_0x58d14f){_0x41721c(_0x31c08f[_0x48a6('0x16')](0x1f4,_0x58d14f[_0x48a6('0x18')]));});});};