13c99aaf74aa78c9f8ebe2ff2b96a3cd0f7a9c7b
[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 _0xf4ce=['assign','data1','data3','destinationchannel','type','source','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','[%s][members][cdr]','lodash','util','./utils','info','format','uniqueid','channel','data2','membername','interface','name','internal','request','CreateMemberReport','getUserByName','then','catch','[%s][members][writeDB]','devicestatechange','debug','[%s][members][devicestatechange]','device','[%s][members][devicestatechange]\x20state:%s\x20interface:%s','state','INUSE','BUSY','voice','TALKING','now','NOT_INUSE','exitAt','duration','diffTime','enterAt','error','agentcomplete','isNil','[%s][members][agentcomplete]','queue','cdr','split'];(function(_0xef8146,_0x459c34){var _0x5a6cb0=function(_0x2f84ec){while(--_0x2f84ec){_0xef8146['push'](_0xef8146['shift']());}};_0x5a6cb0(++_0x459c34);}(_0xf4ce,0xfd));var _0xef4c=function(_0x501510,_0x61caa9){_0x501510=_0x501510-0x0;var _0x1e6ee5=_0xf4ce[_0x501510];return _0x1e6ee5;};'use strict';var _=require(_0xef4c('0x0'));var util=require(_0xef4c('0x1'));var utils=require(_0xef4c('0x2'));var members={};var exclude=['Local/_attended@transfer','Queue:'];function writeDB(_0x4acb2d){utils[_0xef4c('0x3')](util[_0xef4c('0x4')]('[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s',_0x4acb2d[_0xef4c('0x5')],_0x4acb2d['interface'],_0x4acb2d[_0xef4c('0x6')],_0x4acb2d[_0xef4c('0x7')],_0x4acb2d[_0xef4c('0x8')],_0x4acb2d['type']));if(_0x4acb2d[_0xef4c('0x9')]){utils['getUserByInterface'](_0x4acb2d[_0xef4c('0x9')])['then'](function(_0x35bc42){if(_0x35bc42){_0x4acb2d[_0xef4c('0x8')]=_0x35bc42[_0xef4c('0xa')];_0x4acb2d[_0xef4c('0xb')]=_0x35bc42[_0xef4c('0xb')];utils[_0xef4c('0xc')](_0xef4c('0xd'),_0x4acb2d);}else{utils[_0xef4c('0xe')](_0x4acb2d[_0xef4c('0x9')]['split']('/')[0x1])[_0xef4c('0xf')](function(_0xecf913){if(_0xecf913){_0x4acb2d[_0xef4c('0x8')]=_0xecf913['name'];_0x4acb2d[_0xef4c('0xb')]=_0xecf913['internal'];utils[_0xef4c('0xc')](_0xef4c('0xd'),_0x4acb2d);}});}})[_0xef4c('0x10')](function(_0x3273da){utils['error'](util[_0xef4c('0x4')](_0xef4c('0x11'),_0x4acb2d[_0xef4c('0x5')]),_0x3273da);});}delete members[_0x4acb2d[_0xef4c('0x9')]];}function startsWith(_0x1799bb,_0x3e1532){return _['some'](_0x1799bb,function(_0x42b992){return _['startsWith'](_0x3e1532,_0x42b992);});}exports[_0xef4c('0x12')]=function(_0x3fa059){try{utils[_0xef4c('0x13')](util[_0xef4c('0x4')](_0xef4c('0x14'),members[_0x3fa059[_0xef4c('0x15')]]?members[_0x3fa059[_0xef4c('0x15')]][_0xef4c('0x5')]:_0x3fa059['device']),_0x3fa059);utils[_0xef4c('0x3')](util[_0xef4c('0x4')](_0xef4c('0x16'),members[_0x3fa059['device']]?members[_0x3fa059['device']][_0xef4c('0x5')]:_0x3fa059[_0xef4c('0x15')],_0x3fa059[_0xef4c('0x17')],_0x3fa059['device']));switch(_0x3fa059[_0xef4c('0x17')]){case _0xef4c('0x18'):case _0xef4c('0x19'):if(!startsWith(exclude,_0x3fa059[_0xef4c('0x15')])){members[_0x3fa059[_0xef4c('0x15')]]={'channel':_0xef4c('0x1a'),'interface':_0x3fa059['device'],'type':_0xef4c('0x1b'),'enterAt':utils[_0xef4c('0x1c')](),'role':'agent'};}break;case _0xef4c('0x1d'):if(!_['isNil'](members[_0x3fa059[_0xef4c('0x15')]])){members[_0x3fa059['device']][_0xef4c('0x1e')]=utils[_0xef4c('0x1c')]();members[_0x3fa059['device']][_0xef4c('0x1f')]=utils[_0xef4c('0x20')](members[_0x3fa059[_0xef4c('0x15')]][_0xef4c('0x1e')],members[_0x3fa059['device']][_0xef4c('0x21')]);if(members[_0x3fa059[_0xef4c('0x15')]][_0xef4c('0x5')]){writeDB(members[_0x3fa059[_0xef4c('0x15')]]);}}break;default:break;}}catch(_0x1d511c){utils[_0xef4c('0x22')](util[_0xef4c('0x4')]('[%s][members][devicestatechange]',members[_0x3fa059[_0xef4c('0x15')]]?members[_0x3fa059[_0xef4c('0x15')]][_0xef4c('0x5')]:_0x3fa059[_0xef4c('0x15')]),_0x1d511c);}};exports[_0xef4c('0x23')]=function(_0xb5d8d3){try{if(!_[_0xef4c('0x24')](members[_0xb5d8d3[_0xef4c('0x9')]])){utils[_0xef4c('0x13')](util[_0xef4c('0x4')](_0xef4c('0x25'),_0xb5d8d3[_0xef4c('0x5')]),_0xb5d8d3);utils[_0xef4c('0x3')](util[_0xef4c('0x4')]('[%s][members][agentcomplete]\x20interface:%s\x20queue:%s',_0xb5d8d3['uniqueid'],_0xb5d8d3[_0xef4c('0x9')],_0xb5d8d3[_0xef4c('0x26')]));members[_0xb5d8d3[_0xef4c('0x9')]]=_['assign'](members[_0xb5d8d3[_0xef4c('0x9')]],{'data4':_0xb5d8d3['queue'],'uniqueid':_0xb5d8d3[_0xef4c('0x5')]});}}catch(_0xe0c98){utils[_0xef4c('0x22')](util[_0xef4c('0x4')]('[%s][members][agentcomplete]',_0xb5d8d3[_0xef4c('0x5')]),_0xe0c98);}};exports[_0xef4c('0x27')]=function(_0x14eefd){try{utils['debug'](util[_0xef4c('0x4')]('[%s][members][cdr]',_0x14eefd[_0xef4c('0x5')]),_0x14eefd);if(_0x14eefd[_0xef4c('0x6')]){var _0x22b3a4=_0x14eefd[_0xef4c('0x6')][_0xef4c('0x28')]('-')[0x0];if(!_['isNil'](members[_0x22b3a4])){members[_0x22b3a4]=_[_0xef4c('0x29')](members[_0x22b3a4],{'data1':members[_0x22b3a4][_0xef4c('0x2a')]||_0x14eefd['type'],'data2':members[_0x22b3a4][_0xef4c('0x7')]||_0x14eefd['source'],'data3':members[_0x22b3a4][_0xef4c('0x2b')]||_0x14eefd['destination'],'uniqueid':members[_0x22b3a4][_0xef4c('0x5')]||_0x14eefd[_0xef4c('0x5')]});utils[_0xef4c('0x3')](util['format']('[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s',_0x14eefd[_0xef4c('0x5')],members[_0x22b3a4][_0xef4c('0x2a')],members[_0x22b3a4]['data2'],members[_0x22b3a4][_0xef4c('0x2b')]));if(members[_0x22b3a4][_0xef4c('0x1e')]){writeDB(members[_0x22b3a4]);}}}if(_0x14eefd[_0xef4c('0x2c')]){var _0x2e3a0e=_0x14eefd[_0xef4c('0x2c')][_0xef4c('0x28')]('-')[0x0];if(!_['isNil'](members[_0x2e3a0e])){members[_0x2e3a0e]=_[_0xef4c('0x29')](members[_0x2e3a0e],{'data1':members[_0x2e3a0e][_0xef4c('0x2a')]||_0x14eefd[_0xef4c('0x2d')],'data2':members[_0x2e3a0e][_0xef4c('0x7')]||_0x14eefd[_0xef4c('0x2e')],'data3':members[_0x2e3a0e][_0xef4c('0x2b')]||_0x14eefd['destination'],'uniqueid':members[_0x2e3a0e]['uniqueid']||_0x14eefd[_0xef4c('0x5')]});utils[_0xef4c('0x3')](util[_0xef4c('0x4')](_0xef4c('0x2f'),_0x14eefd['uniqueid'],members[_0x2e3a0e][_0xef4c('0x2a')],members[_0x2e3a0e][_0xef4c('0x7')],members[_0x2e3a0e][_0xef4c('0x2b')]));if(members[_0x2e3a0e][_0xef4c('0x1e')]){writeDB(members[_0x2e3a0e]);}}}}catch(_0xca1a46){utils[_0xef4c('0x22')](util[_0xef4c('0x4')](_0xef4c('0x30'),_0x14eefd[_0xef4c('0x5')]),_0xca1a46);}};