08a4190dd2f5b801e6ec6e4b85c4e648b591cc61
[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 _0xe820=['split','agicommand','vswitch','target','menu','invalid','default\x20on\x20switch\x20not\x20found','includes','max\x20retry\x20reach','exports','lodash','agi','getsecretdigits','vertices','edges','prototype','addEdge','push','numberOfEdges','size','relations','traverseBFS','info','length','condition'];(function(_0x590593,_0x4c21ae){var _0x4cc900=function(_0x2ba7f1){while(--_0x2ba7f1){_0x590593['push'](_0x590593['shift']());}};_0x4cc900(++_0x4c21ae);}(_0xe820,0xd2));var _0x0e82=function(_0x986f42,_0x116eac){_0x986f42=_0x986f42-0x0;var _0x432bd6=_0xe820[_0x986f42];return _0x432bd6;};'use strict';var _=require(_0x0e82('0x0'));var logger=require('../../../config/logger')(_0x0e82('0x1'));var verticesWithRetry=['menu','getdigits',_0x0e82('0x2')];var Graph=function(){this[_0x0e82('0x3')]={};this[_0x0e82('0x4')]={};this['numberOfEdges']=0x0;};Graph[_0x0e82('0x5')]['addVertex']=function(_0x2cb88f){this[_0x0e82('0x3')][_0x2cb88f['id']]=_0x2cb88f;this[_0x0e82('0x4')][_0x2cb88f['id']]=[];};Graph[_0x0e82('0x5')][_0x0e82('0x6')]=function(_0x55f277,_0x10013b,_0x33c8a2){this[_0x0e82('0x4')][_0x55f277][_0x0e82('0x7')]({'target':_0x10013b,'condition':_0x33c8a2});this[_0x0e82('0x8')]+=0x1;};Graph['prototype'][_0x0e82('0x9')]=function(){return _[_0x0e82('0x9')](this[_0x0e82('0x3')]);};Graph[_0x0e82('0x5')][_0x0e82('0xa')]=function(){return this[_0x0e82('0x8')];};Graph[_0x0e82('0x5')]['getVertex']=function(_0x44c7fd){return this[_0x0e82('0x3')][_0x44c7fd];};Graph[_0x0e82('0x5')][_0x0e82('0xb')]=function(_0x166dc2,_0x1f44d2){if(!this['vertices'][_0x166dc2]){return logger[_0x0e82('0xc')]('no\x20vertex\x20found');}var _0x48d99b=_0x1f44d2(this[_0x0e82('0x3')][_0x166dc2]);if(!_0x48d99b){return logger['info']('stop\x20traverse');}if(this['edges'][_0x166dc2][_0x0e82('0xd')]===0x0){return logger['info']('no\x20edge/s\x20available');}for(var _0x1149b1=0x0,_0x582f45=[],_0x319303=![];_0x1149b1<this[_0x0e82('0x4')][_0x166dc2][_0x0e82('0xd')];_0x1149b1+=0x1){if(this[_0x0e82('0x4')][_0x166dc2][_0x1149b1]['condition']){_0x582f45=this[_0x0e82('0x4')][_0x166dc2][_0x1149b1][_0x0e82('0xe')][_0x0e82('0xf')](',');for(var _0xc3d043=0x0;_0xc3d043<_0x582f45[_0x0e82('0xd')];_0xc3d043+=0x1){if(this[_0x0e82('0x3')][_0x166dc2][_0x0e82('0x10')]===_0x0e82('0x11')&&_0x582f45[_0xc3d043]==='-'){_0x319303=this[_0x0e82('0x4')][_0x166dc2][_0x1149b1][_0x0e82('0x12')];logger[_0x0e82('0xc')]('default',_0x582f45[_0xc3d043],this['edges'][_0x166dc2][_0x1149b1][_0x0e82('0x12')]);}else if(this[_0x0e82('0x3')][_0x166dc2][_0x0e82('0x10')]===_0x0e82('0x13')&&_0x582f45[_0xc3d043]==='i'){_0x319303=this[_0x0e82('0x4')][_0x166dc2][_0x1149b1][_0x0e82('0x12')];logger[_0x0e82('0xc')](_0x0e82('0x14'),_0x582f45[_0xc3d043],this['edges'][_0x166dc2][_0x1149b1][_0x0e82('0x12')]);}if(_0x582f45[_0xc3d043]===_0x48d99b){return this[_0x0e82('0xb')](this[_0x0e82('0x4')][_0x166dc2][_0x1149b1][_0x0e82('0x12')],_0x1f44d2);}}}else{return this['traverseBFS'](this[_0x0e82('0x4')][_0x166dc2][_0x1149b1][_0x0e82('0x12')],_0x1f44d2);}}if(_0x582f45[_0x0e82('0xd')]){if(this[_0x0e82('0x3')][_0x166dc2]['agicommand']===_0x0e82('0x11')){if(_0x319303){return this['traverseBFS'](_0x319303,_0x1f44d2);}return logger['info'](_0x0e82('0x15'));}else if(_[_0x0e82('0x16')](verticesWithRetry,this['vertices'][_0x166dc2][_0x0e82('0x10')])){if(_0x48d99b==='-'){return logger[_0x0e82('0xc')](_0x0e82('0x17'));}if(_0x319303&&_0x48d99b!=='t'){return this['traverseBFS'](_0x319303,_0x1f44d2);}return this[_0x0e82('0xb')](_0x166dc2,_0x1f44d2);}return logger[_0x0e82('0xc')]('condition\x20not\x20found');}};module[_0x0e82('0x18')]=Graph;