Built motion from commit (unavailable).|2.5.18
[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 _0x878f=['target','default','invalid','traverseBFS','default\x20on\x20switch\x20not\x20found','includes','max\x20retry\x20reach','../../../config/logger','agi','menu','getdigits','getsecretdigits','vertices','edges','numberOfEdges','prototype','addVertex','addEdge','size','relations','no\x20vertex\x20found','length','info','no\x20edge/s\x20available','condition','split','agicommand','vswitch'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x878f,0x173));var _0xf878=function(_0x23858e,_0x6103e){_0x23858e=_0x23858e-0x0;var _0x1b5eac=_0x878f[_0x23858e];return _0x1b5eac;};'use strict';var _=require('lodash');var logger=require(_0xf878('0x0'))(_0xf878('0x1'));var verticesWithRetry=[_0xf878('0x2'),_0xf878('0x3'),_0xf878('0x4')];var Graph=function(){this[_0xf878('0x5')]={};this[_0xf878('0x6')]={};this[_0xf878('0x7')]=0x0;};Graph[_0xf878('0x8')][_0xf878('0x9')]=function(_0x27ae4d){this['vertices'][_0x27ae4d['id']]=_0x27ae4d;this['edges'][_0x27ae4d['id']]=[];};Graph[_0xf878('0x8')][_0xf878('0xa')]=function(_0x59e564,_0x52851e,_0x530767){this[_0xf878('0x6')][_0x59e564]['push']({'target':_0x52851e,'condition':_0x530767});this['numberOfEdges']+=0x1;};Graph[_0xf878('0x8')][_0xf878('0xb')]=function(){return _[_0xf878('0xb')](this['vertices']);};Graph[_0xf878('0x8')][_0xf878('0xc')]=function(){return this['numberOfEdges'];};Graph[_0xf878('0x8')]['getVertex']=function(_0x31d3d2){return this[_0xf878('0x5')][_0x31d3d2];};Graph[_0xf878('0x8')]['traverseBFS']=function(_0x1ce004,_0x38eddf){if(!this[_0xf878('0x5')][_0x1ce004]){return logger['info'](_0xf878('0xd'));}var _0x3902f7=_0x38eddf(this[_0xf878('0x5')][_0x1ce004]);if(!_0x3902f7){return logger['info']('stop\x20traverse');}if(this[_0xf878('0x6')][_0x1ce004][_0xf878('0xe')]===0x0){return logger[_0xf878('0xf')](_0xf878('0x10'));}for(var _0x44aacc=0x0,_0x186a02=[],_0x415056=![];_0x44aacc<this[_0xf878('0x6')][_0x1ce004][_0xf878('0xe')];_0x44aacc+=0x1){if(this[_0xf878('0x6')][_0x1ce004][_0x44aacc][_0xf878('0x11')]){_0x186a02=this['edges'][_0x1ce004][_0x44aacc][_0xf878('0x11')][_0xf878('0x12')](',');for(var _0x412de1=0x0;_0x412de1<_0x186a02[_0xf878('0xe')];_0x412de1+=0x1){if(this[_0xf878('0x5')][_0x1ce004][_0xf878('0x13')]===_0xf878('0x14')&&_0x186a02[_0x412de1]==='-'){_0x415056=this['edges'][_0x1ce004][_0x44aacc][_0xf878('0x15')];logger[_0xf878('0xf')](_0xf878('0x16'),_0x186a02[_0x412de1],this['edges'][_0x1ce004][_0x44aacc][_0xf878('0x15')]);}else if(this[_0xf878('0x5')][_0x1ce004][_0xf878('0x13')]===_0xf878('0x2')&&_0x186a02[_0x412de1]==='i'){_0x415056=this[_0xf878('0x6')][_0x1ce004][_0x44aacc][_0xf878('0x15')];logger[_0xf878('0xf')](_0xf878('0x17'),_0x186a02[_0x412de1],this[_0xf878('0x6')][_0x1ce004][_0x44aacc][_0xf878('0x15')]);}if(_0x186a02[_0x412de1]===_0x3902f7){return this[_0xf878('0x18')](this['edges'][_0x1ce004][_0x44aacc][_0xf878('0x15')],_0x38eddf);}}}else{return this['traverseBFS'](this[_0xf878('0x6')][_0x1ce004][_0x44aacc][_0xf878('0x15')],_0x38eddf);}}if(_0x186a02[_0xf878('0xe')]){if(this[_0xf878('0x5')][_0x1ce004][_0xf878('0x13')]==='vswitch'){if(_0x415056){return this['traverseBFS'](_0x415056,_0x38eddf);}return logger['info'](_0xf878('0x19'));}else if(_[_0xf878('0x1a')](verticesWithRetry,this[_0xf878('0x5')][_0x1ce004]['agicommand'])){if(_0x3902f7==='-'){return logger[_0xf878('0xf')](_0xf878('0x1b'));}if(_0x415056&&_0x3902f7!=='t'){return this[_0xf878('0x18')](_0x415056,_0x38eddf);}return this[_0xf878('0x18')](_0x1ce004,_0x38eddf);}return logger[_0xf878('0xf')]('condition\x20not\x20found');}};module['exports']=Graph;