82ff6e26f0397e593a38c2e37e2d770a224ee11e
[motion2.git] / server / api / user / user.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 _0x8961=['debug','catch','PauseUser','find','role','internal','interface','User\x20with\x20id\x20%s\x20not\x20found','params','UserVoiceQueueRt','update','findAll','length','forEach','push','name','format','SIP/%s','PAUSE','body','type','DEFAULT\x20PAUSE','bulkCreate','YYYY-MM-DD\x20HH:mm:ss','UnpauseUser','resolve','channel','isValidChannel','Channel\x20parameter\x20%s\x20is\x20invalid','findOne','online','voicePause','mailPause','chatPause','openchannelPause','smsPause','whatsappPause','pauseType','lastPauseAt','unpause','system','LogoutUser','MemberReport','all','LoginUser','mobile','phone','loginInPause','count','getLicense','agents','Maximum\x20login\x20has\x20been\x20reached','destroy','getVoiceQueues','upsert','getChannels','merge','LOGIN','LOGININPAUSE','lodash','util','bluebird','ioredis','../../mysqldb','../../config/utils','rpc','../../config/environment','redis','./user.socket','User','options','raw','where','limit','include','model','attributes','map','info','GetUser','stringify','message','error','ShowUser','then'];(function(_0x131862,_0x306bd9){var _0x4628d1=function(_0xcc8883){while(--_0xcc8883){_0x131862['push'](_0x131862['shift']());}};_0x4628d1(++_0x306bd9);}(_0x8961,0x1e4));var _0x1896=function(_0x1d9aa0,_0x272488){_0x1d9aa0=_0x1d9aa0-0x0;var _0x226868=_0x8961[_0x1d9aa0];return _0x226868;};'use strict';var _=require(_0x1896('0x0'));var util=require(_0x1896('0x1'));var moment=require('moment');var BPromise=require(_0x1896('0x2'));var Redis=require(_0x1896('0x3'));var db=require(_0x1896('0x4'))['db'];var utils=require(_0x1896('0x5'));var logger=require('../../config/logger')(_0x1896('0x6'));var config=require(_0x1896('0x7'));config[_0x1896('0x8')]=_['defaults'](config[_0x1896('0x8')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0x1896('0x8')]));require(_0x1896('0x9'))['register'](socket);exports['GetUser']=function(_0x3b985e){var _0x3bd981=this;return new Promise(function(_0x3459c7,_0xc2f127){return db[_0x1896('0xa')]['findAll']({'raw':_0x3b985e['options']?_0x3b985e[_0x1896('0xb')][_0x1896('0xc')]===undefined?!![]:![]:!![],'where':_0x3b985e[_0x1896('0xb')]?_0x3b985e['options'][_0x1896('0xd')]||null:null,'attributes':_0x3b985e[_0x1896('0xb')]?_0x3b985e[_0x1896('0xb')]['attributes']||null:null,'limit':_0x3b985e['options']?_0x3b985e[_0x1896('0xb')][_0x1896('0xe')]||null:null,'include':_0x3b985e[_0x1896('0xb')]?_0x3b985e[_0x1896('0xb')][_0x1896('0xf')]?_['map'](_0x3b985e['options']['include'],function(_0x5a7992){return{'model':db[_0x5a7992[_0x1896('0x10')]],'as':_0x5a7992['as'],'attributes':_0x5a7992[_0x1896('0x11')],'include':_0x5a7992[_0x1896('0xf')]?_[_0x1896('0x12')](_0x5a7992[_0x1896('0xf')],function(_0x114448){return{'model':db[_0x114448[_0x1896('0x10')]],'as':_0x114448['as'],'attributes':_0x114448['attributes'],'include':_0x114448[_0x1896('0xf')]?_[_0x1896('0x12')](_0x114448[_0x1896('0xf')],function(_0x413f5d){return{'model':db[_0x413f5d[_0x1896('0x10')]],'as':_0x413f5d['as'],'attributes':_0x413f5d['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x791ce6){logger[_0x1896('0x13')](_0x1896('0x14'),_0x3b985e);logger['debug'](_0x1896('0x14'),_0x3b985e,JSON[_0x1896('0x15')](_0x791ce6));_0x3459c7(_0x791ce6);})['catch'](function(_0x52c6c3){logger['error'](_0x1896('0x14'),_0x52c6c3[_0x1896('0x16')],_0x3b985e);_0xc2f127(_0x3bd981[_0x1896('0x17')](0x1f4,_0x52c6c3[_0x1896('0x16')]));});});};exports[_0x1896('0x18')]=function(_0x25057b){var _0x1bfd26=this;return new Promise(function(_0x58c762,_0x1502a7){return db[_0x1896('0xa')]['find']({'raw':_0x25057b[_0x1896('0xb')]?_0x25057b[_0x1896('0xb')][_0x1896('0xc')]===undefined?!![]:![]:!![],'where':_0x25057b['options']?_0x25057b[_0x1896('0xb')][_0x1896('0xd')]||null:null,'attributes':_0x25057b[_0x1896('0xb')]?_0x25057b[_0x1896('0xb')][_0x1896('0x11')]||null:null,'include':_0x25057b['options']?_0x25057b[_0x1896('0xb')][_0x1896('0xf')]?_[_0x1896('0x12')](_0x25057b[_0x1896('0xb')][_0x1896('0xf')],function(_0x2e6562){return{'model':db[_0x2e6562[_0x1896('0x10')]],'as':_0x2e6562['as'],'attributes':_0x2e6562[_0x1896('0x11')],'include':_0x2e6562[_0x1896('0xf')]?_[_0x1896('0x12')](_0x2e6562[_0x1896('0xf')],function(_0x2bbdbd){return{'model':db[_0x2bbdbd['model']],'as':_0x2bbdbd['as'],'attributes':_0x2bbdbd['attributes'],'include':_0x2bbdbd[_0x1896('0xf')]?_[_0x1896('0x12')](_0x2bbdbd[_0x1896('0xf')],function(_0x4826f4){return{'model':db[_0x4826f4[_0x1896('0x10')]],'as':_0x4826f4['as'],'attributes':_0x4826f4[_0x1896('0x11')]};}):[]};}):[]};}):[]:[]})[_0x1896('0x19')](function(_0x2be3a7){logger['info'](_0x1896('0x18'),_0x25057b);logger[_0x1896('0x1a')](_0x1896('0x18'),_0x25057b,JSON[_0x1896('0x15')](_0x2be3a7));_0x58c762(_0x2be3a7);})[_0x1896('0x1b')](function(_0x28a810){logger[_0x1896('0x17')](_0x1896('0x18'),_0x28a810[_0x1896('0x16')],_0x25057b);_0x1502a7(_0x1bfd26[_0x1896('0x17')](0x1f4,_0x28a810['message']));});});};exports[_0x1896('0x1c')]=function(_0x50284a){var _0x1566de;return db[_0x1896('0xa')][_0x1896('0x1d')]({'where':_0x50284a[_0x1896('0xb')][_0x1896('0xd')]||{},'attributes':['id','name',_0x1896('0x1e'),_0x1896('0x1f'),_0x1896('0x20')]})['then'](function(_0x57b0d0){if(!_0x57b0d0){throw new Error(util['format'](_0x1896('0x21'),_0x50284a[_0x1896('0x22')]['id']));}_0x1566de=_0x57b0d0;return db[_0x1896('0x23')][_0x1896('0x24')]({'paused':0x1},{'where':{'UserId':_0x1566de['id']},'individualHooks':!![]});})[_0x1896('0x19')](function(){return db['MemberReport'][_0x1896('0x25')]({'where':{'membername':_0x1566de['name'],'type':'PAUSE','exitAt':null}});})[_0x1896('0x19')](function(_0x35a24c){if(_0x35a24c&&_0x35a24c[_0x1896('0x26')]){var _0x332a94=moment()['format']('YYYY-MM-DD\x20HH:mm:ss');for(var _0x3a85e2=0x0,_0x1b7d84=_0x35a24c[_0x1896('0x26')];_0x3a85e2<_0x1b7d84;_0x3a85e2++){_0x35a24c[_0x3a85e2]['updateAttributes']({'exitAt':_0x332a94});}}})['then'](function(){var _0x5b8df4=[];var _0x5ac33d=utils['getChannels']();_0x5ac33d[_0x1896('0x27')](function(_0x3e344e){_0x5b8df4[_0x1896('0x28')]({'channel':_0x3e344e,'membername':_0x1566de[_0x1896('0x29')],'interface':_['isNil'](_0x1566de[_0x1896('0x20')])?util[_0x1896('0x2a')](_0x1896('0x2b'),_0x1566de[_0x1896('0x29')]):_0x1566de[_0x1896('0x20')],'type':_0x1896('0x2c'),'enterAt':moment()[_0x1896('0x2a')]('YYYY-MM-DD\x20HH:mm:ss'),'data1':_0x50284a[_0x1896('0x2d')][_0x1896('0x2e')]||_0x1896('0x2f'),'role':_0x1566de[_0x1896('0x1e')],'internal':_0x1566de[_0x1896('0x1f')],'uniqueid':_0x50284a[_0x1896('0x2d')]['uniqueid']||null});});return db['MemberReport'][_0x1896('0x30')](_0x5b8df4,{'individualHooks':!![]});})[_0x1896('0x19')](function(){return _0x1566de[_0x1896('0x24')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x50284a[_0x1896('0x2d')]['type']||'DEFAULT\x20PAUSE','lastPauseAt':moment()[_0x1896('0x2a')](_0x1896('0x31'))});})[_0x1896('0x1b')](function(_0x4aad2b){throw _0x4aad2b;});};exports[_0x1896('0x32')]=function(_0x5de491){return Promise[_0x1896('0x33')]()[_0x1896('0x19')](function(){if(_0x5de491['body'][_0x1896('0x34')]&&!utils[_0x1896('0x35')](_0x5de491[_0x1896('0x2d')][_0x1896('0x34')])){throw new Error(util[_0x1896('0x2a')](_0x1896('0x36'),_0x5de491[_0x1896('0x2d')][_0x1896('0x34')]));}return db[_0x1896('0xa')][_0x1896('0x37')]({'where':_0x5de491[_0x1896('0xb')][_0x1896('0xd')]||{},'attributes':['id',_0x1896('0x29'),_0x1896('0x1e'),_0x1896('0x1f'),_0x1896('0x20'),_0x1896('0x38'),_0x1896('0x39'),_0x1896('0x3a'),_0x1896('0x3b'),'faxPause',_0x1896('0x3c'),_0x1896('0x3d'),_0x1896('0x3e'),_0x1896('0x3f'),_0x1896('0x40')]});})[_0x1896('0x19')](function(_0x196cfd){if(!_0x196cfd){throw new Error(util[_0x1896('0x2a')](_0x1896('0x21'),_0x5de491[_0x1896('0x22')]['id']));}return _0x196cfd[_0x1896('0x41')](_0x5de491[_0x1896('0x2d')][_0x1896('0x34')],_0x1896('0x42'));})[_0x1896('0x1b')](function(_0x3b43ac){throw _0x3b43ac;});};exports[_0x1896('0x43')]=function(_0x3f69e4){var _0xf37539=this;return new Promise(function(_0x38d362,_0x42c39c){var _0x40af3c;return db[_0x1896('0xa')]['findOne']({'where':_0x3f69e4['options'][_0x1896('0xd')]||{},'attributes':['id',_0x1896('0x29')]})[_0x1896('0x19')](function(_0x2ecf08){if(_0x2ecf08){_0x40af3c=_0x2ecf08;return db[_0x1896('0x23')]['destroy']({'where':{'membername':_0x40af3c[_0x1896('0x29')]},'individualHooks':!![]});}})[_0x1896('0x19')](function(){if(_0x40af3c){return db[_0x1896('0x44')]['findAll']({'where':{'membername':_0x40af3c['name'],'exitAt':null}});}})[_0x1896('0x19')](function(_0xf57e78){if(_0x40af3c){if(_0xf57e78&&_0xf57e78[_0x1896('0x26')]){var _0x187123=[];_0xf57e78[_0x1896('0x27')](function(_0x34fce8){_0x187123[_0x1896('0x28')](_0x34fce8[_0x1896('0x24')]({'exitAt':moment()[_0x1896('0x2a')](_0x1896('0x31'))}));});return BPromise[_0x1896('0x45')](_0x187123);}}})[_0x1896('0x19')](function(){if(_0x40af3c){return _0x40af3c[_0x1896('0x24')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0x1896('0x19')](function(_0x5ae2fa){_0x38d362(_0x5ae2fa);})[_0x1896('0x1b')](function(_0xb5fa3e){_0x42c39c(_0xf37539[_0x1896('0x17')](0x1f4,_0xb5fa3e[_0x1896('0x16')]));});});};exports[_0x1896('0x46')]=function(_0x1ca71f){var _0x3d5d05=this;return new Promise(function(_0x16de26,_0x584e82){var _0x584a1e;var _0x392386;var _0x4dfc99;var _0x4a3b92;return db[_0x1896('0xa')][_0x1896('0x37')]({'where':_0x1ca71f[_0x1896('0xb')][_0x1896('0xd')]||{},'attributes':['id',_0x1896('0x29'),_0x1896('0x1e'),_0x1896('0x47'),_0x1896('0x48'),_0x1896('0x1f'),_0x1896('0x49'),_0x1896('0x20')]})['then'](function(_0xd56d02){if(_0xd56d02){_0x584a1e=_0xd56d02;_0x4a3b92=_0x1ca71f[_0x1896('0x2d')][_0x1896('0x20')]?_0x1ca71f[_0x1896('0x2d')]['interface']:util[_0x1896('0x2a')](_0x1896('0x2b'),_0x584a1e['name']);return db[_0x1896('0xa')][_0x1896('0x4a')]({'where':{'role':'agent','online':!![],'id':{'$ne':_0x584a1e['id']}}});}})[_0x1896('0x19')](function(_0x204ecd){if(_0x204ecd){_0x4dfc99=_0x204ecd;return require('../../config/license/util')[_0x1896('0x4b')]();}})[_0x1896('0x19')](function(_0xc15061){if(_0xc15061&&_0xc15061[_0x1896('0x4c')]&&_0x4dfc99>=_0xc15061[_0x1896('0x4c')]){throw new Error(_0x1896('0x4d'));}})[_0x1896('0x19')](function(){if(_0x584a1e){return db['UserVoiceQueueRt'][_0x1896('0x4e')]({'where':{'membername':_0x584a1e[_0x1896('0x29')]},'individualHooks':!![]});}})['then'](function(){if(_0x584a1e){return _0x584a1e[_0x1896('0x4f')]({'raw':!![]});}})[_0x1896('0x19')](function(_0x55c233){if(_0x584a1e){if(_0x55c233){var _0x523659=[];_0x392386=_0x55c233;if(_0x392386[_0x1896('0x26')]){for(var _0x2d9d6d=0x0;_0x2d9d6d<_0x392386[_0x1896('0x26')];_0x2d9d6d++){_0x523659['push'](db['UserVoiceQueueRt'][_0x1896('0x50')]({'membername':_0x584a1e['name'],'UserId':_0x584a1e['id'],'queue_name':_0x392386[_0x2d9d6d][_0x1896('0x29')],'VoiceQueueId':_0x392386[_0x2d9d6d]['id'],'interface':_0x4a3b92,'paused':_0x584a1e[_0x1896('0x49')]||![],'penalty':_0x392386[_0x2d9d6d]['UserVoiceQueue.penalty']||0x0}));}return BPromise[_0x1896('0x45')](_0x523659);}}}})[_0x1896('0x19')](function(){if(_0x584a1e){return db[_0x1896('0x44')][_0x1896('0x25')]({'where':{'membername':_0x584a1e[_0x1896('0x29')],'exitAt':null}});}})['then'](function(_0x463025){if(_0x584a1e){if(_0x463025&&_0x463025[_0x1896('0x26')]){var _0xa7f5e9=[];_0x463025['forEach'](function(_0x2f83d2){_0xa7f5e9['push'](_0x2f83d2[_0x1896('0x24')]({'exitAt':moment()[_0x1896('0x2a')]('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise['all'](_0xa7f5e9);}}})['then'](function(){if(_0x584a1e){var _0x2f1722=[];var _0x23cc68=[];var _0x2dc5e0=utils[_0x1896('0x51')]();var _0x352a17={'membername':_0x584a1e[_0x1896('0x29')],'interface':_0x4a3b92,'enterAt':moment()[_0x1896('0x2a')]('YYYY-MM-DD\x20HH:mm:ss'),'role':_0x584a1e[_0x1896('0x1e')],'internal':_0x584a1e[_0x1896('0x1f')]};_0x2dc5e0[_0x1896('0x27')](function(_0x33e991){_0x2f1722[_0x1896('0x28')](_[_0x1896('0x52')]({'channel':_0x33e991,'type':_0x1896('0x53'),'data1':'callysquare','data2':_0x4a3b92},_0x352a17));if(_0x584a1e['loginInPause']){_0x23cc68[_0x1896('0x28')](_[_0x1896('0x52')]({'channel':_0x33e991,'type':_0x1896('0x2c'),'data1':_0x1896('0x54')},_0x352a17));}});return db[_0x1896('0x44')][_0x1896('0x30')](_0x2f1722['concat'](_0x23cc68),{'individualHooks':!![]});}})['then'](function(){if(_0x584a1e){return _0x584a1e['update']({'online':!![],'lastLoginAt':moment()[_0x1896('0x2a')](_0x1896('0x31')),'voicePause':_0x584a1e[_0x1896('0x49')]||![],'mailPause':_0x584a1e[_0x1896('0x49')]||![],'chatPause':_0x584a1e[_0x1896('0x49')]||![],'faxPause':_0x584a1e[_0x1896('0x49')]||![],'smsPause':_0x584a1e['loginInPause']||![],'openchannelPause':_0x584a1e[_0x1896('0x49')]||![],'pauseType':_0x584a1e[_0x1896('0x49')]?_0x1896('0x54'):null,'lastPauseAt':moment()[_0x1896('0x2a')](_0x1896('0x31')),'interface':_0x4a3b92});}})['then'](function(_0x5a0b55){_0x16de26(_0x5a0b55);})[_0x1896('0x1b')](function(_0x458f21){_0x584e82(_0x3d5d05[_0x1896('0x17')](0x1f4,_0x458f21['message']));});});};