91bf3698810c8821e5ef6182a4893a39a1def68e
[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 _0x2149=['channel','data2','type','getUserByInterface','then','membername','name','internal','getUserByName','split','request','CreateMemberReport','catch','error','some','startsWith','state','INUSE','device','voice','agent','NOT_INUSE','isNil','exitAt','now','duration','enterAt','agentcomplete','assign','queue','cdr','source','data3','destination','destinationchannel','data1','./utils','Queue:','info','format','MEMBER|%s|%s|%s|%s|%s|%s','uniqueid','interface'];(function(_0x1a36a5,_0x746928){var _0x746243=function(_0x481966){while(--_0x481966){_0x1a36a5['push'](_0x1a36a5['shift']());}};_0x746243(++_0x746928);}(_0x2149,0xd0));var _0x9214=function(_0x40415e,_0x56548f){_0x40415e=_0x40415e-0x0;var _0x25cb66=_0x2149[_0x40415e];return _0x25cb66;};'use strict';var _=require('lodash');var util=require('util');var utils=require(_0x9214('0x0'));var members={};var exclude=['Local/_attended@transfer',_0x9214('0x1')];function writeDB(_0xe03627){utils[_0x9214('0x2')](util[_0x9214('0x3')](_0x9214('0x4'),_0xe03627[_0x9214('0x5')],_0xe03627[_0x9214('0x6')],_0xe03627[_0x9214('0x7')],_0xe03627[_0x9214('0x8')],_0xe03627['membername'],_0xe03627[_0x9214('0x9')]));if(_0xe03627[_0x9214('0x6')]){utils[_0x9214('0xa')](_0xe03627[_0x9214('0x6')])[_0x9214('0xb')](function(_0x2325c2){if(_0x2325c2){_0xe03627[_0x9214('0xc')]=_0x2325c2[_0x9214('0xd')];_0xe03627[_0x9214('0xe')]=_0x2325c2[_0x9214('0xe')];utils['request']('CreateMemberReport',_0xe03627);}else{utils[_0x9214('0xf')](_0xe03627[_0x9214('0x6')][_0x9214('0x10')]('/')[0x1])[_0x9214('0xb')](function(_0x4e6240){if(_0x4e6240){_0xe03627[_0x9214('0xc')]=_0x4e6240[_0x9214('0xd')];_0xe03627[_0x9214('0xe')]=_0x4e6240['internal'];utils[_0x9214('0x11')](_0x9214('0x12'),_0xe03627);}});}})[_0x9214('0x13')](function(_0x49b45f){utils[_0x9214('0x14')](_0x49b45f);});}delete members[_0xe03627[_0x9214('0x6')]];}function startsWith(_0x5a006d,_0x29cbb7){return _[_0x9214('0x15')](_0x5a006d,function(_0x114625){return _[_0x9214('0x16')](_0x29cbb7,_0x114625);});}exports['devicestatechange']=function(_0x545d61){switch(_0x545d61[_0x9214('0x17')]){case _0x9214('0x18'):case'BUSY':if(!startsWith(exclude,_0x545d61[_0x9214('0x19')])){members[_0x545d61[_0x9214('0x19')]]={'channel':_0x9214('0x1a'),'interface':_0x545d61[_0x9214('0x19')],'type':'TALKING','enterAt':utils['now'](),'role':_0x9214('0x1b')};}break;case _0x9214('0x1c'):if(!_[_0x9214('0x1d')](members[_0x545d61['device']])){members[_0x545d61[_0x9214('0x19')]][_0x9214('0x1e')]=utils[_0x9214('0x1f')]();members[_0x545d61[_0x9214('0x19')]][_0x9214('0x20')]=utils['diffTime'](members[_0x545d61[_0x9214('0x19')]]['exitAt'],members[_0x545d61[_0x9214('0x19')]][_0x9214('0x21')]);if(members[_0x545d61['device']]['uniqueid']){writeDB(members[_0x545d61[_0x9214('0x19')]]);}}default:break;}};exports[_0x9214('0x22')]=function(_0x70f897){if(!_[_0x9214('0x1d')](members[_0x70f897[_0x9214('0x6')]])){members[_0x70f897['interface']]=_[_0x9214('0x23')](members[_0x70f897['interface']],{'data4':_0x70f897[_0x9214('0x24')],'uniqueid':_0x70f897[_0x9214('0x5')]});}};exports[_0x9214('0x25')]=function(_0x4c20b5){if(_0x4c20b5['channel']){var _0x17b415=_0x4c20b5[_0x9214('0x7')][_0x9214('0x10')]('-')[0x0];if(!_[_0x9214('0x1d')](members[_0x17b415])){members[_0x17b415]=_[_0x9214('0x23')](members[_0x17b415],{'data1':members[_0x17b415]['data1']||_0x4c20b5[_0x9214('0x9')],'data2':members[_0x17b415][_0x9214('0x8')]||_0x4c20b5[_0x9214('0x26')],'data3':members[_0x17b415][_0x9214('0x27')]||_0x4c20b5[_0x9214('0x28')],'uniqueid':members[_0x17b415][_0x9214('0x5')]||_0x4c20b5[_0x9214('0x5')]});if(members[_0x17b415][_0x9214('0x1e')]){writeDB(members[_0x17b415]);}}}if(_0x4c20b5[_0x9214('0x29')]){var _0x50a000=_0x4c20b5[_0x9214('0x29')][_0x9214('0x10')]('-')[0x0];if(!_['isNil'](members[_0x50a000])){members[_0x50a000]=_[_0x9214('0x23')](members[_0x50a000],{'data1':members[_0x50a000][_0x9214('0x2a')]||_0x4c20b5[_0x9214('0x9')],'data2':members[_0x50a000][_0x9214('0x8')]||_0x4c20b5['source'],'data3':members[_0x50a000]['data3']||_0x4c20b5[_0x9214('0x28')],'uniqueid':members[_0x50a000][_0x9214('0x5')]||_0x4c20b5[_0x9214('0x5')]});if(members[_0x50a000][_0x9214('0x1e')]){writeDB(members[_0x50a000]);}}}};