099a589e532be2e4179da3bbee76e6c6729f2ae6
[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 _0xa902=['getdigits','vertices','prototype','addVertex','edges','push','numberOfEdges','size','relations','getVertex','traverseBFS','info','stop\x20traverse','length','no\x20edge/s\x20available','condition','split','agicommand','vswitch','target','default','invalid','default\x20on\x20switch\x20not\x20found','includes','exports','lodash','../../../config/logger','agi','menu'];(function(_0x477051,_0x1607ea){var _0x4b05b0=function(_0x586247){while(--_0x586247){_0x477051['push'](_0x477051['shift']());}};_0x4b05b0(++_0x1607ea);}(_0xa902,0x8d));var _0x2a90=function(_0x59d980,_0x1f2185){_0x59d980=_0x59d980-0x0;var _0x505478=_0xa902[_0x59d980];return _0x505478;};'use strict';var _=require(_0x2a90('0x0'));var logger=require(_0x2a90('0x1'))(_0x2a90('0x2'));var verticesWithRetry=[_0x2a90('0x3'),_0x2a90('0x4'),'getsecretdigits'];var Graph=function(){this[_0x2a90('0x5')]={};this['edges']={};this['numberOfEdges']=0x0;};Graph[_0x2a90('0x6')][_0x2a90('0x7')]=function(_0x203ecf){this[_0x2a90('0x5')][_0x203ecf['id']]=_0x203ecf;this[_0x2a90('0x8')][_0x203ecf['id']]=[];};Graph[_0x2a90('0x6')]['addEdge']=function(_0x4109e6,_0x570659,_0x5ec2b9){this[_0x2a90('0x8')][_0x4109e6][_0x2a90('0x9')]({'target':_0x570659,'condition':_0x5ec2b9});this[_0x2a90('0xa')]+=0x1;};Graph[_0x2a90('0x6')][_0x2a90('0xb')]=function(){return _['size'](this[_0x2a90('0x5')]);};Graph[_0x2a90('0x6')][_0x2a90('0xc')]=function(){return this[_0x2a90('0xa')];};Graph['prototype'][_0x2a90('0xd')]=function(_0x52391c){return this[_0x2a90('0x5')][_0x52391c];};Graph['prototype'][_0x2a90('0xe')]=function(_0x57aee3,_0x407ce5){if(!this[_0x2a90('0x5')][_0x57aee3]){return logger[_0x2a90('0xf')]('no\x20vertex\x20found');}var _0x56d1b8=_0x407ce5(this['vertices'][_0x57aee3]);if(!_0x56d1b8){return logger[_0x2a90('0xf')](_0x2a90('0x10'));}if(this['edges'][_0x57aee3][_0x2a90('0x11')]===0x0){return logger[_0x2a90('0xf')](_0x2a90('0x12'));}for(var _0x25bd0e=0x0,_0x3200b4=[],_0x37858e=![];_0x25bd0e<this[_0x2a90('0x8')][_0x57aee3][_0x2a90('0x11')];_0x25bd0e+=0x1){if(this[_0x2a90('0x8')][_0x57aee3][_0x25bd0e]['condition']){_0x3200b4=this[_0x2a90('0x8')][_0x57aee3][_0x25bd0e][_0x2a90('0x13')][_0x2a90('0x14')](',');for(var _0x52622c=0x0;_0x52622c<_0x3200b4[_0x2a90('0x11')];_0x52622c+=0x1){if(this[_0x2a90('0x5')][_0x57aee3][_0x2a90('0x15')]===_0x2a90('0x16')&&_0x3200b4[_0x52622c]==='-'){_0x37858e=this[_0x2a90('0x8')][_0x57aee3][_0x25bd0e][_0x2a90('0x17')];logger[_0x2a90('0xf')](_0x2a90('0x18'),_0x3200b4[_0x52622c],this[_0x2a90('0x8')][_0x57aee3][_0x25bd0e][_0x2a90('0x17')]);}else if(this[_0x2a90('0x5')][_0x57aee3][_0x2a90('0x15')]==='menu'&&_0x3200b4[_0x52622c]==='i'){_0x37858e=this[_0x2a90('0x8')][_0x57aee3][_0x25bd0e][_0x2a90('0x17')];logger[_0x2a90('0xf')](_0x2a90('0x19'),_0x3200b4[_0x52622c],this['edges'][_0x57aee3][_0x25bd0e][_0x2a90('0x17')]);}if(_0x3200b4[_0x52622c]===_0x56d1b8){return this[_0x2a90('0xe')](this['edges'][_0x57aee3][_0x25bd0e][_0x2a90('0x17')],_0x407ce5);}}}else{return this[_0x2a90('0xe')](this[_0x2a90('0x8')][_0x57aee3][_0x25bd0e][_0x2a90('0x17')],_0x407ce5);}}if(_0x3200b4[_0x2a90('0x11')]){if(this[_0x2a90('0x5')][_0x57aee3][_0x2a90('0x15')]===_0x2a90('0x16')){if(_0x37858e){return this['traverseBFS'](_0x37858e,_0x407ce5);}return logger[_0x2a90('0xf')](_0x2a90('0x1a'));}else if(_[_0x2a90('0x1b')](verticesWithRetry,this[_0x2a90('0x5')][_0x57aee3][_0x2a90('0x15')])){if(_0x56d1b8==='-'){return logger['info']('max\x20retry\x20reach');}if(_0x37858e&&_0x56d1b8!=='t'){return this[_0x2a90('0xe')](_0x37858e,_0x407ce5);}return this['traverseBFS'](_0x57aee3,_0x407ce5);}return logger['info']('condition\x20not\x20found');}};module[_0x2a90('0x1c')]=Graph;