bba3acb312705b28dba982db985b59f64cc2ff07
[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 _0x6cb3=['catch','GetFaxAccount','FaxAccount','findAll','options','where','include','model','attributes','map','stringify','NotifyFaxAccount','body','fax','CmContact','describe','Sequelize','no\x20available\x20attributes','keys','createdAt','updatedAt','difference','ListId','isNil','from','ValidationError','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','includes','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','CmList','List','Contacts','DESC','FaxApplication','get','applications','orderBy','priority','asc','Applications','length','contact','FaxInteraction','find','create','Contact\x20not\x20found','autoclose','push','unmanaged','*,*,*,*','created','interaction','FaxMessage','User','unshift','agent','name','waitForTheAssignedAgent','startRouting','Start','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/logger','rpc','jayson/promise','http','redis','defaults','localhost','socket.io-emitter','request','then','info','FaxAccount,\x20%s,\x20%s,\x20%s','error','code','FaxAccount,\x20%s,\x20%s','message','request\x20sent','result'];(function(_0x4d111e,_0x183485){var _0x7e3a72=function(_0x4e8400){while(--_0x4e8400){_0x4d111e['push'](_0x4d111e['shift']());}};_0x7e3a72(++_0x183485);}(_0x6cb3,0x1a4));var _0x36cb=function(_0x3de81e,_0xb5c06){_0x3de81e=_0x3de81e-0x0;var _0x262f49=_0x6cb3[_0x3de81e];return _0x262f49;};'use strict';var _=require(_0x36cb('0x0'));var util=require(_0x36cb('0x1'));var moment=require(_0x36cb('0x2'));var BPromise=require(_0x36cb('0x3'));var rs=require(_0x36cb('0x4'));var fs=require('fs');var Redis=require(_0x36cb('0x5'));var db=require(_0x36cb('0x6'))['db'];var utils=require('../../config/utils');var logger=require(_0x36cb('0x7'))(_0x36cb('0x8'));var config=require('../../config/environment');var jayson=require(_0x36cb('0x9'));var client=jayson['client'][_0x36cb('0xa')]({'port':0x232c});config[_0x36cb('0xb')]=_[_0x36cb('0xc')](config['redis'],{'host':_0x36cb('0xd'),'port':0x18eb});var socket=require(_0x36cb('0xe'))(new Redis(config['redis']));require('./faxAccount.socket')['register'](socket);function respondWithRpcPromise(_0x23a8dc,_0x364834,_0x184e48){return new BPromise(function(_0x2ebfdc,_0x23f5cb){return client[_0x36cb('0xf')](_0x23a8dc,_0x184e48)[_0x36cb('0x10')](function(_0x4ed531){logger[_0x36cb('0x11')]('FaxAccount,\x20%s,\x20%s',_0x364834,'request\x20sent');logger['debug'](_0x36cb('0x12'),_0x364834,'request\x20sent',JSON['stringify'](_0x4ed531));if(_0x4ed531[_0x36cb('0x13')]){if(_0x4ed531[_0x36cb('0x13')][_0x36cb('0x14')]===0x1f4){logger[_0x36cb('0x13')](_0x36cb('0x15'),_0x364834,_0x4ed531[_0x36cb('0x13')][_0x36cb('0x16')]);return _0x23f5cb(_0x4ed531[_0x36cb('0x13')][_0x36cb('0x16')]);}logger[_0x36cb('0x13')]('FaxAccount,\x20%s,\x20%s',_0x364834,_0x4ed531[_0x36cb('0x13')][_0x36cb('0x16')]);return _0x2ebfdc(_0x4ed531[_0x36cb('0x13')][_0x36cb('0x16')]);}else{logger['info'](_0x36cb('0x15'),_0x364834,_0x36cb('0x17'));_0x2ebfdc(_0x4ed531[_0x36cb('0x18')][_0x36cb('0x16')]);}})[_0x36cb('0x19')](function(_0x426a36){logger[_0x36cb('0x13')](_0x36cb('0x15'),_0x364834,_0x426a36);_0x23f5cb(_0x426a36);});});}exports[_0x36cb('0x1a')]=function(_0x21b829){var _0x238817=this;return new Promise(function(_0x431e4d,_0x52966e){return db[_0x36cb('0x1b')][_0x36cb('0x1c')]({'raw':_0x21b829[_0x36cb('0x1d')]?_0x21b829[_0x36cb('0x1d')]['raw']===undefined?!![]:![]:!![],'where':_0x21b829[_0x36cb('0x1d')]?_0x21b829['options'][_0x36cb('0x1e')]||null:null,'attributes':_0x21b829['options']?_0x21b829[_0x36cb('0x1d')]['attributes']||null:null,'limit':_0x21b829['options']?_0x21b829['options']['limit']||null:null,'include':_0x21b829[_0x36cb('0x1d')]?_0x21b829[_0x36cb('0x1d')]['include']?_['map'](_0x21b829[_0x36cb('0x1d')][_0x36cb('0x1f')],function(_0x112a7e){return{'model':db[_0x112a7e[_0x36cb('0x20')]],'as':_0x112a7e['as'],'attributes':_0x112a7e[_0x36cb('0x21')],'include':_0x112a7e[_0x36cb('0x1f')]?_[_0x36cb('0x22')](_0x112a7e[_0x36cb('0x1f')],function(_0x14f23e){return{'model':db[_0x14f23e[_0x36cb('0x20')]],'as':_0x14f23e['as'],'attributes':_0x14f23e[_0x36cb('0x21')],'include':_0x14f23e[_0x36cb('0x1f')]?_[_0x36cb('0x22')](_0x14f23e[_0x36cb('0x1f')],function(_0x7b5cee){return{'model':db[_0x7b5cee[_0x36cb('0x20')]],'as':_0x7b5cee['as'],'attributes':_0x7b5cee[_0x36cb('0x21')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x377216){logger[_0x36cb('0x11')]('GetFaxAccount',_0x21b829);logger['debug'](_0x36cb('0x1a'),_0x21b829,JSON[_0x36cb('0x23')](_0x377216));_0x431e4d(_0x377216);})[_0x36cb('0x19')](function(_0x9abfee){logger['error'](_0x36cb('0x1a'),_0x9abfee[_0x36cb('0x16')],_0x21b829);_0x52966e(_0x238817['error'](0x1f4,_0x9abfee[_0x36cb('0x16')]));});});};exports[_0x36cb('0x24')]=function(_0x159e46,_0x46b63e,_0x22d141){var _0x3cfd5e=this;return new Promise(function(_0x12ad93,_0x4bd2f3){var _0x13761d={'body':_0x159e46[_0x36cb('0x25')],'channel':_0x36cb('0x26')};var _0x3e7353=[];var _0x5ef083=[];var _0x5ef7da={};return db[_0x36cb('0x27')][_0x36cb('0x28')]()['then'](function(_0x567bc9){if(!_0x567bc9){throw new db[(_0x36cb('0x29'))]['ValidationError'](_0x36cb('0x2a'));}_0x3e7353=_['difference'](_[_0x36cb('0x2b')](_0x567bc9),[_0x36cb('0x2c'),_0x36cb('0x2d')]);_0x5ef083=_[_0x36cb('0x2e')](_['keys'](_0x567bc9),[_0x36cb('0x2c'),_0x36cb('0x2d'),'CompanyId',_0x36cb('0x2f')]);if(_0x159e46[_0x36cb('0x25')]['id']){delete _0x159e46['body']['id'];}if(_[_0x36cb('0x30')](_0x159e46[_0x36cb('0x25')][_0x36cb('0x31')])){throw new db[(_0x36cb('0x29'))][(_0x36cb('0x32'))](_0x36cb('0x33'));}if(_['isNil'](_0x159e46['body']['body'])||_0x159e46[_0x36cb('0x25')]['body']===''){throw new db[(_0x36cb('0x29'))][(_0x36cb('0x32'))](_0x36cb('0x34'));}if(_[_0x36cb('0x30')](_0x159e46[_0x36cb('0x25')][_0x36cb('0x35')])){throw new db[(_0x36cb('0x29'))][(_0x36cb('0x32'))](_0x36cb('0x36')+_0x5ef083);}if(!_[_0x36cb('0x37')](_0x5ef083,_0x159e46[_0x36cb('0x25')][_0x36cb('0x35')])){throw new db[(_0x36cb('0x29'))][(_0x36cb('0x32'))](_0x36cb('0x38')+_0x5ef083);}_0x5ef7da[_0x159e46[_0x36cb('0x25')][_0x36cb('0x35')]]=_0x159e46[_0x36cb('0x25')]['from'];})[_0x36cb('0x10')](function(){return db[_0x36cb('0x1b')]['find']({'where':{'id':_0x159e46[_0x36cb('0x39')]['id']},'include':[{'model':db[_0x36cb('0x3a')],'as':_0x36cb('0x3b'),'include':[{'model':db['CmContact'],'as':_0x36cb('0x3c'),'where':_0x5ef7da,'limit':0x1,'order':[[_0x36cb('0x2d'),_0x36cb('0x3d')]]}]},{'model':db[_0x36cb('0x3e')],'as':'Applications'}]});})[_0x36cb('0x10')](function(_0x26a96f){if(_0x26a96f&&_0x26a96f[_0x36cb('0x3b')]){var _0x3a6d6c=_0x26a96f[_0x36cb('0x3f')]({'plain':!![]});_0x13761d[_0x36cb('0x39')]=_0x3a6d6c;_0x13761d[_0x36cb('0x40')]=_0x3a6d6c['Applications'];_0x13761d['list']=_0x3a6d6c[_0x36cb('0x3b')];_0x13761d[_0x36cb('0x40')]=_[_0x36cb('0x41')](_0x13761d['applications'],[_0x36cb('0x42')],[_0x36cb('0x43')]);if(_0x13761d[_0x36cb('0x39')][_0x36cb('0x44')]){delete _0x13761d[_0x36cb('0x39')]['Applications'];}if(_0x13761d['account']['List']&&_0x13761d[_0x36cb('0x39')]['List'][_0x36cb('0x3c')][_0x36cb('0x45')]){return _0x13761d[_0x36cb('0x39')][_0x36cb('0x3b')][_0x36cb('0x3c')][0x0];}var _0x536e12=_[_0x36cb('0xc')](_0x159e46[_0x36cb('0x25')],{'firstName':_0x159e46[_0x36cb('0x25')][_0x36cb('0x31')],'ListId':_0x3a6d6c[_0x36cb('0x2f')]});_0x536e12[_0x159e46[_0x36cb('0x25')][_0x36cb('0x35')]]=_0x159e46[_0x36cb('0x25')]['from'];return db[_0x36cb('0x27')]['create'](_0x536e12,{'fields':_0x3e7353,'raw':!![]});}})[_0x36cb('0x10')](function(_0x55c62c){_0x13761d[_0x36cb('0x46')]=_0x55c62c;if(_0x55c62c){var _0x1a7486={'ContactId':_0x55c62c['id'],'FaxAccountId':_0x159e46[_0x36cb('0x39')]['id'],'fax':_0x55c62c['fax']};return db[_0x36cb('0x47')][_0x36cb('0x48')]({'where':{'ContactId':_0x55c62c['id'],'closed':![],'FaxAccountId':_0x159e46['account']['id']}})[_0x36cb('0x10')](function(_0x2debe8){if(_0x2debe8){return[_0x2debe8,![]];}return db[_0x36cb('0x47')][_0x36cb('0x49')](_0x1a7486)[_0x36cb('0x10')](function(_0x1847fa){return[_0x1847fa,!![]];});});}else{throw new Error(_0x36cb('0x4a'));}})['spread'](function(_0x405440,_0x429a8e){var _0x295366=_0x405440[_0x36cb('0x3f')]({'plain':!![]});if(_0x429a8e){if(_0x13761d[_0x36cb('0x39')][_0x36cb('0x4b')]){_0x13761d['applications'][_0x36cb('0x4c')]({'id':0x0,'priority':_0x13761d[_0x36cb('0x40')]['length']+0x1,'app':'close','appdata':_0x36cb('0x4d'),'interval':_0x36cb('0x4e')});}_0x295366[_0x36cb('0x4f')]=!![];}else{_0x295366[_0x36cb('0x4f')]=![];}_0x13761d[_0x36cb('0x50')]=_0x295366;return db[_0x36cb('0x51')][_0x36cb('0x49')]({'body':_0x159e46['body'][_0x36cb('0x25')],'FaxAccountId':_0x159e46[_0x36cb('0x39')]['id'],'FaxInteractionId':_0x405440['id'],'direction':'in','ContactId':_0x405440['ContactId'],'AttachmentId':_0x159e46['body']['AttachmentId']});})['then'](function(_0xa6e1b0){_0x13761d[_0x36cb('0x16')]=_0xa6e1b0;if(_0x13761d[_0x36cb('0x50')]['UserId']){return db[_0x36cb('0x52')]['find']({'attributes':['id','name'],'where':{'id':_0x13761d['interaction']['UserId']}})[_0x36cb('0x10')](function(_0xb69303){if(_0xb69303){_0x13761d[_0x36cb('0x40')][_0x36cb('0x53')]({'id':0x0,'priority':0x0,'app':_0x36cb('0x54'),'appdata':_0xb69303[_0x36cb('0x55')]+','+(_0x13761d[_0x36cb('0x39')][_0x36cb('0x56')]||0xa),'interval':'*,*,*,*'});}return respondWithRpcPromise('Start',_0x36cb('0x57'),_0x13761d);});}return respondWithRpcPromise(_0x36cb('0x58'),'startRouting',_0x13761d);})['then'](function(_0x124d4b){_0x12ad93(_0x124d4b);})[_0x36cb('0x19')](function(_0x405336){_0x4bd2f3(_0x3cfd5e[_0x36cb('0x13')](0x1f4,_0x405336[_0x36cb('0x16')]));});});};