cfc95680176f0387e3caa97a3eee13abe1dff704
[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 _0x177a=['exports','lodash','menu','getsecretdigits','vertices','numberOfEdges','addVertex','edges','prototype','addEdge','size','relations','traverseBFS','info','no\x20vertex\x20found','stop\x20traverse','length','no\x20edge/s\x20available','condition','agicommand','target','default','includes','condition\x20not\x20found'];(function(_0x3419e0,_0x2f92a1){var _0xcf9a0d=function(_0x2959a3){while(--_0x2959a3){_0x3419e0['push'](_0x3419e0['shift']());}};_0xcf9a0d(++_0x2f92a1);}(_0x177a,0x79));var _0xa177=function(_0x172d6a,_0x4548bf){_0x172d6a=_0x172d6a-0x0;var _0x1286ba=_0x177a[_0x172d6a];return _0x1286ba;};'use strict';var _=require(_0xa177('0x0'));var logger=require('../../../config/logger')('agi');var verticesWithRetry=[_0xa177('0x1'),'getdigits',_0xa177('0x2')];var Graph=function(){this[_0xa177('0x3')]={};this['edges']={};this[_0xa177('0x4')]=0x0;};Graph['prototype'][_0xa177('0x5')]=function(_0x2c0567){this['vertices'][_0x2c0567['id']]=_0x2c0567;this[_0xa177('0x6')][_0x2c0567['id']]=[];};Graph[_0xa177('0x7')][_0xa177('0x8')]=function(_0xefd5ff,_0x156e03,_0x5ce0d8){this[_0xa177('0x6')][_0xefd5ff]['push']({'target':_0x156e03,'condition':_0x5ce0d8});this['numberOfEdges']+=0x1;};Graph[_0xa177('0x7')][_0xa177('0x9')]=function(){return _[_0xa177('0x9')](this['vertices']);};Graph['prototype'][_0xa177('0xa')]=function(){return this[_0xa177('0x4')];};Graph['prototype']['getVertex']=function(_0x70ea9){return this[_0xa177('0x3')][_0x70ea9];};Graph[_0xa177('0x7')][_0xa177('0xb')]=function(_0x5c723d,_0x327bf9){if(!this['vertices'][_0x5c723d]){return logger[_0xa177('0xc')](_0xa177('0xd'));}var _0x3216a9=_0x327bf9(this['vertices'][_0x5c723d]);if(!_0x3216a9){return logger['info'](_0xa177('0xe'));}if(this[_0xa177('0x6')][_0x5c723d][_0xa177('0xf')]===0x0){return logger[_0xa177('0xc')](_0xa177('0x10'));}for(var _0x6d987f=0x0,_0x5bfd1c=[],_0x2bae70=![];_0x6d987f<this[_0xa177('0x6')][_0x5c723d][_0xa177('0xf')];_0x6d987f+=0x1){if(this['edges'][_0x5c723d][_0x6d987f][_0xa177('0x11')]){_0x5bfd1c=this[_0xa177('0x6')][_0x5c723d][_0x6d987f][_0xa177('0x11')]['split'](',');for(var _0x1314fe=0x0;_0x1314fe<_0x5bfd1c[_0xa177('0xf')];_0x1314fe+=0x1){if(this['vertices'][_0x5c723d][_0xa177('0x12')]==='vswitch'&&_0x5bfd1c[_0x1314fe]==='-'){_0x2bae70=this[_0xa177('0x6')][_0x5c723d][_0x6d987f][_0xa177('0x13')];logger['info'](_0xa177('0x14'),_0x5bfd1c[_0x1314fe],this[_0xa177('0x6')][_0x5c723d][_0x6d987f][_0xa177('0x13')]);}else if(this['vertices'][_0x5c723d][_0xa177('0x12')]===_0xa177('0x1')&&_0x5bfd1c[_0x1314fe]==='i'){_0x2bae70=this[_0xa177('0x6')][_0x5c723d][_0x6d987f][_0xa177('0x13')];logger[_0xa177('0xc')]('invalid',_0x5bfd1c[_0x1314fe],this[_0xa177('0x6')][_0x5c723d][_0x6d987f]['target']);}if(_0x5bfd1c[_0x1314fe]===_0x3216a9){return this[_0xa177('0xb')](this[_0xa177('0x6')][_0x5c723d][_0x6d987f][_0xa177('0x13')],_0x327bf9);}}}else{return this[_0xa177('0xb')](this[_0xa177('0x6')][_0x5c723d][_0x6d987f][_0xa177('0x13')],_0x327bf9);}}if(_0x5bfd1c['length']){if(this[_0xa177('0x3')][_0x5c723d][_0xa177('0x12')]==='vswitch'){if(_0x2bae70){return this[_0xa177('0xb')](_0x2bae70,_0x327bf9);}return logger[_0xa177('0xc')]('default\x20on\x20switch\x20not\x20found');}else if(_[_0xa177('0x15')](verticesWithRetry,this[_0xa177('0x3')][_0x5c723d][_0xa177('0x12')])){if(_0x3216a9==='-'){return logger[_0xa177('0xc')]('max\x20retry\x20reach');}if(_0x2bae70&&_0x3216a9!=='t'){return this[_0xa177('0xb')](_0x2bae70,_0x327bf9);}return this[_0xa177('0xb')](_0x5c723d,_0x327bf9);}return logger[_0xa177('0xc')](_0xa177('0x16'));}};module[_0xa177('0x17')]=Graph;