Built motion from commit 19a84241.|2.5.34
[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 _0x58c5=['name','Start','startRouting','lodash','util','moment','bluebird','ioredis','../../mysqldb','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','defaults','localhost','socket.io-emitter','register','request','info','FaxAccount,\x20%s,\x20%s','request\x20sent','debug','stringify','error','code','message','result','GetFaxAccount','FaxAccount','findAll','options','raw','where','attributes','include','model','map','then','catch','NotifyFaxAccount','body','fax','CmContact','describe','Sequelize','ValidationError','no\x20available\x20attributes','difference','createdAt','updatedAt','keys','ListId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','find','account','CmList','FaxApplication','Applications','List','get','applications','list','asc','Contacts','length','FaxInteraction','create','autoclose','push','close','unmanaged','created','interaction','ContactId','UserId','User','unshift'];(function(_0x382d20,_0x4a6ddb){var _0x11712e=function(_0x4d286b){while(--_0x4d286b){_0x382d20['push'](_0x382d20['shift']());}};_0x11712e(++_0x4a6ddb);}(_0x58c5,0x105));var _0x558c=function(_0x42e4fc,_0x7ca1ae){_0x42e4fc=_0x42e4fc-0x0;var _0x7efcc1=_0x58c5[_0x42e4fc];return _0x7efcc1;};'use strict';var _=require(_0x558c('0x0'));var util=require(_0x558c('0x1'));var moment=require(_0x558c('0x2'));var BPromise=require(_0x558c('0x3'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0x558c('0x4'));var db=require(_0x558c('0x5'))['db'];var utils=require('../../config/utils');var logger=require(_0x558c('0x6'))(_0x558c('0x7'));var config=require(_0x558c('0x8'));var jayson=require(_0x558c('0x9'));var client=jayson[_0x558c('0xa')][_0x558c('0xb')]({'port':0x232c});config[_0x558c('0xc')]=_[_0x558c('0xd')](config['redis'],{'host':_0x558c('0xe'),'port':0x18eb});var socket=require(_0x558c('0xf'))(new Redis(config[_0x558c('0xc')]));require('./faxAccount.socket')[_0x558c('0x10')](socket);function respondWithRpcPromise(_0x226972,_0x5a44ab,_0x4f6230){return new BPromise(function(_0x4e14c7,_0x53321e){return client[_0x558c('0x11')](_0x226972,_0x4f6230)['then'](function(_0x5265f9){logger[_0x558c('0x12')](_0x558c('0x13'),_0x5a44ab,_0x558c('0x14'));logger[_0x558c('0x15')]('FaxAccount,\x20%s,\x20%s,\x20%s',_0x5a44ab,_0x558c('0x14'),JSON[_0x558c('0x16')](_0x5265f9));if(_0x5265f9[_0x558c('0x17')]){if(_0x5265f9['error'][_0x558c('0x18')]===0x1f4){logger[_0x558c('0x17')](_0x558c('0x13'),_0x5a44ab,_0x5265f9[_0x558c('0x17')][_0x558c('0x19')]);return _0x53321e(_0x5265f9[_0x558c('0x17')][_0x558c('0x19')]);}logger['error'](_0x558c('0x13'),_0x5a44ab,_0x5265f9[_0x558c('0x17')][_0x558c('0x19')]);return _0x4e14c7(_0x5265f9[_0x558c('0x17')][_0x558c('0x19')]);}else{logger['info'](_0x558c('0x13'),_0x5a44ab,_0x558c('0x14'));_0x4e14c7(_0x5265f9[_0x558c('0x1a')][_0x558c('0x19')]);}})['catch'](function(_0x5d08e2){logger[_0x558c('0x17')](_0x558c('0x13'),_0x5a44ab,_0x5d08e2);_0x53321e(_0x5d08e2);});});}exports[_0x558c('0x1b')]=function(_0x276483){var _0x12b3f5=this;return new Promise(function(_0x98f2f0,_0x5e0b3b){return db[_0x558c('0x1c')][_0x558c('0x1d')]({'raw':_0x276483[_0x558c('0x1e')]?_0x276483['options'][_0x558c('0x1f')]===undefined?!![]:![]:!![],'where':_0x276483['options']?_0x276483[_0x558c('0x1e')][_0x558c('0x20')]||null:null,'attributes':_0x276483[_0x558c('0x1e')]?_0x276483[_0x558c('0x1e')][_0x558c('0x21')]||null:null,'limit':_0x276483[_0x558c('0x1e')]?_0x276483[_0x558c('0x1e')]['limit']||null:null,'include':_0x276483[_0x558c('0x1e')]?_0x276483['options']['include']?_['map'](_0x276483[_0x558c('0x1e')][_0x558c('0x22')],function(_0x2e36e1){return{'model':db[_0x2e36e1[_0x558c('0x23')]],'as':_0x2e36e1['as'],'attributes':_0x2e36e1[_0x558c('0x21')],'include':_0x2e36e1[_0x558c('0x22')]?_[_0x558c('0x24')](_0x2e36e1[_0x558c('0x22')],function(_0x24aa7b){return{'model':db[_0x24aa7b[_0x558c('0x23')]],'as':_0x24aa7b['as'],'attributes':_0x24aa7b[_0x558c('0x21')],'include':_0x24aa7b['include']?_[_0x558c('0x24')](_0x24aa7b['include'],function(_0x37dbae){return{'model':db[_0x37dbae[_0x558c('0x23')]],'as':_0x37dbae['as'],'attributes':_0x37dbae[_0x558c('0x21')]};}):[]};}):[]};}):[]:[]})[_0x558c('0x25')](function(_0x3fd59c){logger[_0x558c('0x12')](_0x558c('0x1b'),_0x276483);logger[_0x558c('0x15')]('GetFaxAccount',_0x276483,JSON[_0x558c('0x16')](_0x3fd59c));_0x98f2f0(_0x3fd59c);})[_0x558c('0x26')](function(_0x286c10){logger['error'](_0x558c('0x1b'),_0x286c10[_0x558c('0x19')],_0x276483);_0x5e0b3b(_0x12b3f5[_0x558c('0x17')](0x1f4,_0x286c10[_0x558c('0x19')]));});});};exports[_0x558c('0x27')]=function(_0x380969,_0x1ebabe,_0xfd62aa){var _0x35371=this;return new Promise(function(_0x5bc951,_0x16547c){var _0x5f51aa={'body':_0x380969[_0x558c('0x28')],'channel':_0x558c('0x29')};var _0x2d61b4=[];var _0x3cc534=[];var _0x48dd21={};return db[_0x558c('0x2a')][_0x558c('0x2b')]()[_0x558c('0x25')](function(_0x3c0d46){if(!_0x3c0d46){throw new db[(_0x558c('0x2c'))][(_0x558c('0x2d'))](_0x558c('0x2e'));}_0x2d61b4=_[_0x558c('0x2f')](_['keys'](_0x3c0d46),[_0x558c('0x30'),_0x558c('0x31')]);_0x3cc534=_[_0x558c('0x2f')](_[_0x558c('0x32')](_0x3c0d46),[_0x558c('0x30'),_0x558c('0x31'),'CompanyId',_0x558c('0x33')]);if(_0x380969[_0x558c('0x28')]['id']){delete _0x380969[_0x558c('0x28')]['id'];}if(_[_0x558c('0x34')](_0x380969['body'][_0x558c('0x35')])){throw new db[(_0x558c('0x2c'))][(_0x558c('0x2d'))](_0x558c('0x36'));}if(_[_0x558c('0x34')](_0x380969[_0x558c('0x28')][_0x558c('0x28')])||_0x380969[_0x558c('0x28')][_0x558c('0x28')]===''){throw new db[(_0x558c('0x2c'))]['ValidationError'](_0x558c('0x37'));}if(_[_0x558c('0x34')](_0x380969[_0x558c('0x28')][_0x558c('0x38')])){throw new db['Sequelize']['ValidationError'](_0x558c('0x39')+_0x3cc534);}if(!_[_0x558c('0x3a')](_0x3cc534,_0x380969['body']['mapKey'])){throw new db[(_0x558c('0x2c'))]['ValidationError']('mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20'+_0x3cc534);}_0x48dd21[_0x380969[_0x558c('0x28')]['mapKey']]=_0x380969[_0x558c('0x28')][_0x558c('0x35')];})['then'](function(){return db[_0x558c('0x1c')][_0x558c('0x3b')]({'where':{'id':_0x380969[_0x558c('0x3c')]['id']},'include':[{'model':db[_0x558c('0x3d')],'as':'List','include':[{'model':db[_0x558c('0x2a')],'as':'Contacts','where':_0x48dd21,'limit':0x1,'order':[[_0x558c('0x31'),'DESC']]}]},{'model':db[_0x558c('0x3e')],'as':_0x558c('0x3f')}]});})[_0x558c('0x25')](function(_0x1cfb9f){if(_0x1cfb9f&&_0x1cfb9f[_0x558c('0x40')]){var _0x1d9f33=_0x1cfb9f[_0x558c('0x41')]({'plain':!![]});_0x5f51aa['account']=_0x1d9f33;_0x5f51aa[_0x558c('0x42')]=_0x1d9f33[_0x558c('0x3f')];_0x5f51aa[_0x558c('0x43')]=_0x1d9f33['List'];_0x5f51aa[_0x558c('0x42')]=_['orderBy'](_0x5f51aa[_0x558c('0x42')],['priority'],[_0x558c('0x44')]);if(_0x5f51aa[_0x558c('0x3c')][_0x558c('0x3f')]){delete _0x5f51aa[_0x558c('0x3c')][_0x558c('0x3f')];}if(_0x5f51aa['account'][_0x558c('0x40')]&&_0x5f51aa['account'][_0x558c('0x40')][_0x558c('0x45')][_0x558c('0x46')]){return _0x5f51aa[_0x558c('0x3c')][_0x558c('0x40')][_0x558c('0x45')][0x0];}var _0x547737=_[_0x558c('0xd')](_0x380969['body'],{'firstName':_0x380969['body'][_0x558c('0x35')],'ListId':_0x1d9f33['ListId']});_0x547737[_0x380969[_0x558c('0x28')][_0x558c('0x38')]]=_0x380969[_0x558c('0x28')][_0x558c('0x35')];return db[_0x558c('0x2a')]['create'](_0x547737,{'fields':_0x2d61b4,'raw':!![]});}})['then'](function(_0x3be51b){_0x5f51aa['contact']=_0x3be51b;if(_0x3be51b){var _0xdda963={'ContactId':_0x3be51b['id'],'FaxAccountId':_0x380969[_0x558c('0x3c')]['id'],'fax':_0x3be51b[_0x558c('0x29')]};return db[_0x558c('0x47')][_0x558c('0x3b')]({'where':{'ContactId':_0x3be51b['id'],'closed':![],'FaxAccountId':_0x380969[_0x558c('0x3c')]['id']}})[_0x558c('0x25')](function(_0x50f2df){if(_0x50f2df){return[_0x50f2df,![]];}return db[_0x558c('0x47')][_0x558c('0x48')](_0xdda963)[_0x558c('0x25')](function(_0x1b072b){return[_0x1b072b,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})['spread'](function(_0x2d6a7b,_0x6e2948){var _0x3914cb=_0x2d6a7b['get']({'plain':!![]});if(_0x6e2948){if(_0x5f51aa['account'][_0x558c('0x49')]){_0x5f51aa['applications'][_0x558c('0x4a')]({'id':0x0,'priority':_0x5f51aa[_0x558c('0x42')][_0x558c('0x46')]+0x1,'app':_0x558c('0x4b'),'appdata':_0x558c('0x4c'),'interval':'*,*,*,*'});}_0x3914cb[_0x558c('0x4d')]=!![];}else{_0x3914cb[_0x558c('0x4d')]=![];}_0x5f51aa[_0x558c('0x4e')]=_0x3914cb;return db['FaxMessage']['create']({'body':_0x380969['body'][_0x558c('0x28')],'FaxAccountId':_0x380969[_0x558c('0x3c')]['id'],'FaxInteractionId':_0x2d6a7b['id'],'direction':'in','ContactId':_0x2d6a7b[_0x558c('0x4f')],'AttachmentId':_0x380969[_0x558c('0x28')]['AttachmentId']});})['then'](function(_0x59a1af){_0x5f51aa[_0x558c('0x19')]=_0x59a1af;if(_0x5f51aa['interaction'][_0x558c('0x50')]){return db[_0x558c('0x51')][_0x558c('0x3b')]({'attributes':['id','name'],'where':{'id':_0x5f51aa[_0x558c('0x4e')][_0x558c('0x50')]}})[_0x558c('0x25')](function(_0x1fa4ea){if(_0x1fa4ea){_0x5f51aa[_0x558c('0x42')][_0x558c('0x52')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x1fa4ea[_0x558c('0x53')]+','+(_0x5f51aa[_0x558c('0x3c')]['waitForTheAssignedAgent']||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise(_0x558c('0x54'),'startRouting',_0x5f51aa);});}return respondWithRpcPromise(_0x558c('0x54'),_0x558c('0x55'),_0x5f51aa);})[_0x558c('0x25')](function(_0x4a3cbc){_0x5bc951(_0x4a3cbc);})[_0x558c('0x26')](function(_0x31b896){_0x16547c(_0x35371[_0x558c('0x17')](0x1f4,_0x31b896[_0x558c('0x19')]));});});};