bcb34d4021093e37f255a5e37233c57b1ad5fe9e
[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 _0x4227=['condition\x20not\x20found','exports','lodash','menu','getsecretdigits','vertices','edges','prototype','addVertex','addEdge','push','numberOfEdges','size','relations','traverseBFS','info','stop\x20traverse','no\x20edge/s\x20available','condition','agicommand','vswitch','target','default','invalid','length','default\x20on\x20switch\x20not\x20found','max\x20retry\x20reach'];(function(_0x15beaf,_0x49566f){var _0xfacf62=function(_0x5cbfff){while(--_0x5cbfff){_0x15beaf['push'](_0x15beaf['shift']());}};_0xfacf62(++_0x49566f);}(_0x4227,0x89));var _0x7422=function(_0xf6ae6f,_0x17cdf3){_0xf6ae6f=_0xf6ae6f-0x0;var _0x10b489=_0x4227[_0xf6ae6f];return _0x10b489;};'use strict';var _=require(_0x7422('0x0'));var logger=require('../../../config/logger')('agi');var verticesWithRetry=[_0x7422('0x1'),'getdigits',_0x7422('0x2')];var Graph=function(){this[_0x7422('0x3')]={};this[_0x7422('0x4')]={};this['numberOfEdges']=0x0;};Graph[_0x7422('0x5')][_0x7422('0x6')]=function(_0x2138fe){this[_0x7422('0x3')][_0x2138fe['id']]=_0x2138fe;this[_0x7422('0x4')][_0x2138fe['id']]=[];};Graph[_0x7422('0x5')][_0x7422('0x7')]=function(_0x45ca1a,_0x12965e,_0x599d78){this[_0x7422('0x4')][_0x45ca1a][_0x7422('0x8')]({'target':_0x12965e,'condition':_0x599d78});this[_0x7422('0x9')]+=0x1;};Graph['prototype'][_0x7422('0xa')]=function(){return _['size'](this[_0x7422('0x3')]);};Graph[_0x7422('0x5')][_0x7422('0xb')]=function(){return this[_0x7422('0x9')];};Graph[_0x7422('0x5')]['getVertex']=function(_0x30d474){return this[_0x7422('0x3')][_0x30d474];};Graph['prototype'][_0x7422('0xc')]=function(_0x2acd6c,_0x4f46dc){if(!this[_0x7422('0x3')][_0x2acd6c]){return logger[_0x7422('0xd')]('no\x20vertex\x20found');}var _0x4d3f91=_0x4f46dc(this[_0x7422('0x3')][_0x2acd6c]);if(!_0x4d3f91){return logger['info'](_0x7422('0xe'));}if(this[_0x7422('0x4')][_0x2acd6c]['length']===0x0){return logger[_0x7422('0xd')](_0x7422('0xf'));}for(var _0x31c3ec=0x0,_0x1d1ac3=[],_0x2946ca=![];_0x31c3ec<this[_0x7422('0x4')][_0x2acd6c]['length'];_0x31c3ec+=0x1){if(this[_0x7422('0x4')][_0x2acd6c][_0x31c3ec][_0x7422('0x10')]){_0x1d1ac3=this[_0x7422('0x4')][_0x2acd6c][_0x31c3ec][_0x7422('0x10')]['split'](',');for(var _0x1f9e09=0x0;_0x1f9e09<_0x1d1ac3['length'];_0x1f9e09+=0x1){if(this[_0x7422('0x3')][_0x2acd6c][_0x7422('0x11')]===_0x7422('0x12')&&_0x1d1ac3[_0x1f9e09]==='-'){_0x2946ca=this['edges'][_0x2acd6c][_0x31c3ec][_0x7422('0x13')];logger[_0x7422('0xd')](_0x7422('0x14'),_0x1d1ac3[_0x1f9e09],this[_0x7422('0x4')][_0x2acd6c][_0x31c3ec]['target']);}else if(this['vertices'][_0x2acd6c][_0x7422('0x11')]===_0x7422('0x1')&&_0x1d1ac3[_0x1f9e09]==='i'){_0x2946ca=this[_0x7422('0x4')][_0x2acd6c][_0x31c3ec][_0x7422('0x13')];logger[_0x7422('0xd')](_0x7422('0x15'),_0x1d1ac3[_0x1f9e09],this[_0x7422('0x4')][_0x2acd6c][_0x31c3ec]['target']);}if(_0x1d1ac3[_0x1f9e09]===_0x4d3f91){return this[_0x7422('0xc')](this[_0x7422('0x4')][_0x2acd6c][_0x31c3ec]['target'],_0x4f46dc);}}}else{return this[_0x7422('0xc')](this[_0x7422('0x4')][_0x2acd6c][_0x31c3ec][_0x7422('0x13')],_0x4f46dc);}}if(_0x1d1ac3[_0x7422('0x16')]){if(this['vertices'][_0x2acd6c][_0x7422('0x11')]===_0x7422('0x12')){if(_0x2946ca){return this[_0x7422('0xc')](_0x2946ca,_0x4f46dc);}return logger[_0x7422('0xd')](_0x7422('0x17'));}else if(_['includes'](verticesWithRetry,this[_0x7422('0x3')][_0x2acd6c][_0x7422('0x11')])){if(_0x4d3f91==='-'){return logger[_0x7422('0xd')](_0x7422('0x18'));}if(_0x2946ca&&_0x4d3f91!=='t'){return this['traverseBFS'](_0x2946ca,_0x4f46dc);}return this[_0x7422('0xc')](_0x2acd6c,_0x4f46dc);}return logger[_0x7422('0xd')](_0x7422('0x19'));}};module[_0x7422('0x1a')]=Graph;