Built motion from commit 753c950e.|2.5.42
[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 _0x1e58=['addEdge','edges','push','prototype','size','relations','getVertex','info','no\x20vertex\x20found','length','no\x20edge/s\x20available','condition','split','agicommand','target','default','menu','invalid','traverseBFS','vswitch','default\x20on\x20switch\x20not\x20found','condition\x20not\x20found','exports','lodash','../../../config/logger','getdigits','getsecretdigits','vertices','numberOfEdges','addVertex'];(function(_0x33eee5,_0x315109){var _0xf96994=function(_0x418fcb){while(--_0x418fcb){_0x33eee5['push'](_0x33eee5['shift']());}};_0xf96994(++_0x315109);}(_0x1e58,0xe9));var _0x81e5=function(_0x53851f,_0x1de932){_0x53851f=_0x53851f-0x0;var _0x4aef59=_0x1e58[_0x53851f];return _0x4aef59;};'use strict';var _=require(_0x81e5('0x0'));var logger=require(_0x81e5('0x1'))('agi');var verticesWithRetry=['menu',_0x81e5('0x2'),_0x81e5('0x3')];var Graph=function(){this[_0x81e5('0x4')]={};this['edges']={};this[_0x81e5('0x5')]=0x0;};Graph['prototype'][_0x81e5('0x6')]=function(_0x1f6898){this[_0x81e5('0x4')][_0x1f6898['id']]=_0x1f6898;this['edges'][_0x1f6898['id']]=[];};Graph['prototype'][_0x81e5('0x7')]=function(_0x285561,_0x489906,_0x53d0da){this[_0x81e5('0x8')][_0x285561][_0x81e5('0x9')]({'target':_0x489906,'condition':_0x53d0da});this[_0x81e5('0x5')]+=0x1;};Graph[_0x81e5('0xa')][_0x81e5('0xb')]=function(){return _[_0x81e5('0xb')](this[_0x81e5('0x4')]);};Graph['prototype'][_0x81e5('0xc')]=function(){return this['numberOfEdges'];};Graph[_0x81e5('0xa')][_0x81e5('0xd')]=function(_0x277303){return this[_0x81e5('0x4')][_0x277303];};Graph[_0x81e5('0xa')]['traverseBFS']=function(_0x3dd03c,_0x42728f){if(!this[_0x81e5('0x4')][_0x3dd03c]){return logger[_0x81e5('0xe')](_0x81e5('0xf'));}var _0x1f8bca=_0x42728f(this[_0x81e5('0x4')][_0x3dd03c]);if(!_0x1f8bca){return logger[_0x81e5('0xe')]('stop\x20traverse');}if(this[_0x81e5('0x8')][_0x3dd03c][_0x81e5('0x10')]===0x0){return logger['info'](_0x81e5('0x11'));}for(var _0x4b8372=0x0,_0x562c53=[],_0x110c66=![];_0x4b8372<this[_0x81e5('0x8')][_0x3dd03c][_0x81e5('0x10')];_0x4b8372+=0x1){if(this[_0x81e5('0x8')][_0x3dd03c][_0x4b8372][_0x81e5('0x12')]){_0x562c53=this[_0x81e5('0x8')][_0x3dd03c][_0x4b8372][_0x81e5('0x12')][_0x81e5('0x13')](',');for(var _0x5bbe21=0x0;_0x5bbe21<_0x562c53[_0x81e5('0x10')];_0x5bbe21+=0x1){if(this[_0x81e5('0x4')][_0x3dd03c][_0x81e5('0x14')]==='vswitch'&&_0x562c53[_0x5bbe21]==='-'){_0x110c66=this[_0x81e5('0x8')][_0x3dd03c][_0x4b8372][_0x81e5('0x15')];logger[_0x81e5('0xe')](_0x81e5('0x16'),_0x562c53[_0x5bbe21],this[_0x81e5('0x8')][_0x3dd03c][_0x4b8372]['target']);}else if(this[_0x81e5('0x4')][_0x3dd03c][_0x81e5('0x14')]===_0x81e5('0x17')&&_0x562c53[_0x5bbe21]==='i'){_0x110c66=this[_0x81e5('0x8')][_0x3dd03c][_0x4b8372][_0x81e5('0x15')];logger['info'](_0x81e5('0x18'),_0x562c53[_0x5bbe21],this[_0x81e5('0x8')][_0x3dd03c][_0x4b8372]['target']);}if(_0x562c53[_0x5bbe21]===_0x1f8bca){return this[_0x81e5('0x19')](this['edges'][_0x3dd03c][_0x4b8372][_0x81e5('0x15')],_0x42728f);}}}else{return this[_0x81e5('0x19')](this[_0x81e5('0x8')][_0x3dd03c][_0x4b8372][_0x81e5('0x15')],_0x42728f);}}if(_0x562c53[_0x81e5('0x10')]){if(this['vertices'][_0x3dd03c][_0x81e5('0x14')]===_0x81e5('0x1a')){if(_0x110c66){return this[_0x81e5('0x19')](_0x110c66,_0x42728f);}return logger['info'](_0x81e5('0x1b'));}else if(_['includes'](verticesWithRetry,this[_0x81e5('0x4')][_0x3dd03c]['agicommand'])){if(_0x1f8bca==='-'){return logger[_0x81e5('0xe')]('max\x20retry\x20reach');}if(_0x110c66&&_0x1f8bca!=='t'){return this[_0x81e5('0x19')](_0x110c66,_0x42728f);}return this[_0x81e5('0x19')](_0x3dd03c,_0x42728f);}return logger[_0x81e5('0xe')](_0x81e5('0x1c'));}};module[_0x81e5('0x1d')]=Graph;