e02dcc7fa1a49a5e7ced9a003a8cbd6cb507c36d
[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 _0xf4e9=['getdigits','getsecretdigits','edges','numberOfEdges','prototype','vertices','addEdge','push','size','relations','getVertex','traverseBFS','no\x20vertex\x20found','info','stop\x20traverse','length','no\x20edge/s\x20available','condition','agicommand','vswitch','target','default','invalid','default\x20on\x20switch\x20not\x20found','includes','condition\x20not\x20found','exports','../../../config/logger','agi','menu'];(function(_0x732d54,_0x5708f4){var _0x55e766=function(_0x1e9b2f){while(--_0x1e9b2f){_0x732d54['push'](_0x732d54['shift']());}};_0x55e766(++_0x5708f4);}(_0xf4e9,0x1a1));var _0x9f4e=function(_0x3a7ce1,_0x43f732){_0x3a7ce1=_0x3a7ce1-0x0;var _0x4eb314=_0xf4e9[_0x3a7ce1];return _0x4eb314;};'use strict';var _=require('lodash');var logger=require(_0x9f4e('0x0'))(_0x9f4e('0x1'));var verticesWithRetry=[_0x9f4e('0x2'),_0x9f4e('0x3'),_0x9f4e('0x4')];var Graph=function(){this['vertices']={};this[_0x9f4e('0x5')]={};this[_0x9f4e('0x6')]=0x0;};Graph[_0x9f4e('0x7')]['addVertex']=function(_0xca662a){this[_0x9f4e('0x8')][_0xca662a['id']]=_0xca662a;this[_0x9f4e('0x5')][_0xca662a['id']]=[];};Graph['prototype'][_0x9f4e('0x9')]=function(_0x2031f5,_0x4d18dc,_0x25fe66){this[_0x9f4e('0x5')][_0x2031f5][_0x9f4e('0xa')]({'target':_0x4d18dc,'condition':_0x25fe66});this[_0x9f4e('0x6')]+=0x1;};Graph[_0x9f4e('0x7')][_0x9f4e('0xb')]=function(){return _[_0x9f4e('0xb')](this['vertices']);};Graph[_0x9f4e('0x7')][_0x9f4e('0xc')]=function(){return this[_0x9f4e('0x6')];};Graph['prototype'][_0x9f4e('0xd')]=function(_0x5bb4da){return this['vertices'][_0x5bb4da];};Graph['prototype'][_0x9f4e('0xe')]=function(_0x2584e6,_0x9bd65e){if(!this['vertices'][_0x2584e6]){return logger['info'](_0x9f4e('0xf'));}var _0x1ba29d=_0x9bd65e(this[_0x9f4e('0x8')][_0x2584e6]);if(!_0x1ba29d){return logger[_0x9f4e('0x10')](_0x9f4e('0x11'));}if(this[_0x9f4e('0x5')][_0x2584e6][_0x9f4e('0x12')]===0x0){return logger['info'](_0x9f4e('0x13'));}for(var _0x4acf1f=0x0,_0x45daa1=[],_0x4b9b5b=![];_0x4acf1f<this[_0x9f4e('0x5')][_0x2584e6][_0x9f4e('0x12')];_0x4acf1f+=0x1){if(this[_0x9f4e('0x5')][_0x2584e6][_0x4acf1f][_0x9f4e('0x14')]){_0x45daa1=this[_0x9f4e('0x5')][_0x2584e6][_0x4acf1f]['condition']['split'](',');for(var _0x42c537=0x0;_0x42c537<_0x45daa1['length'];_0x42c537+=0x1){if(this[_0x9f4e('0x8')][_0x2584e6][_0x9f4e('0x15')]===_0x9f4e('0x16')&&_0x45daa1[_0x42c537]==='-'){_0x4b9b5b=this[_0x9f4e('0x5')][_0x2584e6][_0x4acf1f][_0x9f4e('0x17')];logger[_0x9f4e('0x10')](_0x9f4e('0x18'),_0x45daa1[_0x42c537],this[_0x9f4e('0x5')][_0x2584e6][_0x4acf1f][_0x9f4e('0x17')]);}else if(this[_0x9f4e('0x8')][_0x2584e6][_0x9f4e('0x15')]===_0x9f4e('0x2')&&_0x45daa1[_0x42c537]==='i'){_0x4b9b5b=this['edges'][_0x2584e6][_0x4acf1f][_0x9f4e('0x17')];logger['info'](_0x9f4e('0x19'),_0x45daa1[_0x42c537],this[_0x9f4e('0x5')][_0x2584e6][_0x4acf1f][_0x9f4e('0x17')]);}if(_0x45daa1[_0x42c537]===_0x1ba29d){return this[_0x9f4e('0xe')](this[_0x9f4e('0x5')][_0x2584e6][_0x4acf1f]['target'],_0x9bd65e);}}}else{return this[_0x9f4e('0xe')](this['edges'][_0x2584e6][_0x4acf1f][_0x9f4e('0x17')],_0x9bd65e);}}if(_0x45daa1[_0x9f4e('0x12')]){if(this['vertices'][_0x2584e6][_0x9f4e('0x15')]===_0x9f4e('0x16')){if(_0x4b9b5b){return this['traverseBFS'](_0x4b9b5b,_0x9bd65e);}return logger[_0x9f4e('0x10')](_0x9f4e('0x1a'));}else if(_[_0x9f4e('0x1b')](verticesWithRetry,this['vertices'][_0x2584e6]['agicommand'])){if(_0x1ba29d==='-'){return logger[_0x9f4e('0x10')]('max\x20retry\x20reach');}if(_0x4b9b5b&&_0x1ba29d!=='t'){return this[_0x9f4e('0xe')](_0x4b9b5b,_0x9bd65e);}return this[_0x9f4e('0xe')](_0x2584e6,_0x9bd65e);}return logger[_0x9f4e('0x10')](_0x9f4e('0x1c'));}};module[_0x9f4e('0x1d')]=Graph;