2076c6a2a42a7d3af37936eb04723bcba2467db0
[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 _0xc125=['vswitch','default\x20on\x20switch\x20not\x20found','includes','max\x20retry\x20reach','condition\x20not\x20found','exports','lodash','../../../config/logger','menu','getdigits','vertices','edges','numberOfEdges','addVertex','prototype','addEdge','push','relations','traverseBFS','no\x20vertex\x20found','info','stop\x20traverse','length','no\x20edge/s\x20available','condition','split','agicommand','target','default'];(function(_0x125ff8,_0x41925f){var _0x2d9ef=function(_0x4ef34c){while(--_0x4ef34c){_0x125ff8['push'](_0x125ff8['shift']());}};_0x2d9ef(++_0x41925f);}(_0xc125,0x19c));var _0x5c12=function(_0x1999b2,_0x103e7f){_0x1999b2=_0x1999b2-0x0;var _0x253de4=_0xc125[_0x1999b2];return _0x253de4;};'use strict';var _=require(_0x5c12('0x0'));var logger=require(_0x5c12('0x1'))('agi');var verticesWithRetry=[_0x5c12('0x2'),_0x5c12('0x3'),'getsecretdigits'];var Graph=function(){this[_0x5c12('0x4')]={};this[_0x5c12('0x5')]={};this[_0x5c12('0x6')]=0x0;};Graph['prototype'][_0x5c12('0x7')]=function(_0x5dcb3d){this[_0x5c12('0x4')][_0x5dcb3d['id']]=_0x5dcb3d;this['edges'][_0x5dcb3d['id']]=[];};Graph[_0x5c12('0x8')][_0x5c12('0x9')]=function(_0x19d2a0,_0x4853fc,_0x42ecfe){this['edges'][_0x19d2a0][_0x5c12('0xa')]({'target':_0x4853fc,'condition':_0x42ecfe});this[_0x5c12('0x6')]+=0x1;};Graph['prototype']['size']=function(){return _['size'](this[_0x5c12('0x4')]);};Graph['prototype'][_0x5c12('0xb')]=function(){return this[_0x5c12('0x6')];};Graph[_0x5c12('0x8')]['getVertex']=function(_0x554c7a){return this[_0x5c12('0x4')][_0x554c7a];};Graph['prototype'][_0x5c12('0xc')]=function(_0x7e6d18,_0x48d0a6){if(!this[_0x5c12('0x4')][_0x7e6d18]){return logger['info'](_0x5c12('0xd'));}var _0x16e3d5=_0x48d0a6(this[_0x5c12('0x4')][_0x7e6d18]);if(!_0x16e3d5){return logger[_0x5c12('0xe')](_0x5c12('0xf'));}if(this[_0x5c12('0x5')][_0x7e6d18][_0x5c12('0x10')]===0x0){return logger[_0x5c12('0xe')](_0x5c12('0x11'));}for(var _0x5069e5=0x0,_0x897152=[],_0x2fa844=![];_0x5069e5<this['edges'][_0x7e6d18][_0x5c12('0x10')];_0x5069e5+=0x1){if(this[_0x5c12('0x5')][_0x7e6d18][_0x5069e5][_0x5c12('0x12')]){_0x897152=this[_0x5c12('0x5')][_0x7e6d18][_0x5069e5][_0x5c12('0x12')][_0x5c12('0x13')](',');for(var _0x119e57=0x0;_0x119e57<_0x897152[_0x5c12('0x10')];_0x119e57+=0x1){if(this['vertices'][_0x7e6d18][_0x5c12('0x14')]==='vswitch'&&_0x897152[_0x119e57]==='-'){_0x2fa844=this[_0x5c12('0x5')][_0x7e6d18][_0x5069e5][_0x5c12('0x15')];logger[_0x5c12('0xe')](_0x5c12('0x16'),_0x897152[_0x119e57],this['edges'][_0x7e6d18][_0x5069e5]['target']);}else if(this[_0x5c12('0x4')][_0x7e6d18]['agicommand']===_0x5c12('0x2')&&_0x897152[_0x119e57]==='i'){_0x2fa844=this[_0x5c12('0x5')][_0x7e6d18][_0x5069e5][_0x5c12('0x15')];logger[_0x5c12('0xe')]('invalid',_0x897152[_0x119e57],this['edges'][_0x7e6d18][_0x5069e5][_0x5c12('0x15')]);}if(_0x897152[_0x119e57]===_0x16e3d5){return this[_0x5c12('0xc')](this[_0x5c12('0x5')][_0x7e6d18][_0x5069e5][_0x5c12('0x15')],_0x48d0a6);}}}else{return this[_0x5c12('0xc')](this['edges'][_0x7e6d18][_0x5069e5][_0x5c12('0x15')],_0x48d0a6);}}if(_0x897152[_0x5c12('0x10')]){if(this[_0x5c12('0x4')][_0x7e6d18]['agicommand']===_0x5c12('0x17')){if(_0x2fa844){return this['traverseBFS'](_0x2fa844,_0x48d0a6);}return logger[_0x5c12('0xe')](_0x5c12('0x18'));}else if(_[_0x5c12('0x19')](verticesWithRetry,this[_0x5c12('0x4')][_0x7e6d18][_0x5c12('0x14')])){if(_0x16e3d5==='-'){return logger['info'](_0x5c12('0x1a'));}if(_0x2fa844&&_0x16e3d5!=='t'){return this[_0x5c12('0xc')](_0x2fa844,_0x48d0a6);}return this[_0x5c12('0xc')](_0x7e6d18,_0x48d0a6);}return logger['info'](_0x5c12('0x1b'));}};module[_0x5c12('0x1c')]=Graph;