c87ad6b3589abf832df2b4b0af0a580bf8b45506
[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 _0x9eae=['vswitch','target','default','invalid','agicommand','default\x20on\x20switch\x20not\x20found','includes','max\x20retry\x20reach','condition\x20not\x20found','lodash','../../../config/logger','agi','menu','getdigits','edges','numberOfEdges','prototype','addVertex','vertices','addEdge','push','size','traverseBFS','info','stop\x20traverse','length','condition','split'];(function(_0x27c24e,_0x5db1c7){var _0x39004a=function(_0x44286d){while(--_0x44286d){_0x27c24e['push'](_0x27c24e['shift']());}};_0x39004a(++_0x5db1c7);}(_0x9eae,0xcd));var _0xe9ea=function(_0x178e48,_0x3c9509){_0x178e48=_0x178e48-0x0;var _0x440d7e=_0x9eae[_0x178e48];return _0x440d7e;};'use strict';var _=require(_0xe9ea('0x0'));var logger=require(_0xe9ea('0x1'))(_0xe9ea('0x2'));var verticesWithRetry=[_0xe9ea('0x3'),_0xe9ea('0x4'),'getsecretdigits'];var Graph=function(){this['vertices']={};this[_0xe9ea('0x5')]={};this[_0xe9ea('0x6')]=0x0;};Graph[_0xe9ea('0x7')][_0xe9ea('0x8')]=function(_0x2caba7){this[_0xe9ea('0x9')][_0x2caba7['id']]=_0x2caba7;this[_0xe9ea('0x5')][_0x2caba7['id']]=[];};Graph[_0xe9ea('0x7')][_0xe9ea('0xa')]=function(_0x483500,_0x4d6a9b,_0x19f4ab){this[_0xe9ea('0x5')][_0x483500][_0xe9ea('0xb')]({'target':_0x4d6a9b,'condition':_0x19f4ab});this[_0xe9ea('0x6')]+=0x1;};Graph[_0xe9ea('0x7')]['size']=function(){return _[_0xe9ea('0xc')](this[_0xe9ea('0x9')]);};Graph[_0xe9ea('0x7')]['relations']=function(){return this[_0xe9ea('0x6')];};Graph['prototype']['getVertex']=function(_0x26a9c4){return this[_0xe9ea('0x9')][_0x26a9c4];};Graph[_0xe9ea('0x7')][_0xe9ea('0xd')]=function(_0x47cb6e,_0x986648){if(!this[_0xe9ea('0x9')][_0x47cb6e]){return logger[_0xe9ea('0xe')]('no\x20vertex\x20found');}var _0x5f2edb=_0x986648(this[_0xe9ea('0x9')][_0x47cb6e]);if(!_0x5f2edb){return logger[_0xe9ea('0xe')](_0xe9ea('0xf'));}if(this[_0xe9ea('0x5')][_0x47cb6e]['length']===0x0){return logger[_0xe9ea('0xe')]('no\x20edge/s\x20available');}for(var _0x85edf2=0x0,_0x1525e0=[],_0x28c51f=![];_0x85edf2<this[_0xe9ea('0x5')][_0x47cb6e][_0xe9ea('0x10')];_0x85edf2+=0x1){if(this['edges'][_0x47cb6e][_0x85edf2][_0xe9ea('0x11')]){_0x1525e0=this[_0xe9ea('0x5')][_0x47cb6e][_0x85edf2][_0xe9ea('0x11')][_0xe9ea('0x12')](',');for(var _0x261d64=0x0;_0x261d64<_0x1525e0[_0xe9ea('0x10')];_0x261d64+=0x1){if(this['vertices'][_0x47cb6e]['agicommand']===_0xe9ea('0x13')&&_0x1525e0[_0x261d64]==='-'){_0x28c51f=this['edges'][_0x47cb6e][_0x85edf2][_0xe9ea('0x14')];logger[_0xe9ea('0xe')](_0xe9ea('0x15'),_0x1525e0[_0x261d64],this[_0xe9ea('0x5')][_0x47cb6e][_0x85edf2][_0xe9ea('0x14')]);}else if(this[_0xe9ea('0x9')][_0x47cb6e]['agicommand']==='menu'&&_0x1525e0[_0x261d64]==='i'){_0x28c51f=this[_0xe9ea('0x5')][_0x47cb6e][_0x85edf2][_0xe9ea('0x14')];logger[_0xe9ea('0xe')](_0xe9ea('0x16'),_0x1525e0[_0x261d64],this['edges'][_0x47cb6e][_0x85edf2]['target']);}if(_0x1525e0[_0x261d64]===_0x5f2edb){return this['traverseBFS'](this[_0xe9ea('0x5')][_0x47cb6e][_0x85edf2][_0xe9ea('0x14')],_0x986648);}}}else{return this[_0xe9ea('0xd')](this[_0xe9ea('0x5')][_0x47cb6e][_0x85edf2][_0xe9ea('0x14')],_0x986648);}}if(_0x1525e0[_0xe9ea('0x10')]){if(this[_0xe9ea('0x9')][_0x47cb6e][_0xe9ea('0x17')]==='vswitch'){if(_0x28c51f){return this[_0xe9ea('0xd')](_0x28c51f,_0x986648);}return logger[_0xe9ea('0xe')](_0xe9ea('0x18'));}else if(_[_0xe9ea('0x19')](verticesWithRetry,this['vertices'][_0x47cb6e][_0xe9ea('0x17')])){if(_0x5f2edb==='-'){return logger[_0xe9ea('0xe')](_0xe9ea('0x1a'));}if(_0x28c51f&&_0x5f2edb!=='t'){return this[_0xe9ea('0xd')](_0x28c51f,_0x986648);}return this[_0xe9ea('0xd')](_0x47cb6e,_0x986648);}return logger['info'](_0xe9ea('0x1b'));}};module['exports']=Graph;