b64a432cfa851ad6249eb29d92182aa72e7c94c3
[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 _0x4497=['menu','getdigits','getsecretdigits','vertices','numberOfEdges','prototype','addVertex','edges','addEdge','push','info','stop\x20traverse','length','no\x20edge/s\x20available','split','agicommand','vswitch','target','default','traverseBFS','default\x20on\x20switch\x20not\x20found','includes','max\x20retry\x20reach','condition\x20not\x20found','exports','lodash'];(function(_0x4c2b62,_0x3f70a4){var _0x3324ec=function(_0x34d79e){while(--_0x34d79e){_0x4c2b62['push'](_0x4c2b62['shift']());}};_0x3324ec(++_0x3f70a4);}(_0x4497,0x1d3));var _0x7449=function(_0x540dcb,_0x4eacb6){_0x540dcb=_0x540dcb-0x0;var _0x49353c=_0x4497[_0x540dcb];return _0x49353c;};'use strict';var _=require(_0x7449('0x0'));var logger=require('../../../config/logger')('agi');var verticesWithRetry=[_0x7449('0x1'),_0x7449('0x2'),_0x7449('0x3')];var Graph=function(){this[_0x7449('0x4')]={};this['edges']={};this[_0x7449('0x5')]=0x0;};Graph[_0x7449('0x6')][_0x7449('0x7')]=function(_0x46d74c){this[_0x7449('0x4')][_0x46d74c['id']]=_0x46d74c;this[_0x7449('0x8')][_0x46d74c['id']]=[];};Graph[_0x7449('0x6')][_0x7449('0x9')]=function(_0x114f46,_0x5408a6,_0x1b3ffd){this[_0x7449('0x8')][_0x114f46][_0x7449('0xa')]({'target':_0x5408a6,'condition':_0x1b3ffd});this[_0x7449('0x5')]+=0x1;};Graph['prototype']['size']=function(){return _['size'](this[_0x7449('0x4')]);};Graph[_0x7449('0x6')]['relations']=function(){return this[_0x7449('0x5')];};Graph[_0x7449('0x6')]['getVertex']=function(_0x5b63d2){return this[_0x7449('0x4')][_0x5b63d2];};Graph[_0x7449('0x6')]['traverseBFS']=function(_0x44f8b4,_0x19b110){if(!this[_0x7449('0x4')][_0x44f8b4]){return logger[_0x7449('0xb')]('no\x20vertex\x20found');}var _0x2c593c=_0x19b110(this[_0x7449('0x4')][_0x44f8b4]);if(!_0x2c593c){return logger[_0x7449('0xb')](_0x7449('0xc'));}if(this[_0x7449('0x8')][_0x44f8b4][_0x7449('0xd')]===0x0){return logger[_0x7449('0xb')](_0x7449('0xe'));}for(var _0x4e9f79=0x0,_0x5942d8=[],_0x1d725d=![];_0x4e9f79<this[_0x7449('0x8')][_0x44f8b4][_0x7449('0xd')];_0x4e9f79+=0x1){if(this[_0x7449('0x8')][_0x44f8b4][_0x4e9f79]['condition']){_0x5942d8=this[_0x7449('0x8')][_0x44f8b4][_0x4e9f79]['condition'][_0x7449('0xf')](',');for(var _0x29a32f=0x0;_0x29a32f<_0x5942d8['length'];_0x29a32f+=0x1){if(this['vertices'][_0x44f8b4][_0x7449('0x10')]===_0x7449('0x11')&&_0x5942d8[_0x29a32f]==='-'){_0x1d725d=this[_0x7449('0x8')][_0x44f8b4][_0x4e9f79][_0x7449('0x12')];logger[_0x7449('0xb')](_0x7449('0x13'),_0x5942d8[_0x29a32f],this[_0x7449('0x8')][_0x44f8b4][_0x4e9f79][_0x7449('0x12')]);}else if(this[_0x7449('0x4')][_0x44f8b4][_0x7449('0x10')]===_0x7449('0x1')&&_0x5942d8[_0x29a32f]==='i'){_0x1d725d=this[_0x7449('0x8')][_0x44f8b4][_0x4e9f79][_0x7449('0x12')];logger['info']('invalid',_0x5942d8[_0x29a32f],this[_0x7449('0x8')][_0x44f8b4][_0x4e9f79][_0x7449('0x12')]);}if(_0x5942d8[_0x29a32f]===_0x2c593c){return this[_0x7449('0x14')](this[_0x7449('0x8')][_0x44f8b4][_0x4e9f79][_0x7449('0x12')],_0x19b110);}}}else{return this[_0x7449('0x14')](this[_0x7449('0x8')][_0x44f8b4][_0x4e9f79]['target'],_0x19b110);}}if(_0x5942d8[_0x7449('0xd')]){if(this[_0x7449('0x4')][_0x44f8b4][_0x7449('0x10')]===_0x7449('0x11')){if(_0x1d725d){return this[_0x7449('0x14')](_0x1d725d,_0x19b110);}return logger[_0x7449('0xb')](_0x7449('0x15'));}else if(_[_0x7449('0x16')](verticesWithRetry,this[_0x7449('0x4')][_0x44f8b4]['agicommand'])){if(_0x2c593c==='-'){return logger[_0x7449('0xb')](_0x7449('0x17'));}if(_0x1d725d&&_0x2c593c!=='t'){return this[_0x7449('0x14')](_0x1d725d,_0x19b110);}return this['traverseBFS'](_0x44f8b4,_0x19b110);}return logger[_0x7449('0xb')](_0x7449('0x18'));}};module[_0x7449('0x19')]=Graph;