36a158bb28fef74f82bdd9f13095ed24f1b553fa
[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 _0x382b=['getVertex','traverseBFS','info','length','no\x20edge/s\x20available','condition','agicommand','vswitch','target','invalid','default\x20on\x20switch\x20not\x20found','includes','condition\x20not\x20found','exports','agi','menu','getdigits','edges','prototype','vertices','push','numberOfEdges','size','relations'];(function(_0x3dd15e,_0x1f0015){var _0x231fd0=function(_0x4f680a){while(--_0x4f680a){_0x3dd15e['push'](_0x3dd15e['shift']());}};_0x231fd0(++_0x1f0015);}(_0x382b,0x116));var _0xb382=function(_0x20a584,_0xe384a5){_0x20a584=_0x20a584-0x0;var _0x4b41a8=_0x382b[_0x20a584];return _0x4b41a8;};'use strict';var _=require('lodash');var logger=require('../../../config/logger')(_0xb382('0x0'));var verticesWithRetry=[_0xb382('0x1'),_0xb382('0x2'),'getsecretdigits'];var Graph=function(){this['vertices']={};this[_0xb382('0x3')]={};this['numberOfEdges']=0x0;};Graph[_0xb382('0x4')]['addVertex']=function(_0x19c906){this[_0xb382('0x5')][_0x19c906['id']]=_0x19c906;this[_0xb382('0x3')][_0x19c906['id']]=[];};Graph['prototype']['addEdge']=function(_0x11addc,_0xbe05db,_0x472a5c){this[_0xb382('0x3')][_0x11addc][_0xb382('0x6')]({'target':_0xbe05db,'condition':_0x472a5c});this[_0xb382('0x7')]+=0x1;};Graph[_0xb382('0x4')]['size']=function(){return _[_0xb382('0x8')](this['vertices']);};Graph[_0xb382('0x4')][_0xb382('0x9')]=function(){return this[_0xb382('0x7')];};Graph[_0xb382('0x4')][_0xb382('0xa')]=function(_0x3ac5ac){return this[_0xb382('0x5')][_0x3ac5ac];};Graph['prototype'][_0xb382('0xb')]=function(_0x289d43,_0x264f10){if(!this[_0xb382('0x5')][_0x289d43]){return logger[_0xb382('0xc')]('no\x20vertex\x20found');}var _0x35819f=_0x264f10(this[_0xb382('0x5')][_0x289d43]);if(!_0x35819f){return logger[_0xb382('0xc')]('stop\x20traverse');}if(this['edges'][_0x289d43][_0xb382('0xd')]===0x0){return logger[_0xb382('0xc')](_0xb382('0xe'));}for(var _0x1fd4d9=0x0,_0x5d06a9=[],_0x46b9ac=![];_0x1fd4d9<this[_0xb382('0x3')][_0x289d43][_0xb382('0xd')];_0x1fd4d9+=0x1){if(this[_0xb382('0x3')][_0x289d43][_0x1fd4d9][_0xb382('0xf')]){_0x5d06a9=this[_0xb382('0x3')][_0x289d43][_0x1fd4d9][_0xb382('0xf')]['split'](',');for(var _0x2c5865=0x0;_0x2c5865<_0x5d06a9[_0xb382('0xd')];_0x2c5865+=0x1){if(this['vertices'][_0x289d43][_0xb382('0x10')]===_0xb382('0x11')&&_0x5d06a9[_0x2c5865]==='-'){_0x46b9ac=this['edges'][_0x289d43][_0x1fd4d9]['target'];logger[_0xb382('0xc')]('default',_0x5d06a9[_0x2c5865],this[_0xb382('0x3')][_0x289d43][_0x1fd4d9][_0xb382('0x12')]);}else if(this[_0xb382('0x5')][_0x289d43][_0xb382('0x10')]===_0xb382('0x1')&&_0x5d06a9[_0x2c5865]==='i'){_0x46b9ac=this[_0xb382('0x3')][_0x289d43][_0x1fd4d9][_0xb382('0x12')];logger['info'](_0xb382('0x13'),_0x5d06a9[_0x2c5865],this[_0xb382('0x3')][_0x289d43][_0x1fd4d9][_0xb382('0x12')]);}if(_0x5d06a9[_0x2c5865]===_0x35819f){return this[_0xb382('0xb')](this[_0xb382('0x3')][_0x289d43][_0x1fd4d9][_0xb382('0x12')],_0x264f10);}}}else{return this['traverseBFS'](this[_0xb382('0x3')][_0x289d43][_0x1fd4d9]['target'],_0x264f10);}}if(_0x5d06a9['length']){if(this['vertices'][_0x289d43][_0xb382('0x10')]==='vswitch'){if(_0x46b9ac){return this[_0xb382('0xb')](_0x46b9ac,_0x264f10);}return logger[_0xb382('0xc')](_0xb382('0x14'));}else if(_[_0xb382('0x15')](verticesWithRetry,this['vertices'][_0x289d43][_0xb382('0x10')])){if(_0x35819f==='-'){return logger[_0xb382('0xc')]('max\x20retry\x20reach');}if(_0x46b9ac&&_0x35819f!=='t'){return this['traverseBFS'](_0x46b9ac,_0x264f10);}return this['traverseBFS'](_0x289d43,_0x264f10);}return logger['info'](_0xb382('0x16'));}};module[_0xb382('0x17')]=Graph;