Built motion from commit (unavailable).|2.5.4
[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 _0x7d25=['includes','condition\x20not\x20found','exports','../../../config/logger','agi','menu','getdigits','getsecretdigits','vertices','edges','prototype','addEdge','numberOfEdges','size','relations','getVertex','traverseBFS','info','no\x20vertex\x20found','stop\x20traverse','no\x20edge/s\x20available','condition','length','agicommand','target','invalid','default\x20on\x20switch\x20not\x20found'];(function(_0x894278,_0x260254){var _0x4086fd=function(_0x482d15){while(--_0x482d15){_0x894278['push'](_0x894278['shift']());}};_0x4086fd(++_0x260254);}(_0x7d25,0x8a));var _0x57d2=function(_0x40a825,_0x3bac79){_0x40a825=_0x40a825-0x0;var _0x273a54=_0x7d25[_0x40a825];return _0x273a54;};'use strict';var _=require('lodash');var logger=require(_0x57d2('0x0'))(_0x57d2('0x1'));var verticesWithRetry=[_0x57d2('0x2'),_0x57d2('0x3'),_0x57d2('0x4')];var Graph=function(){this[_0x57d2('0x5')]={};this[_0x57d2('0x6')]={};this['numberOfEdges']=0x0;};Graph['prototype']['addVertex']=function(_0x5dea84){this[_0x57d2('0x5')][_0x5dea84['id']]=_0x5dea84;this['edges'][_0x5dea84['id']]=[];};Graph[_0x57d2('0x7')][_0x57d2('0x8')]=function(_0x147194,_0x59ae87,_0x49e3e5){this[_0x57d2('0x6')][_0x147194]['push']({'target':_0x59ae87,'condition':_0x49e3e5});this[_0x57d2('0x9')]+=0x1;};Graph[_0x57d2('0x7')][_0x57d2('0xa')]=function(){return _['size'](this[_0x57d2('0x5')]);};Graph[_0x57d2('0x7')][_0x57d2('0xb')]=function(){return this[_0x57d2('0x9')];};Graph[_0x57d2('0x7')][_0x57d2('0xc')]=function(_0xe8357c){return this[_0x57d2('0x5')][_0xe8357c];};Graph[_0x57d2('0x7')][_0x57d2('0xd')]=function(_0x28428b,_0x3181ad){if(!this[_0x57d2('0x5')][_0x28428b]){return logger[_0x57d2('0xe')](_0x57d2('0xf'));}var _0x4086f3=_0x3181ad(this['vertices'][_0x28428b]);if(!_0x4086f3){return logger['info'](_0x57d2('0x10'));}if(this[_0x57d2('0x6')][_0x28428b]['length']===0x0){return logger[_0x57d2('0xe')](_0x57d2('0x11'));}for(var _0x4bb8f7=0x0,_0x3e12c6=[],_0x4986ad=![];_0x4bb8f7<this[_0x57d2('0x6')][_0x28428b]['length'];_0x4bb8f7+=0x1){if(this[_0x57d2('0x6')][_0x28428b][_0x4bb8f7][_0x57d2('0x12')]){_0x3e12c6=this[_0x57d2('0x6')][_0x28428b][_0x4bb8f7]['condition']['split'](',');for(var _0xbaeda8=0x0;_0xbaeda8<_0x3e12c6[_0x57d2('0x13')];_0xbaeda8+=0x1){if(this[_0x57d2('0x5')][_0x28428b][_0x57d2('0x14')]==='vswitch'&&_0x3e12c6[_0xbaeda8]==='-'){_0x4986ad=this[_0x57d2('0x6')][_0x28428b][_0x4bb8f7][_0x57d2('0x15')];logger['info']('default',_0x3e12c6[_0xbaeda8],this[_0x57d2('0x6')][_0x28428b][_0x4bb8f7][_0x57d2('0x15')]);}else if(this[_0x57d2('0x5')][_0x28428b][_0x57d2('0x14')]===_0x57d2('0x2')&&_0x3e12c6[_0xbaeda8]==='i'){_0x4986ad=this[_0x57d2('0x6')][_0x28428b][_0x4bb8f7][_0x57d2('0x15')];logger[_0x57d2('0xe')](_0x57d2('0x16'),_0x3e12c6[_0xbaeda8],this[_0x57d2('0x6')][_0x28428b][_0x4bb8f7][_0x57d2('0x15')]);}if(_0x3e12c6[_0xbaeda8]===_0x4086f3){return this[_0x57d2('0xd')](this[_0x57d2('0x6')][_0x28428b][_0x4bb8f7][_0x57d2('0x15')],_0x3181ad);}}}else{return this['traverseBFS'](this[_0x57d2('0x6')][_0x28428b][_0x4bb8f7][_0x57d2('0x15')],_0x3181ad);}}if(_0x3e12c6[_0x57d2('0x13')]){if(this[_0x57d2('0x5')][_0x28428b][_0x57d2('0x14')]==='vswitch'){if(_0x4986ad){return this[_0x57d2('0xd')](_0x4986ad,_0x3181ad);}return logger[_0x57d2('0xe')](_0x57d2('0x17'));}else if(_[_0x57d2('0x18')](verticesWithRetry,this[_0x57d2('0x5')][_0x28428b][_0x57d2('0x14')])){if(_0x4086f3==='-'){return logger[_0x57d2('0xe')]('max\x20retry\x20reach');}if(_0x4986ad&&_0x4086f3!=='t'){return this[_0x57d2('0xd')](_0x4986ad,_0x3181ad);}return this[_0x57d2('0xd')](_0x28428b,_0x3181ad);}return logger[_0x57d2('0xe')](_0x57d2('0x19'));}};module[_0x57d2('0x1a')]=Graph;