Built motion from commit 9d0783e6.|2.6.13
[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 _0x6f14=['max\x20retry\x20reach','exports','../../../config/logger','menu','getdigits','getsecretdigits','vertices','edges','prototype','addVertex','numberOfEdges','size','relations','getVertex','info','no\x20vertex\x20found','stop\x20traverse','length','condition','split','agicommand','vswitch','target','default','invalid','traverseBFS','default\x20on\x20switch\x20not\x20found','includes'];(function(_0x45fd39,_0x3496e6){var _0x553037=function(_0x28ab4a){while(--_0x28ab4a){_0x45fd39['push'](_0x45fd39['shift']());}};_0x553037(++_0x3496e6);}(_0x6f14,0x8e));var _0x46f1=function(_0x55336a,_0x240d59){_0x55336a=_0x55336a-0x0;var _0x28ceb3=_0x6f14[_0x55336a];return _0x28ceb3;};'use strict';var _=require('lodash');var logger=require(_0x46f1('0x0'))('agi');var verticesWithRetry=[_0x46f1('0x1'),_0x46f1('0x2'),_0x46f1('0x3')];var Graph=function(){this[_0x46f1('0x4')]={};this[_0x46f1('0x5')]={};this['numberOfEdges']=0x0;};Graph[_0x46f1('0x6')][_0x46f1('0x7')]=function(_0x2a926a){this[_0x46f1('0x4')][_0x2a926a['id']]=_0x2a926a;this[_0x46f1('0x5')][_0x2a926a['id']]=[];};Graph[_0x46f1('0x6')]['addEdge']=function(_0x3c0d5a,_0x4c56b0,_0x17111b){this[_0x46f1('0x5')][_0x3c0d5a]['push']({'target':_0x4c56b0,'condition':_0x17111b});this[_0x46f1('0x8')]+=0x1;};Graph[_0x46f1('0x6')]['size']=function(){return _[_0x46f1('0x9')](this[_0x46f1('0x4')]);};Graph[_0x46f1('0x6')][_0x46f1('0xa')]=function(){return this[_0x46f1('0x8')];};Graph[_0x46f1('0x6')][_0x46f1('0xb')]=function(_0x439be3){return this['vertices'][_0x439be3];};Graph[_0x46f1('0x6')]['traverseBFS']=function(_0x134875,_0x31fb1a){if(!this[_0x46f1('0x4')][_0x134875]){return logger[_0x46f1('0xc')](_0x46f1('0xd'));}var _0x323a2a=_0x31fb1a(this[_0x46f1('0x4')][_0x134875]);if(!_0x323a2a){return logger[_0x46f1('0xc')](_0x46f1('0xe'));}if(this[_0x46f1('0x5')][_0x134875]['length']===0x0){return logger['info']('no\x20edge/s\x20available');}for(var _0xfe787a=0x0,_0x4bfa36=[],_0x20a890=![];_0xfe787a<this[_0x46f1('0x5')][_0x134875][_0x46f1('0xf')];_0xfe787a+=0x1){if(this[_0x46f1('0x5')][_0x134875][_0xfe787a][_0x46f1('0x10')]){_0x4bfa36=this[_0x46f1('0x5')][_0x134875][_0xfe787a][_0x46f1('0x10')][_0x46f1('0x11')](',');for(var _0x2dc03e=0x0;_0x2dc03e<_0x4bfa36['length'];_0x2dc03e+=0x1){if(this[_0x46f1('0x4')][_0x134875][_0x46f1('0x12')]===_0x46f1('0x13')&&_0x4bfa36[_0x2dc03e]==='-'){_0x20a890=this['edges'][_0x134875][_0xfe787a][_0x46f1('0x14')];logger[_0x46f1('0xc')](_0x46f1('0x15'),_0x4bfa36[_0x2dc03e],this[_0x46f1('0x5')][_0x134875][_0xfe787a][_0x46f1('0x14')]);}else if(this['vertices'][_0x134875][_0x46f1('0x12')]===_0x46f1('0x1')&&_0x4bfa36[_0x2dc03e]==='i'){_0x20a890=this[_0x46f1('0x5')][_0x134875][_0xfe787a][_0x46f1('0x14')];logger[_0x46f1('0xc')](_0x46f1('0x16'),_0x4bfa36[_0x2dc03e],this[_0x46f1('0x5')][_0x134875][_0xfe787a][_0x46f1('0x14')]);}if(_0x4bfa36[_0x2dc03e]===_0x323a2a){return this[_0x46f1('0x17')](this['edges'][_0x134875][_0xfe787a][_0x46f1('0x14')],_0x31fb1a);}}}else{return this[_0x46f1('0x17')](this['edges'][_0x134875][_0xfe787a][_0x46f1('0x14')],_0x31fb1a);}}if(_0x4bfa36[_0x46f1('0xf')]){if(this[_0x46f1('0x4')][_0x134875][_0x46f1('0x12')]===_0x46f1('0x13')){if(_0x20a890){return this[_0x46f1('0x17')](_0x20a890,_0x31fb1a);}return logger[_0x46f1('0xc')](_0x46f1('0x18'));}else if(_[_0x46f1('0x19')](verticesWithRetry,this[_0x46f1('0x4')][_0x134875][_0x46f1('0x12')])){if(_0x323a2a==='-'){return logger[_0x46f1('0xc')](_0x46f1('0x1a'));}if(_0x20a890&&_0x323a2a!=='t'){return this[_0x46f1('0x17')](_0x20a890,_0x31fb1a);}return this['traverseBFS'](_0x134875,_0x31fb1a);}return logger[_0x46f1('0xc')]('condition\x20not\x20found');}};module[_0x46f1('0x1b')]=Graph;