643dbafeee4c637b5792423efc0affeeafaa8f77
[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 _0x9db8=['stop\x20traverse','no\x20edge/s\x20available','length','condition','split','default','target','agicommand','vswitch','includes','max\x20retry\x20reach','condition\x20not\x20found','exports','lodash','agi','menu','getdigits','getsecretdigits','vertices','edges','prototype','addVertex','addEdge','push','size','relations','numberOfEdges','traverseBFS','info','no\x20vertex\x20found'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x9db8,0x157));var _0x89db=function(_0x3e3217,_0x518c13){_0x3e3217=_0x3e3217-0x0;var _0x425fac=_0x9db8[_0x3e3217];return _0x425fac;};'use strict';var _=require(_0x89db('0x0'));var logger=require('../../../config/logger')(_0x89db('0x1'));var verticesWithRetry=[_0x89db('0x2'),_0x89db('0x3'),_0x89db('0x4')];var Graph=function(){this[_0x89db('0x5')]={};this[_0x89db('0x6')]={};this['numberOfEdges']=0x0;};Graph[_0x89db('0x7')][_0x89db('0x8')]=function(_0x1a3899){this[_0x89db('0x5')][_0x1a3899['id']]=_0x1a3899;this['edges'][_0x1a3899['id']]=[];};Graph[_0x89db('0x7')][_0x89db('0x9')]=function(_0x5a1755,_0x4ed76f,_0x2c9d11){this[_0x89db('0x6')][_0x5a1755][_0x89db('0xa')]({'target':_0x4ed76f,'condition':_0x2c9d11});this['numberOfEdges']+=0x1;};Graph[_0x89db('0x7')]['size']=function(){return _[_0x89db('0xb')](this['vertices']);};Graph['prototype'][_0x89db('0xc')]=function(){return this[_0x89db('0xd')];};Graph[_0x89db('0x7')]['getVertex']=function(_0x5a1171){return this[_0x89db('0x5')][_0x5a1171];};Graph[_0x89db('0x7')][_0x89db('0xe')]=function(_0x49413e,_0x250662){if(!this['vertices'][_0x49413e]){return logger[_0x89db('0xf')](_0x89db('0x10'));}var _0x39373f=_0x250662(this[_0x89db('0x5')][_0x49413e]);if(!_0x39373f){return logger['info'](_0x89db('0x11'));}if(this[_0x89db('0x6')][_0x49413e]['length']===0x0){return logger[_0x89db('0xf')](_0x89db('0x12'));}for(var _0x150e22=0x0,_0x245373=[],_0x3d74a9=![];_0x150e22<this['edges'][_0x49413e][_0x89db('0x13')];_0x150e22+=0x1){if(this[_0x89db('0x6')][_0x49413e][_0x150e22]['condition']){_0x245373=this[_0x89db('0x6')][_0x49413e][_0x150e22][_0x89db('0x14')][_0x89db('0x15')](',');for(var _0xbdcafd=0x0;_0xbdcafd<_0x245373[_0x89db('0x13')];_0xbdcafd+=0x1){if(this[_0x89db('0x5')][_0x49413e]['agicommand']==='vswitch'&&_0x245373[_0xbdcafd]==='-'){_0x3d74a9=this[_0x89db('0x6')][_0x49413e][_0x150e22]['target'];logger[_0x89db('0xf')](_0x89db('0x16'),_0x245373[_0xbdcafd],this['edges'][_0x49413e][_0x150e22][_0x89db('0x17')]);}else if(this[_0x89db('0x5')][_0x49413e][_0x89db('0x18')]==='menu'&&_0x245373[_0xbdcafd]==='i'){_0x3d74a9=this['edges'][_0x49413e][_0x150e22][_0x89db('0x17')];logger['info']('invalid',_0x245373[_0xbdcafd],this['edges'][_0x49413e][_0x150e22]['target']);}if(_0x245373[_0xbdcafd]===_0x39373f){return this[_0x89db('0xe')](this['edges'][_0x49413e][_0x150e22][_0x89db('0x17')],_0x250662);}}}else{return this[_0x89db('0xe')](this['edges'][_0x49413e][_0x150e22][_0x89db('0x17')],_0x250662);}}if(_0x245373[_0x89db('0x13')]){if(this['vertices'][_0x49413e]['agicommand']===_0x89db('0x19')){if(_0x3d74a9){return this['traverseBFS'](_0x3d74a9,_0x250662);}return logger[_0x89db('0xf')]('default\x20on\x20switch\x20not\x20found');}else if(_[_0x89db('0x1a')](verticesWithRetry,this[_0x89db('0x5')][_0x49413e][_0x89db('0x18')])){if(_0x39373f==='-'){return logger[_0x89db('0xf')](_0x89db('0x1b'));}if(_0x3d74a9&&_0x39373f!=='t'){return this[_0x89db('0xe')](_0x3d74a9,_0x250662);}return this[_0x89db('0xe')](_0x49413e,_0x250662);}return logger[_0x89db('0xf')](_0x89db('0x1c'));}};module[_0x89db('0x1d')]=Graph;