Built motion from commit (unavailable).|2.5.4
[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 _0x5e2f=['find','then','PauseUser','where','internal','interface','update','findAll','name','PAUSE','length','format','updateAttributes','getChannels','forEach','push','SIP/%s','YYYY-MM-DD\x20HH:mm:ss','body','DEFAULT\x20PAUSE','role','uniqueid','MemberReport','type','findOne','isValidChannel','channel','voice','mail','system','%s%s','Pause','UserVoiceQueueRt','LogoutUser','destroy','LoginUser','mobile','loginInPause','agent','../../config/license/util','getLicense','agents','Maximum\x20login\x20has\x20been\x20reached','getVoiceQueues','upsert','UserVoiceQueue.penalty','all','LOGININPAUSE','bulkCreate','concat','lodash','bluebird','ioredis','../../config/utils','../../config/logger','rpc','../../config/environment','jayson/promise','client','http','redis','./user.socket','register','request','info','debug','User,\x20%s,\x20%s,\x20%s','request\x20sent','stringify','error','code','User,\x20%s,\x20%s','message','result','User','options','raw','include','map','attributes','model','GetUser','catch'];(function(_0x5507d1,_0x9cc156){var _0x333823=function(_0x10d329){while(--_0x10d329){_0x5507d1['push'](_0x5507d1['shift']());}};_0x333823(++_0x9cc156);}(_0x5e2f,0x1d1));var _0xf5e2=function(_0x56a2f2,_0x5c1825){_0x56a2f2=_0x56a2f2-0x0;var _0x2f1195=_0x5e2f[_0x56a2f2];return _0x2f1195;};'use strict';var _=require(_0xf5e2('0x0'));var util=require('util');var moment=require('moment');var BPromise=require(_0xf5e2('0x1'));var rs=require('randomstring');var fs=require('fs');var Redis=require(_0xf5e2('0x2'));var db=require('../../mysqldb')['db'];var utils=require(_0xf5e2('0x3'));var logger=require(_0xf5e2('0x4'))(_0xf5e2('0x5'));var config=require(_0xf5e2('0x6'));var jayson=require(_0xf5e2('0x7'));var client=jayson[_0xf5e2('0x8')][_0xf5e2('0x9')]({'port':0x232a});config[_0xf5e2('0xa')]=_['defaults'](config[_0xf5e2('0xa')],{'host':'localhost','port':0x18eb});var socket=require('socket.io-emitter')(new Redis(config[_0xf5e2('0xa')]));require(_0xf5e2('0xb'))[_0xf5e2('0xc')](socket);function respondWithRpcPromise(_0x274797,_0x156766,_0xdb641b){return new BPromise(function(_0xc12efb,_0x5085fa){return client[_0xf5e2('0xd')](_0x274797,_0xdb641b)['then'](function(_0x34eaf4){logger[_0xf5e2('0xe')]('User,\x20%s,\x20%s',_0x156766,'request\x20sent');logger[_0xf5e2('0xf')](_0xf5e2('0x10'),_0x156766,_0xf5e2('0x11'),JSON[_0xf5e2('0x12')](_0x34eaf4));if(_0x34eaf4['error']){if(_0x34eaf4[_0xf5e2('0x13')][_0xf5e2('0x14')]===0x1f4){logger[_0xf5e2('0x13')](_0xf5e2('0x15'),_0x156766,_0x34eaf4[_0xf5e2('0x13')]['message']);return _0x5085fa(_0x34eaf4[_0xf5e2('0x13')]['message']);}logger[_0xf5e2('0x13')]('User,\x20%s,\x20%s',_0x156766,_0x34eaf4[_0xf5e2('0x13')][_0xf5e2('0x16')]);return _0xc12efb(_0x34eaf4[_0xf5e2('0x13')][_0xf5e2('0x16')]);}else{logger[_0xf5e2('0xe')](_0xf5e2('0x15'),_0x156766,_0xf5e2('0x11'));_0xc12efb(_0x34eaf4[_0xf5e2('0x17')][_0xf5e2('0x16')]);}})['catch'](function(_0x79882f){logger[_0xf5e2('0x13')](_0xf5e2('0x15'),_0x156766,_0x79882f);_0x5085fa(_0x79882f);});});}exports['GetUser']=function(_0x184375){var _0x40746a=this;return new Promise(function(_0x4ccef3,_0x5f4f4e){return db[_0xf5e2('0x18')]['findAll']({'raw':_0x184375[_0xf5e2('0x19')]?_0x184375['options'][_0xf5e2('0x1a')]===undefined?!![]:![]:!![],'where':_0x184375['options']?_0x184375[_0xf5e2('0x19')]['where']||null:null,'attributes':_0x184375['options']?_0x184375['options']['attributes']||null:null,'limit':_0x184375[_0xf5e2('0x19')]?_0x184375[_0xf5e2('0x19')]['limit']||null:null,'include':_0x184375[_0xf5e2('0x19')]?_0x184375[_0xf5e2('0x19')][_0xf5e2('0x1b')]?_[_0xf5e2('0x1c')](_0x184375[_0xf5e2('0x19')][_0xf5e2('0x1b')],function(_0x543ac8){return{'model':db[_0x543ac8['model']],'as':_0x543ac8['as'],'attributes':_0x543ac8['attributes'],'include':_0x543ac8[_0xf5e2('0x1b')]?_[_0xf5e2('0x1c')](_0x543ac8[_0xf5e2('0x1b')],function(_0x53521d){return{'model':db[_0x53521d['model']],'as':_0x53521d['as'],'attributes':_0x53521d[_0xf5e2('0x1d')],'include':_0x53521d[_0xf5e2('0x1b')]?_[_0xf5e2('0x1c')](_0x53521d[_0xf5e2('0x1b')],function(_0xbd9429){return{'model':db[_0xbd9429[_0xf5e2('0x1e')]],'as':_0xbd9429['as'],'attributes':_0xbd9429['attributes']};}):[]};}):[]};}):[]:[]})['then'](function(_0x2ecb2a){logger[_0xf5e2('0xe')](_0xf5e2('0x1f'),_0x184375);logger['debug'](_0xf5e2('0x1f'),_0x184375,JSON[_0xf5e2('0x12')](_0x2ecb2a));_0x4ccef3(_0x2ecb2a);})[_0xf5e2('0x20')](function(_0x2d70cc){logger[_0xf5e2('0x13')]('GetUser',_0x2d70cc[_0xf5e2('0x16')],_0x184375);_0x5f4f4e(_0x40746a[_0xf5e2('0x13')](0x1f4,_0x2d70cc[_0xf5e2('0x16')]));});});};exports['ShowUser']=function(_0x38f9b5){var _0x155960=this;return new Promise(function(_0x23f785,_0x4f7b69){return db[_0xf5e2('0x18')][_0xf5e2('0x21')]({'raw':_0x38f9b5[_0xf5e2('0x19')]?_0x38f9b5[_0xf5e2('0x19')][_0xf5e2('0x1a')]===undefined?!![]:![]:!![],'where':_0x38f9b5[_0xf5e2('0x19')]?_0x38f9b5[_0xf5e2('0x19')]['where']||null:null,'attributes':_0x38f9b5[_0xf5e2('0x19')]?_0x38f9b5['options'][_0xf5e2('0x1d')]||null:null,'include':_0x38f9b5['options']?_0x38f9b5[_0xf5e2('0x19')]['include']?_[_0xf5e2('0x1c')](_0x38f9b5[_0xf5e2('0x19')]['include'],function(_0x4b285d){return{'model':db[_0x4b285d[_0xf5e2('0x1e')]],'as':_0x4b285d['as'],'attributes':_0x4b285d['attributes'],'include':_0x4b285d[_0xf5e2('0x1b')]?_[_0xf5e2('0x1c')](_0x4b285d[_0xf5e2('0x1b')],function(_0x49ecd9){return{'model':db[_0x49ecd9['model']],'as':_0x49ecd9['as'],'attributes':_0x49ecd9[_0xf5e2('0x1d')],'include':_0x49ecd9[_0xf5e2('0x1b')]?_[_0xf5e2('0x1c')](_0x49ecd9[_0xf5e2('0x1b')],function(_0x20ad36){return{'model':db[_0x20ad36[_0xf5e2('0x1e')]],'as':_0x20ad36['as'],'attributes':_0x20ad36['attributes']};}):[]};}):[]};}):[]:[]})[_0xf5e2('0x22')](function(_0x18c7fa){logger[_0xf5e2('0xe')]('ShowUser',_0x38f9b5);logger[_0xf5e2('0xf')]('ShowUser',_0x38f9b5,JSON['stringify'](_0x18c7fa));_0x23f785(_0x18c7fa);})['catch'](function(_0x2e84a4){logger['error']('ShowUser',_0x2e84a4['message'],_0x38f9b5);_0x4f7b69(_0x155960['error'](0x1f4,_0x2e84a4['message']));});});};exports[_0xf5e2('0x23')]=function(_0x19b6eb){var _0x3f2cf9=this;return new Promise(function(_0x390e31,_0x17ca0a){var _0x3df015;return db['User'][_0xf5e2('0x21')]({'where':_0x19b6eb[_0xf5e2('0x19')][_0xf5e2('0x24')]||{},'attributes':['id','name','role',_0xf5e2('0x25'),_0xf5e2('0x26')]})[_0xf5e2('0x22')](function(_0x1bde5c){if(_0x1bde5c){_0x3df015=_0x1bde5c;return db['UserVoiceQueueRt'][_0xf5e2('0x27')]({'paused':0x1},{'where':{'UserId':_0x3df015['id']},'individualHooks':!![]});}})[_0xf5e2('0x22')](function(){if(_0x3df015){return db['MemberReport'][_0xf5e2('0x28')]({'where':{'membername':_0x3df015[_0xf5e2('0x29')],'type':_0xf5e2('0x2a'),'exitAt':null}});}})[_0xf5e2('0x22')](function(_0x3fc1c6){if(_0x3df015){if(_0x3fc1c6&&_0x3fc1c6[_0xf5e2('0x2b')]){var _0x18c1e7=moment()[_0xf5e2('0x2c')]('YYYY-MM-DD\x20HH:mm:ss');for(var _0x12e381=0x0,_0x50db2d=_0x3fc1c6[_0xf5e2('0x2b')];_0x12e381<_0x50db2d;_0x12e381++){_0x3fc1c6[_0x12e381][_0xf5e2('0x2d')]({'exitAt':_0x18c1e7});}}}})[_0xf5e2('0x22')](function(){if(_0x3df015){var _0x4dcc3e=[];var _0x4e38de=utils[_0xf5e2('0x2e')]();_0x4e38de[_0xf5e2('0x2f')](function(_0x54d7b6){_0x4dcc3e[_0xf5e2('0x30')]({'channel':_0x54d7b6,'membername':_0x3df015[_0xf5e2('0x29')],'interface':_['isNil'](_0x3df015[_0xf5e2('0x26')])?util[_0xf5e2('0x2c')](_0xf5e2('0x31'),_0x3df015[_0xf5e2('0x29')]):_0x3df015[_0xf5e2('0x26')],'type':_0xf5e2('0x2a'),'enterAt':moment()[_0xf5e2('0x2c')](_0xf5e2('0x32')),'data1':_0x19b6eb[_0xf5e2('0x33')]['type']||_0xf5e2('0x34'),'role':_0x3df015[_0xf5e2('0x35')],'internal':_0x3df015[_0xf5e2('0x25')],'uniqueid':_0x19b6eb[_0xf5e2('0x33')][_0xf5e2('0x36')]||null});});return db[_0xf5e2('0x37')]['bulkCreate'](_0x4dcc3e,{'individualHooks':!![]});}})['then'](function(){if(_0x3df015){return _0x3df015['update']({'voicePause':!![],'mailPause':!![],'chatPause':!![],'faxPause':!![],'smsPause':!![],'openchannelPause':!![],'pauseType':_0x19b6eb[_0xf5e2('0x33')][_0xf5e2('0x38')]||_0xf5e2('0x34'),'lastPauseAt':moment()[_0xf5e2('0x2c')](_0xf5e2('0x32'))});}})[_0xf5e2('0x22')](function(_0x1fd628){_0x390e31(_0x1fd628);})[_0xf5e2('0x20')](function(_0x568ae7){_0x17ca0a(_0x3f2cf9[_0xf5e2('0x13')](0x1f4,_0x568ae7[_0xf5e2('0x16')]));});});};exports['UnpauseUser']=function(_0x242898){var _0x3a7fdc=this;return new Promise(function(_0x260063,_0x1dc5e6){var _0x20c2dc;return db[_0xf5e2('0x18')][_0xf5e2('0x39')]({'where':_0x242898[_0xf5e2('0x19')][_0xf5e2('0x24')]||{},'attributes':['id',_0xf5e2('0x29')]})[_0xf5e2('0x22')](function(_0x21fed5){if(_0x21fed5){_0x20c2dc=_0x21fed5;if(_0x242898[_0xf5e2('0x33')]['channel']&&!utils[_0xf5e2('0x3a')](_0x242898[_0xf5e2('0x33')][_0xf5e2('0x3b')])){throw new Error('Unknown\x20channel');}switch(_0x242898[_0xf5e2('0x33')][_0xf5e2('0x3b')]){case _0xf5e2('0x3c'):return db['UserVoiceQueueRt'][_0xf5e2('0x27')]({'paused':0x0},{'where':{'UserId':_0x20c2dc['id']}})[_0xf5e2('0x22')](function(){return db[_0xf5e2('0x37')]['find']({'where':{'channel':_0x242898[_0xf5e2('0x33')][_0xf5e2('0x3b')],'membername':_0x20c2dc[_0xf5e2('0x29')],'type':_0xf5e2('0x2a'),'exitAt':null}});})[_0xf5e2('0x22')](function(_0x56d222){if(_0x56d222){return _0x56d222['update']({'exitAt':moment()[_0xf5e2('0x2c')](_0xf5e2('0x32')),'data2':'system'},{'individualHooks':!![]});}return null;})[_0xf5e2('0x22')](function(){return _0x20c2dc[_0xf5e2('0x27')]({'voicePause':![]});});case _0xf5e2('0x3d'):case'chat':case'fax':case'sms':case'openchannel':return db[_0xf5e2('0x37')]['find']({'where':{'channel':_0x242898[_0xf5e2('0x33')][_0xf5e2('0x3b')],'membername':_0x20c2dc['name'],'type':'PAUSE','exitAt':null}})[_0xf5e2('0x22')](function(_0x2f44c0){return _0x2f44c0[_0xf5e2('0x27')]({'exitAt':moment()[_0xf5e2('0x2c')](_0xf5e2('0x32')),'data2':_0xf5e2('0x3e')},{'individualHooks':!![]});})[_0xf5e2('0x22')](function(){var _0x1c4e80={};_['set'](_0x1c4e80,util['format'](_0xf5e2('0x3f'),_0x242898['body'][_0xf5e2('0x3b')],_0xf5e2('0x40')),![]);return _0x20c2dc['update'](_0x1c4e80);});default:return db[_0xf5e2('0x41')][_0xf5e2('0x27')]({'paused':0x0},{'where':{'UserId':_0x20c2dc['id']}})[_0xf5e2('0x22')](function(){return db[_0xf5e2('0x37')]['findAll']({'where':{'membername':_0x20c2dc[_0xf5e2('0x29')],'type':_0xf5e2('0x2a'),'exitAt':null}});})['then'](function(_0x2f1592){var _0x4e6206=[];_0x2f1592[_0xf5e2('0x2f')](function(_0x2a90d1){_0x4e6206[_0xf5e2('0x30')](_0x2a90d1[_0xf5e2('0x27')]({'exitAt':moment()[_0xf5e2('0x2c')]('YYYY-MM-DD\x20HH:mm:ss'),'data2':_0xf5e2('0x3e')}));});return BPromise['all'](_0x4e6206);})[_0xf5e2('0x22')](function(){return _0x20c2dc[_0xf5e2('0x27')]({'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});});}}})[_0xf5e2('0x22')](function(_0x1ec750){_0x260063(_0x1ec750);})[_0xf5e2('0x20')](function(_0x1d830a){_0x1dc5e6(_0x3a7fdc[_0xf5e2('0x13')](0x1f4,_0x1d830a[_0xf5e2('0x16')]));});});};exports[_0xf5e2('0x42')]=function(_0x756ca3){var _0x44dfa5=this;return new Promise(function(_0xc91f9c,_0x8ae535){var _0x11bcc3;return db['User']['findOne']({'where':_0x756ca3[_0xf5e2('0x19')][_0xf5e2('0x24')]||{},'attributes':['id','name']})['then'](function(_0x1dbe8d){if(_0x1dbe8d){_0x11bcc3=_0x1dbe8d;return db[_0xf5e2('0x41')][_0xf5e2('0x43')]({'where':{'membername':_0x11bcc3[_0xf5e2('0x29')]},'individualHooks':!![]});}})[_0xf5e2('0x22')](function(){if(_0x11bcc3){return db['MemberReport'][_0xf5e2('0x28')]({'where':{'membername':_0x11bcc3[_0xf5e2('0x29')],'exitAt':null}});}})[_0xf5e2('0x22')](function(_0x40ed56){if(_0x11bcc3){if(_0x40ed56&&_0x40ed56[_0xf5e2('0x2b')]){var _0x555bec=[];_0x40ed56['forEach'](function(_0x1d73eb){_0x555bec[_0xf5e2('0x30')](_0x1d73eb['update']({'exitAt':moment()[_0xf5e2('0x2c')](_0xf5e2('0x32'))}));});return BPromise['all'](_0x555bec);}}})[_0xf5e2('0x22')](function(){if(_0x11bcc3){return _0x11bcc3[_0xf5e2('0x27')]({'online':![],'lastLoginAt':null,'voicePause':![],'mailPause':![],'chatPause':![],'faxPause':![],'smsPause':![],'openchannelPause':![]});}})[_0xf5e2('0x22')](function(_0x1178e8){_0xc91f9c(_0x1178e8);})[_0xf5e2('0x20')](function(_0x30d270){_0x8ae535(_0x44dfa5[_0xf5e2('0x13')](0x1f4,_0x30d270['message']));});});};exports[_0xf5e2('0x44')]=function(_0x18182d){var _0x2d77ee=this;return new Promise(function(_0x85a096,_0x37d437){var _0xcaef67;var _0x50b278;var _0x21d9e7;var _0x4c4f39;return db[_0xf5e2('0x18')][_0xf5e2('0x39')]({'where':_0x18182d['options']['where']||{},'attributes':['id',_0xf5e2('0x29'),_0xf5e2('0x35'),_0xf5e2('0x45'),'phone',_0xf5e2('0x25'),_0xf5e2('0x46'),_0xf5e2('0x26')]})[_0xf5e2('0x22')](function(_0x137fcc){if(_0x137fcc){_0xcaef67=_0x137fcc;_0x4c4f39=_0x18182d[_0xf5e2('0x33')][_0xf5e2('0x26')]?_0x18182d[_0xf5e2('0x33')][_0xf5e2('0x26')]:util[_0xf5e2('0x2c')](_0xf5e2('0x31'),_0xcaef67['name']);return db[_0xf5e2('0x18')]['count']({'where':{'role':_0xf5e2('0x47'),'online':!![],'id':{'$ne':_0xcaef67['id']}}});}})[_0xf5e2('0x22')](function(_0x1ac626){if(_0x1ac626){_0x21d9e7=_0x1ac626;return require(_0xf5e2('0x48'))[_0xf5e2('0x49')]();}})[_0xf5e2('0x22')](function(_0xe76618){if(_0xe76618&&_0xe76618[_0xf5e2('0x4a')]&&_0x21d9e7>=_0xe76618[_0xf5e2('0x4a')]){throw new Error(_0xf5e2('0x4b'));}})[_0xf5e2('0x22')](function(){if(_0xcaef67){return db[_0xf5e2('0x41')][_0xf5e2('0x43')]({'where':{'membername':_0xcaef67[_0xf5e2('0x29')]},'individualHooks':!![]});}})[_0xf5e2('0x22')](function(){if(_0xcaef67){return _0xcaef67[_0xf5e2('0x4c')]({'raw':!![]});}})[_0xf5e2('0x22')](function(_0xd4a7c0){if(_0xcaef67){if(_0xd4a7c0){var _0x4a6ad6=[];_0x50b278=_0xd4a7c0;if(_0x50b278['length']){for(var _0x13b0c8=0x0;_0x13b0c8<_0x50b278['length'];_0x13b0c8++){_0x4a6ad6[_0xf5e2('0x30')](db['UserVoiceQueueRt'][_0xf5e2('0x4d')]({'membername':_0xcaef67['name'],'UserId':_0xcaef67['id'],'queue_name':_0x50b278[_0x13b0c8][_0xf5e2('0x29')],'VoiceQueueId':_0x50b278[_0x13b0c8]['id'],'interface':_0x4c4f39,'paused':_0xcaef67['loginInPause']||![],'penalty':_0x50b278[_0x13b0c8][_0xf5e2('0x4e')]||0x0}));}return BPromise[_0xf5e2('0x4f')](_0x4a6ad6);}}}})['then'](function(){if(_0xcaef67){return db['MemberReport']['findAll']({'where':{'membername':_0xcaef67['name'],'exitAt':null}});}})['then'](function(_0x514862){if(_0xcaef67){if(_0x514862&&_0x514862[_0xf5e2('0x2b')]){var _0x44fd07=[];_0x514862[_0xf5e2('0x2f')](function(_0x31a69d){_0x44fd07['push'](_0x31a69d[_0xf5e2('0x27')]({'exitAt':moment()['format']('YYYY-MM-DD\x20HH:mm:ss')}));});return BPromise['all'](_0x44fd07);}}})[_0xf5e2('0x22')](function(_0x4ce3d5){if(_0xcaef67){var _0x59fb19=[];var _0x27dbfb=[];var _0x153339=utils['getChannels']();var _0x29c852={'membername':_0xcaef67['name'],'interface':_0x4c4f39,'enterAt':moment()[_0xf5e2('0x2c')]('YYYY-MM-DD\x20HH:mm:ss'),'role':_0xcaef67[_0xf5e2('0x35')],'internal':_0xcaef67['internal']};_0x153339[_0xf5e2('0x2f')](function(_0x36728b){_0x59fb19['push'](_['merge']({'channel':_0x36728b,'type':'LOGIN','data1':'callysquare','data2':_0x4c4f39},_0x29c852));if(_0xcaef67[_0xf5e2('0x46')]){_0x27dbfb[_0xf5e2('0x30')](_['merge']({'channel':_0x36728b,'type':_0xf5e2('0x2a'),'data1':_0xf5e2('0x50')},_0x29c852));}});return db[_0xf5e2('0x37')][_0xf5e2('0x51')](_0x59fb19[_0xf5e2('0x52')](_0x27dbfb),{'individualHooks':!![]});}})[_0xf5e2('0x22')](function(){if(_0xcaef67){return _0xcaef67[_0xf5e2('0x27')]({'online':!![],'lastLoginAt':moment()[_0xf5e2('0x2c')](_0xf5e2('0x32')),'voicePause':_0xcaef67['loginInPause']||![],'mailPause':_0xcaef67['loginInPause']||![],'chatPause':_0xcaef67[_0xf5e2('0x46')]||![],'faxPause':_0xcaef67[_0xf5e2('0x46')]||![],'smsPause':_0xcaef67[_0xf5e2('0x46')]||![],'openchannelPause':_0xcaef67[_0xf5e2('0x46')]||![],'pauseType':_0xcaef67[_0xf5e2('0x46')]?_0xf5e2('0x50'):null,'lastPauseAt':moment()[_0xf5e2('0x2c')](_0xf5e2('0x32')),'interface':_0x4c4f39});}})[_0xf5e2('0x22')](function(_0x174218){_0x85a096(_0x174218);})['catch'](function(_0x500f98){_0x37d437(_0x2d77ee[_0xf5e2('0x13')](0x1f4,_0x500f98[_0xf5e2('0x16')]));});});};