8b72bbac0343f9d54448e7d33357b2d637929085
[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 _0xe978=['agi','getdigits','getsecretdigits','vertices','edges','numberOfEdges','prototype','addEdge','push','size','relations','getVertex','traverseBFS','info','stop\x20traverse','length','no\x20edge/s\x20available','condition','split','agicommand','vswitch','default','target','menu','default\x20on\x20switch\x20not\x20found','includes','max\x20retry\x20reach','condition\x20not\x20found','exports','lodash','../../../config/logger'];(function(_0x15ce17,_0x13068d){var _0x4856e3=function(_0x272de5){while(--_0x272de5){_0x15ce17['push'](_0x15ce17['shift']());}};_0x4856e3(++_0x13068d);}(_0xe978,0x191));var _0x8e97=function(_0x31dbb1,_0x1e0d30){_0x31dbb1=_0x31dbb1-0x0;var _0x130f5d=_0xe978[_0x31dbb1];return _0x130f5d;};'use strict';var _=require(_0x8e97('0x0'));var logger=require(_0x8e97('0x1'))(_0x8e97('0x2'));var verticesWithRetry=['menu',_0x8e97('0x3'),_0x8e97('0x4')];var Graph=function(){this[_0x8e97('0x5')]={};this[_0x8e97('0x6')]={};this[_0x8e97('0x7')]=0x0;};Graph[_0x8e97('0x8')]['addVertex']=function(_0x3cd6a7){this[_0x8e97('0x5')][_0x3cd6a7['id']]=_0x3cd6a7;this[_0x8e97('0x6')][_0x3cd6a7['id']]=[];};Graph[_0x8e97('0x8')][_0x8e97('0x9')]=function(_0x6d0a3a,_0x5ef03b,_0x3f1fc8){this[_0x8e97('0x6')][_0x6d0a3a][_0x8e97('0xa')]({'target':_0x5ef03b,'condition':_0x3f1fc8});this['numberOfEdges']+=0x1;};Graph[_0x8e97('0x8')][_0x8e97('0xb')]=function(){return _[_0x8e97('0xb')](this[_0x8e97('0x5')]);};Graph[_0x8e97('0x8')][_0x8e97('0xc')]=function(){return this['numberOfEdges'];};Graph[_0x8e97('0x8')][_0x8e97('0xd')]=function(_0x31c6f1){return this[_0x8e97('0x5')][_0x31c6f1];};Graph[_0x8e97('0x8')][_0x8e97('0xe')]=function(_0x46c848,_0x516d5a){if(!this[_0x8e97('0x5')][_0x46c848]){return logger[_0x8e97('0xf')]('no\x20vertex\x20found');}var _0x38ea79=_0x516d5a(this[_0x8e97('0x5')][_0x46c848]);if(!_0x38ea79){return logger[_0x8e97('0xf')](_0x8e97('0x10'));}if(this[_0x8e97('0x6')][_0x46c848][_0x8e97('0x11')]===0x0){return logger[_0x8e97('0xf')](_0x8e97('0x12'));}for(var _0x7bc6e2=0x0,_0x56bf7a=[],_0x2ac6bb=![];_0x7bc6e2<this['edges'][_0x46c848]['length'];_0x7bc6e2+=0x1){if(this[_0x8e97('0x6')][_0x46c848][_0x7bc6e2][_0x8e97('0x13')]){_0x56bf7a=this['edges'][_0x46c848][_0x7bc6e2][_0x8e97('0x13')][_0x8e97('0x14')](',');for(var _0x54a8bb=0x0;_0x54a8bb<_0x56bf7a['length'];_0x54a8bb+=0x1){if(this['vertices'][_0x46c848][_0x8e97('0x15')]===_0x8e97('0x16')&&_0x56bf7a[_0x54a8bb]==='-'){_0x2ac6bb=this[_0x8e97('0x6')][_0x46c848][_0x7bc6e2]['target'];logger[_0x8e97('0xf')](_0x8e97('0x17'),_0x56bf7a[_0x54a8bb],this['edges'][_0x46c848][_0x7bc6e2][_0x8e97('0x18')]);}else if(this[_0x8e97('0x5')][_0x46c848]['agicommand']===_0x8e97('0x19')&&_0x56bf7a[_0x54a8bb]==='i'){_0x2ac6bb=this['edges'][_0x46c848][_0x7bc6e2][_0x8e97('0x18')];logger[_0x8e97('0xf')]('invalid',_0x56bf7a[_0x54a8bb],this[_0x8e97('0x6')][_0x46c848][_0x7bc6e2][_0x8e97('0x18')]);}if(_0x56bf7a[_0x54a8bb]===_0x38ea79){return this[_0x8e97('0xe')](this[_0x8e97('0x6')][_0x46c848][_0x7bc6e2][_0x8e97('0x18')],_0x516d5a);}}}else{return this[_0x8e97('0xe')](this[_0x8e97('0x6')][_0x46c848][_0x7bc6e2][_0x8e97('0x18')],_0x516d5a);}}if(_0x56bf7a[_0x8e97('0x11')]){if(this['vertices'][_0x46c848][_0x8e97('0x15')]===_0x8e97('0x16')){if(_0x2ac6bb){return this[_0x8e97('0xe')](_0x2ac6bb,_0x516d5a);}return logger[_0x8e97('0xf')](_0x8e97('0x1a'));}else if(_[_0x8e97('0x1b')](verticesWithRetry,this['vertices'][_0x46c848][_0x8e97('0x15')])){if(_0x38ea79==='-'){return logger[_0x8e97('0xf')](_0x8e97('0x1c'));}if(_0x2ac6bb&&_0x38ea79!=='t'){return this[_0x8e97('0xe')](_0x2ac6bb,_0x516d5a);}return this['traverseBFS'](_0x46c848,_0x516d5a);}return logger[_0x8e97('0xf')](_0x8e97('0x1d'));}};module[_0x8e97('0x1e')]=Graph;