Built motion from commit (unavailable).|2.5.2
[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 _0xc041=['originTo','bcc','Attachment','Attachments','UserId','User','name','waitForTheAssignedAgent','Start','startRouting','lodash','util','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','client','defaults','redis','localhost','socket.io-emitter','request','then','MailAccount,\x20%s,\x20%s','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','info','request\x20sent','result','catch','GetMailAccount','MailAccount','findAll','options','raw','where','attributes','limit','include','model','map','ShowMailAccount','NotifyMailAccount','body','mail','difference','keys','CmContact','rawAttributes','createdAt','updatedAt','CompanyId','ListId','isNil','from','from\x20is\x20mandatory','mapKey','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','account','List','Contacts','DESC','MailApplication','Applications','get','applications','list','orderBy','priority','asc','autoclose','push','length','*,*,*,*','contact','messageId','generate','subject','format','YYYY-MM-DD\x20HH:mm:ss','MailInteraction','Messages','inReplyTo','create','update','attach','interaction','created'];(function(_0x3b90ab,_0x174a22){var _0x206e92=function(_0x21fbd3){while(--_0x21fbd3){_0x3b90ab['push'](_0x3b90ab['shift']());}};_0x206e92(++_0x174a22);}(_0xc041,0x1ea));var _0x1c04=function(_0x4e848,_0xdc4e75){_0x4e848=_0x4e848-0x0;var _0x1eba5e=_0xc041[_0x4e848];return _0x1eba5e;};'use strict';var _=require(_0x1c04('0x0'));var util=require(_0x1c04('0x1'));var moment=require('moment');var BPromise=require(_0x1c04('0x2'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x1c04('0x3'));var db=require(_0x1c04('0x4'))['db'];var utils=require(_0x1c04('0x5'));var logger=require(_0x1c04('0x6'))(_0x1c04('0x7'));var config=require(_0x1c04('0x8'));var jayson=require('jayson/promise');var client=jayson[_0x1c04('0x9')]['http']({'port':0x232c});config['redis']=_[_0x1c04('0xa')](config[_0x1c04('0xb')],{'host':_0x1c04('0xc'),'port':0x18eb});var socket=require(_0x1c04('0xd'))(new Redis(config[_0x1c04('0xb')]));require('./mailAccount.socket')['register'](socket);function respondWithRpcPromise(_0x340660,_0xa122f4,_0x1cc5d5){return new BPromise(function(_0x2a2c34,_0x1a5082){return client[_0x1c04('0xe')](_0x340660,_0x1cc5d5)[_0x1c04('0xf')](function(_0x861e81){logger['info'](_0x1c04('0x10'),_0xa122f4,'request\x20sent');logger[_0x1c04('0x11')](_0x1c04('0x12'),_0xa122f4,'request\x20sent',JSON[_0x1c04('0x13')](_0x861e81));if(_0x861e81[_0x1c04('0x14')]){if(_0x861e81[_0x1c04('0x14')][_0x1c04('0x15')]===0x1f4){logger[_0x1c04('0x14')](_0x1c04('0x10'),_0xa122f4,_0x861e81[_0x1c04('0x14')]['message']);return _0x1a5082(_0x861e81[_0x1c04('0x14')][_0x1c04('0x16')]);}logger[_0x1c04('0x14')]('MailAccount,\x20%s,\x20%s',_0xa122f4,_0x861e81[_0x1c04('0x14')]['message']);return _0x2a2c34(_0x861e81[_0x1c04('0x14')][_0x1c04('0x16')]);}else{logger[_0x1c04('0x17')](_0x1c04('0x10'),_0xa122f4,_0x1c04('0x18'));_0x2a2c34(_0x861e81[_0x1c04('0x19')][_0x1c04('0x16')]);}})[_0x1c04('0x1a')](function(_0x484f6c){logger['error']('MailAccount,\x20%s,\x20%s',_0xa122f4,_0x484f6c);_0x1a5082(_0x484f6c);});});}exports[_0x1c04('0x1b')]=function(_0xbfae4e){var _0x1a0d5b=this;return new Promise(function(_0x1e5820,_0x1724a4){return db[_0x1c04('0x1c')][_0x1c04('0x1d')]({'raw':_0xbfae4e[_0x1c04('0x1e')]?_0xbfae4e[_0x1c04('0x1e')][_0x1c04('0x1f')]===undefined?!![]:![]:!![],'where':_0xbfae4e[_0x1c04('0x1e')]?_0xbfae4e[_0x1c04('0x1e')][_0x1c04('0x20')]||null:null,'attributes':_0xbfae4e[_0x1c04('0x1e')]?_0xbfae4e['options'][_0x1c04('0x21')]||null:null,'limit':_0xbfae4e['options']?_0xbfae4e[_0x1c04('0x1e')][_0x1c04('0x22')]||null:null,'include':_0xbfae4e[_0x1c04('0x1e')]?_0xbfae4e[_0x1c04('0x1e')][_0x1c04('0x23')]?_['map'](_0xbfae4e['options'][_0x1c04('0x23')],function(_0x2c9f84){return{'model':db[_0x2c9f84[_0x1c04('0x24')]],'as':_0x2c9f84['as'],'attributes':_0x2c9f84[_0x1c04('0x21')],'include':_0x2c9f84[_0x1c04('0x23')]?_[_0x1c04('0x25')](_0x2c9f84[_0x1c04('0x23')],function(_0xb8bde5){return{'model':db[_0xb8bde5['model']],'as':_0xb8bde5['as'],'attributes':_0xb8bde5['attributes'],'include':_0xb8bde5[_0x1c04('0x23')]?_['map'](_0xb8bde5[_0x1c04('0x23')],function(_0x228e4){return{'model':db[_0x228e4[_0x1c04('0x24')]],'as':_0x228e4['as'],'attributes':_0x228e4[_0x1c04('0x21')]};}):[]};}):[]};}):[]:[]})[_0x1c04('0xf')](function(_0x148237){logger[_0x1c04('0x17')]('GetMailAccount',_0xbfae4e);logger['debug']('GetMailAccount',_0xbfae4e,JSON[_0x1c04('0x13')](_0x148237));_0x1e5820(_0x148237);})['catch'](function(_0x4322e0){logger[_0x1c04('0x14')](_0x1c04('0x1b'),_0x4322e0[_0x1c04('0x16')],_0xbfae4e);_0x1724a4(_0x1a0d5b[_0x1c04('0x14')](0x1f4,_0x4322e0[_0x1c04('0x16')]));});});};exports[_0x1c04('0x26')]=function(_0x2e174c){var _0x4c5ad2=this;return new Promise(function(_0xf11eba,_0x4ac9e0){return db['MailAccount']['find']({'raw':_0x2e174c[_0x1c04('0x1e')]?_0x2e174c[_0x1c04('0x1e')][_0x1c04('0x1f')]===undefined?!![]:![]:!![],'where':_0x2e174c[_0x1c04('0x1e')]?_0x2e174c[_0x1c04('0x1e')][_0x1c04('0x20')]||null:null,'attributes':_0x2e174c[_0x1c04('0x1e')]?_0x2e174c['options'][_0x1c04('0x21')]||null:null,'include':_0x2e174c[_0x1c04('0x1e')]?_0x2e174c[_0x1c04('0x1e')][_0x1c04('0x23')]?_['map'](_0x2e174c['options'][_0x1c04('0x23')],function(_0x236b7f){return{'model':db[_0x236b7f[_0x1c04('0x24')]],'as':_0x236b7f['as'],'attributes':_0x236b7f[_0x1c04('0x21')],'include':_0x236b7f[_0x1c04('0x23')]?_['map'](_0x236b7f[_0x1c04('0x23')],function(_0x2da9e3){return{'model':db[_0x2da9e3['model']],'as':_0x2da9e3['as'],'attributes':_0x2da9e3[_0x1c04('0x21')],'include':_0x2da9e3[_0x1c04('0x23')]?_[_0x1c04('0x25')](_0x2da9e3[_0x1c04('0x23')],function(_0x587b09){return{'model':db[_0x587b09[_0x1c04('0x24')]],'as':_0x587b09['as'],'attributes':_0x587b09['attributes']};}):[]};}):[]};}):[]:[]})[_0x1c04('0xf')](function(_0x42f71f){logger[_0x1c04('0x17')](_0x1c04('0x26'),_0x2e174c);logger[_0x1c04('0x11')](_0x1c04('0x26'),_0x2e174c,JSON[_0x1c04('0x13')](_0x42f71f));_0xf11eba(_0x42f71f);})[_0x1c04('0x1a')](function(_0xc3273a){logger[_0x1c04('0x14')](_0x1c04('0x26'),_0xc3273a['message'],_0x2e174c);_0x4ac9e0(_0x4c5ad2[_0x1c04('0x14')](0x1f4,_0xc3273a['message']));});});};exports[_0x1c04('0x27')]=function(_0x1340b4){var _0x501091=this;return new Promise(function(_0x3404ad,_0x560c87){var _0x2be3ac={'body':_0x1340b4[_0x1c04('0x28')],'channel':_0x1c04('0x29')};var _0x5d6288=_[_0x1c04('0x2a')](_[_0x1c04('0x2b')](db[_0x1c04('0x2c')][_0x1c04('0x2d')]),[_0x1c04('0x2e'),_0x1c04('0x2f'),_0x1c04('0x30'),_0x1c04('0x31')]);var _0x18e9fc=![];if(_0x1340b4[_0x1c04('0x28')]['id']){delete _0x1340b4['body']['id'];}if(_[_0x1c04('0x32')](_0x1340b4[_0x1c04('0x28')][_0x1c04('0x33')])){return _0x560c87(_0x501091[_0x1c04('0x14')](0x1f4,_0x1c04('0x34')));}if(_[_0x1c04('0x32')](_0x1340b4[_0x1c04('0x28')][_0x1c04('0x28')])||_0x1340b4[_0x1c04('0x28')]['body']===''){return _0x560c87(_0x501091[_0x1c04('0x14')](0x1f4,'body\x20is\x20mandatory\x20and\x20not\x20empty'));}if(_['isNil'](_0x1340b4['body'][_0x1c04('0x35')])){return _0x560c87(_0x501091[_0x1c04('0x14')](0x1f4,'mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x5d6288));}if(!_['includes'](_0x5d6288,_0x1340b4[_0x1c04('0x28')][_0x1c04('0x35')])){return _0x560c87(_0x501091[_0x1c04('0x14')](0x1f4,_0x1c04('0x36')+_0x5d6288));}var _0x2c6edf={};_0x2c6edf[_0x1340b4['body'][_0x1c04('0x35')]]=_0x1340b4[_0x1c04('0x28')]['from'];return db[_0x1c04('0x1c')][_0x1c04('0x37')]({'where':{'id':_0x1340b4[_0x1c04('0x38')]['id']},'include':[{'model':db['CmList'],'as':_0x1c04('0x39'),'include':[{'model':db[_0x1c04('0x2c')],'as':_0x1c04('0x3a'),'where':_0x2c6edf,'limit':0x1,'order':[[_0x1c04('0x2f'),_0x1c04('0x3b')]]}]},{'model':db[_0x1c04('0x3c')],'as':_0x1c04('0x3d')},{'model':db['MailServerOut'],'as':'Smtp'}]})[_0x1c04('0xf')](function(_0x238cd8){if(_0x238cd8&&_0x238cd8['List']){var _0x13a6cd=_0x238cd8[_0x1c04('0x3e')]({'plain':!![]});_0x2be3ac[_0x1c04('0x38')]=_['omit'](_0x13a6cd,[_0x1c04('0x3d'),_0x1c04('0x39')]);_0x2be3ac[_0x1c04('0x3f')]=_0x13a6cd['Applications'];_0x2be3ac[_0x1c04('0x40')]=_0x13a6cd[_0x1c04('0x39')];_0x2be3ac[_0x1c04('0x3f')]=_[_0x1c04('0x41')](_0x2be3ac[_0x1c04('0x3f')],[_0x1c04('0x42')],[_0x1c04('0x43')]);if(_0x2be3ac['account']&&_0x2be3ac['account'][_0x1c04('0x44')]){_0x2be3ac[_0x1c04('0x3f')][_0x1c04('0x45')]({'id':0x0,'priority':_0x2be3ac[_0x1c04('0x3f')][_0x1c04('0x46')]+0x1,'app':'close','appdata':_0x1c04('0x44'),'interval':_0x1c04('0x47')});}if(_0x2be3ac['account'][_0x1c04('0x3d')]){delete _0x2be3ac[_0x1c04('0x38')]['Applications'];}if(_0x2be3ac['account'][_0x1c04('0x39')]){delete _0x2be3ac[_0x1c04('0x38')][_0x1c04('0x39')];}if(_0x13a6cd[_0x1c04('0x39')][_0x1c04('0x3a')]['length']){return _0x13a6cd['List'][_0x1c04('0x3a')][0x0];}var _0x3f978b=_['defaults'](_0x1340b4['body'],{'firstName':_0x1340b4[_0x1c04('0x28')][_0x1c04('0x33')],'ListId':_0x13a6cd[_0x1c04('0x31')]});_0x3f978b[_0x1340b4[_0x1c04('0x28')][_0x1c04('0x35')]]=_0x1340b4[_0x1c04('0x28')][_0x1c04('0x33')];return db[_0x1c04('0x2c')]['create'](_0x3f978b);}else{throw new Error('List\x20not\x20found');}})[_0x1c04('0xf')](function(_0x202603){_0x2be3ac[_0x1c04('0x48')]=_0x202603;if(_0x202603){if(!_0x1340b4[_0x1c04('0x28')][_0x1c04('0x16')]['messageId']){_0x1340b4[_0x1c04('0x28')][_0x1c04('0x16')][_0x1c04('0x49')]=rs[_0x1c04('0x4a')]()+'\x20'+_0x1340b4['body'][_0x1c04('0x16')][_0x1c04('0x33')];}var _0x5e7abb={'ContactId':_0x202603['id'],'MailAccountId':_0x1340b4[_0x1c04('0x38')]['id'],'inReplyTo':_0x1340b4[_0x1c04('0x28')]['message'][_0x1c04('0x49')],'to':_0x1340b4['body']['message']['from'],'cc':_0x1340b4['body'][_0x1c04('0x16')]['cc'],'subject':_0x1340b4[_0x1c04('0x28')][_0x1c04('0x16')][_0x1c04('0x4b')],'attach':_0x1340b4[_0x1c04('0x28')][_0x1c04('0x16')]['attach'],'lastMsgAt':moment()[_0x1c04('0x4c')](_0x1c04('0x4d')),'lastMsgDirection':'in','lastMsgBody':_0x1340b4['body'][_0x1c04('0x28')]};return db[_0x1c04('0x4e')][_0x1c04('0x37')]({'where':{'closed':![],'MailAccountId':_0x1340b4[_0x1c04('0x38')]['id']},'include':[{'model':db['MailMessage'],'as':_0x1c04('0x4f'),'attributes':['messageId'],'where':{'messageId':_0x1340b4[_0x1c04('0x28')][_0x1c04('0x16')][_0x1c04('0x50')]}}]})[_0x1c04('0xf')](function(_0x407b58){if(_0x407b58){return[_0x407b58,![]];}return db[_0x1c04('0x4e')][_0x1c04('0x51')](_0x5e7abb)['then'](function(_0x271765){return[_0x271765,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})['spread'](function(_0x28b302,_0x545a17){if(_0x28b302){_0x18e9fc=_0x545a17;if(!_0x545a17){return _0x28b302[_0x1c04('0x52')]({'inReplyTo':_0x1340b4[_0x1c04('0x28')][_0x1c04('0x16')][_0x1c04('0x49')],'to':_0x1340b4['body'][_0x1c04('0x16')][_0x1c04('0x33')],'cc':_0x1340b4[_0x1c04('0x28')][_0x1c04('0x16')]['cc'],'subject':_0x1340b4[_0x1c04('0x28')]['message'][_0x1c04('0x4b')],'attach':_0x28b302[_0x1c04('0x53')]?_0x28b302['attach']:_0x1340b4[_0x1c04('0x28')][_0x1c04('0x16')]['attach'],'substatus':null,'substatusAt':moment()[_0x1c04('0x4c')](_0x1c04('0x4d')),'lastMsgAt':moment()['format'](_0x1c04('0x4d')),'lastMsgDirection':'in','lastMsgBody':_0x1340b4[_0x1c04('0x28')][_0x1c04('0x28')]});}else{return _0x28b302;}}})[_0x1c04('0xf')](function(_0xfc1157){_0x2be3ac['interaction']=_0xfc1157[_0x1c04('0x3e')]({'plain':!![]});_0x2be3ac[_0x1c04('0x54')][_0x1c04('0x55')]=_0x18e9fc;return db['MailMessage'][_0x1c04('0x51')]({'body':_0x1340b4[_0x1c04('0x28')]['body'],'MailAccountId':_0x1340b4[_0x1c04('0x38')]['id'],'MailInteractionId':_0xfc1157['id'],'direction':'in','ContactId':_0x2be3ac[_0x1c04('0x48')]['id'],'messageId':_0x1340b4[_0x1c04('0x28')][_0x1c04('0x16')]['messageId'],'from':_0x1340b4[_0x1c04('0x28')][_0x1c04('0x16')][_0x1c04('0x33')],'to':_0x1340b4['body'][_0x1c04('0x16')]['to'],'cc':_0x1340b4['body']['message']['cc'],'subject':_0x1340b4[_0x1c04('0x28')][_0x1c04('0x16')][_0x1c04('0x4b')],'attach':_0x1340b4['body']['message'][_0x1c04('0x53')],'Attachments':_0x1340b4[_0x1c04('0x28')][_0x1c04('0x16')]['attachments'],'originTo':_0x1340b4[_0x1c04('0x28')][_0x1c04('0x16')][_0x1c04('0x56')],'originCc':_0x1340b4[_0x1c04('0x28')]['message']['originCc'],'bcc':_0x1340b4['body'][_0x1c04('0x16')][_0x1c04('0x57')]},{'include':[{'model':db[_0x1c04('0x58')],'as':_0x1c04('0x59')}]});})[_0x1c04('0xf')](function(_0x3a253b){_0x2be3ac[_0x1c04('0x16')]=_0x3a253b;if(_0x2be3ac[_0x1c04('0x54')][_0x1c04('0x5a')]){return db[_0x1c04('0x5b')][_0x1c04('0x37')]({'attributes':['id',_0x1c04('0x5c')],'where':{'id':_0x2be3ac[_0x1c04('0x54')][_0x1c04('0x5a')]}})['then'](function(_0x547ffe){if(_0x547ffe){_0x2be3ac[_0x1c04('0x3f')]['unshift']({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x547ffe[_0x1c04('0x5c')]+','+(_0x2be3ac['account'][_0x1c04('0x5d')]||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise(_0x1c04('0x5e'),'startRouting',_0x2be3ac);});}return respondWithRpcPromise(_0x1c04('0x5e'),_0x1c04('0x5f'),_0x2be3ac);})['then'](function(_0x1d587e){_0x3404ad(_0x1d587e);})[_0x1c04('0x1a')](function(_0x3e6ecb){_0x560c87(_0x501091['error'](0x1f4,_0x3e6ecb['message']));});});};