Built motion from commit (unavailable).|2.5.17
[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 _0x3423=['agi','menu','getdigits','getsecretdigits','vertices','edges','numberOfEdges','prototype','addVertex','addEdge','push','size','traverseBFS','info','no\x20vertex\x20found','length','no\x20edge/s\x20available','condition','split','agicommand','vswitch','default','target','invalid','default\x20on\x20switch\x20not\x20found','max\x20retry\x20reach','condition\x20not\x20found','exports'];(function(_0x23e7c1,_0x35110c){var _0x1add43=function(_0x238918){while(--_0x238918){_0x23e7c1['push'](_0x23e7c1['shift']());}};_0x1add43(++_0x35110c);}(_0x3423,0x188));var _0x3342=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x3423[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var logger=require('../../../config/logger')(_0x3342('0x0'));var verticesWithRetry=[_0x3342('0x1'),_0x3342('0x2'),_0x3342('0x3')];var Graph=function(){this[_0x3342('0x4')]={};this[_0x3342('0x5')]={};this[_0x3342('0x6')]=0x0;};Graph[_0x3342('0x7')][_0x3342('0x8')]=function(_0x19206f){this[_0x3342('0x4')][_0x19206f['id']]=_0x19206f;this[_0x3342('0x5')][_0x19206f['id']]=[];};Graph[_0x3342('0x7')][_0x3342('0x9')]=function(_0x76422d,_0xce08ab,_0x305d13){this[_0x3342('0x5')][_0x76422d][_0x3342('0xa')]({'target':_0xce08ab,'condition':_0x305d13});this['numberOfEdges']+=0x1;};Graph['prototype'][_0x3342('0xb')]=function(){return _['size'](this['vertices']);};Graph['prototype']['relations']=function(){return this[_0x3342('0x6')];};Graph[_0x3342('0x7')]['getVertex']=function(_0x2d14c4){return this['vertices'][_0x2d14c4];};Graph[_0x3342('0x7')][_0x3342('0xc')]=function(_0x592ba8,_0x3e418d){if(!this[_0x3342('0x4')][_0x592ba8]){return logger[_0x3342('0xd')](_0x3342('0xe'));}var _0x61fcc0=_0x3e418d(this[_0x3342('0x4')][_0x592ba8]);if(!_0x61fcc0){return logger[_0x3342('0xd')]('stop\x20traverse');}if(this[_0x3342('0x5')][_0x592ba8][_0x3342('0xf')]===0x0){return logger['info'](_0x3342('0x10'));}for(var _0x2c9df0=0x0,_0x51ef91=[],_0x554f9c=![];_0x2c9df0<this[_0x3342('0x5')][_0x592ba8][_0x3342('0xf')];_0x2c9df0+=0x1){if(this[_0x3342('0x5')][_0x592ba8][_0x2c9df0][_0x3342('0x11')]){_0x51ef91=this[_0x3342('0x5')][_0x592ba8][_0x2c9df0][_0x3342('0x11')][_0x3342('0x12')](',');for(var _0x3ebf6b=0x0;_0x3ebf6b<_0x51ef91[_0x3342('0xf')];_0x3ebf6b+=0x1){if(this['vertices'][_0x592ba8][_0x3342('0x13')]===_0x3342('0x14')&&_0x51ef91[_0x3ebf6b]==='-'){_0x554f9c=this[_0x3342('0x5')][_0x592ba8][_0x2c9df0]['target'];logger[_0x3342('0xd')](_0x3342('0x15'),_0x51ef91[_0x3ebf6b],this['edges'][_0x592ba8][_0x2c9df0][_0x3342('0x16')]);}else if(this[_0x3342('0x4')][_0x592ba8]['agicommand']===_0x3342('0x1')&&_0x51ef91[_0x3ebf6b]==='i'){_0x554f9c=this['edges'][_0x592ba8][_0x2c9df0][_0x3342('0x16')];logger[_0x3342('0xd')](_0x3342('0x17'),_0x51ef91[_0x3ebf6b],this[_0x3342('0x5')][_0x592ba8][_0x2c9df0][_0x3342('0x16')]);}if(_0x51ef91[_0x3ebf6b]===_0x61fcc0){return this[_0x3342('0xc')](this[_0x3342('0x5')][_0x592ba8][_0x2c9df0][_0x3342('0x16')],_0x3e418d);}}}else{return this['traverseBFS'](this[_0x3342('0x5')][_0x592ba8][_0x2c9df0]['target'],_0x3e418d);}}if(_0x51ef91['length']){if(this[_0x3342('0x4')][_0x592ba8]['agicommand']==='vswitch'){if(_0x554f9c){return this[_0x3342('0xc')](_0x554f9c,_0x3e418d);}return logger['info'](_0x3342('0x18'));}else if(_['includes'](verticesWithRetry,this['vertices'][_0x592ba8]['agicommand'])){if(_0x61fcc0==='-'){return logger[_0x3342('0xd')](_0x3342('0x19'));}if(_0x554f9c&&_0x61fcc0!=='t'){return this[_0x3342('0xc')](_0x554f9c,_0x3e418d);}return this['traverseBFS'](_0x592ba8,_0x3e418d);}return logger[_0x3342('0xd')](_0x3342('0x1a'));}};module[_0x3342('0x1b')]=Graph;