9bc1189e2b544896b6694ec1c22951176fac8fee
[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 _0x9a31=['getsecretdigits','vertices','edges','prototype','addVertex','addEdge','push','numberOfEdges','size','relations','getVertex','traverseBFS','no\x20vertex\x20found','info','length','no\x20edge/s\x20available','condition','agicommand','vswitch','target','default','menu','invalid','default\x20on\x20switch\x20not\x20found','includes','condition\x20not\x20found','exports','lodash','../../../config/logger','getdigits'];(function(_0x234515,_0x46700e){var _0x5bdd8f=function(_0x56e5b3){while(--_0x56e5b3){_0x234515['push'](_0x234515['shift']());}};_0x5bdd8f(++_0x46700e);}(_0x9a31,0x1a1));var _0x19a3=function(_0x27c24e,_0x5db1c7){_0x27c24e=_0x27c24e-0x0;var _0x39004a=_0x9a31[_0x27c24e];return _0x39004a;};'use strict';var _=require(_0x19a3('0x0'));var logger=require(_0x19a3('0x1'))('agi');var verticesWithRetry=['menu',_0x19a3('0x2'),_0x19a3('0x3')];var Graph=function(){this[_0x19a3('0x4')]={};this[_0x19a3('0x5')]={};this['numberOfEdges']=0x0;};Graph[_0x19a3('0x6')][_0x19a3('0x7')]=function(_0x401994){this[_0x19a3('0x4')][_0x401994['id']]=_0x401994;this[_0x19a3('0x5')][_0x401994['id']]=[];};Graph[_0x19a3('0x6')][_0x19a3('0x8')]=function(_0x5ac212,_0x4c0291,_0x4d3833){this[_0x19a3('0x5')][_0x5ac212][_0x19a3('0x9')]({'target':_0x4c0291,'condition':_0x4d3833});this[_0x19a3('0xa')]+=0x1;};Graph[_0x19a3('0x6')][_0x19a3('0xb')]=function(){return _[_0x19a3('0xb')](this['vertices']);};Graph[_0x19a3('0x6')][_0x19a3('0xc')]=function(){return this[_0x19a3('0xa')];};Graph[_0x19a3('0x6')][_0x19a3('0xd')]=function(_0x50e26c){return this[_0x19a3('0x4')][_0x50e26c];};Graph[_0x19a3('0x6')][_0x19a3('0xe')]=function(_0x37c05f,_0x35d835){if(!this[_0x19a3('0x4')][_0x37c05f]){return logger['info'](_0x19a3('0xf'));}var _0x1b67ca=_0x35d835(this[_0x19a3('0x4')][_0x37c05f]);if(!_0x1b67ca){return logger[_0x19a3('0x10')]('stop\x20traverse');}if(this[_0x19a3('0x5')][_0x37c05f][_0x19a3('0x11')]===0x0){return logger[_0x19a3('0x10')](_0x19a3('0x12'));}for(var _0x498f3b=0x0,_0xb348cf=[],_0x2dfd18=![];_0x498f3b<this[_0x19a3('0x5')][_0x37c05f][_0x19a3('0x11')];_0x498f3b+=0x1){if(this[_0x19a3('0x5')][_0x37c05f][_0x498f3b][_0x19a3('0x13')]){_0xb348cf=this[_0x19a3('0x5')][_0x37c05f][_0x498f3b][_0x19a3('0x13')]['split'](',');for(var _0x537c6d=0x0;_0x537c6d<_0xb348cf['length'];_0x537c6d+=0x1){if(this[_0x19a3('0x4')][_0x37c05f][_0x19a3('0x14')]===_0x19a3('0x15')&&_0xb348cf[_0x537c6d]==='-'){_0x2dfd18=this[_0x19a3('0x5')][_0x37c05f][_0x498f3b][_0x19a3('0x16')];logger[_0x19a3('0x10')](_0x19a3('0x17'),_0xb348cf[_0x537c6d],this['edges'][_0x37c05f][_0x498f3b][_0x19a3('0x16')]);}else if(this[_0x19a3('0x4')][_0x37c05f][_0x19a3('0x14')]===_0x19a3('0x18')&&_0xb348cf[_0x537c6d]==='i'){_0x2dfd18=this[_0x19a3('0x5')][_0x37c05f][_0x498f3b]['target'];logger[_0x19a3('0x10')](_0x19a3('0x19'),_0xb348cf[_0x537c6d],this[_0x19a3('0x5')][_0x37c05f][_0x498f3b][_0x19a3('0x16')]);}if(_0xb348cf[_0x537c6d]===_0x1b67ca){return this['traverseBFS'](this[_0x19a3('0x5')][_0x37c05f][_0x498f3b]['target'],_0x35d835);}}}else{return this[_0x19a3('0xe')](this['edges'][_0x37c05f][_0x498f3b][_0x19a3('0x16')],_0x35d835);}}if(_0xb348cf[_0x19a3('0x11')]){if(this[_0x19a3('0x4')][_0x37c05f][_0x19a3('0x14')]===_0x19a3('0x15')){if(_0x2dfd18){return this['traverseBFS'](_0x2dfd18,_0x35d835);}return logger[_0x19a3('0x10')](_0x19a3('0x1a'));}else if(_[_0x19a3('0x1b')](verticesWithRetry,this[_0x19a3('0x4')][_0x37c05f][_0x19a3('0x14')])){if(_0x1b67ca==='-'){return logger['info']('max\x20retry\x20reach');}if(_0x2dfd18&&_0x1b67ca!=='t'){return this[_0x19a3('0xe')](_0x2dfd18,_0x35d835);}return this[_0x19a3('0xe')](_0x37c05f,_0x35d835);}return logger[_0x19a3('0x10')](_0x19a3('0x1c'));}};module[_0x19a3('0x1d')]=Graph;