41563c876648a7ebac1f91916825b99a42d1dc86
[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 _0x0b31=['Start','startRouting','lodash','util','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','defaults','socket.io-emitter','redis','./mailAccount.socket','register','request','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','code','error','message','result','catch','options','raw','where','attributes','limit','include','map','model','GetMailAccount','ShowMailAccount','MailAccount','find','NotifyMailAccount','body','keys','CmContact','createdAt','updatedAt','ListId','isNil','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','Contacts','MailApplication','MailServerOut','Smtp','get','Applications','List','applications','list','orderBy','asc','autoclose','push','length','close','*,*,*,*','create','List\x20not\x20found','contact','messageId','generate','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','MailMessage','Messages','inReplyTo','spread','update','subject','attach','format','interaction','attachments','originCc','ChatWebsiteId','originChannel','ChatOfflineMessageId','name','UserId','unshift','agent','waitForTheAssignedAgent'];(function(_0x3c7a73,_0x3cd0f5){var _0xd0e2b6=function(_0x5df90d){while(--_0x5df90d){_0x3c7a73['push'](_0x3c7a73['shift']());}};_0xd0e2b6(++_0x3cd0f5);}(_0x0b31,0x131));var _0x10b3=function(_0x1ee87e,_0x52d49c){_0x1ee87e=_0x1ee87e-0x0;var _0xf6d04=_0x0b31[_0x1ee87e];return _0xf6d04;};'use strict';var _=require(_0x10b3('0x0'));var util=require(_0x10b3('0x1'));var moment=require('moment');var BPromise=require(_0x10b3('0x2'));var rs=require(_0x10b3('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x10b3('0x4'))['db'];var utils=require(_0x10b3('0x5'));var logger=require(_0x10b3('0x6'))(_0x10b3('0x7'));var config=require(_0x10b3('0x8'));var jayson=require(_0x10b3('0x9'));var client=jayson[_0x10b3('0xa')]['http']({'port':0x232c});config['redis']=_[_0x10b3('0xb')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x10b3('0xc'))(new Redis(config[_0x10b3('0xd')]));require(_0x10b3('0xe'))[_0x10b3('0xf')](socket);function respondWithRpcPromise(_0x22e2ff,_0x3d5c10,_0x4b8a85){return new BPromise(function(_0x2b5152,_0x50f23e){return client[_0x10b3('0x10')](_0x22e2ff,_0x4b8a85)[_0x10b3('0x11')](function(_0x5bf328){logger[_0x10b3('0x12')](_0x10b3('0x13'),_0x3d5c10,_0x10b3('0x14'));logger[_0x10b3('0x15')](_0x10b3('0x16'),_0x3d5c10,_0x10b3('0x14'),JSON[_0x10b3('0x17')](_0x5bf328));if(_0x5bf328['error']){if(_0x5bf328['error'][_0x10b3('0x18')]===0x1f4){logger[_0x10b3('0x19')](_0x10b3('0x13'),_0x3d5c10,_0x5bf328['error']['message']);return _0x50f23e(_0x5bf328[_0x10b3('0x19')][_0x10b3('0x1a')]);}logger[_0x10b3('0x19')](_0x10b3('0x13'),_0x3d5c10,_0x5bf328['error'][_0x10b3('0x1a')]);return _0x2b5152(_0x5bf328[_0x10b3('0x19')][_0x10b3('0x1a')]);}else{logger[_0x10b3('0x12')](_0x10b3('0x13'),_0x3d5c10,_0x10b3('0x14'));_0x2b5152(_0x5bf328[_0x10b3('0x1b')][_0x10b3('0x1a')]);}})[_0x10b3('0x1c')](function(_0x6bf4b3){logger[_0x10b3('0x19')](_0x10b3('0x13'),_0x3d5c10,_0x6bf4b3);_0x50f23e(_0x6bf4b3);});});}exports['GetMailAccount']=function(_0x23ef40){var _0x18e1c2=this;return new Promise(function(_0x29ebf4,_0x3d1f27){return db['MailAccount']['findAll']({'raw':_0x23ef40[_0x10b3('0x1d')]?_0x23ef40[_0x10b3('0x1d')][_0x10b3('0x1e')]===undefined?!![]:![]:!![],'where':_0x23ef40[_0x10b3('0x1d')]?_0x23ef40[_0x10b3('0x1d')][_0x10b3('0x1f')]||null:null,'attributes':_0x23ef40['options']?_0x23ef40[_0x10b3('0x1d')][_0x10b3('0x20')]||null:null,'limit':_0x23ef40['options']?_0x23ef40[_0x10b3('0x1d')][_0x10b3('0x21')]||null:null,'include':_0x23ef40[_0x10b3('0x1d')]?_0x23ef40[_0x10b3('0x1d')][_0x10b3('0x22')]?_[_0x10b3('0x23')](_0x23ef40[_0x10b3('0x1d')][_0x10b3('0x22')],function(_0x5f3629){return{'model':db[_0x5f3629[_0x10b3('0x24')]],'as':_0x5f3629['as'],'attributes':_0x5f3629[_0x10b3('0x20')],'include':_0x5f3629['include']?_[_0x10b3('0x23')](_0x5f3629['include'],function(_0xf2fc18){return{'model':db[_0xf2fc18[_0x10b3('0x24')]],'as':_0xf2fc18['as'],'attributes':_0xf2fc18[_0x10b3('0x20')],'include':_0xf2fc18[_0x10b3('0x22')]?_[_0x10b3('0x23')](_0xf2fc18[_0x10b3('0x22')],function(_0x483e5b){return{'model':db[_0x483e5b[_0x10b3('0x24')]],'as':_0x483e5b['as'],'attributes':_0x483e5b[_0x10b3('0x20')]};}):[]};}):[]};}):[]:[]})[_0x10b3('0x11')](function(_0x495310){logger['info']('GetMailAccount',_0x23ef40);logger[_0x10b3('0x15')](_0x10b3('0x25'),_0x23ef40,JSON[_0x10b3('0x17')](_0x495310));_0x29ebf4(_0x495310);})[_0x10b3('0x1c')](function(_0x25b5cd){logger['error']('GetMailAccount',_0x25b5cd[_0x10b3('0x1a')],_0x23ef40);_0x3d1f27(_0x18e1c2[_0x10b3('0x19')](0x1f4,_0x25b5cd['message']));});});};exports[_0x10b3('0x26')]=function(_0x564c4e){var _0x30a208=this;return new Promise(function(_0x579b8e,_0x1c985f){return db[_0x10b3('0x27')][_0x10b3('0x28')]({'raw':_0x564c4e[_0x10b3('0x1d')]?_0x564c4e[_0x10b3('0x1d')][_0x10b3('0x1e')]===undefined?!![]:![]:!![],'where':_0x564c4e[_0x10b3('0x1d')]?_0x564c4e[_0x10b3('0x1d')][_0x10b3('0x1f')]||null:null,'attributes':_0x564c4e[_0x10b3('0x1d')]?_0x564c4e[_0x10b3('0x1d')][_0x10b3('0x20')]||null:null,'include':_0x564c4e['options']?_0x564c4e['options'][_0x10b3('0x22')]?_[_0x10b3('0x23')](_0x564c4e[_0x10b3('0x1d')][_0x10b3('0x22')],function(_0x5a26d7){return{'model':db[_0x5a26d7['model']],'as':_0x5a26d7['as'],'attributes':_0x5a26d7[_0x10b3('0x20')],'include':_0x5a26d7['include']?_[_0x10b3('0x23')](_0x5a26d7[_0x10b3('0x22')],function(_0x27d5f9){return{'model':db[_0x27d5f9[_0x10b3('0x24')]],'as':_0x27d5f9['as'],'attributes':_0x27d5f9[_0x10b3('0x20')],'include':_0x27d5f9[_0x10b3('0x22')]?_[_0x10b3('0x23')](_0x27d5f9[_0x10b3('0x22')],function(_0x53b2e0){return{'model':db[_0x53b2e0['model']],'as':_0x53b2e0['as'],'attributes':_0x53b2e0[_0x10b3('0x20')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x35d37a){logger['info']('ShowMailAccount',_0x564c4e);logger[_0x10b3('0x15')](_0x10b3('0x26'),_0x564c4e,JSON[_0x10b3('0x17')](_0x35d37a));_0x579b8e(_0x35d37a);})[_0x10b3('0x1c')](function(_0x20a233){logger[_0x10b3('0x19')](_0x10b3('0x26'),_0x20a233[_0x10b3('0x1a')],_0x564c4e);_0x1c985f(_0x30a208[_0x10b3('0x19')](0x1f4,_0x20a233['message']));});});};exports[_0x10b3('0x29')]=function(_0x4992d0){var _0x31c7f1=this;return new Promise(function(_0xf4addd,_0x481c6f){var _0x3be0e4={'body':_0x4992d0[_0x10b3('0x2a')],'channel':'mail'};var _0x4e3fe3=_['difference'](_[_0x10b3('0x2b')](db[_0x10b3('0x2c')]['rawAttributes']),[_0x10b3('0x2d'),_0x10b3('0x2e'),'CompanyId',_0x10b3('0x2f')]);var _0x1b13e2=![];if(_0x4992d0[_0x10b3('0x2a')]['id']){delete _0x4992d0[_0x10b3('0x2a')]['id'];}if(_[_0x10b3('0x30')](_0x4992d0[_0x10b3('0x2a')][_0x10b3('0x31')])){return _0x481c6f(_0x31c7f1[_0x10b3('0x19')](0x1f4,_0x10b3('0x32')));}if(_[_0x10b3('0x30')](_0x4992d0[_0x10b3('0x2a')][_0x10b3('0x2a')])||_0x4992d0[_0x10b3('0x2a')][_0x10b3('0x2a')]===''){return _0x481c6f(_0x31c7f1[_0x10b3('0x19')](0x1f4,_0x10b3('0x33')));}if(_['isNil'](_0x4992d0[_0x10b3('0x2a')][_0x10b3('0x34')])){return _0x481c6f(_0x31c7f1[_0x10b3('0x19')](0x1f4,_0x10b3('0x35')+_0x4e3fe3));}if(!_[_0x10b3('0x36')](_0x4e3fe3,_0x4992d0['body'][_0x10b3('0x34')])){return _0x481c6f(_0x31c7f1[_0x10b3('0x19')](0x1f4,_0x10b3('0x37')+_0x4e3fe3));}var _0x1a3e6f={};_0x1a3e6f[_0x4992d0[_0x10b3('0x2a')][_0x10b3('0x34')]]=_0x4992d0[_0x10b3('0x2a')]['from'];return db[_0x10b3('0x27')][_0x10b3('0x28')]({'where':{'id':_0x4992d0[_0x10b3('0x38')]['id']},'include':[{'model':db['CmList'],'as':'List','include':[{'model':db[_0x10b3('0x2c')],'as':_0x10b3('0x39'),'where':_0x1a3e6f,'limit':0x1,'order':[['updatedAt','DESC']]}]},{'model':db[_0x10b3('0x3a')],'as':'Applications'},{'model':db[_0x10b3('0x3b')],'as':_0x10b3('0x3c')}]})['then'](function(_0x5921bf){if(_0x5921bf&&_0x5921bf['List']){var _0x5a04c5=_0x5921bf[_0x10b3('0x3d')]({'plain':!![]});_0x3be0e4['account']=_['omit'](_0x5a04c5,[_0x10b3('0x3e'),_0x10b3('0x3f')]);_0x3be0e4[_0x10b3('0x40')]=_0x5a04c5[_0x10b3('0x3e')];_0x3be0e4[_0x10b3('0x41')]=_0x5a04c5['List'];_0x3be0e4[_0x10b3('0x40')]=_[_0x10b3('0x42')](_0x3be0e4['applications'],['priority'],[_0x10b3('0x43')]);if(_0x3be0e4[_0x10b3('0x38')]&&_0x3be0e4['account'][_0x10b3('0x44')]){_0x3be0e4[_0x10b3('0x40')][_0x10b3('0x45')]({'id':0x0,'priority':_0x3be0e4[_0x10b3('0x40')][_0x10b3('0x46')]+0x1,'app':_0x10b3('0x47'),'appdata':_0x10b3('0x44'),'interval':_0x10b3('0x48')});}if(_0x3be0e4[_0x10b3('0x38')]['Applications']){delete _0x3be0e4[_0x10b3('0x38')][_0x10b3('0x3e')];}if(_0x3be0e4[_0x10b3('0x38')][_0x10b3('0x3f')]){delete _0x3be0e4[_0x10b3('0x38')][_0x10b3('0x3f')];}if(_0x5a04c5[_0x10b3('0x3f')][_0x10b3('0x39')][_0x10b3('0x46')]){return _0x5a04c5[_0x10b3('0x3f')][_0x10b3('0x39')][0x0];}var _0x3c5939=_[_0x10b3('0xb')](_0x4992d0[_0x10b3('0x2a')],{'firstName':_0x4992d0[_0x10b3('0x2a')][_0x10b3('0x31')],'ListId':_0x5a04c5[_0x10b3('0x2f')]});_0x3c5939[_0x4992d0[_0x10b3('0x2a')][_0x10b3('0x34')]]=_0x4992d0[_0x10b3('0x2a')]['from'];return db['CmContact'][_0x10b3('0x49')](_0x3c5939);}else{throw new Error(_0x10b3('0x4a'));}})[_0x10b3('0x11')](function(_0x2bc436){_0x3be0e4[_0x10b3('0x4b')]=_0x2bc436;if(_0x2bc436){if(!_0x4992d0['body'][_0x10b3('0x1a')][_0x10b3('0x4c')]){_0x4992d0[_0x10b3('0x2a')][_0x10b3('0x1a')]['messageId']=rs[_0x10b3('0x4d')]()+'\x20'+_0x4992d0[_0x10b3('0x2a')]['message'][_0x10b3('0x31')];}var _0xc9d62a={'ContactId':_0x2bc436['id'],'MailAccountId':_0x4992d0[_0x10b3('0x38')]['id'],'inReplyTo':_0x4992d0[_0x10b3('0x2a')][_0x10b3('0x1a')][_0x10b3('0x4c')],'to':_0x4992d0[_0x10b3('0x2a')][_0x10b3('0x1a')][_0x10b3('0x31')],'cc':_0x4992d0['body']['message']['cc'],'subject':_0x4992d0['body'][_0x10b3('0x1a')]['subject'],'attach':_0x4992d0[_0x10b3('0x2a')][_0x10b3('0x1a')]['attach'],'lastMsgAt':moment()['format'](_0x10b3('0x4e')),'lastMsgDirection':'in'};return db[_0x10b3('0x4f')][_0x10b3('0x28')]({'where':{'closed':![],'MailAccountId':_0x4992d0['account']['id']},'include':[{'model':db[_0x10b3('0x50')],'as':_0x10b3('0x51'),'attributes':['messageId'],'where':{'messageId':_0x4992d0[_0x10b3('0x2a')][_0x10b3('0x1a')][_0x10b3('0x52')]}}]})['then'](function(_0x247030){if(_0x247030){return[_0x247030,![]];}return db[_0x10b3('0x4f')][_0x10b3('0x49')](_0xc9d62a)[_0x10b3('0x11')](function(_0x4c174c){return[_0x4c174c,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0x10b3('0x53')](function(_0x1c316f,_0x3f5fac){if(_0x1c316f){_0x1b13e2=_0x3f5fac;if(!_0x3f5fac){return _0x1c316f[_0x10b3('0x54')]({'inReplyTo':_0x4992d0['body']['message'][_0x10b3('0x4c')],'to':_0x4992d0[_0x10b3('0x2a')]['message'][_0x10b3('0x31')],'cc':_0x4992d0[_0x10b3('0x2a')]['message']['cc'],'subject':_0x4992d0[_0x10b3('0x2a')][_0x10b3('0x1a')][_0x10b3('0x55')],'attach':_0x1c316f['attach']?_0x1c316f['attach']:_0x4992d0[_0x10b3('0x2a')]['message'][_0x10b3('0x56')],'substatus':null,'substatusAt':moment()[_0x10b3('0x57')](_0x10b3('0x4e')),'lastMsgAt':moment()[_0x10b3('0x57')](_0x10b3('0x4e')),'lastMsgDirection':'in'});}else{return _0x1c316f;}}})[_0x10b3('0x11')](function(_0x57133e){_0x3be0e4['interaction']=_0x57133e[_0x10b3('0x3d')]({'plain':!![]});_0x3be0e4[_0x10b3('0x58')]['created']=_0x1b13e2;return db[_0x10b3('0x50')][_0x10b3('0x49')]({'body':_0x4992d0['body']['body'],'MailAccountId':_0x4992d0['account']['id'],'MailInteractionId':_0x57133e['id'],'direction':'in','ContactId':_0x3be0e4[_0x10b3('0x4b')]['id'],'messageId':_0x4992d0['body'][_0x10b3('0x1a')][_0x10b3('0x4c')],'from':_0x4992d0[_0x10b3('0x2a')][_0x10b3('0x1a')]['from'],'to':_0x4992d0[_0x10b3('0x2a')][_0x10b3('0x1a')]['to'],'cc':_0x4992d0['body'][_0x10b3('0x1a')]['cc'],'subject':_0x4992d0[_0x10b3('0x2a')][_0x10b3('0x1a')][_0x10b3('0x55')],'attach':_0x4992d0['body'][_0x10b3('0x1a')][_0x10b3('0x56')],'Attachments':_0x4992d0[_0x10b3('0x2a')][_0x10b3('0x1a')][_0x10b3('0x59')],'originTo':_0x4992d0[_0x10b3('0x2a')][_0x10b3('0x1a')]['originTo'],'originCc':_0x4992d0[_0x10b3('0x2a')][_0x10b3('0x1a')][_0x10b3('0x5a')],'bcc':_0x4992d0[_0x10b3('0x2a')][_0x10b3('0x1a')]['bcc'],'ChatWebsiteId':_0x4992d0['body'][_0x10b3('0x1a')][_0x10b3('0x5b')]||null,'originChannel':_0x4992d0[_0x10b3('0x2a')]['message'][_0x10b3('0x5c')]||'Email','ChatOfflineMessageId':_0x4992d0['body']['message'][_0x10b3('0x5d')]||null},{'include':[{'model':db['Attachment'],'as':'Attachments'}]});})[_0x10b3('0x11')](function(_0x46e0ed){_0x3be0e4[_0x10b3('0x1a')]=_0x46e0ed;if(_0x3be0e4[_0x10b3('0x58')]['UserId']){return db['User'][_0x10b3('0x28')]({'attributes':['id',_0x10b3('0x5e')],'where':{'id':_0x3be0e4[_0x10b3('0x58')][_0x10b3('0x5f')]}})[_0x10b3('0x11')](function(_0x2c0220){if(_0x2c0220){_0x3be0e4['applications'][_0x10b3('0x60')]({'id':0x0,'priority':0x0,'app':_0x10b3('0x61'),'appdata':_0x2c0220['name']+','+(_0x3be0e4[_0x10b3('0x38')][_0x10b3('0x62')]||0xa),'interval':_0x10b3('0x48')});}return respondWithRpcPromise(_0x10b3('0x63'),'startRouting',_0x3be0e4);});}return respondWithRpcPromise(_0x10b3('0x63'),_0x10b3('0x64'),_0x3be0e4);})['then'](function(_0x5a5568){_0xf4addd(_0x5a5568);})[_0x10b3('0x1c')](function(_0x2f6d63){_0x481c6f(_0x31c7f1[_0x10b3('0x19')](0x1f4,_0x2f6d63[_0x10b3('0x1a')]));});});};