b528f86b13909fcfa25cc1d5747d11b426f5758a
[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 _0xca99=['code','message','info','result','catch','GetFaxAccount','options','raw','where','limit','include','map','attributes','model','then','NotifyFaxAccount','body','fax','CmContact','Sequelize','no\x20available\x20attributes','keys','updatedAt','createdAt','CompanyId','ListId','isNil','from','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','ValidationError','mapKey','FaxAccount','find','account','CmList','List','DESC','FaxApplication','Applications','get','applications','list','orderBy','priority','asc','Contacts','length','FaxInteraction','create','Contact\x20not\x20found','spread','push','close','unmanaged','*,*,*,*','created','interaction','FaxMessage','UserId','agent','name','waitForTheAssignedAgent','queueId','queue','waitForTheAssignedQueue','Start','startRouting','lodash','util','moment','ioredis','../../mysqldb','../../config/logger','client','http','redis','defaults','localhost','./faxAccount.socket','register','request','FaxAccount,\x20%s,\x20%s','debug','FaxAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error'];(function(_0x434ae5,_0x4a7010){var _0x297d10=function(_0x594cbc){while(--_0x594cbc){_0x434ae5['push'](_0x434ae5['shift']());}};_0x297d10(++_0x4a7010);}(_0xca99,0x150));var _0x9ca9=function(_0x2edec6,_0x2449bf){_0x2edec6=_0x2edec6-0x0;var _0x2fa6ab=_0xca99[_0x2edec6];return _0x2fa6ab;};'use strict';var _=require(_0x9ca9('0x0'));var util=require(_0x9ca9('0x1'));var moment=require(_0x9ca9('0x2'));var BPromise=require('bluebird');var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x9ca9('0x3'));var db=require(_0x9ca9('0x4'))['db'];var utils=require('../../config/utils');var logger=require(_0x9ca9('0x5'))('rpc');var config=require('../../config/environment');var jayson=require('jayson/promise');var client=jayson[_0x9ca9('0x6')][_0x9ca9('0x7')]({'port':0x232c});config[_0x9ca9('0x8')]=_[_0x9ca9('0x9')](config[_0x9ca9('0x8')],{'host':_0x9ca9('0xa'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x9ca9('0x8')]));require(_0x9ca9('0xb'))[_0x9ca9('0xc')](socket);function respondWithRpcPromise(_0xec9219,_0x7f952e,_0xd8dabe){return new BPromise(function(_0x40140c,_0x983d05){return client[_0x9ca9('0xd')](_0xec9219,_0xd8dabe)['then'](function(_0x51d890){logger['info'](_0x9ca9('0xe'),_0x7f952e,'request\x20sent');logger[_0x9ca9('0xf')](_0x9ca9('0x10'),_0x7f952e,_0x9ca9('0x11'),JSON[_0x9ca9('0x12')](_0x51d890));if(_0x51d890[_0x9ca9('0x13')]){if(_0x51d890[_0x9ca9('0x13')][_0x9ca9('0x14')]===0x1f4){logger[_0x9ca9('0x13')](_0x9ca9('0xe'),_0x7f952e,_0x51d890[_0x9ca9('0x13')]['message']);return _0x983d05(_0x51d890[_0x9ca9('0x13')]['message']);}logger[_0x9ca9('0x13')](_0x9ca9('0xe'),_0x7f952e,_0x51d890[_0x9ca9('0x13')][_0x9ca9('0x15')]);return _0x40140c(_0x51d890[_0x9ca9('0x13')]['message']);}else{logger[_0x9ca9('0x16')](_0x9ca9('0xe'),_0x7f952e,_0x9ca9('0x11'));_0x40140c(_0x51d890[_0x9ca9('0x17')]['message']);}})[_0x9ca9('0x18')](function(_0x3e7800){logger[_0x9ca9('0x13')]('FaxAccount,\x20%s,\x20%s',_0x7f952e,_0x3e7800);_0x983d05(_0x3e7800);});});}exports[_0x9ca9('0x19')]=function(_0x2770b1){var _0x583e14=this;return new Promise(function(_0x3e7d2a,_0xd9b212){return db['FaxAccount']['findAll']({'raw':_0x2770b1[_0x9ca9('0x1a')]?_0x2770b1['options'][_0x9ca9('0x1b')]===undefined?!![]:![]:!![],'where':_0x2770b1[_0x9ca9('0x1a')]?_0x2770b1[_0x9ca9('0x1a')][_0x9ca9('0x1c')]||null:null,'attributes':_0x2770b1['options']?_0x2770b1[_0x9ca9('0x1a')]['attributes']||null:null,'limit':_0x2770b1['options']?_0x2770b1[_0x9ca9('0x1a')][_0x9ca9('0x1d')]||null:null,'include':_0x2770b1[_0x9ca9('0x1a')]?_0x2770b1[_0x9ca9('0x1a')][_0x9ca9('0x1e')]?_[_0x9ca9('0x1f')](_0x2770b1[_0x9ca9('0x1a')][_0x9ca9('0x1e')],function(_0x551a93){return{'model':db[_0x551a93['model']],'as':_0x551a93['as'],'attributes':_0x551a93[_0x9ca9('0x20')],'include':_0x551a93[_0x9ca9('0x1e')]?_[_0x9ca9('0x1f')](_0x551a93[_0x9ca9('0x1e')],function(_0x29db55){return{'model':db[_0x29db55[_0x9ca9('0x21')]],'as':_0x29db55['as'],'attributes':_0x29db55['attributes'],'include':_0x29db55[_0x9ca9('0x1e')]?_['map'](_0x29db55[_0x9ca9('0x1e')],function(_0x2662dc){return{'model':db[_0x2662dc['model']],'as':_0x2662dc['as'],'attributes':_0x2662dc[_0x9ca9('0x20')]};}):[]};}):[]};}):[]:[]})[_0x9ca9('0x22')](function(_0x570a2b){logger[_0x9ca9('0x16')](_0x9ca9('0x19'),_0x2770b1);logger['debug'](_0x9ca9('0x19'),_0x2770b1,JSON['stringify'](_0x570a2b));_0x3e7d2a(_0x570a2b);})['catch'](function(_0x2051c6){logger[_0x9ca9('0x13')](_0x9ca9('0x19'),_0x2051c6[_0x9ca9('0x15')],_0x2770b1);_0xd9b212(_0x583e14[_0x9ca9('0x13')](0x1f4,_0x2051c6['message']));});});};exports[_0x9ca9('0x23')]=function(_0x2cf1af,_0x1a628f,_0x4c35bf){var _0x17b5a8=this;return new Promise(function(_0x580f6,_0x5b1bed){var _0x3695ee={'body':_0x2cf1af[_0x9ca9('0x24')],'channel':_0x9ca9('0x25')};var _0x5a60bb=[];var _0x5468c2=[];var _0x3b20fa={};return db[_0x9ca9('0x26')]['describe']()[_0x9ca9('0x22')](function(_0x582406){if(!_0x582406){throw new db[(_0x9ca9('0x27'))]['ValidationError'](_0x9ca9('0x28'));}_0x5a60bb=_['difference'](_[_0x9ca9('0x29')](_0x582406),['createdAt',_0x9ca9('0x2a')]);_0x5468c2=_['difference'](_[_0x9ca9('0x29')](_0x582406),[_0x9ca9('0x2b'),_0x9ca9('0x2a'),_0x9ca9('0x2c'),_0x9ca9('0x2d')]);if(_0x2cf1af['body']['id']){delete _0x2cf1af[_0x9ca9('0x24')]['id'];}if(_[_0x9ca9('0x2e')](_0x2cf1af[_0x9ca9('0x24')][_0x9ca9('0x2f')])){throw new db[(_0x9ca9('0x27'))]['ValidationError']('from\x20is\x20mandatory');}if(_[_0x9ca9('0x2e')](_0x2cf1af['body'][_0x9ca9('0x24')])||_0x2cf1af[_0x9ca9('0x24')][_0x9ca9('0x24')]===''){throw new db['Sequelize']['ValidationError'](_0x9ca9('0x30'));}if(_['isNil'](_0x2cf1af[_0x9ca9('0x24')]['mapKey'])){throw new db[(_0x9ca9('0x27'))]['ValidationError'](_0x9ca9('0x31')+_0x5468c2);}if(!_[_0x9ca9('0x32')](_0x5468c2,_0x2cf1af['body']['mapKey'])){throw new db[(_0x9ca9('0x27'))][(_0x9ca9('0x33'))]('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x5468c2);}_0x3b20fa[_0x2cf1af['body'][_0x9ca9('0x34')]]=_0x2cf1af[_0x9ca9('0x24')][_0x9ca9('0x2f')];})[_0x9ca9('0x22')](function(){return db[_0x9ca9('0x35')][_0x9ca9('0x36')]({'where':{'id':_0x2cf1af[_0x9ca9('0x37')]['id']},'include':[{'model':db[_0x9ca9('0x38')],'as':_0x9ca9('0x39'),'include':[{'model':db[_0x9ca9('0x26')],'as':'Contacts','where':_0x3b20fa,'limit':0x1,'order':[[_0x9ca9('0x2a'),_0x9ca9('0x3a')]]}]},{'model':db[_0x9ca9('0x3b')],'as':_0x9ca9('0x3c')}]});})[_0x9ca9('0x22')](function(_0x4d9f20){if(_0x4d9f20&&_0x4d9f20[_0x9ca9('0x39')]){var _0x2c7083=_0x4d9f20[_0x9ca9('0x3d')]({'plain':!![]});_0x3695ee[_0x9ca9('0x37')]=_0x2c7083;_0x3695ee[_0x9ca9('0x3e')]=_0x2c7083['Applications'];_0x3695ee[_0x9ca9('0x3f')]=_0x2c7083[_0x9ca9('0x39')];_0x3695ee[_0x9ca9('0x3e')]=_[_0x9ca9('0x40')](_0x3695ee[_0x9ca9('0x3e')],[_0x9ca9('0x41')],[_0x9ca9('0x42')]);if(_0x3695ee[_0x9ca9('0x37')]['Applications']){delete _0x3695ee[_0x9ca9('0x37')][_0x9ca9('0x3c')];}if(_0x3695ee[_0x9ca9('0x37')][_0x9ca9('0x39')]&&_0x3695ee[_0x9ca9('0x37')]['List'][_0x9ca9('0x43')][_0x9ca9('0x44')]){return _0x3695ee[_0x9ca9('0x37')][_0x9ca9('0x39')][_0x9ca9('0x43')][0x0];}var _0x18a515=_['defaults'](_0x2cf1af['body'],{'firstName':_0x2cf1af[_0x9ca9('0x24')][_0x9ca9('0x2f')],'ListId':_0x2c7083[_0x9ca9('0x2d')]});_0x18a515[_0x2cf1af[_0x9ca9('0x24')]['mapKey']]=_0x2cf1af[_0x9ca9('0x24')]['from'];return db[_0x9ca9('0x26')]['create'](_0x18a515,{'fields':_0x5a60bb,'raw':!![]});}})['then'](function(_0x3d2212){_0x3695ee['contact']=_0x3d2212;if(_0x3d2212){var _0x3ac615={'ContactId':_0x3d2212['id'],'FaxAccountId':_0x2cf1af[_0x9ca9('0x37')]['id'],'fax':_0x3d2212['fax']};return db['FaxInteraction'][_0x9ca9('0x36')]({'where':{'ContactId':_0x3d2212['id'],'closed':![],'FaxAccountId':_0x2cf1af['account']['id']}})[_0x9ca9('0x22')](function(_0x5297e1){if(_0x5297e1){return[_0x5297e1,![]];}return db[_0x9ca9('0x45')][_0x9ca9('0x46')](_0x3ac615)[_0x9ca9('0x22')](function(_0x32bd41){return[_0x32bd41,!![]];});});}else{throw new Error(_0x9ca9('0x47'));}})[_0x9ca9('0x48')](function(_0x33dcb2,_0x35a994){var _0x420f10=_0x33dcb2['get']({'plain':!![]});if(_0x35a994){if(_0x3695ee[_0x9ca9('0x37')]['autoclose']){_0x3695ee[_0x9ca9('0x3e')][_0x9ca9('0x49')]({'id':0x0,'priority':_0x3695ee[_0x9ca9('0x3e')][_0x9ca9('0x44')]+0x1,'app':_0x9ca9('0x4a'),'appdata':_0x9ca9('0x4b'),'interval':_0x9ca9('0x4c')});}_0x420f10[_0x9ca9('0x4d')]=!![];}else{_0x420f10['created']=![];}_0x3695ee[_0x9ca9('0x4e')]=_0x420f10;return db[_0x9ca9('0x4f')][_0x9ca9('0x46')]({'body':_0x2cf1af[_0x9ca9('0x24')][_0x9ca9('0x24')],'FaxAccountId':_0x2cf1af[_0x9ca9('0x37')]['id'],'FaxInteractionId':_0x33dcb2['id'],'direction':'in','ContactId':_0x33dcb2['ContactId'],'AttachmentId':_0x2cf1af['body']['AttachmentId']});})[_0x9ca9('0x22')](function(_0x1791e5){_0x3695ee[_0x9ca9('0x15')]=_0x1791e5;if(!_0x3695ee[_0x9ca9('0x4e')][_0x9ca9('0x50')])return;return db['User'][_0x9ca9('0x36')]({'attributes':['id','name'],'where':{'id':_0x3695ee[_0x9ca9('0x4e')][_0x9ca9('0x50')]}});})['then'](function(_0x28b475){if(_0x28b475){_0x3695ee[_0x9ca9('0x3e')]['unshift']({'id':0x0,'priority':0x0,'app':_0x9ca9('0x51'),'appdata':_0x28b475[_0x9ca9('0x52')]+','+(_0x3695ee['account'][_0x9ca9('0x53')]||0xa),'interval':_0x9ca9('0x4c')});}if(!_0x3695ee['interaction'][_0x9ca9('0x54')])return;return db['FaxQueue']['find']({'attributes':['id',_0x9ca9('0x52')],'where':{'id':_0x3695ee[_0x9ca9('0x4e')]['queueId']}});})[_0x9ca9('0x22')](function(_0x195f7b){if(_0x195f7b){_0x3695ee[_0x9ca9('0x3e')]['unshift']({'id':0x0,'priority':0x1,'app':_0x9ca9('0x55'),'appdata':_0x195f7b[_0x9ca9('0x52')]+','+(_0x3695ee[_0x9ca9('0x37')][_0x9ca9('0x56')]||0x12c),'interval':_0x9ca9('0x4c')});}return respondWithRpcPromise(_0x9ca9('0x57'),_0x9ca9('0x58'),_0x3695ee);})[_0x9ca9('0x22')](function(_0x3399ee){_0x580f6(_0x3399ee);})[_0x9ca9('0x18')](function(_0x398e1a){_0x5b1bed(_0x17b5a8['error'](0x1f4,_0x398e1a[_0x9ca9('0x15')]));});});};