Built motion from commit 3d6333b4.|2.6.31
[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 _0x84e1=['../../../config/logger','agi','getsecretdigits','vertices','edges','numberOfEdges','prototype','addEdge','size','relations','getVertex','info','no\x20vertex\x20found','stop\x20traverse','length','no\x20edge/s\x20available','condition','split','agicommand','default','target','menu','traverseBFS','default\x20on\x20switch\x20not\x20found','includes','exports','lodash'];(function(_0x5e0bfc,_0x27a065){var _0x3bd702=function(_0x5d14e3){while(--_0x5d14e3){_0x5e0bfc['push'](_0x5e0bfc['shift']());}};_0x3bd702(++_0x27a065);}(_0x84e1,0x86));var _0x184e=function(_0x50a0c2,_0x4befab){_0x50a0c2=_0x50a0c2-0x0;var _0x5ebadd=_0x84e1[_0x50a0c2];return _0x5ebadd;};'use strict';var _=require(_0x184e('0x0'));var logger=require(_0x184e('0x1'))(_0x184e('0x2'));var verticesWithRetry=['menu','getdigits',_0x184e('0x3')];var Graph=function(){this[_0x184e('0x4')]={};this[_0x184e('0x5')]={};this[_0x184e('0x6')]=0x0;};Graph[_0x184e('0x7')]['addVertex']=function(_0xec7b9d){this['vertices'][_0xec7b9d['id']]=_0xec7b9d;this['edges'][_0xec7b9d['id']]=[];};Graph[_0x184e('0x7')][_0x184e('0x8')]=function(_0x370349,_0x2d3c03,_0x24a1d3){this['edges'][_0x370349]['push']({'target':_0x2d3c03,'condition':_0x24a1d3});this[_0x184e('0x6')]+=0x1;};Graph[_0x184e('0x7')][_0x184e('0x9')]=function(){return _[_0x184e('0x9')](this[_0x184e('0x4')]);};Graph['prototype'][_0x184e('0xa')]=function(){return this[_0x184e('0x6')];};Graph[_0x184e('0x7')][_0x184e('0xb')]=function(_0x5718f0){return this[_0x184e('0x4')][_0x5718f0];};Graph[_0x184e('0x7')]['traverseBFS']=function(_0x10717e,_0x30220e){if(!this[_0x184e('0x4')][_0x10717e]){return logger[_0x184e('0xc')](_0x184e('0xd'));}var _0x2c9c73=_0x30220e(this[_0x184e('0x4')][_0x10717e]);if(!_0x2c9c73){return logger[_0x184e('0xc')](_0x184e('0xe'));}if(this[_0x184e('0x5')][_0x10717e][_0x184e('0xf')]===0x0){return logger[_0x184e('0xc')](_0x184e('0x10'));}for(var _0x54b48d=0x0,_0xb03d15=[],_0x423c18=![];_0x54b48d<this[_0x184e('0x5')][_0x10717e][_0x184e('0xf')];_0x54b48d+=0x1){if(this['edges'][_0x10717e][_0x54b48d][_0x184e('0x11')]){_0xb03d15=this[_0x184e('0x5')][_0x10717e][_0x54b48d][_0x184e('0x11')][_0x184e('0x12')](',');for(var _0x228e85=0x0;_0x228e85<_0xb03d15[_0x184e('0xf')];_0x228e85+=0x1){if(this[_0x184e('0x4')][_0x10717e][_0x184e('0x13')]==='vswitch'&&_0xb03d15[_0x228e85]==='-'){_0x423c18=this[_0x184e('0x5')][_0x10717e][_0x54b48d]['target'];logger[_0x184e('0xc')](_0x184e('0x14'),_0xb03d15[_0x228e85],this['edges'][_0x10717e][_0x54b48d][_0x184e('0x15')]);}else if(this[_0x184e('0x4')][_0x10717e]['agicommand']===_0x184e('0x16')&&_0xb03d15[_0x228e85]==='i'){_0x423c18=this[_0x184e('0x5')][_0x10717e][_0x54b48d]['target'];logger['info']('invalid',_0xb03d15[_0x228e85],this[_0x184e('0x5')][_0x10717e][_0x54b48d][_0x184e('0x15')]);}if(_0xb03d15[_0x228e85]===_0x2c9c73){return this[_0x184e('0x17')](this[_0x184e('0x5')][_0x10717e][_0x54b48d][_0x184e('0x15')],_0x30220e);}}}else{return this[_0x184e('0x17')](this[_0x184e('0x5')][_0x10717e][_0x54b48d][_0x184e('0x15')],_0x30220e);}}if(_0xb03d15['length']){if(this[_0x184e('0x4')][_0x10717e][_0x184e('0x13')]==='vswitch'){if(_0x423c18){return this[_0x184e('0x17')](_0x423c18,_0x30220e);}return logger[_0x184e('0xc')](_0x184e('0x18'));}else if(_[_0x184e('0x19')](verticesWithRetry,this['vertices'][_0x10717e][_0x184e('0x13')])){if(_0x2c9c73==='-'){return logger[_0x184e('0xc')]('max\x20retry\x20reach');}if(_0x423c18&&_0x2c9c73!=='t'){return this['traverseBFS'](_0x423c18,_0x30220e);}return this[_0x184e('0x17')](_0x10717e,_0x30220e);}return logger[_0x184e('0xc')]('condition\x20not\x20found');}};module[_0x184e('0x1a')]=Graph;