f72609cc10517e7c6e251743e355122d79dbaa6d
[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 _0xc196=['../../config/utils','../../config/environment','jayson/promise','client','http','redis','defaults','socket.io-emitter','./faxAccount.socket','request','info','FaxAccount,\x20%s,\x20%s','FaxAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','FaxAccount','options','raw','attributes','include','map','model','then','debug','GetFaxAccount','catch','NotifyFaxAccount','body','fax','describe','Sequelize','ValidationError','difference','keys','createdAt','updatedAt','CompanyId','ListId','isNil','from','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','find','account','CmList','Contacts','DESC','FaxApplication','Applications','get','applications','list','List','orderBy','priority','asc','length','create','contact','FaxInteraction','Contact\x20not\x20found','spread','autoclose','push','close','unmanaged','created','ContactId','AttachmentId','UserId','name','interaction','unshift','waitForTheAssignedAgent','*,*,*,*','Start','startRouting','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb'];(function(_0x451a2a,_0x1266c5){var _0x3a9b24=function(_0x41e7e8){while(--_0x41e7e8){_0x451a2a['push'](_0x451a2a['shift']());}};_0x3a9b24(++_0x1266c5);}(_0xc196,0x15d));var _0x6c19=function(_0x5589cb,_0x2a71e9){_0x5589cb=_0x5589cb-0x0;var _0x2399b0=_0xc196[_0x5589cb];return _0x2399b0;};'use strict';var _=require(_0x6c19('0x0'));var util=require(_0x6c19('0x1'));var moment=require(_0x6c19('0x2'));var BPromise=require(_0x6c19('0x3'));var rs=require(_0x6c19('0x4'));var fs=require('fs');var Redis=require(_0x6c19('0x5'));var db=require(_0x6c19('0x6'))['db'];var utils=require(_0x6c19('0x7'));var logger=require('../../config/logger')('rpc');var config=require(_0x6c19('0x8'));var jayson=require(_0x6c19('0x9'));var client=jayson[_0x6c19('0xa')][_0x6c19('0xb')]({'port':0x232c});config[_0x6c19('0xc')]=_[_0x6c19('0xd')](config['redis'],{'host':'localhost','port':0x18eb});var socket=require(_0x6c19('0xe'))(new Redis(config['redis']));require(_0x6c19('0xf'))['register'](socket);function respondWithRpcPromise(_0x534896,_0x17c3ba,_0x1c60c4){return new BPromise(function(_0x47ec2a,_0x194267){return client[_0x6c19('0x10')](_0x534896,_0x1c60c4)['then'](function(_0x207ea6){logger[_0x6c19('0x11')](_0x6c19('0x12'),_0x17c3ba,'request\x20sent');logger['debug'](_0x6c19('0x13'),_0x17c3ba,_0x6c19('0x14'),JSON[_0x6c19('0x15')](_0x207ea6));if(_0x207ea6[_0x6c19('0x16')]){if(_0x207ea6[_0x6c19('0x16')][_0x6c19('0x17')]===0x1f4){logger[_0x6c19('0x16')]('FaxAccount,\x20%s,\x20%s',_0x17c3ba,_0x207ea6[_0x6c19('0x16')][_0x6c19('0x18')]);return _0x194267(_0x207ea6[_0x6c19('0x16')][_0x6c19('0x18')]);}logger[_0x6c19('0x16')](_0x6c19('0x12'),_0x17c3ba,_0x207ea6[_0x6c19('0x16')][_0x6c19('0x18')]);return _0x47ec2a(_0x207ea6[_0x6c19('0x16')]['message']);}else{logger['info'](_0x6c19('0x12'),_0x17c3ba,_0x6c19('0x14'));_0x47ec2a(_0x207ea6['result'][_0x6c19('0x18')]);}})['catch'](function(_0x40beb9){logger[_0x6c19('0x16')](_0x6c19('0x12'),_0x17c3ba,_0x40beb9);_0x194267(_0x40beb9);});});}exports['GetFaxAccount']=function(_0x1a2650){var _0x5e63b5=this;return new Promise(function(_0x19e647,_0x82f413){return db[_0x6c19('0x19')]['findAll']({'raw':_0x1a2650[_0x6c19('0x1a')]?_0x1a2650['options'][_0x6c19('0x1b')]===undefined?!![]:![]:!![],'where':_0x1a2650[_0x6c19('0x1a')]?_0x1a2650[_0x6c19('0x1a')]['where']||null:null,'attributes':_0x1a2650[_0x6c19('0x1a')]?_0x1a2650[_0x6c19('0x1a')][_0x6c19('0x1c')]||null:null,'limit':_0x1a2650['options']?_0x1a2650['options']['limit']||null:null,'include':_0x1a2650['options']?_0x1a2650[_0x6c19('0x1a')][_0x6c19('0x1d')]?_[_0x6c19('0x1e')](_0x1a2650[_0x6c19('0x1a')][_0x6c19('0x1d')],function(_0x38cf7e){return{'model':db[_0x38cf7e['model']],'as':_0x38cf7e['as'],'attributes':_0x38cf7e[_0x6c19('0x1c')],'include':_0x38cf7e[_0x6c19('0x1d')]?_[_0x6c19('0x1e')](_0x38cf7e[_0x6c19('0x1d')],function(_0x591eb3){return{'model':db[_0x591eb3['model']],'as':_0x591eb3['as'],'attributes':_0x591eb3[_0x6c19('0x1c')],'include':_0x591eb3[_0x6c19('0x1d')]?_[_0x6c19('0x1e')](_0x591eb3['include'],function(_0x2a8d22){return{'model':db[_0x2a8d22[_0x6c19('0x1f')]],'as':_0x2a8d22['as'],'attributes':_0x2a8d22[_0x6c19('0x1c')]};}):[]};}):[]};}):[]:[]})[_0x6c19('0x20')](function(_0x17c42e){logger['info']('GetFaxAccount',_0x1a2650);logger[_0x6c19('0x21')](_0x6c19('0x22'),_0x1a2650,JSON['stringify'](_0x17c42e));_0x19e647(_0x17c42e);})[_0x6c19('0x23')](function(_0x45e02d){logger[_0x6c19('0x16')](_0x6c19('0x22'),_0x45e02d[_0x6c19('0x18')],_0x1a2650);_0x82f413(_0x5e63b5[_0x6c19('0x16')](0x1f4,_0x45e02d[_0x6c19('0x18')]));});});};exports[_0x6c19('0x24')]=function(_0x3d2a2d,_0x5f065f,_0x34d14c){var _0xe66d2=this;return new Promise(function(_0x2f42f8,_0x2be580){var _0x2d20f5={'body':_0x3d2a2d[_0x6c19('0x25')],'channel':_0x6c19('0x26')};var _0x584a5d=[];var _0x507f8e=[];var _0x584608={};return db['CmContact'][_0x6c19('0x27')]()[_0x6c19('0x20')](function(_0x36ce4a){if(!_0x36ce4a){throw new db[(_0x6c19('0x28'))][(_0x6c19('0x29'))]('no\x20available\x20attributes');}_0x584a5d=_[_0x6c19('0x2a')](_[_0x6c19('0x2b')](_0x36ce4a),[_0x6c19('0x2c'),_0x6c19('0x2d')]);_0x507f8e=_['difference'](_[_0x6c19('0x2b')](_0x36ce4a),['createdAt',_0x6c19('0x2d'),_0x6c19('0x2e'),_0x6c19('0x2f')]);if(_0x3d2a2d['body']['id']){delete _0x3d2a2d[_0x6c19('0x25')]['id'];}if(_[_0x6c19('0x30')](_0x3d2a2d[_0x6c19('0x25')][_0x6c19('0x31')])){throw new db[(_0x6c19('0x28'))][(_0x6c19('0x29'))]('from\x20is\x20mandatory');}if(_[_0x6c19('0x30')](_0x3d2a2d[_0x6c19('0x25')][_0x6c19('0x25')])||_0x3d2a2d['body']['body']===''){throw new db[(_0x6c19('0x28'))]['ValidationError'](_0x6c19('0x32'));}if(_[_0x6c19('0x30')](_0x3d2a2d[_0x6c19('0x25')][_0x6c19('0x33')])){throw new db[(_0x6c19('0x28'))][(_0x6c19('0x29'))](_0x6c19('0x34')+_0x507f8e);}if(!_['includes'](_0x507f8e,_0x3d2a2d[_0x6c19('0x25')][_0x6c19('0x33')])){throw new db[(_0x6c19('0x28'))][(_0x6c19('0x29'))](_0x6c19('0x35')+_0x507f8e);}_0x584608[_0x3d2a2d[_0x6c19('0x25')][_0x6c19('0x33')]]=_0x3d2a2d[_0x6c19('0x25')][_0x6c19('0x31')];})[_0x6c19('0x20')](function(){return db[_0x6c19('0x19')][_0x6c19('0x36')]({'where':{'id':_0x3d2a2d[_0x6c19('0x37')]['id']},'include':[{'model':db[_0x6c19('0x38')],'as':'List','include':[{'model':db['CmContact'],'as':_0x6c19('0x39'),'where':_0x584608,'limit':0x1,'order':[[_0x6c19('0x2d'),_0x6c19('0x3a')]]}]},{'model':db[_0x6c19('0x3b')],'as':_0x6c19('0x3c')}]});})[_0x6c19('0x20')](function(_0x3d9278){if(_0x3d9278&&_0x3d9278['List']){var _0x4101c=_0x3d9278[_0x6c19('0x3d')]({'plain':!![]});_0x2d20f5[_0x6c19('0x37')]=_0x4101c;_0x2d20f5[_0x6c19('0x3e')]=_0x4101c[_0x6c19('0x3c')];_0x2d20f5[_0x6c19('0x3f')]=_0x4101c[_0x6c19('0x40')];_0x2d20f5[_0x6c19('0x3e')]=_[_0x6c19('0x41')](_0x2d20f5[_0x6c19('0x3e')],[_0x6c19('0x42')],[_0x6c19('0x43')]);if(_0x2d20f5[_0x6c19('0x37')][_0x6c19('0x3c')]){delete _0x2d20f5[_0x6c19('0x37')][_0x6c19('0x3c')];}if(_0x2d20f5[_0x6c19('0x37')][_0x6c19('0x40')]&&_0x2d20f5['account'][_0x6c19('0x40')]['Contacts'][_0x6c19('0x44')]){return _0x2d20f5['account'][_0x6c19('0x40')]['Contacts'][0x0];}var _0x44099d=_['defaults'](_0x3d2a2d[_0x6c19('0x25')],{'firstName':_0x3d2a2d['body'][_0x6c19('0x31')],'ListId':_0x4101c[_0x6c19('0x2f')]});_0x44099d[_0x3d2a2d[_0x6c19('0x25')][_0x6c19('0x33')]]=_0x3d2a2d['body'][_0x6c19('0x31')];return db['CmContact'][_0x6c19('0x45')](_0x44099d,{'fields':_0x584a5d,'raw':!![]});}})['then'](function(_0x15576c){_0x2d20f5[_0x6c19('0x46')]=_0x15576c;if(_0x15576c){var _0x32c6e4={'ContactId':_0x15576c['id'],'FaxAccountId':_0x3d2a2d[_0x6c19('0x37')]['id'],'fax':_0x15576c['fax']};return db[_0x6c19('0x47')][_0x6c19('0x36')]({'where':{'ContactId':_0x15576c['id'],'closed':![],'FaxAccountId':_0x3d2a2d[_0x6c19('0x37')]['id']}})[_0x6c19('0x20')](function(_0x77e9b2){if(_0x77e9b2){return[_0x77e9b2,![]];}return db[_0x6c19('0x47')]['create'](_0x32c6e4)[_0x6c19('0x20')](function(_0x269346){return[_0x269346,!![]];});});}else{throw new Error(_0x6c19('0x48'));}})[_0x6c19('0x49')](function(_0x5c54ef,_0x3b0018){var _0x33d1d2=_0x5c54ef[_0x6c19('0x3d')]({'plain':!![]});if(_0x3b0018){if(_0x2d20f5[_0x6c19('0x37')][_0x6c19('0x4a')]){_0x2d20f5[_0x6c19('0x3e')][_0x6c19('0x4b')]({'id':0x0,'priority':_0x2d20f5[_0x6c19('0x3e')][_0x6c19('0x44')]+0x1,'app':_0x6c19('0x4c'),'appdata':_0x6c19('0x4d'),'interval':'*,*,*,*'});}_0x33d1d2[_0x6c19('0x4e')]=!![];}else{_0x33d1d2['created']=![];}_0x2d20f5['interaction']=_0x33d1d2;return db['FaxMessage'][_0x6c19('0x45')]({'body':_0x3d2a2d[_0x6c19('0x25')]['body'],'FaxAccountId':_0x3d2a2d[_0x6c19('0x37')]['id'],'FaxInteractionId':_0x5c54ef['id'],'direction':'in','ContactId':_0x5c54ef[_0x6c19('0x4f')],'AttachmentId':_0x3d2a2d['body'][_0x6c19('0x50')]});})[_0x6c19('0x20')](function(_0x13aed0){_0x2d20f5[_0x6c19('0x18')]=_0x13aed0;if(_0x2d20f5['interaction'][_0x6c19('0x51')]){return db['User'][_0x6c19('0x36')]({'attributes':['id',_0x6c19('0x52')],'where':{'id':_0x2d20f5[_0x6c19('0x53')][_0x6c19('0x51')]}})['then'](function(_0x482911){if(_0x482911){_0x2d20f5[_0x6c19('0x3e')][_0x6c19('0x54')]({'id':0x0,'priority':0x0,'app':'agent','appdata':_0x482911[_0x6c19('0x52')]+','+(_0x2d20f5[_0x6c19('0x37')][_0x6c19('0x55')]||0xa),'interval':_0x6c19('0x56')});}return respondWithRpcPromise(_0x6c19('0x57'),_0x6c19('0x58'),_0x2d20f5);});}return respondWithRpcPromise(_0x6c19('0x57'),_0x6c19('0x58'),_0x2d20f5);})[_0x6c19('0x20')](function(_0xd59fc2){_0x2f42f8(_0xd59fc2);})[_0x6c19('0x23')](function(_0x32e72a){_0x2be580(_0xe66d2[_0x6c19('0x16')](0x1f4,_0x32e72a[_0x6c19('0x18')]));});});};