36e22faf1f8a6fe3ef843b8ab757293d63af07e8
[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 _0x6fb1=['from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','find','account','Contacts','DESC','FaxApplication','Applications','get','List','orderBy','applications','priority','defaults','create','contact','FaxInteraction','Contact\x20not\x20found','autoclose','length','close','*,*,*,*','created','FaxMessage','ContactId','AttachmentId','UserId','User','name','interaction','unshift','waitForTheAssignedAgent','Start','startRouting','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','localhost','./faxAccount.socket','register','request','then','info','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','FaxAccount,\x20%s,\x20%s,\x20%s','stringify','error','code','message','result','catch','FaxAccount','findAll','options','raw','where','attributes','include','model','map','GetFaxAccount','body','fax','CmContact','describe','ValidationError','no\x20available\x20attributes','difference','keys','createdAt','updatedAt','ListId','isNil','from','Sequelize'];(function(_0x551e94,_0x3df578){var _0x51d87a=function(_0x1a4bc5){while(--_0x1a4bc5){_0x551e94['push'](_0x551e94['shift']());}};_0x51d87a(++_0x3df578);}(_0x6fb1,0x136));var _0x16fb=function(_0xc86cfc,_0x3d5e51){_0xc86cfc=_0xc86cfc-0x0;var _0x41d8c7=_0x6fb1[_0xc86cfc];return _0x41d8c7;};'use strict';var _=require(_0x16fb('0x0'));var util=require(_0x16fb('0x1'));var moment=require(_0x16fb('0x2'));var BPromise=require(_0x16fb('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x16fb('0x4'));var db=require(_0x16fb('0x5'))['db'];var utils=require(_0x16fb('0x6'));var logger=require(_0x16fb('0x7'))(_0x16fb('0x8'));var config=require(_0x16fb('0x9'));var jayson=require(_0x16fb('0xa'));var client=jayson[_0x16fb('0xb')][_0x16fb('0xc')]({'port':0x232c});config[_0x16fb('0xd')]=_['defaults'](config[_0x16fb('0xd')],{'host':_0x16fb('0xe'),'port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config['redis']));require(_0x16fb('0xf'))[_0x16fb('0x10')](socket);function respondWithRpcPromise(_0x2af934,_0x14855c,_0x3314eb){return new BPromise(function(_0x1ab391,_0x49fd0b){return client[_0x16fb('0x11')](_0x2af934,_0x3314eb)[_0x16fb('0x12')](function(_0x2be9e3){logger[_0x16fb('0x13')](_0x16fb('0x14'),_0x14855c,_0x16fb('0x15'));logger[_0x16fb('0x16')](_0x16fb('0x17'),_0x14855c,_0x16fb('0x15'),JSON[_0x16fb('0x18')](_0x2be9e3));if(_0x2be9e3[_0x16fb('0x19')]){if(_0x2be9e3[_0x16fb('0x19')][_0x16fb('0x1a')]===0x1f4){logger[_0x16fb('0x19')](_0x16fb('0x14'),_0x14855c,_0x2be9e3['error']['message']);return _0x49fd0b(_0x2be9e3[_0x16fb('0x19')][_0x16fb('0x1b')]);}logger[_0x16fb('0x19')]('FaxAccount,\x20%s,\x20%s',_0x14855c,_0x2be9e3[_0x16fb('0x19')][_0x16fb('0x1b')]);return _0x1ab391(_0x2be9e3['error'][_0x16fb('0x1b')]);}else{logger['info'](_0x16fb('0x14'),_0x14855c,_0x16fb('0x15'));_0x1ab391(_0x2be9e3[_0x16fb('0x1c')]['message']);}})[_0x16fb('0x1d')](function(_0x27c554){logger['error'](_0x16fb('0x14'),_0x14855c,_0x27c554);_0x49fd0b(_0x27c554);});});}exports['GetFaxAccount']=function(_0x187c4f){var _0x27da07=this;return new Promise(function(_0x35a3ce,_0x65ebe5){return db[_0x16fb('0x1e')][_0x16fb('0x1f')]({'raw':_0x187c4f[_0x16fb('0x20')]?_0x187c4f[_0x16fb('0x20')][_0x16fb('0x21')]===undefined?!![]:![]:!![],'where':_0x187c4f[_0x16fb('0x20')]?_0x187c4f[_0x16fb('0x20')][_0x16fb('0x22')]||null:null,'attributes':_0x187c4f['options']?_0x187c4f[_0x16fb('0x20')][_0x16fb('0x23')]||null:null,'limit':_0x187c4f[_0x16fb('0x20')]?_0x187c4f[_0x16fb('0x20')]['limit']||null:null,'include':_0x187c4f[_0x16fb('0x20')]?_0x187c4f[_0x16fb('0x20')]['include']?_['map'](_0x187c4f[_0x16fb('0x20')][_0x16fb('0x24')],function(_0x2e0a8a){return{'model':db[_0x2e0a8a[_0x16fb('0x25')]],'as':_0x2e0a8a['as'],'attributes':_0x2e0a8a[_0x16fb('0x23')],'include':_0x2e0a8a['include']?_[_0x16fb('0x26')](_0x2e0a8a[_0x16fb('0x24')],function(_0x19da9a){return{'model':db[_0x19da9a['model']],'as':_0x19da9a['as'],'attributes':_0x19da9a[_0x16fb('0x23')],'include':_0x19da9a[_0x16fb('0x24')]?_['map'](_0x19da9a[_0x16fb('0x24')],function(_0x58cf30){return{'model':db[_0x58cf30[_0x16fb('0x25')]],'as':_0x58cf30['as'],'attributes':_0x58cf30[_0x16fb('0x23')]};}):[]};}):[]};}):[]:[]})[_0x16fb('0x12')](function(_0x5dd275){logger['info'](_0x16fb('0x27'),_0x187c4f);logger[_0x16fb('0x16')](_0x16fb('0x27'),_0x187c4f,JSON[_0x16fb('0x18')](_0x5dd275));_0x35a3ce(_0x5dd275);})[_0x16fb('0x1d')](function(_0x2697e2){logger['error'](_0x16fb('0x27'),_0x2697e2[_0x16fb('0x1b')],_0x187c4f);_0x65ebe5(_0x27da07[_0x16fb('0x19')](0x1f4,_0x2697e2['message']));});});};exports['NotifyFaxAccount']=function(_0x19d4b7,_0x4a65f6,_0x4dd0fd){var _0x22c430=this;return new Promise(function(_0x48a3a7,_0x30c0d0){var _0x307ca4={'body':_0x19d4b7[_0x16fb('0x28')],'channel':_0x16fb('0x29')};var _0x5807fb=[];var _0x2efb42=[];var _0x55005c={};return db[_0x16fb('0x2a')][_0x16fb('0x2b')]()['then'](function(_0xc69068){if(!_0xc69068){throw new db['Sequelize'][(_0x16fb('0x2c'))](_0x16fb('0x2d'));}_0x5807fb=_[_0x16fb('0x2e')](_[_0x16fb('0x2f')](_0xc69068),[_0x16fb('0x30'),'updatedAt']);_0x2efb42=_[_0x16fb('0x2e')](_[_0x16fb('0x2f')](_0xc69068),['createdAt',_0x16fb('0x31'),'CompanyId',_0x16fb('0x32')]);if(_0x19d4b7[_0x16fb('0x28')]['id']){delete _0x19d4b7[_0x16fb('0x28')]['id'];}if(_[_0x16fb('0x33')](_0x19d4b7['body'][_0x16fb('0x34')])){throw new db[(_0x16fb('0x35'))][(_0x16fb('0x2c'))](_0x16fb('0x36'));}if(_[_0x16fb('0x33')](_0x19d4b7[_0x16fb('0x28')][_0x16fb('0x28')])||_0x19d4b7[_0x16fb('0x28')][_0x16fb('0x28')]===''){throw new db[(_0x16fb('0x35'))][(_0x16fb('0x2c'))](_0x16fb('0x37'));}if(_['isNil'](_0x19d4b7[_0x16fb('0x28')][_0x16fb('0x38')])){throw new db['Sequelize'][(_0x16fb('0x2c'))](_0x16fb('0x39')+_0x2efb42);}if(!_[_0x16fb('0x3a')](_0x2efb42,_0x19d4b7['body']['mapKey'])){throw new db[(_0x16fb('0x35'))]['ValidationError']('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x2efb42);}_0x55005c[_0x19d4b7[_0x16fb('0x28')]['mapKey']]=_0x19d4b7[_0x16fb('0x28')][_0x16fb('0x34')];})[_0x16fb('0x12')](function(){return db[_0x16fb('0x1e')][_0x16fb('0x3b')]({'where':{'id':_0x19d4b7[_0x16fb('0x3c')]['id']},'include':[{'model':db['CmList'],'as':'List','include':[{'model':db[_0x16fb('0x2a')],'as':_0x16fb('0x3d'),'where':_0x55005c,'limit':0x1,'order':[[_0x16fb('0x31'),_0x16fb('0x3e')]]}]},{'model':db[_0x16fb('0x3f')],'as':_0x16fb('0x40')}]});})[_0x16fb('0x12')](function(_0x3bc8b5){if(_0x3bc8b5&&_0x3bc8b5['List']){var _0x51de04=_0x3bc8b5[_0x16fb('0x41')]({'plain':!![]});_0x307ca4[_0x16fb('0x3c')]=_0x51de04;_0x307ca4['applications']=_0x51de04[_0x16fb('0x40')];_0x307ca4['list']=_0x51de04[_0x16fb('0x42')];_0x307ca4['applications']=_[_0x16fb('0x43')](_0x307ca4[_0x16fb('0x44')],[_0x16fb('0x45')],['asc']);if(_0x307ca4[_0x16fb('0x3c')][_0x16fb('0x40')]){delete _0x307ca4['account'][_0x16fb('0x40')];}if(_0x307ca4['account'][_0x16fb('0x42')]&&_0x307ca4['account'][_0x16fb('0x42')][_0x16fb('0x3d')]['length']){return _0x307ca4['account']['List'][_0x16fb('0x3d')][0x0];}var _0x2dc90e=_[_0x16fb('0x46')](_0x19d4b7['body'],{'firstName':_0x19d4b7[_0x16fb('0x28')][_0x16fb('0x34')],'ListId':_0x51de04[_0x16fb('0x32')]});_0x2dc90e[_0x19d4b7[_0x16fb('0x28')][_0x16fb('0x38')]]=_0x19d4b7[_0x16fb('0x28')][_0x16fb('0x34')];return db[_0x16fb('0x2a')][_0x16fb('0x47')](_0x2dc90e,{'fields':_0x5807fb,'raw':!![]});}})[_0x16fb('0x12')](function(_0x27839f){_0x307ca4[_0x16fb('0x48')]=_0x27839f;if(_0x27839f){var _0x41979d={'ContactId':_0x27839f['id'],'FaxAccountId':_0x19d4b7[_0x16fb('0x3c')]['id'],'fax':_0x27839f[_0x16fb('0x29')]};return db[_0x16fb('0x49')]['find']({'where':{'ContactId':_0x27839f['id'],'closed':![],'FaxAccountId':_0x19d4b7[_0x16fb('0x3c')]['id']}})[_0x16fb('0x12')](function(_0x1cba8e){if(_0x1cba8e){return[_0x1cba8e,![]];}return db['FaxInteraction'][_0x16fb('0x47')](_0x41979d)[_0x16fb('0x12')](function(_0x3676bb){return[_0x3676bb,!![]];});});}else{throw new Error(_0x16fb('0x4a'));}})['spread'](function(_0x36629d,_0x277d25){var _0x2b17be=_0x36629d[_0x16fb('0x41')]({'plain':!![]});if(_0x277d25){if(_0x307ca4[_0x16fb('0x3c')][_0x16fb('0x4b')]){_0x307ca4[_0x16fb('0x44')]['push']({'id':0x0,'priority':_0x307ca4[_0x16fb('0x44')][_0x16fb('0x4c')]+0x1,'app':_0x16fb('0x4d'),'appdata':'unmanaged','interval':_0x16fb('0x4e')});}_0x2b17be[_0x16fb('0x4f')]=!![];}else{_0x2b17be[_0x16fb('0x4f')]=![];}_0x307ca4['interaction']=_0x2b17be;return db[_0x16fb('0x50')]['create']({'body':_0x19d4b7['body']['body'],'FaxAccountId':_0x19d4b7[_0x16fb('0x3c')]['id'],'FaxInteractionId':_0x36629d['id'],'direction':'in','ContactId':_0x36629d[_0x16fb('0x51')],'AttachmentId':_0x19d4b7[_0x16fb('0x28')][_0x16fb('0x52')]});})[_0x16fb('0x12')](function(_0x5228d2){_0x307ca4[_0x16fb('0x1b')]=_0x5228d2;if(_0x307ca4['interaction'][_0x16fb('0x53')]){return db[_0x16fb('0x54')]['find']({'attributes':['id',_0x16fb('0x55')],'where':{'id':_0x307ca4[_0x16fb('0x56')][_0x16fb('0x53')]}})['then'](function(_0x1a9915){if(_0x1a9915){_0x307ca4[_0x16fb('0x44')][_0x16fb('0x57')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x1a9915[_0x16fb('0x55')]+','+(_0x307ca4[_0x16fb('0x3c')][_0x16fb('0x58')]||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise(_0x16fb('0x59'),_0x16fb('0x5a'),_0x307ca4);});}return respondWithRpcPromise('Start',_0x16fb('0x5a'),_0x307ca4);})[_0x16fb('0x12')](function(_0x1e9d91){_0x48a3a7(_0x1e9d91);})[_0x16fb('0x1d')](function(_0x454993){_0x30c0d0(_0x22c430['error'](0x1f4,_0x454993[_0x16fb('0x1b')]));});});};