Built motion from commit 5b761a7b.|2.5.36
[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 _0x47bf=['default\x20on\x20switch\x20not\x20found','exports','lodash','agi','menu','getsecretdigits','vertices','edges','prototype','addVertex','addEdge','push','numberOfEdges','size','relations','traverseBFS','info','no\x20vertex\x20found','stop\x20traverse','length','condition','agicommand','default','target','vswitch'];(function(_0xc69f8,_0x2af994){var _0x45198e=function(_0x285fc1){while(--_0x285fc1){_0xc69f8['push'](_0xc69f8['shift']());}};_0x45198e(++_0x2af994);}(_0x47bf,0xfc));var _0xf47b=function(_0xfa3cc9,_0x397970){_0xfa3cc9=_0xfa3cc9-0x0;var _0x5d29fa=_0x47bf[_0xfa3cc9];return _0x5d29fa;};'use strict';var _=require(_0xf47b('0x0'));var logger=require('../../../config/logger')(_0xf47b('0x1'));var verticesWithRetry=[_0xf47b('0x2'),'getdigits',_0xf47b('0x3')];var Graph=function(){this[_0xf47b('0x4')]={};this[_0xf47b('0x5')]={};this['numberOfEdges']=0x0;};Graph[_0xf47b('0x6')][_0xf47b('0x7')]=function(_0x3109cd){this[_0xf47b('0x4')][_0x3109cd['id']]=_0x3109cd;this[_0xf47b('0x5')][_0x3109cd['id']]=[];};Graph[_0xf47b('0x6')][_0xf47b('0x8')]=function(_0x3d8383,_0x334a2f,_0x45964){this['edges'][_0x3d8383][_0xf47b('0x9')]({'target':_0x334a2f,'condition':_0x45964});this[_0xf47b('0xa')]+=0x1;};Graph[_0xf47b('0x6')][_0xf47b('0xb')]=function(){return _[_0xf47b('0xb')](this[_0xf47b('0x4')]);};Graph[_0xf47b('0x6')][_0xf47b('0xc')]=function(){return this[_0xf47b('0xa')];};Graph[_0xf47b('0x6')]['getVertex']=function(_0x5be8d7){return this[_0xf47b('0x4')][_0x5be8d7];};Graph[_0xf47b('0x6')][_0xf47b('0xd')]=function(_0x248edf,_0x57d37f){if(!this[_0xf47b('0x4')][_0x248edf]){return logger[_0xf47b('0xe')](_0xf47b('0xf'));}var _0x316ee5=_0x57d37f(this[_0xf47b('0x4')][_0x248edf]);if(!_0x316ee5){return logger['info'](_0xf47b('0x10'));}if(this[_0xf47b('0x5')][_0x248edf][_0xf47b('0x11')]===0x0){return logger['info']('no\x20edge/s\x20available');}for(var _0x1b9578=0x0,_0x4709fa=[],_0x24f6b0=![];_0x1b9578<this[_0xf47b('0x5')][_0x248edf]['length'];_0x1b9578+=0x1){if(this[_0xf47b('0x5')][_0x248edf][_0x1b9578][_0xf47b('0x12')]){_0x4709fa=this['edges'][_0x248edf][_0x1b9578][_0xf47b('0x12')]['split'](',');for(var _0x34355e=0x0;_0x34355e<_0x4709fa[_0xf47b('0x11')];_0x34355e+=0x1){if(this[_0xf47b('0x4')][_0x248edf][_0xf47b('0x13')]==='vswitch'&&_0x4709fa[_0x34355e]==='-'){_0x24f6b0=this[_0xf47b('0x5')][_0x248edf][_0x1b9578]['target'];logger['info'](_0xf47b('0x14'),_0x4709fa[_0x34355e],this[_0xf47b('0x5')][_0x248edf][_0x1b9578][_0xf47b('0x15')]);}else if(this['vertices'][_0x248edf][_0xf47b('0x13')]===_0xf47b('0x2')&&_0x4709fa[_0x34355e]==='i'){_0x24f6b0=this[_0xf47b('0x5')][_0x248edf][_0x1b9578][_0xf47b('0x15')];logger[_0xf47b('0xe')]('invalid',_0x4709fa[_0x34355e],this['edges'][_0x248edf][_0x1b9578][_0xf47b('0x15')]);}if(_0x4709fa[_0x34355e]===_0x316ee5){return this[_0xf47b('0xd')](this[_0xf47b('0x5')][_0x248edf][_0x1b9578][_0xf47b('0x15')],_0x57d37f);}}}else{return this['traverseBFS'](this[_0xf47b('0x5')][_0x248edf][_0x1b9578]['target'],_0x57d37f);}}if(_0x4709fa['length']){if(this[_0xf47b('0x4')][_0x248edf]['agicommand']===_0xf47b('0x16')){if(_0x24f6b0){return this['traverseBFS'](_0x24f6b0,_0x57d37f);}return logger[_0xf47b('0xe')](_0xf47b('0x17'));}else if(_['includes'](verticesWithRetry,this[_0xf47b('0x4')][_0x248edf][_0xf47b('0x13')])){if(_0x316ee5==='-'){return logger[_0xf47b('0xe')]('max\x20retry\x20reach');}if(_0x24f6b0&&_0x316ee5!=='t'){return this['traverseBFS'](_0x24f6b0,_0x57d37f);}return this[_0xf47b('0xd')](_0x248edf,_0x57d37f);}return logger[_0xf47b('0xe')]('condition\x20not\x20found');}};module[_0xf47b('0x18')]=Graph;