Built motion from commit (unavailable).|2.5.23
[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 _0xa478=['lodash','../../../config/logger','agi','menu','getdigits','getsecretdigits','vertices','edges','numberOfEdges','prototype','addVertex','addEdge','push','size','relations','getVertex','info','no\x20vertex\x20found','stop\x20traverse','length','no\x20edge/s\x20available','condition','agicommand','vswitch','target','default','invalid','traverseBFS','default\x20on\x20switch\x20not\x20found','includes','max\x20retry\x20reach'];(function(_0x1334bc,_0x5c78af){var _0x13cf29=function(_0x214d16){while(--_0x214d16){_0x1334bc['push'](_0x1334bc['shift']());}};_0x13cf29(++_0x5c78af);}(_0xa478,0x136));var _0x8a47=function(_0xfb0281,_0x3ff38b){_0xfb0281=_0xfb0281-0x0;var _0x408dd3=_0xa478[_0xfb0281];return _0x408dd3;};'use strict';var _=require(_0x8a47('0x0'));var logger=require(_0x8a47('0x1'))(_0x8a47('0x2'));var verticesWithRetry=[_0x8a47('0x3'),_0x8a47('0x4'),_0x8a47('0x5')];var Graph=function(){this[_0x8a47('0x6')]={};this[_0x8a47('0x7')]={};this[_0x8a47('0x8')]=0x0;};Graph[_0x8a47('0x9')][_0x8a47('0xa')]=function(_0x46a4cd){this['vertices'][_0x46a4cd['id']]=_0x46a4cd;this[_0x8a47('0x7')][_0x46a4cd['id']]=[];};Graph[_0x8a47('0x9')][_0x8a47('0xb')]=function(_0x3cb340,_0x56884b,_0x384886){this['edges'][_0x3cb340][_0x8a47('0xc')]({'target':_0x56884b,'condition':_0x384886});this[_0x8a47('0x8')]+=0x1;};Graph[_0x8a47('0x9')]['size']=function(){return _[_0x8a47('0xd')](this[_0x8a47('0x6')]);};Graph['prototype'][_0x8a47('0xe')]=function(){return this['numberOfEdges'];};Graph[_0x8a47('0x9')][_0x8a47('0xf')]=function(_0x2b7640){return this['vertices'][_0x2b7640];};Graph['prototype']['traverseBFS']=function(_0x36941a,_0x12539c){if(!this['vertices'][_0x36941a]){return logger[_0x8a47('0x10')](_0x8a47('0x11'));}var _0x1a9a6f=_0x12539c(this[_0x8a47('0x6')][_0x36941a]);if(!_0x1a9a6f){return logger[_0x8a47('0x10')](_0x8a47('0x12'));}if(this[_0x8a47('0x7')][_0x36941a][_0x8a47('0x13')]===0x0){return logger[_0x8a47('0x10')](_0x8a47('0x14'));}for(var _0x26fd48=0x0,_0x226c43=[],_0x2917d9=![];_0x26fd48<this['edges'][_0x36941a][_0x8a47('0x13')];_0x26fd48+=0x1){if(this[_0x8a47('0x7')][_0x36941a][_0x26fd48][_0x8a47('0x15')]){_0x226c43=this['edges'][_0x36941a][_0x26fd48][_0x8a47('0x15')]['split'](',');for(var _0x538ed2=0x0;_0x538ed2<_0x226c43[_0x8a47('0x13')];_0x538ed2+=0x1){if(this[_0x8a47('0x6')][_0x36941a][_0x8a47('0x16')]===_0x8a47('0x17')&&_0x226c43[_0x538ed2]==='-'){_0x2917d9=this[_0x8a47('0x7')][_0x36941a][_0x26fd48][_0x8a47('0x18')];logger[_0x8a47('0x10')](_0x8a47('0x19'),_0x226c43[_0x538ed2],this[_0x8a47('0x7')][_0x36941a][_0x26fd48][_0x8a47('0x18')]);}else if(this['vertices'][_0x36941a][_0x8a47('0x16')]==='menu'&&_0x226c43[_0x538ed2]==='i'){_0x2917d9=this[_0x8a47('0x7')][_0x36941a][_0x26fd48][_0x8a47('0x18')];logger[_0x8a47('0x10')](_0x8a47('0x1a'),_0x226c43[_0x538ed2],this['edges'][_0x36941a][_0x26fd48][_0x8a47('0x18')]);}if(_0x226c43[_0x538ed2]===_0x1a9a6f){return this['traverseBFS'](this['edges'][_0x36941a][_0x26fd48]['target'],_0x12539c);}}}else{return this['traverseBFS'](this[_0x8a47('0x7')][_0x36941a][_0x26fd48][_0x8a47('0x18')],_0x12539c);}}if(_0x226c43['length']){if(this[_0x8a47('0x6')][_0x36941a][_0x8a47('0x16')]===_0x8a47('0x17')){if(_0x2917d9){return this[_0x8a47('0x1b')](_0x2917d9,_0x12539c);}return logger[_0x8a47('0x10')](_0x8a47('0x1c'));}else if(_[_0x8a47('0x1d')](verticesWithRetry,this['vertices'][_0x36941a][_0x8a47('0x16')])){if(_0x1a9a6f==='-'){return logger['info'](_0x8a47('0x1e'));}if(_0x2917d9&&_0x1a9a6f!=='t'){return this[_0x8a47('0x1b')](_0x2917d9,_0x12539c);}return this['traverseBFS'](_0x36941a,_0x12539c);}return logger[_0x8a47('0x10')]('condition\x20not\x20found');}};module['exports']=Graph;