Built motion from commit (unavailable).|2.4.21
[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 _0xfa20=['length','create','List\x20not\x20found','contact','messageId','generate','subject','attach','format','MailInteraction','MailMessage','Messages','spread','update','YYYY-MM-DD\x20HH:mm:ss','interaction','originTo','originCc','bcc','Attachments','UserId','User','name','unshift','waitForTheAssignedAgent','Start','startRouting','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','http','defaults','redis','localhost','socket.io-emitter','./mailAccount.socket','register','request','then','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','error','message','result','catch','MailAccount','findAll','options','raw','attributes','include','map','model','GetMailAccount','find','where','ShowMailAccount','stringify','body','mail','keys','CmContact','rawAttributes','updatedAt','ListId','isNil','from','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey','account','CmList','Contacts','MailApplication','Applications','Smtp','List','get','omit','applications','list','orderBy','priority','asc','push','close','*,*,*,*'];(function(_0x450032,_0x3465e8){var _0x1dcf2c=function(_0x4f491c){while(--_0x4f491c){_0x450032['push'](_0x450032['shift']());}};_0x1dcf2c(++_0x3465e8);}(_0xfa20,0x141));var _0x0fa2=function(_0x34c027,_0x123688){_0x34c027=_0x34c027-0x0;var _0x47bff0=_0xfa20[_0x34c027];return _0x47bff0;};'use strict';var _=require(_0x0fa2('0x0'));var util=require(_0x0fa2('0x1'));var moment=require(_0x0fa2('0x2'));var BPromise=require(_0x0fa2('0x3'));var rs=require(_0x0fa2('0x4'));var fs=require('fs');var Redis=require(_0x0fa2('0x5'));var db=require(_0x0fa2('0x6'))['db'];var utils=require(_0x0fa2('0x7'));var logger=require(_0x0fa2('0x8'))(_0x0fa2('0x9'));var config=require(_0x0fa2('0xa'));var jayson=require('jayson/promise');var client=jayson[_0x0fa2('0xb')][_0x0fa2('0xc')]({'port':0x232c});config['redis']=_[_0x0fa2('0xd')](config[_0x0fa2('0xe')],{'host':_0x0fa2('0xf'),'port':0x18eb});var socket=require(_0x0fa2('0x10'))(new Redis(config[_0x0fa2('0xe')]));require(_0x0fa2('0x11'))[_0x0fa2('0x12')](socket);function respondWithRpcPromise(_0x373af0,_0x108f55,_0x445a5d){return new BPromise(function(_0x5c59dc,_0xd34dd5){return client[_0x0fa2('0x13')](_0x373af0,_0x445a5d)[_0x0fa2('0x14')](function(_0x434f22){logger[_0x0fa2('0x15')](_0x0fa2('0x16'),_0x108f55,_0x0fa2('0x17'));logger[_0x0fa2('0x18')]('MailAccount,\x20%s,\x20%s,\x20%s',_0x108f55,_0x0fa2('0x17'),JSON['stringify'](_0x434f22));if(_0x434f22[_0x0fa2('0x19')]){if(_0x434f22['error']['code']===0x1f4){logger['error'](_0x0fa2('0x16'),_0x108f55,_0x434f22[_0x0fa2('0x19')][_0x0fa2('0x1a')]);return _0xd34dd5(_0x434f22[_0x0fa2('0x19')][_0x0fa2('0x1a')]);}logger[_0x0fa2('0x19')](_0x0fa2('0x16'),_0x108f55,_0x434f22[_0x0fa2('0x19')]['message']);return _0x5c59dc(_0x434f22[_0x0fa2('0x19')][_0x0fa2('0x1a')]);}else{logger[_0x0fa2('0x15')](_0x0fa2('0x16'),_0x108f55,_0x0fa2('0x17'));_0x5c59dc(_0x434f22[_0x0fa2('0x1b')][_0x0fa2('0x1a')]);}})[_0x0fa2('0x1c')](function(_0x73fca5){logger[_0x0fa2('0x19')]('MailAccount,\x20%s,\x20%s',_0x108f55,_0x73fca5);_0xd34dd5(_0x73fca5);});});}exports['GetMailAccount']=function(_0x13b72e){var _0x22cca6=this;return new Promise(function(_0x47c72b,_0x383ebd){return db[_0x0fa2('0x1d')][_0x0fa2('0x1e')]({'raw':_0x13b72e['options']?_0x13b72e[_0x0fa2('0x1f')][_0x0fa2('0x20')]===undefined?!![]:![]:!![],'where':_0x13b72e['options']?_0x13b72e[_0x0fa2('0x1f')]['where']||null:null,'attributes':_0x13b72e[_0x0fa2('0x1f')]?_0x13b72e[_0x0fa2('0x1f')][_0x0fa2('0x21')]||null:null,'limit':_0x13b72e[_0x0fa2('0x1f')]?_0x13b72e[_0x0fa2('0x1f')]['limit']||null:null,'include':_0x13b72e[_0x0fa2('0x1f')]?_0x13b72e[_0x0fa2('0x1f')][_0x0fa2('0x22')]?_[_0x0fa2('0x23')](_0x13b72e[_0x0fa2('0x1f')][_0x0fa2('0x22')],function(_0x38a2c4){return{'model':db[_0x38a2c4['model']],'as':_0x38a2c4['as'],'attributes':_0x38a2c4[_0x0fa2('0x21')],'include':_0x38a2c4['include']?_[_0x0fa2('0x23')](_0x38a2c4['include'],function(_0x1a8832){return{'model':db[_0x1a8832[_0x0fa2('0x24')]],'as':_0x1a8832['as'],'attributes':_0x1a8832[_0x0fa2('0x21')],'include':_0x1a8832[_0x0fa2('0x22')]?_[_0x0fa2('0x23')](_0x1a8832[_0x0fa2('0x22')],function(_0x50779a){return{'model':db[_0x50779a[_0x0fa2('0x24')]],'as':_0x50779a['as'],'attributes':_0x50779a['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x12b59a){logger[_0x0fa2('0x15')](_0x0fa2('0x25'),_0x13b72e);logger['debug']('GetMailAccount',_0x13b72e,JSON['stringify'](_0x12b59a));_0x47c72b(_0x12b59a);})['catch'](function(_0x4de0e7){logger[_0x0fa2('0x19')](_0x0fa2('0x25'),_0x4de0e7[_0x0fa2('0x1a')],_0x13b72e);_0x383ebd(_0x22cca6[_0x0fa2('0x19')](0x1f4,_0x4de0e7['message']));});});};exports['ShowMailAccount']=function(_0x47af3a){var _0x107d8e=this;return new Promise(function(_0x59bfbb,_0x3b5d3d){return db[_0x0fa2('0x1d')][_0x0fa2('0x26')]({'raw':_0x47af3a['options']?_0x47af3a['options'][_0x0fa2('0x20')]===undefined?!![]:![]:!![],'where':_0x47af3a[_0x0fa2('0x1f')]?_0x47af3a[_0x0fa2('0x1f')][_0x0fa2('0x27')]||null:null,'attributes':_0x47af3a[_0x0fa2('0x1f')]?_0x47af3a[_0x0fa2('0x1f')][_0x0fa2('0x21')]||null:null,'include':_0x47af3a[_0x0fa2('0x1f')]?_0x47af3a[_0x0fa2('0x1f')][_0x0fa2('0x22')]?_[_0x0fa2('0x23')](_0x47af3a[_0x0fa2('0x1f')][_0x0fa2('0x22')],function(_0x2a6317){return{'model':db[_0x2a6317[_0x0fa2('0x24')]],'as':_0x2a6317['as'],'attributes':_0x2a6317[_0x0fa2('0x21')],'include':_0x2a6317[_0x0fa2('0x22')]?_[_0x0fa2('0x23')](_0x2a6317['include'],function(_0x52ed7a){return{'model':db[_0x52ed7a[_0x0fa2('0x24')]],'as':_0x52ed7a['as'],'attributes':_0x52ed7a[_0x0fa2('0x21')],'include':_0x52ed7a[_0x0fa2('0x22')]?_[_0x0fa2('0x23')](_0x52ed7a[_0x0fa2('0x22')],function(_0x4526e7){return{'model':db[_0x4526e7['model']],'as':_0x4526e7['as'],'attributes':_0x4526e7[_0x0fa2('0x21')]};}):[]};}):[]};}):[]:[]})[_0x0fa2('0x14')](function(_0x3659aa){logger[_0x0fa2('0x15')](_0x0fa2('0x28'),_0x47af3a);logger['debug'](_0x0fa2('0x28'),_0x47af3a,JSON[_0x0fa2('0x29')](_0x3659aa));_0x59bfbb(_0x3659aa);})['catch'](function(_0x15e04f){logger[_0x0fa2('0x19')](_0x0fa2('0x28'),_0x15e04f['message'],_0x47af3a);_0x3b5d3d(_0x107d8e['error'](0x1f4,_0x15e04f['message']));});});};exports['NotifyMailAccount']=function(_0x123155){var _0x25b5cb=this;return new Promise(function(_0x43dc89,_0x481e1e){var _0x5084f6={'body':_0x123155[_0x0fa2('0x2a')],'channel':_0x0fa2('0x2b')};var _0x196297=_['difference'](_[_0x0fa2('0x2c')](db[_0x0fa2('0x2d')][_0x0fa2('0x2e')]),['createdAt',_0x0fa2('0x2f'),'CompanyId',_0x0fa2('0x30')]);var _0x5c4324=![];if(_0x123155['body']['id']){delete _0x123155[_0x0fa2('0x2a')]['id'];}if(_[_0x0fa2('0x31')](_0x123155[_0x0fa2('0x2a')][_0x0fa2('0x32')])){return _0x481e1e(_0x25b5cb['error'](0x1f4,'from\x20is\x20mandatory'));}if(_[_0x0fa2('0x31')](_0x123155['body'][_0x0fa2('0x2a')])||_0x123155[_0x0fa2('0x2a')]['body']===''){return _0x481e1e(_0x25b5cb[_0x0fa2('0x19')](0x1f4,_0x0fa2('0x33')));}if(_[_0x0fa2('0x31')](_0x123155[_0x0fa2('0x2a')]['mapKey'])){return _0x481e1e(_0x25b5cb['error'](0x1f4,_0x0fa2('0x34')+_0x196297));}if(!_['includes'](_0x196297,_0x123155[_0x0fa2('0x2a')][_0x0fa2('0x35')])){return _0x481e1e(_0x25b5cb[_0x0fa2('0x19')](0x1f4,'mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x196297));}var _0x17f916={};_0x17f916[_0x123155[_0x0fa2('0x2a')][_0x0fa2('0x35')]]=_0x123155[_0x0fa2('0x2a')][_0x0fa2('0x32')];return db[_0x0fa2('0x1d')][_0x0fa2('0x26')]({'where':{'id':_0x123155[_0x0fa2('0x36')]['id']},'include':[{'model':db[_0x0fa2('0x37')],'as':'List','include':[{'model':db[_0x0fa2('0x2d')],'as':_0x0fa2('0x38'),'where':_0x17f916,'limit':0x1,'order':[[_0x0fa2('0x2f'),'DESC']]}]},{'model':db[_0x0fa2('0x39')],'as':_0x0fa2('0x3a')},{'model':db['MailServerOut'],'as':_0x0fa2('0x3b')}]})['then'](function(_0x2ed220){if(_0x2ed220&&_0x2ed220[_0x0fa2('0x3c')]){var _0x1d3eeb=_0x2ed220[_0x0fa2('0x3d')]({'plain':!![]});_0x5084f6[_0x0fa2('0x36')]=_[_0x0fa2('0x3e')](_0x1d3eeb,[_0x0fa2('0x3a'),_0x0fa2('0x3c')]);_0x5084f6[_0x0fa2('0x3f')]=_0x1d3eeb['Applications'];_0x5084f6[_0x0fa2('0x40')]=_0x1d3eeb['List'];_0x5084f6[_0x0fa2('0x3f')]=_[_0x0fa2('0x41')](_0x5084f6[_0x0fa2('0x3f')],[_0x0fa2('0x42')],[_0x0fa2('0x43')]);if(_0x5084f6['account']&&_0x5084f6['account']['autoclose']){_0x5084f6[_0x0fa2('0x3f')][_0x0fa2('0x44')]({'id':0x0,'priority':_0x5084f6['applications']['length']+0x1,'app':_0x0fa2('0x45'),'appdata':'autoclose','interval':_0x0fa2('0x46')});}if(_0x5084f6[_0x0fa2('0x36')]['Applications']){delete _0x5084f6[_0x0fa2('0x36')][_0x0fa2('0x3a')];}if(_0x5084f6[_0x0fa2('0x36')][_0x0fa2('0x3c')]){delete _0x5084f6[_0x0fa2('0x36')][_0x0fa2('0x3c')];}if(_0x1d3eeb[_0x0fa2('0x3c')][_0x0fa2('0x38')][_0x0fa2('0x47')]){return _0x1d3eeb[_0x0fa2('0x3c')]['Contacts'][0x0];}var _0x2c5a45=_[_0x0fa2('0xd')](_0x123155[_0x0fa2('0x2a')],{'firstName':_0x123155[_0x0fa2('0x2a')][_0x0fa2('0x32')],'ListId':_0x1d3eeb[_0x0fa2('0x30')]});_0x2c5a45[_0x123155[_0x0fa2('0x2a')][_0x0fa2('0x35')]]=_0x123155['body'][_0x0fa2('0x32')];return db['CmContact'][_0x0fa2('0x48')](_0x2c5a45);}else{throw new Error(_0x0fa2('0x49'));}})[_0x0fa2('0x14')](function(_0xd2c3ed){_0x5084f6[_0x0fa2('0x4a')]=_0xd2c3ed;if(_0xd2c3ed){if(!_0x123155['body'][_0x0fa2('0x1a')]['messageId']){_0x123155[_0x0fa2('0x2a')][_0x0fa2('0x1a')][_0x0fa2('0x4b')]=rs[_0x0fa2('0x4c')]()+'\x20'+_0x123155[_0x0fa2('0x2a')]['message'][_0x0fa2('0x32')];}var _0x322477={'ContactId':_0xd2c3ed['id'],'MailAccountId':_0x123155[_0x0fa2('0x36')]['id'],'inReplyTo':_0x123155[_0x0fa2('0x2a')][_0x0fa2('0x1a')][_0x0fa2('0x4b')],'to':_0x123155['body'][_0x0fa2('0x1a')][_0x0fa2('0x32')],'cc':_0x123155[_0x0fa2('0x2a')][_0x0fa2('0x1a')]['cc'],'subject':_0x123155[_0x0fa2('0x2a')][_0x0fa2('0x1a')][_0x0fa2('0x4d')],'attach':_0x123155[_0x0fa2('0x2a')][_0x0fa2('0x1a')][_0x0fa2('0x4e')],'lastMsgAt':moment()[_0x0fa2('0x4f')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in','lastMsgBody':_0x123155['body'][_0x0fa2('0x2a')]};return db[_0x0fa2('0x50')][_0x0fa2('0x26')]({'where':{'closed':![],'MailAccountId':_0x123155['account']['id']},'include':[{'model':db[_0x0fa2('0x51')],'as':_0x0fa2('0x52'),'attributes':[_0x0fa2('0x4b')],'where':{'messageId':_0x123155['body'][_0x0fa2('0x1a')]['inReplyTo']}}]})['then'](function(_0x5a48a5){if(_0x5a48a5){return[_0x5a48a5,![]];}return db[_0x0fa2('0x50')][_0x0fa2('0x48')](_0x322477)[_0x0fa2('0x14')](function(_0x47687d){return[_0x47687d,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0x0fa2('0x53')](function(_0x3be41a,_0x3e978a){if(_0x3be41a){_0x5c4324=_0x3e978a;if(!_0x3e978a){return _0x3be41a[_0x0fa2('0x54')]({'inReplyTo':_0x123155['body'][_0x0fa2('0x1a')][_0x0fa2('0x4b')],'to':_0x123155[_0x0fa2('0x2a')][_0x0fa2('0x1a')]['from'],'cc':_0x123155[_0x0fa2('0x2a')][_0x0fa2('0x1a')]['cc'],'subject':_0x123155[_0x0fa2('0x2a')]['message'][_0x0fa2('0x4d')],'attach':_0x3be41a[_0x0fa2('0x4e')]?_0x3be41a[_0x0fa2('0x4e')]:_0x123155[_0x0fa2('0x2a')][_0x0fa2('0x1a')][_0x0fa2('0x4e')],'substatus':null,'substatusAt':moment()[_0x0fa2('0x4f')](_0x0fa2('0x55')),'lastMsgAt':moment()[_0x0fa2('0x4f')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in','lastMsgBody':_0x123155['body'][_0x0fa2('0x2a')]});}else{return _0x3be41a;}}})[_0x0fa2('0x14')](function(_0x5930e5){_0x5084f6[_0x0fa2('0x56')]=_0x5930e5[_0x0fa2('0x3d')]({'plain':!![]});_0x5084f6[_0x0fa2('0x56')]['created']=_0x5c4324;return db[_0x0fa2('0x51')][_0x0fa2('0x48')]({'body':_0x123155[_0x0fa2('0x2a')]['body'],'MailAccountId':_0x123155['account']['id'],'MailInteractionId':_0x5930e5['id'],'direction':'in','ContactId':_0x5084f6['contact']['id'],'messageId':_0x123155['body'][_0x0fa2('0x1a')]['messageId'],'from':_0x123155[_0x0fa2('0x2a')][_0x0fa2('0x1a')][_0x0fa2('0x32')],'to':_0x123155[_0x0fa2('0x2a')][_0x0fa2('0x1a')]['to'],'cc':_0x123155['body'][_0x0fa2('0x1a')]['cc'],'subject':_0x123155[_0x0fa2('0x2a')]['message']['subject'],'attach':_0x123155[_0x0fa2('0x2a')]['message'][_0x0fa2('0x4e')],'Attachments':_0x123155[_0x0fa2('0x2a')][_0x0fa2('0x1a')]['attachments'],'originTo':_0x123155[_0x0fa2('0x2a')][_0x0fa2('0x1a')][_0x0fa2('0x57')],'originCc':_0x123155[_0x0fa2('0x2a')]['message'][_0x0fa2('0x58')],'bcc':_0x123155['body']['message'][_0x0fa2('0x59')]},{'include':[{'model':db['Attachment'],'as':_0x0fa2('0x5a')}]});})[_0x0fa2('0x14')](function(_0x83fdc3){_0x5084f6['message']=_0x83fdc3;if(_0x5084f6[_0x0fa2('0x56')][_0x0fa2('0x5b')]){return db[_0x0fa2('0x5c')][_0x0fa2('0x26')]({'attributes':['id',_0x0fa2('0x5d')],'where':{'id':_0x5084f6[_0x0fa2('0x56')][_0x0fa2('0x5b')]}})[_0x0fa2('0x14')](function(_0x4f0e54){if(_0x4f0e54){_0x5084f6[_0x0fa2('0x3f')][_0x0fa2('0x5e')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x4f0e54['name']+','+(_0x5084f6[_0x0fa2('0x36')][_0x0fa2('0x5f')]||0xa),'interval':_0x0fa2('0x46')});}return respondWithRpcPromise(_0x0fa2('0x60'),_0x0fa2('0x61'),_0x5084f6);});}return respondWithRpcPromise(_0x0fa2('0x60'),_0x0fa2('0x61'),_0x5084f6);})[_0x0fa2('0x14')](function(_0x20bce0){_0x43dc89(_0x20bce0);})[_0x0fa2('0x1c')](function(_0xd2140){_0x481e1e(_0x25b5cb[_0x0fa2('0x19')](0x1f4,_0xd2140[_0x0fa2('0x1a')]));});});};