Built motion from commit 775e2a94.|2.6.3
[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 _0x219a=['agi','menu','getdigits','getsecretdigits','vertices','edges','numberOfEdges','prototype','addVertex','addEdge','size','getVertex','traverseBFS','info','stop\x20traverse','length','condition','agicommand','vswitch','target','default\x20on\x20switch\x20not\x20found','includes','condition\x20not\x20found','exports','lodash','../../../config/logger'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x219a,0x184));var _0xa219=function(_0x192811,_0x64f019){_0x192811=_0x192811-0x0;var _0x3b480b=_0x219a[_0x192811];return _0x3b480b;};'use strict';var _=require(_0xa219('0x0'));var logger=require(_0xa219('0x1'))(_0xa219('0x2'));var verticesWithRetry=[_0xa219('0x3'),_0xa219('0x4'),_0xa219('0x5')];var Graph=function(){this[_0xa219('0x6')]={};this[_0xa219('0x7')]={};this[_0xa219('0x8')]=0x0;};Graph[_0xa219('0x9')][_0xa219('0xa')]=function(_0x3c5cc9){this[_0xa219('0x6')][_0x3c5cc9['id']]=_0x3c5cc9;this[_0xa219('0x7')][_0x3c5cc9['id']]=[];};Graph[_0xa219('0x9')][_0xa219('0xb')]=function(_0xf9bf06,_0x46d48c,_0x191ce7){this[_0xa219('0x7')][_0xf9bf06]['push']({'target':_0x46d48c,'condition':_0x191ce7});this[_0xa219('0x8')]+=0x1;};Graph[_0xa219('0x9')]['size']=function(){return _[_0xa219('0xc')](this[_0xa219('0x6')]);};Graph[_0xa219('0x9')]['relations']=function(){return this[_0xa219('0x8')];};Graph['prototype'][_0xa219('0xd')]=function(_0x444412){return this[_0xa219('0x6')][_0x444412];};Graph[_0xa219('0x9')][_0xa219('0xe')]=function(_0xc43cd9,_0x4ce5b8){if(!this[_0xa219('0x6')][_0xc43cd9]){return logger['info']('no\x20vertex\x20found');}var _0x47ba40=_0x4ce5b8(this[_0xa219('0x6')][_0xc43cd9]);if(!_0x47ba40){return logger[_0xa219('0xf')](_0xa219('0x10'));}if(this[_0xa219('0x7')][_0xc43cd9][_0xa219('0x11')]===0x0){return logger[_0xa219('0xf')]('no\x20edge/s\x20available');}for(var _0x510dad=0x0,_0x3108ce=[],_0x595cb7=![];_0x510dad<this[_0xa219('0x7')][_0xc43cd9][_0xa219('0x11')];_0x510dad+=0x1){if(this['edges'][_0xc43cd9][_0x510dad][_0xa219('0x12')]){_0x3108ce=this[_0xa219('0x7')][_0xc43cd9][_0x510dad][_0xa219('0x12')]['split'](',');for(var _0x48da99=0x0;_0x48da99<_0x3108ce[_0xa219('0x11')];_0x48da99+=0x1){if(this[_0xa219('0x6')][_0xc43cd9][_0xa219('0x13')]===_0xa219('0x14')&&_0x3108ce[_0x48da99]==='-'){_0x595cb7=this[_0xa219('0x7')][_0xc43cd9][_0x510dad][_0xa219('0x15')];logger['info']('default',_0x3108ce[_0x48da99],this[_0xa219('0x7')][_0xc43cd9][_0x510dad][_0xa219('0x15')]);}else if(this[_0xa219('0x6')][_0xc43cd9]['agicommand']===_0xa219('0x3')&&_0x3108ce[_0x48da99]==='i'){_0x595cb7=this[_0xa219('0x7')][_0xc43cd9][_0x510dad][_0xa219('0x15')];logger[_0xa219('0xf')]('invalid',_0x3108ce[_0x48da99],this[_0xa219('0x7')][_0xc43cd9][_0x510dad][_0xa219('0x15')]);}if(_0x3108ce[_0x48da99]===_0x47ba40){return this[_0xa219('0xe')](this[_0xa219('0x7')][_0xc43cd9][_0x510dad][_0xa219('0x15')],_0x4ce5b8);}}}else{return this[_0xa219('0xe')](this['edges'][_0xc43cd9][_0x510dad][_0xa219('0x15')],_0x4ce5b8);}}if(_0x3108ce[_0xa219('0x11')]){if(this[_0xa219('0x6')][_0xc43cd9][_0xa219('0x13')]===_0xa219('0x14')){if(_0x595cb7){return this['traverseBFS'](_0x595cb7,_0x4ce5b8);}return logger[_0xa219('0xf')](_0xa219('0x16'));}else if(_[_0xa219('0x17')](verticesWithRetry,this['vertices'][_0xc43cd9][_0xa219('0x13')])){if(_0x47ba40==='-'){return logger[_0xa219('0xf')]('max\x20retry\x20reach');}if(_0x595cb7&&_0x47ba40!=='t'){return this['traverseBFS'](_0x595cb7,_0x4ce5b8);}return this['traverseBFS'](_0xc43cd9,_0x4ce5b8);}return logger[_0xa219('0xf')](_0xa219('0x18'));}};module[_0xa219('0x19')]=Graph;