dc385d171ddebd1a6e9c02025a7ad1f876af15ab
[motion2.git] / server / services / xdr / members.controller.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 _0x8584=['device','voice','TALKING','now','agent','NOT_INUSE','duration','exitAt','enterAt','[%s][members][devicestatechange]','agentcomplete','isNil','[%s][members][agentcomplete]','[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','queue','assign','cdr','channel','data1','source','data3','destination','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','destinationchannel','[%s][members][cdr]','util','./utils','Local/_attended@transfer','Queue:','format','uniqueid','interface','data2','membername','type','getUserByInterface','then','name','internal','CreateMemberReport','getUserByName','split','error','startsWith','devicestatechange','debug','info','[%s][members][devicestatechange]\x20state:%s\x20interface:%s','state','INUSE','BUSY'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x8584,0x1e4));var _0x4858=function(_0x3947c9,_0x4d6c97){_0x3947c9=_0x3947c9-0x0;var _0x2e7871=_0x8584[_0x3947c9];return _0x2e7871;};'use strict';var _=require('lodash');var util=require(_0x4858('0x0'));var utils=require(_0x4858('0x1'));var members={};var exclude=[_0x4858('0x2'),_0x4858('0x3')];function writeDB(_0x5cc25){utils['info'](util[_0x4858('0x4')]('[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s',_0x5cc25[_0x4858('0x5')],_0x5cc25[_0x4858('0x6')],_0x5cc25['channel'],_0x5cc25[_0x4858('0x7')],_0x5cc25[_0x4858('0x8')],_0x5cc25[_0x4858('0x9')]));if(_0x5cc25[_0x4858('0x6')]){utils[_0x4858('0xa')](_0x5cc25[_0x4858('0x6')])[_0x4858('0xb')](function(_0x384e81){if(_0x384e81){_0x5cc25[_0x4858('0x8')]=_0x384e81[_0x4858('0xc')];_0x5cc25[_0x4858('0xd')]=_0x384e81[_0x4858('0xd')];utils['request'](_0x4858('0xe'),_0x5cc25);}else{utils[_0x4858('0xf')](_0x5cc25[_0x4858('0x6')][_0x4858('0x10')]('/')[0x1])['then'](function(_0x5e2c52){if(_0x5e2c52){_0x5cc25['membername']=_0x5e2c52[_0x4858('0xc')];_0x5cc25[_0x4858('0xd')]=_0x5e2c52[_0x4858('0xd')];utils['request'](_0x4858('0xe'),_0x5cc25);}});}})['catch'](function(_0x19fd1b){utils[_0x4858('0x11')](util[_0x4858('0x4')]('[%s][members][writeDB]',_0x5cc25[_0x4858('0x5')]),_0x19fd1b);});}delete members[_0x5cc25[_0x4858('0x6')]];}function startsWith(_0x909b4f,_0x420cdb){return _['some'](_0x909b4f,function(_0x4ce82){return _[_0x4858('0x12')](_0x420cdb,_0x4ce82);});}exports[_0x4858('0x13')]=function(_0x48bf2b){try{utils[_0x4858('0x14')](util[_0x4858('0x4')]('[%s][members][devicestatechange]',_0x48bf2b[_0x4858('0x5')]),_0x48bf2b);utils[_0x4858('0x15')](util[_0x4858('0x4')](_0x4858('0x16'),_0x48bf2b[_0x4858('0x5')],_0x48bf2b['state'],_0x48bf2b['device']));switch(_0x48bf2b[_0x4858('0x17')]){case _0x4858('0x18'):case _0x4858('0x19'):if(!startsWith(exclude,_0x48bf2b[_0x4858('0x1a')])){members[_0x48bf2b[_0x4858('0x1a')]]={'channel':_0x4858('0x1b'),'interface':_0x48bf2b['device'],'type':_0x4858('0x1c'),'enterAt':utils[_0x4858('0x1d')](),'role':_0x4858('0x1e')};}break;case _0x4858('0x1f'):if(!_['isNil'](members[_0x48bf2b[_0x4858('0x1a')]])){members[_0x48bf2b[_0x4858('0x1a')]]['exitAt']=utils[_0x4858('0x1d')]();members[_0x48bf2b[_0x4858('0x1a')]][_0x4858('0x20')]=utils['diffTime'](members[_0x48bf2b['device']][_0x4858('0x21')],members[_0x48bf2b['device']][_0x4858('0x22')]);if(members[_0x48bf2b[_0x4858('0x1a')]]['uniqueid']){writeDB(members[_0x48bf2b[_0x4858('0x1a')]]);}}default:break;}}catch(_0x334718){utils[_0x4858('0x11')](util[_0x4858('0x4')](_0x4858('0x23'),_0x48bf2b[_0x4858('0x5')]),_0x334718);}};exports[_0x4858('0x24')]=function(_0x59eea6){try{if(!_[_0x4858('0x25')](members[_0x59eea6[_0x4858('0x6')]])){utils[_0x4858('0x14')](util['format'](_0x4858('0x26'),_0x59eea6[_0x4858('0x5')]),_0x59eea6);utils[_0x4858('0x15')](util[_0x4858('0x4')](_0x4858('0x27'),_0x59eea6[_0x4858('0x5')],_0x59eea6['interface'],_0x59eea6[_0x4858('0x28')]));members[_0x59eea6[_0x4858('0x6')]]=_[_0x4858('0x29')](members[_0x59eea6[_0x4858('0x6')]],{'data4':_0x59eea6[_0x4858('0x28')],'uniqueid':_0x59eea6['uniqueid']});}}catch(_0xbf1a14){utils['error'](util[_0x4858('0x4')]('[%s][members][agentcomplete]',_0x59eea6[_0x4858('0x5')]),_0xbf1a14);}};exports[_0x4858('0x2a')]=function(_0x319715){try{utils['debug'](util[_0x4858('0x4')]('[%s][members][cdr]',_0x319715[_0x4858('0x5')]),_0x319715);if(_0x319715['channel']){var _0x5cffbd=_0x319715[_0x4858('0x2b')]['split']('-')[0x0];if(!_[_0x4858('0x25')](members[_0x5cffbd])){members[_0x5cffbd]=_[_0x4858('0x29')](members[_0x5cffbd],{'data1':members[_0x5cffbd][_0x4858('0x2c')]||_0x319715[_0x4858('0x9')],'data2':members[_0x5cffbd][_0x4858('0x7')]||_0x319715[_0x4858('0x2d')],'data3':members[_0x5cffbd][_0x4858('0x2e')]||_0x319715[_0x4858('0x2f')],'uniqueid':members[_0x5cffbd][_0x4858('0x5')]||_0x319715[_0x4858('0x5')]});utils['info'](util[_0x4858('0x4')](_0x4858('0x30'),_0x319715[_0x4858('0x5')],members[_0x5cffbd]['data1'],members[_0x5cffbd][_0x4858('0x7')],members[_0x5cffbd][_0x4858('0x2e')]));if(members[_0x5cffbd][_0x4858('0x21')]){writeDB(members[_0x5cffbd]);}}}if(_0x319715[_0x4858('0x31')]){var _0x31f022=_0x319715[_0x4858('0x31')]['split']('-')[0x0];if(!_[_0x4858('0x25')](members[_0x31f022])){members[_0x31f022]=_[_0x4858('0x29')](members[_0x31f022],{'data1':members[_0x31f022]['data1']||_0x319715[_0x4858('0x9')],'data2':members[_0x31f022][_0x4858('0x7')]||_0x319715[_0x4858('0x2d')],'data3':members[_0x31f022][_0x4858('0x2e')]||_0x319715[_0x4858('0x2f')],'uniqueid':members[_0x31f022][_0x4858('0x5')]||_0x319715[_0x4858('0x5')]});utils['info'](util[_0x4858('0x4')](_0x4858('0x30'),_0x319715[_0x4858('0x5')],members[_0x31f022][_0x4858('0x2c')],members[_0x31f022][_0x4858('0x7')],members[_0x31f022]['data3']));if(members[_0x31f022]['exitAt']){writeDB(members[_0x31f022]);}}}}catch(_0x500357){utils[_0x4858('0x11')](util[_0x4858('0x4')](_0x4858('0x32'),_0x319715[_0x4858('0x5')]),_0x500357);}};