Built motion from commit (unavailable).|2.5.16
[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 _0x0565=['agicommand','vswitch','target','default','invalid','traverseBFS','default\x20on\x20switch\x20not\x20found','includes','max\x20retry\x20reach','exports','lodash','../../../config/logger','agi','menu','getdigits','getsecretdigits','vertices','edges','numberOfEdges','prototype','push','size','relations','info','no\x20vertex\x20found','stop\x20traverse','length','condition','split'];(function(_0x882684,_0x1d0dca){var _0x2d270a=function(_0x58c20c){while(--_0x58c20c){_0x882684['push'](_0x882684['shift']());}};_0x2d270a(++_0x1d0dca);}(_0x0565,0xf2));var _0x5056=function(_0xb24a3e,_0x4a3594){_0xb24a3e=_0xb24a3e-0x0;var _0x4038d7=_0x0565[_0xb24a3e];return _0x4038d7;};'use strict';var _=require(_0x5056('0x0'));var logger=require(_0x5056('0x1'))(_0x5056('0x2'));var verticesWithRetry=[_0x5056('0x3'),_0x5056('0x4'),_0x5056('0x5')];var Graph=function(){this[_0x5056('0x6')]={};this[_0x5056('0x7')]={};this[_0x5056('0x8')]=0x0;};Graph[_0x5056('0x9')]['addVertex']=function(_0x946e96){this[_0x5056('0x6')][_0x946e96['id']]=_0x946e96;this[_0x5056('0x7')][_0x946e96['id']]=[];};Graph[_0x5056('0x9')]['addEdge']=function(_0x52b01f,_0x38f74,_0x223c92){this[_0x5056('0x7')][_0x52b01f][_0x5056('0xa')]({'target':_0x38f74,'condition':_0x223c92});this[_0x5056('0x8')]+=0x1;};Graph[_0x5056('0x9')][_0x5056('0xb')]=function(){return _[_0x5056('0xb')](this['vertices']);};Graph[_0x5056('0x9')][_0x5056('0xc')]=function(){return this[_0x5056('0x8')];};Graph['prototype']['getVertex']=function(_0x17f43e){return this['vertices'][_0x17f43e];};Graph['prototype']['traverseBFS']=function(_0x2d44fb,_0x4b183a){if(!this[_0x5056('0x6')][_0x2d44fb]){return logger[_0x5056('0xd')](_0x5056('0xe'));}var _0x543cee=_0x4b183a(this[_0x5056('0x6')][_0x2d44fb]);if(!_0x543cee){return logger[_0x5056('0xd')](_0x5056('0xf'));}if(this[_0x5056('0x7')][_0x2d44fb][_0x5056('0x10')]===0x0){return logger[_0x5056('0xd')]('no\x20edge/s\x20available');}for(var _0x2b7a17=0x0,_0x560d1e=[],_0x43db77=![];_0x2b7a17<this[_0x5056('0x7')][_0x2d44fb][_0x5056('0x10')];_0x2b7a17+=0x1){if(this[_0x5056('0x7')][_0x2d44fb][_0x2b7a17][_0x5056('0x11')]){_0x560d1e=this['edges'][_0x2d44fb][_0x2b7a17][_0x5056('0x11')][_0x5056('0x12')](',');for(var _0x4f8fa7=0x0;_0x4f8fa7<_0x560d1e['length'];_0x4f8fa7+=0x1){if(this[_0x5056('0x6')][_0x2d44fb][_0x5056('0x13')]===_0x5056('0x14')&&_0x560d1e[_0x4f8fa7]==='-'){_0x43db77=this[_0x5056('0x7')][_0x2d44fb][_0x2b7a17][_0x5056('0x15')];logger[_0x5056('0xd')](_0x5056('0x16'),_0x560d1e[_0x4f8fa7],this['edges'][_0x2d44fb][_0x2b7a17][_0x5056('0x15')]);}else if(this[_0x5056('0x6')][_0x2d44fb]['agicommand']===_0x5056('0x3')&&_0x560d1e[_0x4f8fa7]==='i'){_0x43db77=this[_0x5056('0x7')][_0x2d44fb][_0x2b7a17][_0x5056('0x15')];logger['info'](_0x5056('0x17'),_0x560d1e[_0x4f8fa7],this[_0x5056('0x7')][_0x2d44fb][_0x2b7a17]['target']);}if(_0x560d1e[_0x4f8fa7]===_0x543cee){return this['traverseBFS'](this[_0x5056('0x7')][_0x2d44fb][_0x2b7a17][_0x5056('0x15')],_0x4b183a);}}}else{return this[_0x5056('0x18')](this[_0x5056('0x7')][_0x2d44fb][_0x2b7a17]['target'],_0x4b183a);}}if(_0x560d1e[_0x5056('0x10')]){if(this[_0x5056('0x6')][_0x2d44fb]['agicommand']===_0x5056('0x14')){if(_0x43db77){return this['traverseBFS'](_0x43db77,_0x4b183a);}return logger[_0x5056('0xd')](_0x5056('0x19'));}else if(_[_0x5056('0x1a')](verticesWithRetry,this[_0x5056('0x6')][_0x2d44fb][_0x5056('0x13')])){if(_0x543cee==='-'){return logger['info'](_0x5056('0x1b'));}if(_0x43db77&&_0x543cee!=='t'){return this[_0x5056('0x18')](_0x43db77,_0x4b183a);}return this[_0x5056('0x18')](_0x2d44fb,_0x4b183a);}return logger[_0x5056('0xd')]('condition\x20not\x20found');}};module[_0x5056('0x1c')]=Graph;