Built motion from commit da617fac.|2.6.6
[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 _0x10c3=['push','all','LoginUser','findOne','mobile','phone','loginInPause','SIP/%s','count','../../config/license/util','getLicense','agents','Maximum\x20login\x20has\x20been\x20reached','UserVoiceQueue.penalty','merge','LOGININPAUSE','lodash','moment','bluebird','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','redis','defaults','socket.io-emitter','register','GetUser','User','findAll','options','raw','where','attributes','limit','include','map','model','debug','stringify','catch','error','message','ShowUser','find','then','info','name','internal','interface','UserVoiceQueueRt','update','MemberReport','PAUSE','format','length','updateAttributes','getChannels','isNil','YYYY-MM-DD\x20HH:mm:ss','body','type','DEFAULT\x20PAUSE','role','bulkCreate','channel','Channel\x20parameter\x20%s\x20is\x20invalid','online','voicePause','mailPause','chatPause','faxPause','smsPause','whatsappPause','pauseType','User\x20with\x20id\x20%s\x20not\x20found','params','unpause','system','LogoutUser','forEach'];(function(_0x17406a,_0x1e2320){var _0x1501ff=function(_0x4b075a){while(--_0x4b075a){_0x17406a['push'](_0x17406a['shift']());}};_0x1501ff(++_0x1e2320);}(_0x10c3,0x158));var _0x310c=function(_0x23bd68,_0x2912b0){_0x23bd68=_0x23bd68-0x0;var _0x2f7d4f=_0x10c3[_0x23bd68];return _0x2f7d4f;};'use strict';var _=require(_0x310c('0x0'));var util=require('util');var moment=require(_0x310c('0x1'));var BPromise=require(_0x310c('0x2'));var Redis=require(_0x310c('0x3'));var db=require('../../mysqldb')['db'];var utils=require(_0x310c('0x4'));var logger=require(_0x310c('0x5'))(_0x310c('0x6'));var config=require(_0x310c('0x7'));config[_0x310c('0x8')]=_[_0x310c('0x9')](config[_0x310c('0x8')],{'host':'localhost','port':0x18eb});var socket=require(_0x310c('0xa'))(new Redis(config[_0x310c('0x8')]));require('./user.socket')[_0x310c('0xb')](socket);exports[_0x310c('0xc')]=function(_0x5932a9){var _0x5388e9=this;return new Promise(function(_0xe451f1,_0x5bc131){return db[_0x310c('0xd')][_0x310c('0xe')]({'raw':_0x5932a9[_0x310c('0xf')]?_0x5932a9[_0x310c('0xf')][_0x310c('0x10')]===undefined?!![]:![]:!![],'where':_0x5932a9['options']?_0x5932a9[_0x310c('0xf')][_0x310c('0x11')]||null:null,'attributes':_0x5932a9['options']?_0x5932a9[_0x310c('0xf')][_0x310c('0x12')]||null:null,'limit':_0x5932a9[_0x310c('0xf')]?_0x5932a9[_0x310c('0xf')][_0x310c('0x13')]||null:null,'include':_0x5932a9[_0x310c('0xf')]?_0x5932a9[_0x310c('0xf')][_0x310c('0x14')]?_[_0x310c('0x15')](_0x5932a9[_0x310c('0xf')]['include'],function(_0x581cdc){return{'model':db[_0x581cdc['model']],'as':_0x581cdc['as'],'attributes':_0x581cdc[_0x310c('0x12')],'include':_0x581cdc[_0x310c('0x14')]?_[_0x310c('0x15')](_0x581cdc['include'],function(_0x22f7f4){return{'model':db[_0x22f7f4[_0x310c('0x16')]],'as':_0x22f7f4['as'],'attributes':_0x22f7f4['attributes'],'include':_0x22f7f4['include']?_['map'](_0x22f7f4[_0x310c('0x14')],function(_0xcb927e){return{'model':db[_0xcb927e[_0x310c('0x16')]],'as':_0xcb927e['as'],'attributes':_0xcb927e[_0x310c('0x12')]};}):[]};}):[]};}):[]:[]})['then'](function(_0x535fcc){logger['info'](_0x310c('0xc'),_0x5932a9);logger[_0x310c('0x17')](_0x310c('0xc'),_0x5932a9,JSON[_0x310c('0x18')](_0x535fcc));_0xe451f1(_0x535fcc);})[_0x310c('0x19')](function(_0x55f400){logger[_0x310c('0x1a')](_0x310c('0xc'),_0x55f400[_0x310c('0x1b')],_0x5932a9);_0x5bc131(_0x5388e9[_0x310c('0x1a')](0x1f4,_0x55f400[_0x310c('0x1b')]));});});};exports[_0x310c('0x1c')]=function(_0x175eb8){var _0x525c67=this;return new Promise(function(_0x41c2d1,_0x5ecb3e){return db[_0x310c('0xd')][_0x310c('0x1d')]({'raw':_0x175eb8['options']?_0x175eb8[_0x310c('0xf')]['raw']===undefined?!![]:![]:!![],'where':_0x175eb8['options']?_0x175eb8[_0x310c('0xf')][_0x310c('0x11')]||null:null,'attributes':_0x175eb8[_0x310c('0xf')]?_0x175eb8[_0x310c('0xf')][_0x310c('0x12')]||null:null,'include':_0x175eb8['options']?_0x175eb8[_0x310c('0xf')]['include']?_[_0x310c('0x15')](_0x175eb8['options'][_0x310c('0x14')],function(_0x3e818f){return{'model':db[_0x3e818f[_0x310c('0x16')]],'as':_0x3e818f['as'],'attributes':_0x3e818f[_0x310c('0x12')],'include':_0x3e818f[_0x310c('0x14')]?_[_0x310c('0x15')](_0x3e818f[_0x310c('0x14')],function(_0x316a5d){return{'model':db[_0x316a5d[_0x310c('0x16')]],'as':_0x316a5d['as'],'attributes':_0x316a5d['attributes'],'include':_0x316a5d[_0x310c('0x14')]?_[_0x310c('0x15')](_0x316a5d['include'],function(_0x582e7d){return{'model':db[_0x582e7d['model']],'as':_0x582e7d['as'],'attributes':_0x582e7d[_0x310c('0x12')]};}):[]};}):[]};}):[]:[]})[_0x310c('0x1e')](function(_0x4b1198){logger[_0x310c('0x1f')](_0x310c('0x1c'),_0x175eb8);logger[_0x310c('0x17')]('ShowUser',_0x175eb8,JSON[_0x310c('0x18')](_0x4b1198));_0x41c2d1(_0x4b1198);})['catch'](function(_0x579b53){logger[_0x310c('0x1a')](_0x310c('0x1c'),_0x579b53[_0x310c('0x1b')],_0x175eb8);_0x5ecb3e(_0x525c67[_0x310c('0x1a')](0x1f4,_0x579b53[_0x310c('0x1b')]));});});};exports['PauseUser']=function(_0x58b533){var _0x4e78cd=this;return new Promise(function(_0x3904b7,_0x35f9c9){var _0x4ad6f1;return db[_0x310c('0xd')]['find']({'where':_0x58b533[_0x310c('0xf')][_0x310c('0x11')]||{},'attributes':['id',_0x310c('0x20'),'role',_0x310c('0x21'),_0x310c('0x22')]})['then'](function(_0x47bb37){if(_0x47bb37){_0x4ad6f1=_0x47bb37;return db[_0x310c('0x23')][_0x310c('0x24')]({'paused':0x1},{'where':{'UserId':_0x4ad6f1['id']},'individualHooks':!![]});}})[_0x310c('0x1e')](function(){if(_0x4ad6f1){return db[_0x310c('0x25')][_0x310c('0xe')]({'where':{'membername':_0x4ad6f1[_0x310c('0x20')],'type':_0x310c('0x26'),'exitAt':null}});}})[_0x310c('0x1e')](function(_0x43ae6c){if(_0x4ad6f1){if(_0x43ae6c&&_0x43ae6c['length']){var _0xa0fa97=moment()[_0x310c('0x27')]('YYYY-MM-DD\x20HH:mm:ss');for(var _0x38dbb5=0x0,_0x4394a2=_0x43ae6c[_0x310c('0x28')];_0x38dbb5<_0x4394a2;_0x38dbb5++){_0x43ae6c[_0x38dbb5][_0x310c('0x29')]({'exitAt':_0xa0fa97});}}}})[_0x310c('0x1e')](function(){if(_0x4ad6f1){var _0x1e9945=[];var _0x3c66ba=utils[_0x310c('0x2a')]();_0x3c66ba['forEach'](function(_0x3475b3){_0x1e9945['push']({'channel':_0x3475b3,'membername':_0x4ad6f1[_0x310c('0x20')],'interface':_[_0x310c('0x2b')](_0x4ad6f1[_0x310c('0x22')])?util['format']('SIP/%s',_0x4ad6f1[_0x310c('0x20')]):_0x4ad6f1[_0x310c('0x22')],'type':_0x310c('0x26'),'enterAt':moment()[_0x310c('0x27')](_0x310c('0x2c')),'data1':_0x58b533[_0x310c('0x2d')][_0x310c('0x2e')]||_0x310c('0x2f'),'role':_0x4ad6f1[_0x310c('0x30')],'internal':_0x4ad6f1[_0x310c('0x21')],'uniqueid':_0x58b533[_0x310c('0x2d')]['uniqueid']||null});});return db[_0x310c('0x25')][_0x310c('0x31')](_0x1e9945,{'individualHooks':!![]});}})['then'](function(){if(_0x4ad6f1){return _0x4ad6f1[_0x310c('0x24')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x58b533[_0x310c('0x2d')][_0x310c('0x2e')]||_0x310c('0x2f'),'lastPauseAt':moment()[_0x310c('0x27')](_0x310c('0x2c'))});}})['then'](function(_0x5ca602){_0x3904b7(_0x5ca602);})[_0x310c('0x19')](function(_0x371771){_0x35f9c9(_0x4e78cd[_0x310c('0x1a')](0x1f4,_0x371771[_0x310c('0x1b')]));});});};exports['UnpauseUser']=function(_0xc2cfbd){var _0x384a31=this;return new Promise(function(_0x24edc5,_0x81e112){if(_0xc2cfbd[_0x310c('0x2d')]['channel']&&!utils['isValidChannel'](_0xc2cfbd['body'][_0x310c('0x32')])){throw new Error(util[_0x310c('0x27')](_0x310c('0x33'),_0xc2cfbd['body'][_0x310c('0x32')]));}return db[_0x310c('0xd')]['findOne']({'where':_0xc2cfbd[_0x310c('0xf')][_0x310c('0x11')]||{},'attributes':['id','name','role',_0x310c('0x21'),'interface',_0x310c('0x34'),_0x310c('0x35'),_0x310c('0x36'),_0x310c('0x37'),_0x310c('0x38'),'openchannelPause',_0x310c('0x39'),_0x310c('0x3a'),_0x310c('0x3b'),'lastPauseAt']})['then'](function(_0x571743){if(!_0x571743){throw new Error(util[_0x310c('0x27')](_0x310c('0x3c'),_0xc2cfbd[_0x310c('0x3d')]['id']));}return _0x571743[_0x310c('0x3e')](_0xc2cfbd[_0x310c('0x2d')][_0x310c('0x32')],_0x310c('0x3f'));})[_0x310c('0x1e')](function(_0x2fa6b9){_0x24edc5(_0x2fa6b9);})[_0x310c('0x19')](function(_0x5da911){_0x81e112(_0x384a31[_0x310c('0x1a')](0x1f4,_0x5da911[_0x310c('0x1b')]));});});};exports[_0x310c('0x40')]=function(_0x1c1fef){var _0x15c2ef=this;return new Promise(function(_0xfef816,_0x1fbc46){var _0x3753c9;return db[_0x310c('0xd')]['findOne']({'where':_0x1c1fef[_0x310c('0xf')][_0x310c('0x11')]||{},'attributes':['id','name']})[_0x310c('0x1e')](function(_0x50c2af){if(_0x50c2af){_0x3753c9=_0x50c2af;return db[_0x310c('0x23')]['destroy']({'where':{'membername':_0x3753c9['name']},'individualHooks':!![]});}})[_0x310c('0x1e')](function(){if(_0x3753c9){return db['MemberReport'][_0x310c('0xe')]({'where':{'membername':_0x3753c9['name'],'exitAt':null}});}})[_0x310c('0x1e')](function(_0x2f3b2e){if(_0x3753c9){if(_0x2f3b2e&&_0x2f3b2e['length']){var _0x1e615c=[];_0x2f3b2e[_0x310c('0x41')](function(_0x5ef06a){_0x1e615c[_0x310c('0x42')](_0x5ef06a['update']({'exitAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise[_0x310c('0x43')](_0x1e615c);}}})[_0x310c('0x1e')](function(){if(_0x3753c9){return _0x3753c9[_0x310c('0x24')]({'online':![],'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0x310c('0x1e')](function(_0x14fe87){_0xfef816(_0x14fe87);})['catch'](function(_0x5c3c4b){_0x1fbc46(_0x15c2ef['error'](0x1f4,_0x5c3c4b[_0x310c('0x1b')]));});});};exports[_0x310c('0x44')]=function(_0x1a8c48){var _0x4628c3=this;return new Promise(function(_0x11ddab,_0x4ee975){var _0x225a58;var _0x12d175;var _0x3732f6;var _0x2cf52a;return db[_0x310c('0xd')][_0x310c('0x45')]({'where':_0x1a8c48[_0x310c('0xf')][_0x310c('0x11')]||{},'attributes':['id','name',_0x310c('0x30'),_0x310c('0x46'),_0x310c('0x47'),_0x310c('0x21'),_0x310c('0x48'),_0x310c('0x22')]})[_0x310c('0x1e')](function(_0x416b22){if(_0x416b22){_0x225a58=_0x416b22;_0x2cf52a=_0x1a8c48['body'][_0x310c('0x22')]?_0x1a8c48[_0x310c('0x2d')]['interface']:util[_0x310c('0x27')](_0x310c('0x49'),_0x225a58[_0x310c('0x20')]);return db[_0x310c('0xd')][_0x310c('0x4a')]({'where':{'role':'agent','online':!![],'id':{'$ne':_0x225a58['id']}}});}})['then'](function(_0x2864be){if(_0x2864be){_0x3732f6=_0x2864be;return require(_0x310c('0x4b'))[_0x310c('0x4c')]();}})['then'](function(_0xbe8c06){if(_0xbe8c06&&_0xbe8c06[_0x310c('0x4d')]&&_0x3732f6>=_0xbe8c06['agents']){throw new Error(_0x310c('0x4e'));}})[_0x310c('0x1e')](function(){if(_0x225a58){return db[_0x310c('0x23')]['destroy']({'where':{'membername':_0x225a58[_0x310c('0x20')]},'individualHooks':!![]});}})[_0x310c('0x1e')](function(){if(_0x225a58){return _0x225a58['getVoiceQueues']({'raw':!![]});}})['then'](function(_0x433fc3){if(_0x225a58){if(_0x433fc3){var _0x31afc6=[];_0x12d175=_0x433fc3;if(_0x12d175['length']){for(var _0x42f533=0x0;_0x42f533<_0x12d175[_0x310c('0x28')];_0x42f533++){_0x31afc6[_0x310c('0x42')](db[_0x310c('0x23')]['upsert']({'membername':_0x225a58[_0x310c('0x20')],'UserId':_0x225a58['id'],'queue_name':_0x12d175[_0x42f533][_0x310c('0x20')],'VoiceQueueId':_0x12d175[_0x42f533]['id'],'interface':_0x2cf52a,'paused':_0x225a58[_0x310c('0x48')]||![],'penalty':_0x12d175[_0x42f533][_0x310c('0x4f')]||0x0}));}return BPromise['all'](_0x31afc6);}}}})[_0x310c('0x1e')](function(){if(_0x225a58){return db[_0x310c('0x25')][_0x310c('0xe')]({'where':{'membername':_0x225a58[_0x310c('0x20')],'exitAt':null}});}})[_0x310c('0x1e')](function(_0x30d735){if(_0x225a58){if(_0x30d735&&_0x30d735[_0x310c('0x28')]){var _0xd990ac=[];_0x30d735[_0x310c('0x41')](function(_0x53ab57){_0xd990ac[_0x310c('0x42')](_0x53ab57[_0x310c('0x24')]({'exitAt':moment()[_0x310c('0x27')](_0x310c('0x2c'))}));});return BPromise['all'](_0xd990ac);}}})[_0x310c('0x1e')](function(){if(_0x225a58){var _0x2949e1=[];var _0x18e2a3=[];var _0x11d368=utils[_0x310c('0x2a')]();var _0x32d9e7={'membername':_0x225a58[_0x310c('0x20')],'interface':_0x2cf52a,'enterAt':moment()[_0x310c('0x27')]('YYYY-MM-DD\x20HH:mm:ss'),'role':_0x225a58[_0x310c('0x30')],'internal':_0x225a58['internal']};_0x11d368[_0x310c('0x41')](function(_0x1d1a6a){_0x2949e1[_0x310c('0x42')](_['merge']({'channel':_0x1d1a6a,'type':'LOGIN','data1':'callysquare','data2':_0x2cf52a},_0x32d9e7));if(_0x225a58[_0x310c('0x48')]){_0x18e2a3[_0x310c('0x42')](_[_0x310c('0x50')]({'channel':_0x1d1a6a,'type':'PAUSE','data1':_0x310c('0x51')},_0x32d9e7));}});return db[_0x310c('0x25')][_0x310c('0x31')](_0x2949e1['concat'](_0x18e2a3),{'individualHooks':!![]});}})[_0x310c('0x1e')](function(){if(_0x225a58){return _0x225a58[_0x310c('0x24')]({'online':!![],'lastLoginAt':moment()[_0x310c('0x27')](_0x310c('0x2c')),'voicePause':_0x225a58[_0x310c('0x48')]||![],'mailPause':_0x225a58['loginInPause']||![],'chatPause':_0x225a58[_0x310c('0x48')]||![],'faxPause':_0x225a58['loginInPause']||![],'smsPause':_0x225a58['loginInPause']||![],'openchannelPause':_0x225a58[_0x310c('0x48')]||![],'pauseType':_0x225a58[_0x310c('0x48')]?_0x310c('0x51'):null,'lastPauseAt':moment()[_0x310c('0x27')]('YYYY-MM-DD\x20HH:mm:ss'),'interface':_0x2cf52a});}})['then'](function(_0x67e609){_0x11ddab(_0x67e609);})[_0x310c('0x19')](function(_0x451bc0){_0x4ee975(_0x4628c3['error'](0x1f4,_0x451bc0[_0x310c('0x1b')]));});});};