Built motion from commit (unavailable).|2.5.22
[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 _0x2d93=['attributes','limit','include','map','model','GetUser','ShowUser','User','raw','where','find','role','internal','UserVoiceQueueRt','update','name','PAUSE','length','format','YYYY-MM-DD\x20HH:mm:ss','push','interface','SIP/%s','body','DEFAULT\x20PAUSE','uniqueid','MemberReport','bulkCreate','type','UnpauseUser','findOne','channel','isValidChannel','Unknown\x20channel','voice','mail','chat','fax','sms','openchannel','system','set','Pause','forEach','all','mobile','loginInPause','count','agent','getLicense','agents','Maximum\x20login\x20has\x20been\x20reached','destroy','getVoiceQueues','getChannels','merge','LOGIN','callysquare','LOGININPAUSE','lodash','util','moment','bluebird','randomstring','ioredis','../../mysqldb','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','defaults','redis','localhost','socket.io-emitter','register','request','then','info','User,\x20%s,\x20%s','User,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','message','result','catch','findAll','options'];(function(_0x4ff876,_0x293d17){var _0x118ef3=function(_0x327708){while(--_0x327708){_0x4ff876['push'](_0x4ff876['shift']());}};_0x118ef3(++_0x293d17);}(_0x2d93,0xf3));var _0x32d9=function(_0xba1760,_0x191969){_0xba1760=_0xba1760-0x0;var _0x1f3143=_0x2d93[_0xba1760];return _0x1f3143;};'use strict';var _=require(_0x32d9('0x0'));var util=require(_0x32d9('0x1'));var moment=require(_0x32d9('0x2'));var BPromise=require(_0x32d9('0x3'));var rs=require(_0x32d9('0x4'));var fs=require('fs');var Redis=require(_0x32d9('0x5'));var db=require(_0x32d9('0x6'))['db'];var utils=require(_0x32d9('0x7'));var logger=require(_0x32d9('0x8'))(_0x32d9('0x9'));var config=require(_0x32d9('0xa'));var jayson=require(_0x32d9('0xb'));var client=jayson[_0x32d9('0xc')][_0x32d9('0xd')]({'port':0x232a});config['redis']=_[_0x32d9('0xe')](config[_0x32d9('0xf')],{'host':_0x32d9('0x10'),'port':0x18eb});var socket=require(_0x32d9('0x11'))(new Redis(config[_0x32d9('0xf')]));require('./user.socket')[_0x32d9('0x12')](socket);function respondWithRpcPromise(_0x46603b,_0x1d5f25,_0x3bb144){return new BPromise(function(_0x2babbf,_0x312988){return client[_0x32d9('0x13')](_0x46603b,_0x3bb144)[_0x32d9('0x14')](function(_0x2875cf){logger[_0x32d9('0x15')](_0x32d9('0x16'),_0x1d5f25,'request\x20sent');logger['debug'](_0x32d9('0x17'),_0x1d5f25,_0x32d9('0x18'),JSON[_0x32d9('0x19')](_0x2875cf));if(_0x2875cf[_0x32d9('0x1a')]){if(_0x2875cf[_0x32d9('0x1a')][_0x32d9('0x1b')]===0x1f4){logger[_0x32d9('0x1a')](_0x32d9('0x16'),_0x1d5f25,_0x2875cf[_0x32d9('0x1a')][_0x32d9('0x1c')]);return _0x312988(_0x2875cf[_0x32d9('0x1a')][_0x32d9('0x1c')]);}logger['error'](_0x32d9('0x16'),_0x1d5f25,_0x2875cf[_0x32d9('0x1a')]['message']);return _0x2babbf(_0x2875cf[_0x32d9('0x1a')][_0x32d9('0x1c')]);}else{logger[_0x32d9('0x15')](_0x32d9('0x16'),_0x1d5f25,_0x32d9('0x18'));_0x2babbf(_0x2875cf[_0x32d9('0x1d')][_0x32d9('0x1c')]);}})[_0x32d9('0x1e')](function(_0x1b006a){logger[_0x32d9('0x1a')]('User,\x20%s,\x20%s',_0x1d5f25,_0x1b006a);_0x312988(_0x1b006a);});});}exports['GetUser']=function(_0x43e296){var _0x34d483=this;return new Promise(function(_0x54e4ef,_0x13f8b0){return db['User'][_0x32d9('0x1f')]({'raw':_0x43e296[_0x32d9('0x20')]?_0x43e296['options']['raw']===undefined?!![]:![]:!![],'where':_0x43e296[_0x32d9('0x20')]?_0x43e296[_0x32d9('0x20')]['where']||null:null,'attributes':_0x43e296['options']?_0x43e296[_0x32d9('0x20')][_0x32d9('0x21')]||null:null,'limit':_0x43e296[_0x32d9('0x20')]?_0x43e296[_0x32d9('0x20')][_0x32d9('0x22')]||null:null,'include':_0x43e296['options']?_0x43e296[_0x32d9('0x20')][_0x32d9('0x23')]?_[_0x32d9('0x24')](_0x43e296[_0x32d9('0x20')]['include'],function(_0x27d6e0){return{'model':db[_0x27d6e0[_0x32d9('0x25')]],'as':_0x27d6e0['as'],'attributes':_0x27d6e0[_0x32d9('0x21')],'include':_0x27d6e0['include']?_[_0x32d9('0x24')](_0x27d6e0[_0x32d9('0x23')],function(_0x2dbc8c){return{'model':db[_0x2dbc8c[_0x32d9('0x25')]],'as':_0x2dbc8c['as'],'attributes':_0x2dbc8c['attributes'],'include':_0x2dbc8c[_0x32d9('0x23')]?_[_0x32d9('0x24')](_0x2dbc8c[_0x32d9('0x23')],function(_0x7e7582){return{'model':db[_0x7e7582['model']],'as':_0x7e7582['as'],'attributes':_0x7e7582['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x86269c){logger[_0x32d9('0x15')](_0x32d9('0x26'),_0x43e296);logger['debug'](_0x32d9('0x26'),_0x43e296,JSON[_0x32d9('0x19')](_0x86269c));_0x54e4ef(_0x86269c);})['catch'](function(_0x28dc4){logger[_0x32d9('0x1a')](_0x32d9('0x26'),_0x28dc4[_0x32d9('0x1c')],_0x43e296);_0x13f8b0(_0x34d483[_0x32d9('0x1a')](0x1f4,_0x28dc4['message']));});});};exports[_0x32d9('0x27')]=function(_0xf73fc5){var _0x28f5c6=this;return new Promise(function(_0x1dc799,_0x4e7fcb){return db[_0x32d9('0x28')]['find']({'raw':_0xf73fc5[_0x32d9('0x20')]?_0xf73fc5[_0x32d9('0x20')][_0x32d9('0x29')]===undefined?!![]:![]:!![],'where':_0xf73fc5[_0x32d9('0x20')]?_0xf73fc5[_0x32d9('0x20')][_0x32d9('0x2a')]||null:null,'attributes':_0xf73fc5[_0x32d9('0x20')]?_0xf73fc5[_0x32d9('0x20')][_0x32d9('0x21')]||null:null,'include':_0xf73fc5['options']?_0xf73fc5[_0x32d9('0x20')][_0x32d9('0x23')]?_[_0x32d9('0x24')](_0xf73fc5[_0x32d9('0x20')][_0x32d9('0x23')],function(_0x237afb){return{'model':db[_0x237afb[_0x32d9('0x25')]],'as':_0x237afb['as'],'attributes':_0x237afb[_0x32d9('0x21')],'include':_0x237afb[_0x32d9('0x23')]?_[_0x32d9('0x24')](_0x237afb['include'],function(_0x5f5291){return{'model':db[_0x5f5291[_0x32d9('0x25')]],'as':_0x5f5291['as'],'attributes':_0x5f5291[_0x32d9('0x21')],'include':_0x5f5291[_0x32d9('0x23')]?_[_0x32d9('0x24')](_0x5f5291[_0x32d9('0x23')],function(_0x2bfa2a){return{'model':db[_0x2bfa2a[_0x32d9('0x25')]],'as':_0x2bfa2a['as'],'attributes':_0x2bfa2a[_0x32d9('0x21')]};}):[]};}):[]};}):[]:[]})[_0x32d9('0x14')](function(_0x129264){logger['info'](_0x32d9('0x27'),_0xf73fc5);logger['debug']('ShowUser',_0xf73fc5,JSON[_0x32d9('0x19')](_0x129264));_0x1dc799(_0x129264);})[_0x32d9('0x1e')](function(_0x532195){logger[_0x32d9('0x1a')]('ShowUser',_0x532195[_0x32d9('0x1c')],_0xf73fc5);_0x4e7fcb(_0x28f5c6[_0x32d9('0x1a')](0x1f4,_0x532195[_0x32d9('0x1c')]));});});};exports['PauseUser']=function(_0x2271a8){var _0x4175b5=this;return new Promise(function(_0x2649d8,_0x39ff59){var _0x474e27;return db[_0x32d9('0x28')][_0x32d9('0x2b')]({'where':_0x2271a8[_0x32d9('0x20')]['where']||{},'attributes':['id','name',_0x32d9('0x2c'),_0x32d9('0x2d'),'interface']})[_0x32d9('0x14')](function(_0x2e10ab){if(_0x2e10ab){_0x474e27=_0x2e10ab;return db[_0x32d9('0x2e')][_0x32d9('0x2f')]({'paused':0x1},{'where':{'UserId':_0x474e27['id']},'individualHooks':!![]});}})['then'](function(){if(_0x474e27){return db['MemberReport'][_0x32d9('0x1f')]({'where':{'membername':_0x474e27[_0x32d9('0x30')],'type':_0x32d9('0x31'),'exitAt':null}});}})[_0x32d9('0x14')](function(_0x3ec2fd){if(_0x474e27){if(_0x3ec2fd&&_0x3ec2fd[_0x32d9('0x32')]){var _0x2090e0=moment()[_0x32d9('0x33')](_0x32d9('0x34'));for(var _0x4344dc=0x0,_0x56c419=_0x3ec2fd[_0x32d9('0x32')];_0x4344dc<_0x56c419;_0x4344dc++){_0x3ec2fd[_0x4344dc]['updateAttributes']({'exitAt':_0x2090e0});}}}})[_0x32d9('0x14')](function(){if(_0x474e27){var _0x376d46=[];var _0x209a05=utils['getChannels']();_0x209a05['forEach'](function(_0x4f6139){_0x376d46[_0x32d9('0x35')]({'channel':_0x4f6139,'membername':_0x474e27[_0x32d9('0x30')],'interface':_['isNil'](_0x474e27[_0x32d9('0x36')])?util['format'](_0x32d9('0x37'),_0x474e27['name']):_0x474e27[_0x32d9('0x36')],'type':_0x32d9('0x31'),'enterAt':moment()[_0x32d9('0x33')](_0x32d9('0x34')),'data1':_0x2271a8[_0x32d9('0x38')]['type']||_0x32d9('0x39'),'role':_0x474e27[_0x32d9('0x2c')],'internal':_0x474e27[_0x32d9('0x2d')],'uniqueid':_0x2271a8['body'][_0x32d9('0x3a')]||null});});return db[_0x32d9('0x3b')][_0x32d9('0x3c')](_0x376d46,{'individualHooks':!![]});}})[_0x32d9('0x14')](function(){if(_0x474e27){return _0x474e27[_0x32d9('0x2f')]({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'whatsappPause':!![],'pauseType':_0x2271a8['body'][_0x32d9('0x3d')]||_0x32d9('0x39'),'lastPauseAt':moment()[_0x32d9('0x33')](_0x32d9('0x34'))});}})['then'](function(_0x506c22){_0x2649d8(_0x506c22);})[_0x32d9('0x1e')](function(_0x9d223){_0x39ff59(_0x4175b5[_0x32d9('0x1a')](0x1f4,_0x9d223[_0x32d9('0x1c')]));});});};exports[_0x32d9('0x3e')]=function(_0x2af548){var _0x474090=this;return new Promise(function(_0x32aa5d,_0x4d468e){var _0x465192;return db[_0x32d9('0x28')][_0x32d9('0x3f')]({'where':_0x2af548['options']['where']||{},'attributes':['id',_0x32d9('0x30')]})[_0x32d9('0x14')](function(_0x3706b9){if(_0x3706b9){_0x465192=_0x3706b9;if(_0x2af548[_0x32d9('0x38')][_0x32d9('0x40')]&&!utils[_0x32d9('0x41')](_0x2af548['body']['channel'])){throw new Error(_0x32d9('0x42'));}switch(_0x2af548[_0x32d9('0x38')]['channel']){case _0x32d9('0x43'):return db[_0x32d9('0x2e')]['update']({'paused':0x0},{'where':{'UserId':_0x465192['id']}})[_0x32d9('0x14')](function(){return db[_0x32d9('0x3b')][_0x32d9('0x2b')]({'where':{'channel':_0x2af548[_0x32d9('0x38')][_0x32d9('0x40')],'membername':_0x465192[_0x32d9('0x30')],'type':'PAUSE','exitAt':null}});})[_0x32d9('0x14')](function(_0x29ec37){if(_0x29ec37){return _0x29ec37[_0x32d9('0x2f')]({'exitAt':moment()[_0x32d9('0x33')](_0x32d9('0x34')),'data2':'system'},{'individualHooks':!![]});}return null;})[_0x32d9('0x14')](function(){return _0x465192[_0x32d9('0x2f')]({'voicePause':![]});});case _0x32d9('0x44'):case _0x32d9('0x45'):case _0x32d9('0x46'):case _0x32d9('0x47'):case _0x32d9('0x48'):case'whatsapp':return db[_0x32d9('0x3b')][_0x32d9('0x2b')]({'where':{'channel':_0x2af548[_0x32d9('0x38')][_0x32d9('0x40')],'membername':_0x465192['name'],'type':'PAUSE','exitAt':null}})[_0x32d9('0x14')](function(_0x18d580){return _0x18d580[_0x32d9('0x2f')]({'exitAt':moment()[_0x32d9('0x33')]('YYYY-MM-DD\x20HH:mm:ss'),'data2':_0x32d9('0x49')},{'individualHooks':!![]});})[_0x32d9('0x14')](function(){var _0x5930dd={};_[_0x32d9('0x4a')](_0x5930dd,util['format']('%s%s',_0x2af548[_0x32d9('0x38')][_0x32d9('0x40')],_0x32d9('0x4b')),![]);return _0x465192[_0x32d9('0x2f')](_0x5930dd);});default:return db['UserVoiceQueueRt'][_0x32d9('0x2f')]({'paused':0x0},{'where':{'UserId':_0x465192['id']}})[_0x32d9('0x14')](function(){return db['MemberReport']['findAll']({'where':{'membername':_0x465192[_0x32d9('0x30')],'type':_0x32d9('0x31'),'exitAt':null}});})[_0x32d9('0x14')](function(_0x4e32a6){var _0x29f194=[];_0x4e32a6[_0x32d9('0x4c')](function(_0x3be14a){_0x29f194[_0x32d9('0x35')](_0x3be14a[_0x32d9('0x2f')]({'exitAt':moment()[_0x32d9('0x33')]('YYYY-MM-DD\x20HH:mm:ss'),'data2':_0x32d9('0x49')}));});return BPromise[_0x32d9('0x4d')](_0x29f194);})['then'](function(){return _0x465192['update']({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![],'whatsappPause':![]});});}}})[_0x32d9('0x14')](function(_0x19c616){_0x32aa5d(_0x19c616);})[_0x32d9('0x1e')](function(_0x87165a){_0x4d468e(_0x474090[_0x32d9('0x1a')](0x1f4,_0x87165a[_0x32d9('0x1c')]));});});};exports['LogoutUser']=function(_0x437e19){var _0x1baeff=this;return new Promise(function(_0xdc3e50,_0x3e137){var _0x4ff60e;return db[_0x32d9('0x28')][_0x32d9('0x3f')]({'where':_0x437e19['options']['where']||{},'attributes':['id',_0x32d9('0x30')]})[_0x32d9('0x14')](function(_0x2e0601){if(_0x2e0601){_0x4ff60e=_0x2e0601;return db[_0x32d9('0x2e')]['destroy']({'where':{'membername':_0x4ff60e['name']},'individualHooks':!![]});}})[_0x32d9('0x14')](function(){if(_0x4ff60e){return db[_0x32d9('0x3b')][_0x32d9('0x1f')]({'where':{'membername':_0x4ff60e[_0x32d9('0x30')],'exitAt':null}});}})[_0x32d9('0x14')](function(_0x675286){if(_0x4ff60e){if(_0x675286&&_0x675286[_0x32d9('0x32')]){var _0x4848e4=[];_0x675286[_0x32d9('0x4c')](function(_0x4a2dfe){_0x4848e4[_0x32d9('0x35')](_0x4a2dfe[_0x32d9('0x2f')]({'exitAt':moment()[_0x32d9('0x33')]('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise['all'](_0x4848e4);}}})[_0x32d9('0x14')](function(){if(_0x4ff60e){return _0x4ff60e[_0x32d9('0x2f')]({'online':![],'lastLoginAt':null,'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})['then'](function(_0x12fbc3){_0xdc3e50(_0x12fbc3);})[_0x32d9('0x1e')](function(_0x17e95e){_0x3e137(_0x1baeff['error'](0x1f4,_0x17e95e[_0x32d9('0x1c')]));});});};exports['LoginUser']=function(_0x250bea){var _0x53113b=this;return new Promise(function(_0x21f3ef,_0x2382c5){var _0x53ca35;var _0x510ffc;var _0x38dbb0;var _0xb2b170;return db[_0x32d9('0x28')][_0x32d9('0x3f')]({'where':_0x250bea[_0x32d9('0x20')][_0x32d9('0x2a')]||{},'attributes':['id',_0x32d9('0x30'),_0x32d9('0x2c'),_0x32d9('0x4e'),'phone','internal',_0x32d9('0x4f'),_0x32d9('0x36')]})[_0x32d9('0x14')](function(_0x3bc3f9){if(_0x3bc3f9){_0x53ca35=_0x3bc3f9;_0xb2b170=_0x250bea[_0x32d9('0x38')][_0x32d9('0x36')]?_0x250bea[_0x32d9('0x38')]['interface']:util[_0x32d9('0x33')](_0x32d9('0x37'),_0x53ca35[_0x32d9('0x30')]);return db[_0x32d9('0x28')][_0x32d9('0x50')]({'where':{'role':_0x32d9('0x51'),'online':!![],'id':{'$ne':_0x53ca35['id']}}});}})[_0x32d9('0x14')](function(_0xee492f){if(_0xee492f){_0x38dbb0=_0xee492f;return require('../../config/license/util')[_0x32d9('0x52')]();}})['then'](function(_0x4b7588){if(_0x4b7588&&_0x4b7588[_0x32d9('0x53')]&&_0x38dbb0>=_0x4b7588['agents']){throw new Error(_0x32d9('0x54'));}})[_0x32d9('0x14')](function(){if(_0x53ca35){return db[_0x32d9('0x2e')][_0x32d9('0x55')]({'where':{'membername':_0x53ca35[_0x32d9('0x30')]},'individualHooks':!![]});}})[_0x32d9('0x14')](function(){if(_0x53ca35){return _0x53ca35[_0x32d9('0x56')]({'raw':!![]});}})[_0x32d9('0x14')](function(_0x5b5d22){if(_0x53ca35){if(_0x5b5d22){var _0x193dee=[];_0x510ffc=_0x5b5d22;if(_0x510ffc['length']){for(var _0x4726dd=0x0;_0x4726dd<_0x510ffc[_0x32d9('0x32')];_0x4726dd++){_0x193dee['push'](db['UserVoiceQueueRt']['upsert']({'membername':_0x53ca35[_0x32d9('0x30')],'UserId':_0x53ca35['id'],'queue_name':_0x510ffc[_0x4726dd]['name'],'VoiceQueueId':_0x510ffc[_0x4726dd]['id'],'interface':_0xb2b170,'paused':_0x53ca35[_0x32d9('0x4f')]||![],'penalty':_0x510ffc[_0x4726dd]['UserVoiceQueue.penalty']||0x0}));}return BPromise[_0x32d9('0x4d')](_0x193dee);}}}})['then'](function(){if(_0x53ca35){return db['MemberReport']['findAll']({'where':{'membername':_0x53ca35[_0x32d9('0x30')],'exitAt':null}});}})[_0x32d9('0x14')](function(_0x5e99b5){if(_0x53ca35){if(_0x5e99b5&&_0x5e99b5[_0x32d9('0x32')]){var _0xd3fd19=[];_0x5e99b5['forEach'](function(_0x25def4){_0xd3fd19[_0x32d9('0x35')](_0x25def4[_0x32d9('0x2f')]({'exitAt':moment()[_0x32d9('0x33')]('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise[_0x32d9('0x4d')](_0xd3fd19);}}})[_0x32d9('0x14')](function(_0x519c8d){if(_0x53ca35){var _0x3df4e1=[];var _0x2b97f6=[];var _0x1aaaf5=utils[_0x32d9('0x57')]();var _0x157cbf={'membername':_0x53ca35['name'],'interface':_0xb2b170,'enterAt':moment()[_0x32d9('0x33')]('YYYY-MM-DD\x20HH:mm:ss'),'role':_0x53ca35['role'],'internal':_0x53ca35['internal']};_0x1aaaf5['forEach'](function(_0x1c133d){_0x3df4e1['push'](_[_0x32d9('0x58')]({'channel':_0x1c133d,'type':_0x32d9('0x59'),'data1':_0x32d9('0x5a'),'data2':_0xb2b170},_0x157cbf));if(_0x53ca35[_0x32d9('0x4f')]){_0x2b97f6[_0x32d9('0x35')](_[_0x32d9('0x58')]({'channel':_0x1c133d,'type':_0x32d9('0x31'),'data1':_0x32d9('0x5b')},_0x157cbf));}});return db['MemberReport'][_0x32d9('0x3c')](_0x3df4e1['concat'](_0x2b97f6),{'individualHooks':!![]});}})[_0x32d9('0x14')](function(){if(_0x53ca35){return _0x53ca35[_0x32d9('0x2f')]({'online':!![],'lastLoginAt':moment()[_0x32d9('0x33')](_0x32d9('0x34')),'voicePause':_0x53ca35[_0x32d9('0x4f')]||![],'mailPause':_0x53ca35['loginInPause']||![],'chatPause':_0x53ca35[_0x32d9('0x4f')]||![],'faxPause':_0x53ca35[_0x32d9('0x4f')]||![],'smsPause':_0x53ca35[_0x32d9('0x4f')]||![],'openchannelPause':_0x53ca35[_0x32d9('0x4f')]||![],'pauseType':_0x53ca35[_0x32d9('0x4f')]?_0x32d9('0x5b'):null,'lastPauseAt':moment()[_0x32d9('0x33')]('YYYY-MM-DD\x20HH:mm:ss'),'interface':_0xb2b170});}})[_0x32d9('0x14')](function(_0x2ab86d){_0x21f3ef(_0x2ab86d);})[_0x32d9('0x1e')](function(_0x3bbf8a){_0x2382c5(_0x53113b[_0x32d9('0x1a')](0x1f4,_0x3bbf8a[_0x32d9('0x1c')]));});});};