Built motion from commit (unavailable).|2.5.14
[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 _0xde9d=['close','*,*,*,*','create','List\x20not\x20found','contact','messageId','subject','attach','format','MailInteraction','MailMessage','Messages','inReplyTo','Contact\x20not\x20found','spread','update','YYYY-MM-DD\x20HH:mm:ss','interaction','attachments','originTo','originCc','bcc','Attachment','Attachments','UserId','name','unshift','waitForTheAssignedAgent','Start','startRouting','lodash','util','moment','bluebird','randomstring','../../mysqldb','../../config/utils','../../config/logger','../../config/environment','jayson/promise','client','redis','defaults','localhost','socket.io-emitter','./mailAccount.socket','request','info','MailAccount,\x20%s,\x20%s','request\x20sent','stringify','code','error','message','result','catch','GetMailAccount','MailAccount','findAll','options','raw','where','limit','include','map','attributes','model','then','debug','find','ShowMailAccount','mail','difference','keys','CmContact','createdAt','updatedAt','CompanyId','ListId','body','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','CmList','List','Contacts','MailApplication','MailServerOut','get','omit','Applications','applications','list','orderBy','asc','autoclose','push','length'];(function(_0x12d4d3,_0x6b42e6){var _0x32fdca=function(_0x437223){while(--_0x437223){_0x12d4d3['push'](_0x12d4d3['shift']());}};_0x32fdca(++_0x6b42e6);}(_0xde9d,0x156));var _0xdde9=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0xde9d[_0xa464c9];return _0x3d73c4;};'use strict';var _=require(_0xdde9('0x0'));var util=require(_0xdde9('0x1'));var moment=require(_0xdde9('0x2'));var BPromise=require(_0xdde9('0x3'));var rs=require(_0xdde9('0x4'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0xdde9('0x5'))['db'];var utils=require(_0xdde9('0x6'));var logger=require(_0xdde9('0x7'))('rpc');var config=require(_0xdde9('0x8'));var jayson=require(_0xdde9('0x9'));var client=jayson[_0xdde9('0xa')]['http']({'port':0x232c});config[_0xdde9('0xb')]=_[_0xdde9('0xc')](config[_0xdde9('0xb')],{'host':_0xdde9('0xd'),'port':0x18eb});var socket=require(_0xdde9('0xe'))(new Redis(config['redis']));require(_0xdde9('0xf'))['register'](socket);function respondWithRpcPromise(_0x494899,_0x259849,_0x29c882){return new BPromise(function(_0x2b7e77,_0x4ebfe3){return client[_0xdde9('0x10')](_0x494899,_0x29c882)['then'](function(_0x478bec){logger[_0xdde9('0x11')](_0xdde9('0x12'),_0x259849,_0xdde9('0x13'));logger['debug']('MailAccount,\x20%s,\x20%s,\x20%s',_0x259849,_0xdde9('0x13'),JSON[_0xdde9('0x14')](_0x478bec));if(_0x478bec['error']){if(_0x478bec['error'][_0xdde9('0x15')]===0x1f4){logger[_0xdde9('0x16')]('MailAccount,\x20%s,\x20%s',_0x259849,_0x478bec[_0xdde9('0x16')][_0xdde9('0x17')]);return _0x4ebfe3(_0x478bec[_0xdde9('0x16')]['message']);}logger[_0xdde9('0x16')]('MailAccount,\x20%s,\x20%s',_0x259849,_0x478bec['error'][_0xdde9('0x17')]);return _0x2b7e77(_0x478bec['error']['message']);}else{logger['info'](_0xdde9('0x12'),_0x259849,_0xdde9('0x13'));_0x2b7e77(_0x478bec[_0xdde9('0x18')][_0xdde9('0x17')]);}})[_0xdde9('0x19')](function(_0xcaf743){logger[_0xdde9('0x16')](_0xdde9('0x12'),_0x259849,_0xcaf743);_0x4ebfe3(_0xcaf743);});});}exports[_0xdde9('0x1a')]=function(_0x5ef451){var _0x5219c7=this;return new Promise(function(_0x71a5bf,_0x26204d){return db[_0xdde9('0x1b')][_0xdde9('0x1c')]({'raw':_0x5ef451[_0xdde9('0x1d')]?_0x5ef451[_0xdde9('0x1d')][_0xdde9('0x1e')]===undefined?!![]:![]:!![],'where':_0x5ef451['options']?_0x5ef451[_0xdde9('0x1d')][_0xdde9('0x1f')]||null:null,'attributes':_0x5ef451[_0xdde9('0x1d')]?_0x5ef451['options']['attributes']||null:null,'limit':_0x5ef451[_0xdde9('0x1d')]?_0x5ef451[_0xdde9('0x1d')][_0xdde9('0x20')]||null:null,'include':_0x5ef451['options']?_0x5ef451[_0xdde9('0x1d')][_0xdde9('0x21')]?_[_0xdde9('0x22')](_0x5ef451[_0xdde9('0x1d')]['include'],function(_0x5e5ffd){return{'model':db[_0x5e5ffd['model']],'as':_0x5e5ffd['as'],'attributes':_0x5e5ffd[_0xdde9('0x23')],'include':_0x5e5ffd['include']?_[_0xdde9('0x22')](_0x5e5ffd[_0xdde9('0x21')],function(_0x4ea896){return{'model':db[_0x4ea896['model']],'as':_0x4ea896['as'],'attributes':_0x4ea896[_0xdde9('0x23')],'include':_0x4ea896[_0xdde9('0x21')]?_[_0xdde9('0x22')](_0x4ea896['include'],function(_0x4461db){return{'model':db[_0x4461db[_0xdde9('0x24')]],'as':_0x4461db['as'],'attributes':_0x4461db[_0xdde9('0x23')]};}):[]};}):[]};}):[]:[]})[_0xdde9('0x25')](function(_0x306575){logger[_0xdde9('0x11')](_0xdde9('0x1a'),_0x5ef451);logger[_0xdde9('0x26')](_0xdde9('0x1a'),_0x5ef451,JSON['stringify'](_0x306575));_0x71a5bf(_0x306575);})[_0xdde9('0x19')](function(_0x4a631c){logger[_0xdde9('0x16')](_0xdde9('0x1a'),_0x4a631c[_0xdde9('0x17')],_0x5ef451);_0x26204d(_0x5219c7['error'](0x1f4,_0x4a631c['message']));});});};exports['ShowMailAccount']=function(_0xbe4b9c){var _0xb369a8=this;return new Promise(function(_0x35af5b,_0x1b252e){return db[_0xdde9('0x1b')][_0xdde9('0x27')]({'raw':_0xbe4b9c[_0xdde9('0x1d')]?_0xbe4b9c[_0xdde9('0x1d')]['raw']===undefined?!![]:![]:!![],'where':_0xbe4b9c[_0xdde9('0x1d')]?_0xbe4b9c[_0xdde9('0x1d')][_0xdde9('0x1f')]||null:null,'attributes':_0xbe4b9c[_0xdde9('0x1d')]?_0xbe4b9c[_0xdde9('0x1d')][_0xdde9('0x23')]||null:null,'include':_0xbe4b9c[_0xdde9('0x1d')]?_0xbe4b9c[_0xdde9('0x1d')]['include']?_[_0xdde9('0x22')](_0xbe4b9c[_0xdde9('0x1d')][_0xdde9('0x21')],function(_0x1c32cf){return{'model':db[_0x1c32cf[_0xdde9('0x24')]],'as':_0x1c32cf['as'],'attributes':_0x1c32cf[_0xdde9('0x23')],'include':_0x1c32cf['include']?_[_0xdde9('0x22')](_0x1c32cf[_0xdde9('0x21')],function(_0xa9ca1a){return{'model':db[_0xa9ca1a[_0xdde9('0x24')]],'as':_0xa9ca1a['as'],'attributes':_0xa9ca1a[_0xdde9('0x23')],'include':_0xa9ca1a[_0xdde9('0x21')]?_['map'](_0xa9ca1a['include'],function(_0x234d88){return{'model':db[_0x234d88[_0xdde9('0x24')]],'as':_0x234d88['as'],'attributes':_0x234d88[_0xdde9('0x23')]};}):[]};}):[]};}):[]:[]})[_0xdde9('0x25')](function(_0x1aa10e){logger[_0xdde9('0x11')](_0xdde9('0x28'),_0xbe4b9c);logger['debug'](_0xdde9('0x28'),_0xbe4b9c,JSON['stringify'](_0x1aa10e));_0x35af5b(_0x1aa10e);})['catch'](function(_0x33e742){logger['error'](_0xdde9('0x28'),_0x33e742['message'],_0xbe4b9c);_0x1b252e(_0xb369a8['error'](0x1f4,_0x33e742[_0xdde9('0x17')]));});});};exports['NotifyMailAccount']=function(_0x1bc20a){var _0x5038ac=this;return new Promise(function(_0x369565,_0x5ae971){var _0x3b1d55={'body':_0x1bc20a['body'],'channel':_0xdde9('0x29')};var _0x541570=_[_0xdde9('0x2a')](_[_0xdde9('0x2b')](db[_0xdde9('0x2c')]['rawAttributes']),[_0xdde9('0x2d'),_0xdde9('0x2e'),_0xdde9('0x2f'),_0xdde9('0x30')]);var _0x1d5762=![];if(_0x1bc20a[_0xdde9('0x31')]['id']){delete _0x1bc20a[_0xdde9('0x31')]['id'];}if(_[_0xdde9('0x32')](_0x1bc20a[_0xdde9('0x31')][_0xdde9('0x33')])){return _0x5ae971(_0x5038ac['error'](0x1f4,_0xdde9('0x34')));}if(_[_0xdde9('0x32')](_0x1bc20a[_0xdde9('0x31')][_0xdde9('0x31')])||_0x1bc20a['body'][_0xdde9('0x31')]===''){return _0x5ae971(_0x5038ac['error'](0x1f4,_0xdde9('0x35')));}if(_['isNil'](_0x1bc20a[_0xdde9('0x31')]['mapKey'])){return _0x5ae971(_0x5038ac['error'](0x1f4,_0xdde9('0x36')+_0x541570));}if(!_[_0xdde9('0x37')](_0x541570,_0x1bc20a[_0xdde9('0x31')][_0xdde9('0x38')])){return _0x5ae971(_0x5038ac[_0xdde9('0x16')](0x1f4,_0xdde9('0x39')+_0x541570));}var _0x4f5431={};_0x4f5431[_0x1bc20a[_0xdde9('0x31')][_0xdde9('0x38')]]=_0x1bc20a['body']['from'];return db[_0xdde9('0x1b')][_0xdde9('0x27')]({'where':{'id':_0x1bc20a[_0xdde9('0x3a')]['id']},'include':[{'model':db[_0xdde9('0x3b')],'as':_0xdde9('0x3c'),'include':[{'model':db['CmContact'],'as':_0xdde9('0x3d'),'where':_0x4f5431,'limit':0x1,'order':[[_0xdde9('0x2e'),'DESC']]}]},{'model':db[_0xdde9('0x3e')],'as':'Applications'},{'model':db[_0xdde9('0x3f')],'as':'Smtp'}]})[_0xdde9('0x25')](function(_0x509fc2){if(_0x509fc2&&_0x509fc2[_0xdde9('0x3c')]){var _0x4dd10a=_0x509fc2[_0xdde9('0x40')]({'plain':!![]});_0x3b1d55[_0xdde9('0x3a')]=_[_0xdde9('0x41')](_0x4dd10a,[_0xdde9('0x42'),_0xdde9('0x3c')]);_0x3b1d55[_0xdde9('0x43')]=_0x4dd10a[_0xdde9('0x42')];_0x3b1d55[_0xdde9('0x44')]=_0x4dd10a['List'];_0x3b1d55['applications']=_[_0xdde9('0x45')](_0x3b1d55[_0xdde9('0x43')],['priority'],[_0xdde9('0x46')]);if(_0x3b1d55['account']&&_0x3b1d55[_0xdde9('0x3a')][_0xdde9('0x47')]){_0x3b1d55[_0xdde9('0x43')][_0xdde9('0x48')]({'id':0x0,'priority':_0x3b1d55[_0xdde9('0x43')][_0xdde9('0x49')]+0x1,'app':_0xdde9('0x4a'),'appdata':_0xdde9('0x47'),'interval':_0xdde9('0x4b')});}if(_0x3b1d55[_0xdde9('0x3a')][_0xdde9('0x42')]){delete _0x3b1d55['account'][_0xdde9('0x42')];}if(_0x3b1d55[_0xdde9('0x3a')][_0xdde9('0x3c')]){delete _0x3b1d55[_0xdde9('0x3a')][_0xdde9('0x3c')];}if(_0x4dd10a[_0xdde9('0x3c')][_0xdde9('0x3d')]['length']){return _0x4dd10a[_0xdde9('0x3c')][_0xdde9('0x3d')][0x0];}var _0x3d9995=_[_0xdde9('0xc')](_0x1bc20a[_0xdde9('0x31')],{'firstName':_0x1bc20a[_0xdde9('0x31')][_0xdde9('0x33')],'ListId':_0x4dd10a[_0xdde9('0x30')]});_0x3d9995[_0x1bc20a['body'][_0xdde9('0x38')]]=_0x1bc20a[_0xdde9('0x31')][_0xdde9('0x33')];return db['CmContact'][_0xdde9('0x4c')](_0x3d9995);}else{throw new Error(_0xdde9('0x4d'));}})['then'](function(_0x567478){_0x3b1d55[_0xdde9('0x4e')]=_0x567478;if(_0x567478){if(!_0x1bc20a['body'][_0xdde9('0x17')]['messageId']){_0x1bc20a[_0xdde9('0x31')]['message']['messageId']=rs['generate']()+'\x20'+_0x1bc20a[_0xdde9('0x31')][_0xdde9('0x17')]['from'];}var _0x5d2a30={'ContactId':_0x567478['id'],'MailAccountId':_0x1bc20a[_0xdde9('0x3a')]['id'],'inReplyTo':_0x1bc20a[_0xdde9('0x31')][_0xdde9('0x17')][_0xdde9('0x4f')],'to':_0x1bc20a[_0xdde9('0x31')]['message'][_0xdde9('0x33')],'cc':_0x1bc20a[_0xdde9('0x31')]['message']['cc'],'subject':_0x1bc20a['body']['message'][_0xdde9('0x50')],'attach':_0x1bc20a[_0xdde9('0x31')][_0xdde9('0x17')][_0xdde9('0x51')],'lastMsgAt':moment()[_0xdde9('0x52')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in','lastMsgBody':_0x1bc20a[_0xdde9('0x31')][_0xdde9('0x31')]};return db[_0xdde9('0x53')][_0xdde9('0x27')]({'where':{'closed':![],'MailAccountId':_0x1bc20a[_0xdde9('0x3a')]['id']},'include':[{'model':db[_0xdde9('0x54')],'as':_0xdde9('0x55'),'attributes':[_0xdde9('0x4f')],'where':{'messageId':_0x1bc20a[_0xdde9('0x31')][_0xdde9('0x17')][_0xdde9('0x56')]}}]})[_0xdde9('0x25')](function(_0x302763){if(_0x302763){return[_0x302763,![]];}return db[_0xdde9('0x53')][_0xdde9('0x4c')](_0x5d2a30)[_0xdde9('0x25')](function(_0x4fbd85){return[_0x4fbd85,!![]];});});}else{throw new Error(_0xdde9('0x57'));}})[_0xdde9('0x58')](function(_0x56c154,_0x41e127){if(_0x56c154){_0x1d5762=_0x41e127;if(!_0x41e127){return _0x56c154[_0xdde9('0x59')]({'inReplyTo':_0x1bc20a['body']['message'][_0xdde9('0x4f')],'to':_0x1bc20a['body'][_0xdde9('0x17')][_0xdde9('0x33')],'cc':_0x1bc20a['body'][_0xdde9('0x17')]['cc'],'subject':_0x1bc20a[_0xdde9('0x31')][_0xdde9('0x17')]['subject'],'attach':_0x56c154['attach']?_0x56c154[_0xdde9('0x51')]:_0x1bc20a['body']['message'][_0xdde9('0x51')],'substatus':null,'substatusAt':moment()[_0xdde9('0x52')](_0xdde9('0x5a')),'lastMsgAt':moment()[_0xdde9('0x52')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in','lastMsgBody':_0x1bc20a[_0xdde9('0x31')][_0xdde9('0x31')]});}else{return _0x56c154;}}})[_0xdde9('0x25')](function(_0x1c1aef){_0x3b1d55['interaction']=_0x1c1aef[_0xdde9('0x40')]({'plain':!![]});_0x3b1d55[_0xdde9('0x5b')]['created']=_0x1d5762;return db[_0xdde9('0x54')][_0xdde9('0x4c')]({'body':_0x1bc20a[_0xdde9('0x31')]['body'],'MailAccountId':_0x1bc20a['account']['id'],'MailInteractionId':_0x1c1aef['id'],'direction':'in','ContactId':_0x3b1d55[_0xdde9('0x4e')]['id'],'messageId':_0x1bc20a[_0xdde9('0x31')][_0xdde9('0x17')][_0xdde9('0x4f')],'from':_0x1bc20a[_0xdde9('0x31')][_0xdde9('0x17')]['from'],'to':_0x1bc20a[_0xdde9('0x31')]['message']['to'],'cc':_0x1bc20a[_0xdde9('0x31')][_0xdde9('0x17')]['cc'],'subject':_0x1bc20a[_0xdde9('0x31')][_0xdde9('0x17')][_0xdde9('0x50')],'attach':_0x1bc20a['body'][_0xdde9('0x17')]['attach'],'Attachments':_0x1bc20a['body']['message'][_0xdde9('0x5c')],'originTo':_0x1bc20a['body'][_0xdde9('0x17')][_0xdde9('0x5d')],'originCc':_0x1bc20a[_0xdde9('0x31')]['message'][_0xdde9('0x5e')],'bcc':_0x1bc20a[_0xdde9('0x31')][_0xdde9('0x17')][_0xdde9('0x5f')]},{'include':[{'model':db[_0xdde9('0x60')],'as':_0xdde9('0x61')}]});})[_0xdde9('0x25')](function(_0x1a0e9a){_0x3b1d55[_0xdde9('0x17')]=_0x1a0e9a;if(_0x3b1d55[_0xdde9('0x5b')][_0xdde9('0x62')]){return db['User'][_0xdde9('0x27')]({'attributes':['id',_0xdde9('0x63')],'where':{'id':_0x3b1d55['interaction'][_0xdde9('0x62')]}})[_0xdde9('0x25')](function(_0x322edd){if(_0x322edd){_0x3b1d55['applications'][_0xdde9('0x64')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x322edd[_0xdde9('0x63')]+','+(_0x3b1d55['account'][_0xdde9('0x65')]||0xa),'interval':_0xdde9('0x4b')});}return respondWithRpcPromise(_0xdde9('0x66'),_0xdde9('0x67'),_0x3b1d55);});}return respondWithRpcPromise(_0xdde9('0x66'),_0xdde9('0x67'),_0x3b1d55);})[_0xdde9('0x25')](function(_0x5388e5){_0x369565(_0x5388e5);})['catch'](function(_0x14dfe2){_0x5ae971(_0x5038ac['error'](0x1f4,_0x14dfe2[_0xdde9('0x17')]));});});};