Built motion from commit 0900f080.|2.5.45
[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 _0x14e3=['length','List\x20not\x20found','contact','messageId','generate','subject','attach','format','YYYY-MM-DD\x20HH:mm:ss','MailMessage','Messages','MailInteraction','create','Contact\x20not\x20found','update','interaction','created','attachments','originTo','bcc','ChatWebsiteId','Email','ChatOfflineMessageId','User','name','UserId','agent','waitForTheAssignedAgent','startRouting','Start','lodash','util','moment','randomstring','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','register','request','info','MailAccount,\x20%s,\x20%s','request\x20sent','debug','MailAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','GetMailAccount','MailAccount','findAll','options','raw','where','attributes','limit','include','map','model','then','catch','ShowMailAccount','find','NotifyMailAccount','body','mail','keys','CmContact','rawAttributes','createdAt','updatedAt','CompanyId','isNil','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','from','account','CmList','List','Contacts','MailApplication','Applications','MailServerOut','Smtp','get','omit','list','applications','orderBy','priority','asc','autoclose','*,*,*,*'];(function(_0xfdac30,_0x3bbd13){var _0x31aa35=function(_0x21ef79){while(--_0x21ef79){_0xfdac30['push'](_0xfdac30['shift']());}};_0x31aa35(++_0x3bbd13);}(_0x14e3,0x87));var _0x314e=function(_0x56758e,_0x2f6ab9){_0x56758e=_0x56758e-0x0;var _0x2c4516=_0x14e3[_0x56758e];return _0x2c4516;};'use strict';var _=require(_0x314e('0x0'));var util=require(_0x314e('0x1'));var moment=require(_0x314e('0x2'));var BPromise=require('bluebird');var rs=require(_0x314e('0x3'));var fs=require('fs');var Redis=require(_0x314e('0x4'));var db=require(_0x314e('0x5'))['db'];var utils=require(_0x314e('0x6'));var logger=require('../../config/logger')(_0x314e('0x7'));var config=require(_0x314e('0x8'));var jayson=require(_0x314e('0x9'));var client=jayson[_0x314e('0xa')][_0x314e('0xb')]({'port':0x232c});config[_0x314e('0xc')]=_[_0x314e('0xd')](config[_0x314e('0xc')],{'host':_0x314e('0xe'),'port':0x18eb});var socket=require(_0x314e('0xf'))(new Redis(config[_0x314e('0xc')]));require('./mailAccount.socket')[_0x314e('0x10')](socket);function respondWithRpcPromise(_0x4b441e,_0x64bc6d,_0x49d8d8){return new BPromise(function(_0x488448,_0x15e44e){return client[_0x314e('0x11')](_0x4b441e,_0x49d8d8)['then'](function(_0x198fd8){logger[_0x314e('0x12')](_0x314e('0x13'),_0x64bc6d,_0x314e('0x14'));logger[_0x314e('0x15')](_0x314e('0x16'),_0x64bc6d,'request\x20sent',JSON[_0x314e('0x17')](_0x198fd8));if(_0x198fd8[_0x314e('0x18')]){if(_0x198fd8[_0x314e('0x18')][_0x314e('0x19')]===0x1f4){logger[_0x314e('0x18')]('MailAccount,\x20%s,\x20%s',_0x64bc6d,_0x198fd8[_0x314e('0x18')]['message']);return _0x15e44e(_0x198fd8['error'][_0x314e('0x1a')]);}logger['error'](_0x314e('0x13'),_0x64bc6d,_0x198fd8['error'][_0x314e('0x1a')]);return _0x488448(_0x198fd8[_0x314e('0x18')][_0x314e('0x1a')]);}else{logger[_0x314e('0x12')]('MailAccount,\x20%s,\x20%s',_0x64bc6d,_0x314e('0x14'));_0x488448(_0x198fd8[_0x314e('0x1b')][_0x314e('0x1a')]);}})['catch'](function(_0x15a672){logger[_0x314e('0x18')](_0x314e('0x13'),_0x64bc6d,_0x15a672);_0x15e44e(_0x15a672);});});}exports[_0x314e('0x1c')]=function(_0x74100){var _0x534a36=this;return new Promise(function(_0xc1ec4c,_0x5d066c){return db[_0x314e('0x1d')][_0x314e('0x1e')]({'raw':_0x74100[_0x314e('0x1f')]?_0x74100[_0x314e('0x1f')][_0x314e('0x20')]===undefined?!![]:![]:!![],'where':_0x74100['options']?_0x74100[_0x314e('0x1f')][_0x314e('0x21')]||null:null,'attributes':_0x74100['options']?_0x74100['options'][_0x314e('0x22')]||null:null,'limit':_0x74100[_0x314e('0x1f')]?_0x74100['options'][_0x314e('0x23')]||null:null,'include':_0x74100[_0x314e('0x1f')]?_0x74100['options']['include']?_['map'](_0x74100[_0x314e('0x1f')][_0x314e('0x24')],function(_0x236d53){return{'model':db[_0x236d53['model']],'as':_0x236d53['as'],'attributes':_0x236d53[_0x314e('0x22')],'include':_0x236d53['include']?_[_0x314e('0x25')](_0x236d53[_0x314e('0x24')],function(_0x3d3f08){return{'model':db[_0x3d3f08[_0x314e('0x26')]],'as':_0x3d3f08['as'],'attributes':_0x3d3f08[_0x314e('0x22')],'include':_0x3d3f08[_0x314e('0x24')]?_[_0x314e('0x25')](_0x3d3f08[_0x314e('0x24')],function(_0x559c32){return{'model':db[_0x559c32[_0x314e('0x26')]],'as':_0x559c32['as'],'attributes':_0x559c32[_0x314e('0x22')]};}):[]};}):[]};}):[]:[]})[_0x314e('0x27')](function(_0x5cc599){logger[_0x314e('0x12')](_0x314e('0x1c'),_0x74100);logger[_0x314e('0x15')](_0x314e('0x1c'),_0x74100,JSON[_0x314e('0x17')](_0x5cc599));_0xc1ec4c(_0x5cc599);})[_0x314e('0x28')](function(_0x21efd0){logger[_0x314e('0x18')](_0x314e('0x1c'),_0x21efd0['message'],_0x74100);_0x5d066c(_0x534a36[_0x314e('0x18')](0x1f4,_0x21efd0[_0x314e('0x1a')]));});});};exports[_0x314e('0x29')]=function(_0x3bf4d4){var _0x41aab8=this;return new Promise(function(_0x1a9668,_0x273356){return db[_0x314e('0x1d')][_0x314e('0x2a')]({'raw':_0x3bf4d4[_0x314e('0x1f')]?_0x3bf4d4[_0x314e('0x1f')][_0x314e('0x20')]===undefined?!![]:![]:!![],'where':_0x3bf4d4[_0x314e('0x1f')]?_0x3bf4d4[_0x314e('0x1f')][_0x314e('0x21')]||null:null,'attributes':_0x3bf4d4['options']?_0x3bf4d4[_0x314e('0x1f')][_0x314e('0x22')]||null:null,'include':_0x3bf4d4[_0x314e('0x1f')]?_0x3bf4d4[_0x314e('0x1f')][_0x314e('0x24')]?_['map'](_0x3bf4d4['options'][_0x314e('0x24')],function(_0x2fd97d){return{'model':db[_0x2fd97d['model']],'as':_0x2fd97d['as'],'attributes':_0x2fd97d[_0x314e('0x22')],'include':_0x2fd97d[_0x314e('0x24')]?_[_0x314e('0x25')](_0x2fd97d[_0x314e('0x24')],function(_0x18be42){return{'model':db[_0x18be42[_0x314e('0x26')]],'as':_0x18be42['as'],'attributes':_0x18be42[_0x314e('0x22')],'include':_0x18be42[_0x314e('0x24')]?_['map'](_0x18be42[_0x314e('0x24')],function(_0x28e584){return{'model':db[_0x28e584['model']],'as':_0x28e584['as'],'attributes':_0x28e584[_0x314e('0x22')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x32c9a2){logger['info']('ShowMailAccount',_0x3bf4d4);logger['debug']('ShowMailAccount',_0x3bf4d4,JSON[_0x314e('0x17')](_0x32c9a2));_0x1a9668(_0x32c9a2);})[_0x314e('0x28')](function(_0x20edc7){logger[_0x314e('0x18')]('ShowMailAccount',_0x20edc7[_0x314e('0x1a')],_0x3bf4d4);_0x273356(_0x41aab8[_0x314e('0x18')](0x1f4,_0x20edc7[_0x314e('0x1a')]));});});};exports[_0x314e('0x2b')]=function(_0x200e7d){var _0x2ba9db=this;return new Promise(function(_0xcf6982,_0x3c4949){var _0x3b66f5={'body':_0x200e7d[_0x314e('0x2c')],'channel':_0x314e('0x2d')};var _0x5284eb=_['difference'](_[_0x314e('0x2e')](db[_0x314e('0x2f')][_0x314e('0x30')]),[_0x314e('0x31'),_0x314e('0x32'),_0x314e('0x33'),'ListId']);var _0x4471b0=![];if(_0x200e7d['body']['id']){delete _0x200e7d[_0x314e('0x2c')]['id'];}if(_[_0x314e('0x34')](_0x200e7d[_0x314e('0x2c')]['from'])){return _0x3c4949(_0x2ba9db['error'](0x1f4,'from\x20is\x20mandatory'));}if(_[_0x314e('0x34')](_0x200e7d[_0x314e('0x2c')]['body'])||_0x200e7d['body']['body']===''){return _0x3c4949(_0x2ba9db[_0x314e('0x18')](0x1f4,_0x314e('0x35')));}if(_[_0x314e('0x34')](_0x200e7d[_0x314e('0x2c')][_0x314e('0x36')])){return _0x3c4949(_0x2ba9db['error'](0x1f4,_0x314e('0x37')+_0x5284eb));}if(!_[_0x314e('0x38')](_0x5284eb,_0x200e7d['body'][_0x314e('0x36')])){return _0x3c4949(_0x2ba9db[_0x314e('0x18')](0x1f4,'mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x5284eb));}var _0x326b68={};_0x326b68[_0x200e7d[_0x314e('0x2c')][_0x314e('0x36')]]=_0x200e7d['body'][_0x314e('0x39')];return db['MailAccount'][_0x314e('0x2a')]({'where':{'id':_0x200e7d[_0x314e('0x3a')]['id']},'include':[{'model':db[_0x314e('0x3b')],'as':_0x314e('0x3c'),'include':[{'model':db[_0x314e('0x2f')],'as':_0x314e('0x3d'),'where':_0x326b68,'limit':0x1,'order':[[_0x314e('0x32'),'DESC']]}]},{'model':db[_0x314e('0x3e')],'as':_0x314e('0x3f')},{'model':db[_0x314e('0x40')],'as':_0x314e('0x41')}]})[_0x314e('0x27')](function(_0x3f2701){if(_0x3f2701&&_0x3f2701[_0x314e('0x3c')]){var _0xfbee0d=_0x3f2701[_0x314e('0x42')]({'plain':!![]});_0x3b66f5[_0x314e('0x3a')]=_[_0x314e('0x43')](_0xfbee0d,[_0x314e('0x3f'),_0x314e('0x3c')]);_0x3b66f5['applications']=_0xfbee0d[_0x314e('0x3f')];_0x3b66f5[_0x314e('0x44')]=_0xfbee0d['List'];_0x3b66f5[_0x314e('0x45')]=_[_0x314e('0x46')](_0x3b66f5[_0x314e('0x45')],[_0x314e('0x47')],[_0x314e('0x48')]);if(_0x3b66f5[_0x314e('0x3a')]&&_0x3b66f5[_0x314e('0x3a')][_0x314e('0x49')]){_0x3b66f5[_0x314e('0x45')]['push']({'id':0x0,'priority':_0x3b66f5[_0x314e('0x45')]['length']+0x1,'app':'close','appdata':'autoclose','interval':_0x314e('0x4a')});}if(_0x3b66f5['account'][_0x314e('0x3f')]){delete _0x3b66f5[_0x314e('0x3a')][_0x314e('0x3f')];}if(_0x3b66f5[_0x314e('0x3a')][_0x314e('0x3c')]){delete _0x3b66f5['account'][_0x314e('0x3c')];}if(_0xfbee0d['List']['Contacts'][_0x314e('0x4b')]){return _0xfbee0d[_0x314e('0x3c')]['Contacts'][0x0];}var _0x503afb=_[_0x314e('0xd')](_0x200e7d[_0x314e('0x2c')],{'firstName':_0x200e7d[_0x314e('0x2c')]['from'],'ListId':_0xfbee0d['ListId']});_0x503afb[_0x200e7d[_0x314e('0x2c')][_0x314e('0x36')]]=_0x200e7d[_0x314e('0x2c')][_0x314e('0x39')];return db[_0x314e('0x2f')]['create'](_0x503afb);}else{throw new Error(_0x314e('0x4c'));}})[_0x314e('0x27')](function(_0x3cd233){_0x3b66f5[_0x314e('0x4d')]=_0x3cd233;if(_0x3cd233){if(!_0x200e7d['body'][_0x314e('0x1a')][_0x314e('0x4e')]){_0x200e7d[_0x314e('0x2c')][_0x314e('0x1a')][_0x314e('0x4e')]=rs[_0x314e('0x4f')]()+'\x20'+_0x200e7d[_0x314e('0x2c')]['message'][_0x314e('0x39')];}var _0x49e065={'ContactId':_0x3cd233['id'],'MailAccountId':_0x200e7d[_0x314e('0x3a')]['id'],'inReplyTo':_0x200e7d[_0x314e('0x2c')][_0x314e('0x1a')][_0x314e('0x4e')],'to':_0x200e7d[_0x314e('0x2c')]['message'][_0x314e('0x39')],'cc':_0x200e7d[_0x314e('0x2c')][_0x314e('0x1a')]['cc'],'subject':_0x200e7d[_0x314e('0x2c')][_0x314e('0x1a')][_0x314e('0x50')],'attach':_0x200e7d['body']['message'][_0x314e('0x51')],'lastMsgAt':moment()[_0x314e('0x52')](_0x314e('0x53')),'lastMsgDirection':'in'};return db['MailInteraction'][_0x314e('0x2a')]({'where':{'closed':![],'MailAccountId':_0x200e7d[_0x314e('0x3a')]['id']},'include':[{'model':db[_0x314e('0x54')],'as':_0x314e('0x55'),'attributes':[_0x314e('0x4e')],'where':{'messageId':_0x200e7d[_0x314e('0x2c')][_0x314e('0x1a')]['inReplyTo']}}]})[_0x314e('0x27')](function(_0x515468){if(_0x515468){return[_0x515468,![]];}return db[_0x314e('0x56')][_0x314e('0x57')](_0x49e065)[_0x314e('0x27')](function(_0x48bc2c){return[_0x48bc2c,!![]];});});}else{throw new Error(_0x314e('0x58'));}})['spread'](function(_0x4503c1,_0x255da8){if(_0x4503c1){_0x4471b0=_0x255da8;if(!_0x255da8){return _0x4503c1[_0x314e('0x59')]({'inReplyTo':_0x200e7d[_0x314e('0x2c')][_0x314e('0x1a')][_0x314e('0x4e')],'to':_0x200e7d['body']['message'][_0x314e('0x39')],'cc':_0x200e7d[_0x314e('0x2c')][_0x314e('0x1a')]['cc'],'subject':_0x200e7d['body']['message'][_0x314e('0x50')],'attach':_0x4503c1[_0x314e('0x51')]?_0x4503c1['attach']:_0x200e7d[_0x314e('0x2c')]['message']['attach'],'substatus':null,'substatusAt':moment()[_0x314e('0x52')](_0x314e('0x53')),'lastMsgAt':moment()[_0x314e('0x52')]('YYYY-MM-DD\x20HH:mm:ss'),'lastMsgDirection':'in'});}else{return _0x4503c1;}}})['then'](function(_0x45e3b9){_0x3b66f5[_0x314e('0x5a')]=_0x45e3b9[_0x314e('0x42')]({'plain':!![]});_0x3b66f5[_0x314e('0x5a')][_0x314e('0x5b')]=_0x4471b0;return db['MailMessage'][_0x314e('0x57')]({'body':_0x200e7d[_0x314e('0x2c')][_0x314e('0x2c')],'MailAccountId':_0x200e7d[_0x314e('0x3a')]['id'],'MailInteractionId':_0x45e3b9['id'],'direction':'in','ContactId':_0x3b66f5['contact']['id'],'messageId':_0x200e7d[_0x314e('0x2c')]['message'][_0x314e('0x4e')],'from':_0x200e7d[_0x314e('0x2c')][_0x314e('0x1a')][_0x314e('0x39')],'to':_0x200e7d[_0x314e('0x2c')][_0x314e('0x1a')]['to'],'cc':_0x200e7d['body'][_0x314e('0x1a')]['cc'],'subject':_0x200e7d['body'][_0x314e('0x1a')][_0x314e('0x50')],'attach':_0x200e7d['body']['message'][_0x314e('0x51')],'Attachments':_0x200e7d[_0x314e('0x2c')]['message'][_0x314e('0x5c')],'originTo':_0x200e7d[_0x314e('0x2c')][_0x314e('0x1a')][_0x314e('0x5d')],'originCc':_0x200e7d[_0x314e('0x2c')][_0x314e('0x1a')]['originCc'],'bcc':_0x200e7d[_0x314e('0x2c')]['message'][_0x314e('0x5e')],'ChatWebsiteId':_0x200e7d[_0x314e('0x2c')][_0x314e('0x1a')][_0x314e('0x5f')]||null,'originChannel':_0x200e7d[_0x314e('0x2c')]['message']['originChannel']||_0x314e('0x60'),'ChatOfflineMessageId':_0x200e7d[_0x314e('0x2c')]['message'][_0x314e('0x61')]||null},{'include':[{'model':db['Attachment'],'as':'Attachments'}]});})['then'](function(_0x2207c3){_0x3b66f5[_0x314e('0x1a')]=_0x2207c3;if(_0x3b66f5[_0x314e('0x5a')]['UserId']){return db[_0x314e('0x62')][_0x314e('0x2a')]({'attributes':['id',_0x314e('0x63')],'where':{'id':_0x3b66f5['interaction'][_0x314e('0x64')]}})[_0x314e('0x27')](function(_0x4f648b){if(_0x4f648b){_0x3b66f5['applications']['unshift']({'id':0x0,'priority':0x0,'app':_0x314e('0x65'),'appdata':_0x4f648b[_0x314e('0x63')]+','+(_0x3b66f5[_0x314e('0x3a')][_0x314e('0x66')]||0xa),'interval':_0x314e('0x4a')});}return respondWithRpcPromise('Start',_0x314e('0x67'),_0x3b66f5);});}return respondWithRpcPromise(_0x314e('0x68'),_0x314e('0x67'),_0x3b66f5);})['then'](function(_0x4e7ed6){_0xcf6982(_0x4e7ed6);})[_0x314e('0x28')](function(_0x4da65d){_0x3c4949(_0x2ba9db[_0x314e('0x18')](0x1f4,_0x4da65d['message']));});});};