46fa099f7f27382d551d2002f26fbfe799a26860
[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 _0xb9d8=['cdr','[%s][members][cdr]','data1','data2','source','data3','destinationchannel','type','[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s','lodash','util','Local/_attended@transfer','Queue:','format','uniqueid','interface','channel','membername','getUserByInterface','name','internal','request','getUserByName','split','CreateMemberReport','[%s][members][writeDB]','startsWith','devicestatechange','debug','[%s][members][devicestatechange]','device','info','state','INUSE','voice','TALKING','now','agent','isNil','exitAt','duration','diffTime','error','agentcomplete','[%s][members][agentcomplete]','[%s][members][agentcomplete]\x20interface:%s\x20queue:%s','assign'];(function(_0x255031,_0x2ca18b){var _0x27e9f4=function(_0x37600e){while(--_0x37600e){_0x255031['push'](_0x255031['shift']());}};_0x27e9f4(++_0x2ca18b);}(_0xb9d8,0xf4));var _0x8b9d=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0xb9d8[_0x3dd15e];return _0x231fd0;};'use strict';var _=require(_0x8b9d('0x0'));var util=require(_0x8b9d('0x1'));var utils=require('./utils');var members={};var exclude=[_0x8b9d('0x2'),_0x8b9d('0x3')];function writeDB(_0x4de1a4){utils['info'](util[_0x8b9d('0x4')]('[%s][members][writeDB]\x20interface:%s\x20channel:%s\x20data2:%s\x20agent:%s\x20type:%s',_0x4de1a4[_0x8b9d('0x5')],_0x4de1a4[_0x8b9d('0x6')],_0x4de1a4[_0x8b9d('0x7')],_0x4de1a4['data2'],_0x4de1a4[_0x8b9d('0x8')],_0x4de1a4['type']));if(_0x4de1a4['interface']){utils[_0x8b9d('0x9')](_0x4de1a4[_0x8b9d('0x6')])['then'](function(_0x1efad4){if(_0x1efad4){_0x4de1a4['membername']=_0x1efad4[_0x8b9d('0xa')];_0x4de1a4['internal']=_0x1efad4[_0x8b9d('0xb')];utils[_0x8b9d('0xc')]('CreateMemberReport',_0x4de1a4);}else{utils[_0x8b9d('0xd')](_0x4de1a4[_0x8b9d('0x6')][_0x8b9d('0xe')]('/')[0x1])['then'](function(_0x6c4fb6){if(_0x6c4fb6){_0x4de1a4[_0x8b9d('0x8')]=_0x6c4fb6[_0x8b9d('0xa')];_0x4de1a4[_0x8b9d('0xb')]=_0x6c4fb6[_0x8b9d('0xb')];utils[_0x8b9d('0xc')](_0x8b9d('0xf'),_0x4de1a4);}});}})['catch'](function(_0x374087){utils['error'](util[_0x8b9d('0x4')](_0x8b9d('0x10'),_0x4de1a4[_0x8b9d('0x5')]),_0x374087);});}delete members[_0x4de1a4[_0x8b9d('0x6')]];}function startsWith(_0x40f9b1,_0x14a049){return _['some'](_0x40f9b1,function(_0x3cf246){return _[_0x8b9d('0x11')](_0x14a049,_0x3cf246);});}exports[_0x8b9d('0x12')]=function(_0xe8f97b){try{utils[_0x8b9d('0x13')](util[_0x8b9d('0x4')](_0x8b9d('0x14'),members[_0xe8f97b[_0x8b9d('0x15')]]?members[_0xe8f97b[_0x8b9d('0x15')]][_0x8b9d('0x5')]:_0xe8f97b[_0x8b9d('0x15')]),_0xe8f97b);utils[_0x8b9d('0x16')](util[_0x8b9d('0x4')]('[%s][members][devicestatechange]\x20state:%s\x20interface:%s',members[_0xe8f97b[_0x8b9d('0x15')]]?members[_0xe8f97b['device']][_0x8b9d('0x5')]:_0xe8f97b['device'],_0xe8f97b[_0x8b9d('0x17')],_0xe8f97b[_0x8b9d('0x15')]));switch(_0xe8f97b[_0x8b9d('0x17')]){case _0x8b9d('0x18'):case'BUSY':if(!startsWith(exclude,_0xe8f97b[_0x8b9d('0x15')])){members[_0xe8f97b[_0x8b9d('0x15')]]={'channel':_0x8b9d('0x19'),'interface':_0xe8f97b[_0x8b9d('0x15')],'type':_0x8b9d('0x1a'),'enterAt':utils[_0x8b9d('0x1b')](),'role':_0x8b9d('0x1c')};}break;case'NOT_INUSE':if(!_[_0x8b9d('0x1d')](members[_0xe8f97b['device']])){members[_0xe8f97b[_0x8b9d('0x15')]][_0x8b9d('0x1e')]=utils[_0x8b9d('0x1b')]();members[_0xe8f97b[_0x8b9d('0x15')]][_0x8b9d('0x1f')]=utils[_0x8b9d('0x20')](members[_0xe8f97b[_0x8b9d('0x15')]]['exitAt'],members[_0xe8f97b[_0x8b9d('0x15')]]['enterAt']);if(members[_0xe8f97b['device']][_0x8b9d('0x5')]){writeDB(members[_0xe8f97b[_0x8b9d('0x15')]]);}}break;default:break;}}catch(_0x43097d){utils[_0x8b9d('0x21')](util['format'](_0x8b9d('0x14'),members[_0xe8f97b[_0x8b9d('0x15')]]?members[_0xe8f97b['device']][_0x8b9d('0x5')]:_0xe8f97b[_0x8b9d('0x15')]),_0x43097d);}};exports[_0x8b9d('0x22')]=function(_0x4755a7){try{if(!_[_0x8b9d('0x1d')](members[_0x4755a7[_0x8b9d('0x6')]])){utils[_0x8b9d('0x13')](util['format'](_0x8b9d('0x23'),_0x4755a7['uniqueid']),_0x4755a7);utils[_0x8b9d('0x16')](util['format'](_0x8b9d('0x24'),_0x4755a7[_0x8b9d('0x5')],_0x4755a7['interface'],_0x4755a7['queue']));members[_0x4755a7[_0x8b9d('0x6')]]=_[_0x8b9d('0x25')](members[_0x4755a7['interface']],{'data4':_0x4755a7['queue'],'uniqueid':_0x4755a7[_0x8b9d('0x5')]});}}catch(_0x4f89ec){utils['error'](util[_0x8b9d('0x4')](_0x8b9d('0x23'),_0x4755a7[_0x8b9d('0x5')]),_0x4f89ec);}};exports[_0x8b9d('0x26')]=function(_0x5162a7){try{utils[_0x8b9d('0x13')](util[_0x8b9d('0x4')](_0x8b9d('0x27'),_0x5162a7[_0x8b9d('0x5')]),_0x5162a7);if(_0x5162a7[_0x8b9d('0x7')]){var _0x36285b=_0x5162a7['channel'][_0x8b9d('0xe')]('-')[0x0];if(!_[_0x8b9d('0x1d')](members[_0x36285b])){members[_0x36285b]=_[_0x8b9d('0x25')](members[_0x36285b],{'data1':members[_0x36285b][_0x8b9d('0x28')]||_0x5162a7['type'],'data2':members[_0x36285b][_0x8b9d('0x29')]||_0x5162a7[_0x8b9d('0x2a')],'data3':members[_0x36285b][_0x8b9d('0x2b')]||_0x5162a7['destination'],'uniqueid':members[_0x36285b][_0x8b9d('0x5')]||_0x5162a7[_0x8b9d('0x5')]});utils['info'](util[_0x8b9d('0x4')]('[%s][members][cdr]\x20type:%s\x20source:%s\x20destination:%s',_0x5162a7[_0x8b9d('0x5')],members[_0x36285b]['data1'],members[_0x36285b]['data2'],members[_0x36285b]['data3']));if(members[_0x36285b][_0x8b9d('0x1e')]){writeDB(members[_0x36285b]);}}}if(_0x5162a7[_0x8b9d('0x2c')]){var _0x3b258a=_0x5162a7[_0x8b9d('0x2c')][_0x8b9d('0xe')]('-')[0x0];if(!_[_0x8b9d('0x1d')](members[_0x3b258a])){members[_0x3b258a]=_['assign'](members[_0x3b258a],{'data1':members[_0x3b258a][_0x8b9d('0x28')]||_0x5162a7[_0x8b9d('0x2d')],'data2':members[_0x3b258a][_0x8b9d('0x29')]||_0x5162a7[_0x8b9d('0x2a')],'data3':members[_0x3b258a][_0x8b9d('0x2b')]||_0x5162a7['destination'],'uniqueid':members[_0x3b258a][_0x8b9d('0x5')]||_0x5162a7[_0x8b9d('0x5')]});utils[_0x8b9d('0x16')](util['format'](_0x8b9d('0x2e'),_0x5162a7[_0x8b9d('0x5')],members[_0x3b258a][_0x8b9d('0x28')],members[_0x3b258a][_0x8b9d('0x29')],members[_0x3b258a]['data3']));if(members[_0x3b258a][_0x8b9d('0x1e')]){writeDB(members[_0x3b258a]);}}}}catch(_0x59f80e){utils[_0x8b9d('0x21')](util[_0x8b9d('0x4')]('[%s][members][cdr]',_0x5162a7[_0x8b9d('0x5')]),_0x59f80e);}};