15fa17c8305ef18ad0b3092a65b9bbefb90db8b4
[motion2.git] / server / api / faxAccount / faxAccount.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 _0xcd38=['raw','where','attributes','limit','include','map','model','GetFaxAccount','stringify','NotifyFaxAccount','fax','CmContact','describe','Sequelize','no\x20available\x20attributes','createdAt','updatedAt','difference','CompanyId','ListId','body','from','ValidationError','body\x20is\x20mandatory\x20and\x20not\x20empty','isNil','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','account','Contacts','DESC','FaxApplication','Applications','applications','list','List','orderBy','priority','asc','length','create','FaxInteraction','Contact\x20not\x20found','spread','get','autoclose','push','close','unmanaged','created','FaxMessage','ContactId','AttachmentId','interaction','UserId','User','name','unshift','waitForTheAssignedAgent','*,*,*,*','Start','startRouting','lodash','util','bluebird','randomstring','../../mysqldb','../../config/utils','rpc','../../config/environment','jayson/promise','http','redis','defaults','localhost','socket.io-emitter','./faxAccount.socket','register','then','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','error','message','catch','FaxAccount','options'];(function(_0x51f3e1,_0x57feab){var _0x2a09f7=function(_0xbc5955){while(--_0xbc5955){_0x51f3e1['push'](_0x51f3e1['shift']());}};_0x2a09f7(++_0x57feab);}(_0xcd38,0x14e));var _0x8cd3=function(_0x3e8ffb,_0x2e48a2){_0x3e8ffb=_0x3e8ffb-0x0;var _0x1d5d20=_0xcd38[_0x3e8ffb];return _0x1d5d20;};'use strict';var _=require(_0x8cd3('0x0'));var util=require(_0x8cd3('0x1'));var moment=require('moment');var BPromise=require(_0x8cd3('0x2'));var rs=require(_0x8cd3('0x3'));var fs=require('fs');var Redis=require('ioredis');var db=require(_0x8cd3('0x4'))['db'];var utils=require(_0x8cd3('0x5'));var logger=require('../../config/logger')(_0x8cd3('0x6'));var config=require(_0x8cd3('0x7'));var jayson=require(_0x8cd3('0x8'));var client=jayson['client'][_0x8cd3('0x9')]({'port':0x232c});config[_0x8cd3('0xa')]=_[_0x8cd3('0xb')](config[_0x8cd3('0xa')],{'host':_0x8cd3('0xc'),'port':0x18eb});var socket=require(_0x8cd3('0xd'))(new Redis(config['redis']));require(_0x8cd3('0xe'))[_0x8cd3('0xf')](socket);function respondWithRpcPromise(_0x5141b3,_0xe5fde5,_0x4f5eeb){return new BPromise(function(_0x53bfec,_0x178b94){return client['request'](_0x5141b3,_0x4f5eeb)[_0x8cd3('0x10')](function(_0x1742e6){logger['info'](_0x8cd3('0x11'),_0xe5fde5,_0x8cd3('0x12'));logger[_0x8cd3('0x13')](_0x8cd3('0x14'),_0xe5fde5,_0x8cd3('0x12'),JSON['stringify'](_0x1742e6));if(_0x1742e6[_0x8cd3('0x15')]){if(_0x1742e6[_0x8cd3('0x15')]['code']===0x1f4){logger[_0x8cd3('0x15')](_0x8cd3('0x11'),_0xe5fde5,_0x1742e6['error']['message']);return _0x178b94(_0x1742e6[_0x8cd3('0x15')][_0x8cd3('0x16')]);}logger[_0x8cd3('0x15')](_0x8cd3('0x11'),_0xe5fde5,_0x1742e6[_0x8cd3('0x15')][_0x8cd3('0x16')]);return _0x53bfec(_0x1742e6['error'][_0x8cd3('0x16')]);}else{logger['info'](_0x8cd3('0x11'),_0xe5fde5,_0x8cd3('0x12'));_0x53bfec(_0x1742e6['result'][_0x8cd3('0x16')]);}})[_0x8cd3('0x17')](function(_0x54974a){logger[_0x8cd3('0x15')](_0x8cd3('0x11'),_0xe5fde5,_0x54974a);_0x178b94(_0x54974a);});});}exports['GetFaxAccount']=function(_0x454b22){var _0x134fe7=this;return new Promise(function(_0x167d3e,_0x2e1f8d){return db[_0x8cd3('0x18')]['findAll']({'raw':_0x454b22['options']?_0x454b22[_0x8cd3('0x19')][_0x8cd3('0x1a')]===undefined?!![]:![]:!![],'where':_0x454b22[_0x8cd3('0x19')]?_0x454b22[_0x8cd3('0x19')][_0x8cd3('0x1b')]||null:null,'attributes':_0x454b22['options']?_0x454b22[_0x8cd3('0x19')][_0x8cd3('0x1c')]||null:null,'limit':_0x454b22['options']?_0x454b22[_0x8cd3('0x19')][_0x8cd3('0x1d')]||null:null,'include':_0x454b22[_0x8cd3('0x19')]?_0x454b22[_0x8cd3('0x19')][_0x8cd3('0x1e')]?_[_0x8cd3('0x1f')](_0x454b22[_0x8cd3('0x19')][_0x8cd3('0x1e')],function(_0x1bc468){return{'model':db[_0x1bc468['model']],'as':_0x1bc468['as'],'attributes':_0x1bc468[_0x8cd3('0x1c')],'include':_0x1bc468['include']?_['map'](_0x1bc468[_0x8cd3('0x1e')],function(_0x294306){return{'model':db[_0x294306[_0x8cd3('0x20')]],'as':_0x294306['as'],'attributes':_0x294306[_0x8cd3('0x1c')],'include':_0x294306[_0x8cd3('0x1e')]?_[_0x8cd3('0x1f')](_0x294306[_0x8cd3('0x1e')],function(_0xa42bde){return{'model':db[_0xa42bde[_0x8cd3('0x20')]],'as':_0xa42bde['as'],'attributes':_0xa42bde[_0x8cd3('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x8cd3('0x10')](function(_0x544e24){logger['info']('GetFaxAccount',_0x454b22);logger['debug'](_0x8cd3('0x21'),_0x454b22,JSON[_0x8cd3('0x22')](_0x544e24));_0x167d3e(_0x544e24);})['catch'](function(_0x3809be){logger['error'](_0x8cd3('0x21'),_0x3809be[_0x8cd3('0x16')],_0x454b22);_0x2e1f8d(_0x134fe7[_0x8cd3('0x15')](0x1f4,_0x3809be['message']));});});};exports[_0x8cd3('0x23')]=function(_0x5427fc,_0x1da240,_0x597812){var _0x32d8bf=this;return new Promise(function(_0x546498,_0x2d795e){var _0x3208e3={'body':_0x5427fc['body'],'channel':_0x8cd3('0x24')};var _0x101c9f=[];var _0x463ef1=[];var _0x528009={};return db[_0x8cd3('0x25')][_0x8cd3('0x26')]()[_0x8cd3('0x10')](function(_0x8f3ba2){if(!_0x8f3ba2){throw new db[(_0x8cd3('0x27'))]['ValidationError'](_0x8cd3('0x28'));}_0x101c9f=_['difference'](_['keys'](_0x8f3ba2),[_0x8cd3('0x29'),_0x8cd3('0x2a')]);_0x463ef1=_[_0x8cd3('0x2b')](_['keys'](_0x8f3ba2),[_0x8cd3('0x29'),_0x8cd3('0x2a'),_0x8cd3('0x2c'),_0x8cd3('0x2d')]);if(_0x5427fc[_0x8cd3('0x2e')]['id']){delete _0x5427fc[_0x8cd3('0x2e')]['id'];}if(_['isNil'](_0x5427fc[_0x8cd3('0x2e')][_0x8cd3('0x2f')])){throw new db[(_0x8cd3('0x27'))][(_0x8cd3('0x30'))]('from\x20is\x20mandatory');}if(_['isNil'](_0x5427fc['body']['body'])||_0x5427fc[_0x8cd3('0x2e')]['body']===''){throw new db[(_0x8cd3('0x27'))]['ValidationError'](_0x8cd3('0x31'));}if(_[_0x8cd3('0x32')](_0x5427fc[_0x8cd3('0x2e')][_0x8cd3('0x33')])){throw new db[(_0x8cd3('0x27'))][(_0x8cd3('0x30'))](_0x8cd3('0x34')+_0x463ef1);}if(!_[_0x8cd3('0x35')](_0x463ef1,_0x5427fc[_0x8cd3('0x2e')][_0x8cd3('0x33')])){throw new db[(_0x8cd3('0x27'))][(_0x8cd3('0x30'))](_0x8cd3('0x36')+_0x463ef1);}_0x528009[_0x5427fc[_0x8cd3('0x2e')]['mapKey']]=_0x5427fc[_0x8cd3('0x2e')][_0x8cd3('0x2f')];})['then'](function(){return db['FaxAccount'][_0x8cd3('0x37')]({'where':{'id':_0x5427fc[_0x8cd3('0x38')]['id']},'include':[{'model':db['CmList'],'as':'List','include':[{'model':db[_0x8cd3('0x25')],'as':_0x8cd3('0x39'),'where':_0x528009,'limit':0x1,'order':[[_0x8cd3('0x2a'),_0x8cd3('0x3a')]]}]},{'model':db[_0x8cd3('0x3b')],'as':_0x8cd3('0x3c')}]});})[_0x8cd3('0x10')](function(_0x1afe76){if(_0x1afe76&&_0x1afe76['List']){var _0x14be38=_0x1afe76['get']({'plain':!![]});_0x3208e3[_0x8cd3('0x38')]=_0x14be38;_0x3208e3[_0x8cd3('0x3d')]=_0x14be38[_0x8cd3('0x3c')];_0x3208e3[_0x8cd3('0x3e')]=_0x14be38[_0x8cd3('0x3f')];_0x3208e3['applications']=_[_0x8cd3('0x40')](_0x3208e3['applications'],[_0x8cd3('0x41')],[_0x8cd3('0x42')]);if(_0x3208e3['account'][_0x8cd3('0x3c')]){delete _0x3208e3['account']['Applications'];}if(_0x3208e3[_0x8cd3('0x38')][_0x8cd3('0x3f')]&&_0x3208e3[_0x8cd3('0x38')]['List']['Contacts'][_0x8cd3('0x43')]){return _0x3208e3[_0x8cd3('0x38')][_0x8cd3('0x3f')][_0x8cd3('0x39')][0x0];}var _0x357e72=_[_0x8cd3('0xb')](_0x5427fc[_0x8cd3('0x2e')],{'firstName':_0x5427fc['body'][_0x8cd3('0x2f')],'ListId':_0x14be38['ListId']});_0x357e72[_0x5427fc[_0x8cd3('0x2e')][_0x8cd3('0x33')]]=_0x5427fc[_0x8cd3('0x2e')][_0x8cd3('0x2f')];return db[_0x8cd3('0x25')][_0x8cd3('0x44')](_0x357e72,{'fields':_0x101c9f,'raw':!![]});}})[_0x8cd3('0x10')](function(_0x386e18){_0x3208e3['contact']=_0x386e18;if(_0x386e18){var _0x14ad24={'ContactId':_0x386e18['id'],'FaxAccountId':_0x5427fc[_0x8cd3('0x38')]['id'],'fax':_0x386e18[_0x8cd3('0x24')]};return db['FaxInteraction']['find']({'where':{'ContactId':_0x386e18['id'],'closed':![],'FaxAccountId':_0x5427fc[_0x8cd3('0x38')]['id']}})[_0x8cd3('0x10')](function(_0xa7262){if(_0xa7262){return[_0xa7262,![]];}return db[_0x8cd3('0x45')][_0x8cd3('0x44')](_0x14ad24)[_0x8cd3('0x10')](function(_0x500032){return[_0x500032,!![]];});});}else{throw new Error(_0x8cd3('0x46'));}})[_0x8cd3('0x47')](function(_0x27da74,_0x35d45c){var _0x2bf178=_0x27da74[_0x8cd3('0x48')]({'plain':!![]});if(_0x35d45c){if(_0x3208e3[_0x8cd3('0x38')][_0x8cd3('0x49')]){_0x3208e3[_0x8cd3('0x3d')][_0x8cd3('0x4a')]({'id':0x0,'priority':_0x3208e3[_0x8cd3('0x3d')]['length']+0x1,'app':_0x8cd3('0x4b'),'appdata':_0x8cd3('0x4c'),'interval':'*,*,*,*'});}_0x2bf178[_0x8cd3('0x4d')]=!![];}else{_0x2bf178[_0x8cd3('0x4d')]=![];}_0x3208e3['interaction']=_0x2bf178;return db[_0x8cd3('0x4e')][_0x8cd3('0x44')]({'body':_0x5427fc[_0x8cd3('0x2e')][_0x8cd3('0x2e')],'FaxAccountId':_0x5427fc[_0x8cd3('0x38')]['id'],'FaxInteractionId':_0x27da74['id'],'direction':'in','ContactId':_0x27da74[_0x8cd3('0x4f')],'AttachmentId':_0x5427fc[_0x8cd3('0x2e')][_0x8cd3('0x50')]});})[_0x8cd3('0x10')](function(_0x4d92ed){_0x3208e3[_0x8cd3('0x16')]=_0x4d92ed;if(_0x3208e3[_0x8cd3('0x51')][_0x8cd3('0x52')]){return db[_0x8cd3('0x53')][_0x8cd3('0x37')]({'attributes':['id',_0x8cd3('0x54')],'where':{'id':_0x3208e3[_0x8cd3('0x51')][_0x8cd3('0x52')]}})[_0x8cd3('0x10')](function(_0x196e00){if(_0x196e00){_0x3208e3[_0x8cd3('0x3d')][_0x8cd3('0x55')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x196e00[_0x8cd3('0x54')]+','+(_0x3208e3[_0x8cd3('0x38')][_0x8cd3('0x56')]||0xa),'interval':_0x8cd3('0x57')});}return respondWithRpcPromise(_0x8cd3('0x58'),'startRouting',_0x3208e3);});}return respondWithRpcPromise(_0x8cd3('0x58'),_0x8cd3('0x59'),_0x3208e3);})['then'](function(_0x5ad471){_0x546498(_0x5ad471);})['catch'](function(_0x2e8ae4){_0x2d795e(_0x32d8bf[_0x8cd3('0x15')](0x1f4,_0x2e8ae4[_0x8cd3('0x16')]));});});};