Built motion from commit 449495f6.|2.6.27
[motion2.git] / server / services / agi / graph / index.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 _0xef52=['agicommand','vswitch','target','invalid','traverseBFS','default\x20on\x20switch\x20not\x20found','includes','max\x20retry\x20reach','condition\x20not\x20found','exports','lodash','../../../config/logger','menu','getsecretdigits','vertices','edges','numberOfEdges','prototype','addVertex','addEdge','push','size','relations','getVertex','info','no\x20vertex\x20found','stop\x20traverse','length','condition','split'];(function(_0x1af4fc,_0x46facd){var _0xb9473c=function(_0x2e06f6){while(--_0x2e06f6){_0x1af4fc['push'](_0x1af4fc['shift']());}};_0xb9473c(++_0x46facd);}(_0xef52,0xdc));var _0x2ef5=function(_0x39780c,_0x5782c9){_0x39780c=_0x39780c-0x0;var _0x53c19b=_0xef52[_0x39780c];return _0x53c19b;};'use strict';var _=require(_0x2ef5('0x0'));var logger=require(_0x2ef5('0x1'))('agi');var verticesWithRetry=[_0x2ef5('0x2'),'getdigits',_0x2ef5('0x3')];var Graph=function(){this[_0x2ef5('0x4')]={};this[_0x2ef5('0x5')]={};this[_0x2ef5('0x6')]=0x0;};Graph[_0x2ef5('0x7')][_0x2ef5('0x8')]=function(_0x1f57db){this[_0x2ef5('0x4')][_0x1f57db['id']]=_0x1f57db;this[_0x2ef5('0x5')][_0x1f57db['id']]=[];};Graph['prototype'][_0x2ef5('0x9')]=function(_0x19b87e,_0x2d6347,_0x391a74){this[_0x2ef5('0x5')][_0x19b87e][_0x2ef5('0xa')]({'target':_0x2d6347,'condition':_0x391a74});this[_0x2ef5('0x6')]+=0x1;};Graph['prototype'][_0x2ef5('0xb')]=function(){return _['size'](this[_0x2ef5('0x4')]);};Graph[_0x2ef5('0x7')][_0x2ef5('0xc')]=function(){return this[_0x2ef5('0x6')];};Graph[_0x2ef5('0x7')][_0x2ef5('0xd')]=function(_0x30223f){return this[_0x2ef5('0x4')][_0x30223f];};Graph[_0x2ef5('0x7')]['traverseBFS']=function(_0x1a8c02,_0x29cb6e){if(!this[_0x2ef5('0x4')][_0x1a8c02]){return logger[_0x2ef5('0xe')](_0x2ef5('0xf'));}var _0x2cc147=_0x29cb6e(this['vertices'][_0x1a8c02]);if(!_0x2cc147){return logger[_0x2ef5('0xe')](_0x2ef5('0x10'));}if(this[_0x2ef5('0x5')][_0x1a8c02][_0x2ef5('0x11')]===0x0){return logger[_0x2ef5('0xe')]('no\x20edge/s\x20available');}for(var _0x2fd6fc=0x0,_0x585655=[],_0x1c4f5d=![];_0x2fd6fc<this['edges'][_0x1a8c02]['length'];_0x2fd6fc+=0x1){if(this['edges'][_0x1a8c02][_0x2fd6fc][_0x2ef5('0x12')]){_0x585655=this['edges'][_0x1a8c02][_0x2fd6fc][_0x2ef5('0x12')][_0x2ef5('0x13')](',');for(var _0x431b1b=0x0;_0x431b1b<_0x585655[_0x2ef5('0x11')];_0x431b1b+=0x1){if(this[_0x2ef5('0x4')][_0x1a8c02][_0x2ef5('0x14')]===_0x2ef5('0x15')&&_0x585655[_0x431b1b]==='-'){_0x1c4f5d=this[_0x2ef5('0x5')][_0x1a8c02][_0x2fd6fc][_0x2ef5('0x16')];logger['info']('default',_0x585655[_0x431b1b],this[_0x2ef5('0x5')][_0x1a8c02][_0x2fd6fc]['target']);}else if(this[_0x2ef5('0x4')][_0x1a8c02][_0x2ef5('0x14')]===_0x2ef5('0x2')&&_0x585655[_0x431b1b]==='i'){_0x1c4f5d=this['edges'][_0x1a8c02][_0x2fd6fc][_0x2ef5('0x16')];logger['info'](_0x2ef5('0x17'),_0x585655[_0x431b1b],this[_0x2ef5('0x5')][_0x1a8c02][_0x2fd6fc][_0x2ef5('0x16')]);}if(_0x585655[_0x431b1b]===_0x2cc147){return this[_0x2ef5('0x18')](this[_0x2ef5('0x5')][_0x1a8c02][_0x2fd6fc][_0x2ef5('0x16')],_0x29cb6e);}}}else{return this['traverseBFS'](this['edges'][_0x1a8c02][_0x2fd6fc]['target'],_0x29cb6e);}}if(_0x585655[_0x2ef5('0x11')]){if(this['vertices'][_0x1a8c02]['agicommand']==='vswitch'){if(_0x1c4f5d){return this[_0x2ef5('0x18')](_0x1c4f5d,_0x29cb6e);}return logger[_0x2ef5('0xe')](_0x2ef5('0x19'));}else if(_[_0x2ef5('0x1a')](verticesWithRetry,this['vertices'][_0x1a8c02][_0x2ef5('0x14')])){if(_0x2cc147==='-'){return logger[_0x2ef5('0xe')](_0x2ef5('0x1b'));}if(_0x1c4f5d&&_0x2cc147!=='t'){return this[_0x2ef5('0x18')](_0x1c4f5d,_0x29cb6e);}return this[_0x2ef5('0x18')](_0x1a8c02,_0x29cb6e);}return logger[_0x2ef5('0xe')](_0x2ef5('0x1c'));}};module[_0x2ef5('0x1d')]=Graph;