b190653631501714fd4101cea5c6bb7f25d047b9
[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 _0x837f=['describe','Sequelize','ValidationError','difference','updatedAt','keys','createdAt','CompanyId','isNil','from','from\x20is\x20mandatory','body\x20is\x20mandatory\x20and\x20not\x20empty','mapKey','mapKey\x20is\x20mandatory,\x20please\x20use\x20one\x20of\x20these:\x20','mapKey\x20invalid,\x20please\x20use\x20one\x20of\x20these:\x20','account','CmList','List','DESC','Applications','list','applications','orderBy','priority','asc','Contacts','ListId','create','contact','FaxInteraction','find','spread','get','push','length','close','unmanaged','*,*,*,*','created','FaxMessage','ContactId','AttachmentId','User','name','interaction','UserId','unshift','agent','waitForTheAssignedAgent','queueId','FaxQueue','queue','waitForTheAssignedQueue','Start','util','moment','bluebird','randomstring','ioredis','../../config/logger','../../config/environment','client','http','redis','defaults','localhost','socket.io-emitter','./faxAccount.socket','register','request','info','FaxAccount,\x20%s,\x20%s','FaxAccount,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','GetFaxAccount','FaxAccount','findAll','options','raw','where','attributes','limit','include','model','map','then','debug','catch','NotifyFaxAccount','body','fax','CmContact'];(function(_0x3089ee,_0x571adc){var _0x55d0eb=function(_0x411549){while(--_0x411549){_0x3089ee['push'](_0x3089ee['shift']());}};_0x55d0eb(++_0x571adc);}(_0x837f,0x159));var _0xf837=function(_0x183944,_0x2b804f){_0x183944=_0x183944-0x0;var _0xd5e1d5=_0x837f[_0x183944];return _0xd5e1d5;};'use strict';var _=require('lodash');var util=require(_0xf837('0x0'));var moment=require(_0xf837('0x1'));var BPromise=require(_0xf837('0x2'));var rs=require(_0xf837('0x3'));var fs=require('fs');var Redis=require(_0xf837('0x4'));var db=require('../../mysqldb')['db'];var utils=require('../../config/utils');var logger=require(_0xf837('0x5'))('rpc');var config=require(_0xf837('0x6'));var jayson=require('jayson/promise');var client=jayson[_0xf837('0x7')][_0xf837('0x8')]({'port':0x232c});config[_0xf837('0x9')]=_[_0xf837('0xa')](config[_0xf837('0x9')],{'host':_0xf837('0xb'),'port':0x18eb});var socket=require(_0xf837('0xc'))(new Redis(config[_0xf837('0x9')]));require(_0xf837('0xd'))[_0xf837('0xe')](socket);function respondWithRpcPromise(_0x255d89,_0x5ab418,_0x2065de){return new BPromise(function(_0x18f2bf,_0x311902){return client[_0xf837('0xf')](_0x255d89,_0x2065de)['then'](function(_0x5c2462){logger[_0xf837('0x10')](_0xf837('0x11'),_0x5ab418,'request\x20sent');logger['debug'](_0xf837('0x12'),_0x5ab418,_0xf837('0x13'),JSON[_0xf837('0x14')](_0x5c2462));if(_0x5c2462[_0xf837('0x15')]){if(_0x5c2462[_0xf837('0x15')][_0xf837('0x16')]===0x1f4){logger[_0xf837('0x15')]('FaxAccount,\x20%s,\x20%s',_0x5ab418,_0x5c2462[_0xf837('0x15')][_0xf837('0x17')]);return _0x311902(_0x5c2462[_0xf837('0x15')][_0xf837('0x17')]);}logger['error'](_0xf837('0x11'),_0x5ab418,_0x5c2462[_0xf837('0x15')][_0xf837('0x17')]);return _0x18f2bf(_0x5c2462[_0xf837('0x15')][_0xf837('0x17')]);}else{logger[_0xf837('0x10')](_0xf837('0x11'),_0x5ab418,'request\x20sent');_0x18f2bf(_0x5c2462[_0xf837('0x18')][_0xf837('0x17')]);}})['catch'](function(_0x3522fd){logger[_0xf837('0x15')](_0xf837('0x11'),_0x5ab418,_0x3522fd);_0x311902(_0x3522fd);});});}exports[_0xf837('0x19')]=function(_0x271bfc){var _0x3faf68=this;return new Promise(function(_0x1abbae,_0x9baef3){return db[_0xf837('0x1a')][_0xf837('0x1b')]({'raw':_0x271bfc[_0xf837('0x1c')]?_0x271bfc[_0xf837('0x1c')][_0xf837('0x1d')]===undefined?!![]:![]:!![],'where':_0x271bfc[_0xf837('0x1c')]?_0x271bfc[_0xf837('0x1c')][_0xf837('0x1e')]||null:null,'attributes':_0x271bfc[_0xf837('0x1c')]?_0x271bfc[_0xf837('0x1c')][_0xf837('0x1f')]||null:null,'limit':_0x271bfc[_0xf837('0x1c')]?_0x271bfc['options'][_0xf837('0x20')]||null:null,'include':_0x271bfc[_0xf837('0x1c')]?_0x271bfc[_0xf837('0x1c')][_0xf837('0x21')]?_['map'](_0x271bfc[_0xf837('0x1c')][_0xf837('0x21')],function(_0x2fa332){return{'model':db[_0x2fa332[_0xf837('0x22')]],'as':_0x2fa332['as'],'attributes':_0x2fa332[_0xf837('0x1f')],'include':_0x2fa332[_0xf837('0x21')]?_[_0xf837('0x23')](_0x2fa332[_0xf837('0x21')],function(_0x2ded63){return{'model':db[_0x2ded63[_0xf837('0x22')]],'as':_0x2ded63['as'],'attributes':_0x2ded63[_0xf837('0x1f')],'include':_0x2ded63[_0xf837('0x21')]?_[_0xf837('0x23')](_0x2ded63['include'],function(_0x3b3fd5){return{'model':db[_0x3b3fd5[_0xf837('0x22')]],'as':_0x3b3fd5['as'],'attributes':_0x3b3fd5[_0xf837('0x1f')]};}):[]};}):[]};}):[]:[]})[_0xf837('0x24')](function(_0x270d4c){logger[_0xf837('0x10')](_0xf837('0x19'),_0x271bfc);logger[_0xf837('0x25')]('GetFaxAccount',_0x271bfc,JSON[_0xf837('0x14')](_0x270d4c));_0x1abbae(_0x270d4c);})[_0xf837('0x26')](function(_0x5de977){logger[_0xf837('0x15')]('GetFaxAccount',_0x5de977['message'],_0x271bfc);_0x9baef3(_0x3faf68[_0xf837('0x15')](0x1f4,_0x5de977['message']));});});};exports[_0xf837('0x27')]=function(_0x286777,_0x515af7,_0x1156d7){var _0x4dfef6=this;return new Promise(function(_0x17e6f5,_0x6145b1){var _0x64ee7d={'body':_0x286777[_0xf837('0x28')],'channel':_0xf837('0x29')};var _0x3c22f9=[];var _0x490bb4=[];var _0x23777f={};return db[_0xf837('0x2a')][_0xf837('0x2b')]()[_0xf837('0x24')](function(_0x5326ea){if(!_0x5326ea){throw new db[(_0xf837('0x2c'))][(_0xf837('0x2d'))]('no\x20available\x20attributes');}_0x3c22f9=_[_0xf837('0x2e')](_['keys'](_0x5326ea),['createdAt',_0xf837('0x2f')]);_0x490bb4=_[_0xf837('0x2e')](_[_0xf837('0x30')](_0x5326ea),[_0xf837('0x31'),'updatedAt',_0xf837('0x32'),'ListId']);if(_0x286777[_0xf837('0x28')]['id']){delete _0x286777[_0xf837('0x28')]['id'];}if(_[_0xf837('0x33')](_0x286777[_0xf837('0x28')][_0xf837('0x34')])){throw new db[(_0xf837('0x2c'))][(_0xf837('0x2d'))](_0xf837('0x35'));}if(_[_0xf837('0x33')](_0x286777[_0xf837('0x28')][_0xf837('0x28')])||_0x286777[_0xf837('0x28')][_0xf837('0x28')]===''){throw new db[(_0xf837('0x2c'))][(_0xf837('0x2d'))](_0xf837('0x36'));}if(_[_0xf837('0x33')](_0x286777['body'][_0xf837('0x37')])){throw new db[(_0xf837('0x2c'))]['ValidationError'](_0xf837('0x38')+_0x490bb4);}if(!_['includes'](_0x490bb4,_0x286777[_0xf837('0x28')]['mapKey'])){throw new db['Sequelize'][(_0xf837('0x2d'))](_0xf837('0x39')+_0x490bb4);}_0x23777f[_0x286777[_0xf837('0x28')][_0xf837('0x37')]]=_0x286777[_0xf837('0x28')][_0xf837('0x34')];})[_0xf837('0x24')](function(){return db[_0xf837('0x1a')]['find']({'where':{'id':_0x286777[_0xf837('0x3a')]['id']},'include':[{'model':db[_0xf837('0x3b')],'as':_0xf837('0x3c'),'include':[{'model':db[_0xf837('0x2a')],'as':'Contacts','where':_0x23777f,'limit':0x1,'order':[[_0xf837('0x2f'),_0xf837('0x3d')]]}]},{'model':db['FaxApplication'],'as':'Applications'}]});})[_0xf837('0x24')](function(_0x9570){if(_0x9570&&_0x9570['List']){var _0xbfe9a=_0x9570['get']({'plain':!![]});_0x64ee7d['account']=_0xbfe9a;_0x64ee7d['applications']=_0xbfe9a[_0xf837('0x3e')];_0x64ee7d[_0xf837('0x3f')]=_0xbfe9a['List'];_0x64ee7d[_0xf837('0x40')]=_[_0xf837('0x41')](_0x64ee7d[_0xf837('0x40')],[_0xf837('0x42')],[_0xf837('0x43')]);if(_0x64ee7d[_0xf837('0x3a')]['Applications']){delete _0x64ee7d[_0xf837('0x3a')][_0xf837('0x3e')];}if(_0x64ee7d[_0xf837('0x3a')][_0xf837('0x3c')]&&_0x64ee7d[_0xf837('0x3a')][_0xf837('0x3c')][_0xf837('0x44')]['length']){return _0x64ee7d['account']['List'][_0xf837('0x44')][0x0];}var _0x392c=_[_0xf837('0xa')](_0x286777[_0xf837('0x28')],{'firstName':_0x286777[_0xf837('0x28')][_0xf837('0x34')],'ListId':_0xbfe9a[_0xf837('0x45')]});_0x392c[_0x286777[_0xf837('0x28')][_0xf837('0x37')]]=_0x286777[_0xf837('0x28')][_0xf837('0x34')];return db[_0xf837('0x2a')][_0xf837('0x46')](_0x392c,{'fields':_0x3c22f9,'raw':!![]});}})['then'](function(_0x222dbf){_0x64ee7d[_0xf837('0x47')]=_0x222dbf;if(_0x222dbf){var _0x42f9e3={'ContactId':_0x222dbf['id'],'FaxAccountId':_0x286777[_0xf837('0x3a')]['id'],'fax':_0x222dbf['fax']};return db[_0xf837('0x48')][_0xf837('0x49')]({'where':{'ContactId':_0x222dbf['id'],'closed':![],'FaxAccountId':_0x286777[_0xf837('0x3a')]['id']}})[_0xf837('0x24')](function(_0x1058ae){if(_0x1058ae){return[_0x1058ae,![]];}return db['FaxInteraction'][_0xf837('0x46')](_0x42f9e3)[_0xf837('0x24')](function(_0x27bfe2){return[_0x27bfe2,!![]];});});}else{throw new Error('Contact\x20not\x20found');}})[_0xf837('0x4a')](function(_0x26b0e8,_0x3e39f5){var _0x2e372e=_0x26b0e8[_0xf837('0x4b')]({'plain':!![]});if(_0x3e39f5){if(_0x64ee7d[_0xf837('0x3a')]['autoclose']){_0x64ee7d['applications'][_0xf837('0x4c')]({'id':0x0,'priority':_0x64ee7d[_0xf837('0x40')][_0xf837('0x4d')]+0x1,'app':_0xf837('0x4e'),'appdata':_0xf837('0x4f'),'interval':_0xf837('0x50')});}_0x2e372e[_0xf837('0x51')]=!![];}else{_0x2e372e[_0xf837('0x51')]=![];}_0x64ee7d['interaction']=_0x2e372e;return db[_0xf837('0x52')][_0xf837('0x46')]({'body':_0x286777[_0xf837('0x28')]['body'],'FaxAccountId':_0x286777[_0xf837('0x3a')]['id'],'FaxInteractionId':_0x26b0e8['id'],'direction':'in','ContactId':_0x26b0e8[_0xf837('0x53')],'AttachmentId':_0x286777['body'][_0xf837('0x54')]});})['then'](function(_0x5eb11f){_0x64ee7d[_0xf837('0x17')]=_0x5eb11f;if(!_0x64ee7d['interaction']['UserId'])return;return db[_0xf837('0x55')]['find']({'attributes':['id',_0xf837('0x56')],'where':{'id':_0x64ee7d[_0xf837('0x57')][_0xf837('0x58')]}});})[_0xf837('0x24')](function(_0x2d6f14){if(_0x2d6f14){_0x64ee7d[_0xf837('0x40')][_0xf837('0x59')]({'id':0x0,'priority':0x0,'app':_0xf837('0x5a'),'appdata':_0x2d6f14['name']+','+(_0x64ee7d[_0xf837('0x3a')][_0xf837('0x5b')]||0xa),'interval':_0xf837('0x50')});}if(!_0x64ee7d[_0xf837('0x57')][_0xf837('0x5c')])return;return db[_0xf837('0x5d')]['find']({'attributes':['id',_0xf837('0x56')],'where':{'id':_0x64ee7d[_0xf837('0x57')][_0xf837('0x5c')]}});})[_0xf837('0x24')](function(_0x172529){if(_0x172529){_0x64ee7d[_0xf837('0x40')]['unshift']({'id':0x0,'priority':0x1,'app':_0xf837('0x5e'),'appdata':_0x172529[_0xf837('0x56')]+','+(_0x64ee7d[_0xf837('0x3a')][_0xf837('0x5f')]||0x12c),'interval':_0xf837('0x50')});}return respondWithRpcPromise(_0xf837('0x60'),'startRouting',_0x64ee7d);})['then'](function(_0x4d6927){_0x17e6f5(_0x4d6927);})['catch'](function(_0x557706){_0x6145b1(_0x4dfef6[_0xf837('0x15')](0x1f4,_0x557706[_0xf837('0x17')]));});});};