fecb535fca2814d520b0d2426ceddadd34292a65
[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 _0xde9f=['addVertex','addEdge','push','numberOfEdges','size','relations','getVertex','traverseBFS','info','stop\x20traverse','no\x20edge/s\x20available','length','split','agicommand','vswitch','target','default','default\x20on\x20switch\x20not\x20found','includes','max\x20retry\x20reach','lodash','menu','getdigits','vertices','edges','prototype'];(function(_0x30df69,_0x4f5106){var _0x4338a4=function(_0x346fab){while(--_0x346fab){_0x30df69['push'](_0x30df69['shift']());}};_0x4338a4(++_0x4f5106);}(_0xde9f,0x118));var _0xfde9=function(_0x32bb6b,_0x1a5fbe){_0x32bb6b=_0x32bb6b-0x0;var _0x58dcb4=_0xde9f[_0x32bb6b];return _0x58dcb4;};'use strict';var _=require(_0xfde9('0x0'));var logger=require('../../../config/logger')('agi');var verticesWithRetry=[_0xfde9('0x1'),_0xfde9('0x2'),'getsecretdigits'];var Graph=function(){this[_0xfde9('0x3')]={};this[_0xfde9('0x4')]={};this['numberOfEdges']=0x0;};Graph[_0xfde9('0x5')][_0xfde9('0x6')]=function(_0xfb4fbb){this[_0xfde9('0x3')][_0xfb4fbb['id']]=_0xfb4fbb;this['edges'][_0xfb4fbb['id']]=[];};Graph['prototype'][_0xfde9('0x7')]=function(_0x18a202,_0x5569c2,_0x19a337){this[_0xfde9('0x4')][_0x18a202][_0xfde9('0x8')]({'target':_0x5569c2,'condition':_0x19a337});this[_0xfde9('0x9')]+=0x1;};Graph[_0xfde9('0x5')][_0xfde9('0xa')]=function(){return _[_0xfde9('0xa')](this[_0xfde9('0x3')]);};Graph[_0xfde9('0x5')][_0xfde9('0xb')]=function(){return this[_0xfde9('0x9')];};Graph[_0xfde9('0x5')][_0xfde9('0xc')]=function(_0x3bdd36){return this['vertices'][_0x3bdd36];};Graph['prototype'][_0xfde9('0xd')]=function(_0x3add66,_0x3f3024){if(!this[_0xfde9('0x3')][_0x3add66]){return logger['info']('no\x20vertex\x20found');}var _0x36e754=_0x3f3024(this[_0xfde9('0x3')][_0x3add66]);if(!_0x36e754){return logger[_0xfde9('0xe')](_0xfde9('0xf'));}if(this[_0xfde9('0x4')][_0x3add66]['length']===0x0){return logger[_0xfde9('0xe')](_0xfde9('0x10'));}for(var _0x1ed070=0x0,_0x5ebd40=[],_0x31b1c7=![];_0x1ed070<this[_0xfde9('0x4')][_0x3add66][_0xfde9('0x11')];_0x1ed070+=0x1){if(this['edges'][_0x3add66][_0x1ed070]['condition']){_0x5ebd40=this['edges'][_0x3add66][_0x1ed070]['condition'][_0xfde9('0x12')](',');for(var _0x3f1ab3=0x0;_0x3f1ab3<_0x5ebd40['length'];_0x3f1ab3+=0x1){if(this['vertices'][_0x3add66][_0xfde9('0x13')]===_0xfde9('0x14')&&_0x5ebd40[_0x3f1ab3]==='-'){_0x31b1c7=this[_0xfde9('0x4')][_0x3add66][_0x1ed070][_0xfde9('0x15')];logger[_0xfde9('0xe')](_0xfde9('0x16'),_0x5ebd40[_0x3f1ab3],this[_0xfde9('0x4')][_0x3add66][_0x1ed070][_0xfde9('0x15')]);}else if(this[_0xfde9('0x3')][_0x3add66][_0xfde9('0x13')]===_0xfde9('0x1')&&_0x5ebd40[_0x3f1ab3]==='i'){_0x31b1c7=this[_0xfde9('0x4')][_0x3add66][_0x1ed070]['target'];logger[_0xfde9('0xe')]('invalid',_0x5ebd40[_0x3f1ab3],this[_0xfde9('0x4')][_0x3add66][_0x1ed070][_0xfde9('0x15')]);}if(_0x5ebd40[_0x3f1ab3]===_0x36e754){return this[_0xfde9('0xd')](this['edges'][_0x3add66][_0x1ed070][_0xfde9('0x15')],_0x3f3024);}}}else{return this[_0xfde9('0xd')](this['edges'][_0x3add66][_0x1ed070][_0xfde9('0x15')],_0x3f3024);}}if(_0x5ebd40[_0xfde9('0x11')]){if(this[_0xfde9('0x3')][_0x3add66][_0xfde9('0x13')]===_0xfde9('0x14')){if(_0x31b1c7){return this[_0xfde9('0xd')](_0x31b1c7,_0x3f3024);}return logger[_0xfde9('0xe')](_0xfde9('0x17'));}else if(_[_0xfde9('0x18')](verticesWithRetry,this[_0xfde9('0x3')][_0x3add66][_0xfde9('0x13')])){if(_0x36e754==='-'){return logger[_0xfde9('0xe')](_0xfde9('0x19'));}if(_0x31b1c7&&_0x36e754!=='t'){return this[_0xfde9('0xd')](_0x31b1c7,_0x3f3024);}return this[_0xfde9('0xd')](_0x3add66,_0x3f3024);}return logger[_0xfde9('0xe')]('condition\x20not\x20found');}};module['exports']=Graph;