bf65a5f4ce1316d8e01c697f828e144c4a3aed21
[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 _0x5117=['getVertex','traverseBFS','info','no\x20vertex\x20found','stop\x20traverse','length','no\x20edge/s\x20available','condition','agicommand','vswitch','default','target','includes','max\x20retry\x20reach','../../../config/logger','menu','getdigits','getsecretdigits','vertices','edges','prototype','addVertex','addEdge','push','numberOfEdges','size','relations'];(function(_0x92ea9c,_0x2bb759){var _0x32a4e6=function(_0x1d76ce){while(--_0x1d76ce){_0x92ea9c['push'](_0x92ea9c['shift']());}};_0x32a4e6(++_0x2bb759);}(_0x5117,0x188));var _0x7511=function(_0x533110,_0x20937f){_0x533110=_0x533110-0x0;var _0xc3c866=_0x5117[_0x533110];return _0xc3c866;};'use strict';var _=require('lodash');var logger=require(_0x7511('0x0'))('agi');var verticesWithRetry=[_0x7511('0x1'),_0x7511('0x2'),_0x7511('0x3')];var Graph=function(){this[_0x7511('0x4')]={};this[_0x7511('0x5')]={};this['numberOfEdges']=0x0;};Graph[_0x7511('0x6')][_0x7511('0x7')]=function(_0x17f2b7){this[_0x7511('0x4')][_0x17f2b7['id']]=_0x17f2b7;this[_0x7511('0x5')][_0x17f2b7['id']]=[];};Graph[_0x7511('0x6')][_0x7511('0x8')]=function(_0x922d81,_0x5ddf6e,_0x26d79e){this[_0x7511('0x5')][_0x922d81][_0x7511('0x9')]({'target':_0x5ddf6e,'condition':_0x26d79e});this[_0x7511('0xa')]+=0x1;};Graph[_0x7511('0x6')][_0x7511('0xb')]=function(){return _[_0x7511('0xb')](this['vertices']);};Graph[_0x7511('0x6')][_0x7511('0xc')]=function(){return this[_0x7511('0xa')];};Graph['prototype'][_0x7511('0xd')]=function(_0x114ba5){return this[_0x7511('0x4')][_0x114ba5];};Graph[_0x7511('0x6')][_0x7511('0xe')]=function(_0xf9b448,_0x116b0d){if(!this[_0x7511('0x4')][_0xf9b448]){return logger[_0x7511('0xf')](_0x7511('0x10'));}var _0x49895e=_0x116b0d(this[_0x7511('0x4')][_0xf9b448]);if(!_0x49895e){return logger['info'](_0x7511('0x11'));}if(this[_0x7511('0x5')][_0xf9b448][_0x7511('0x12')]===0x0){return logger[_0x7511('0xf')](_0x7511('0x13'));}for(var _0x15d447=0x0,_0x2223e1=[],_0x5b566d=![];_0x15d447<this[_0x7511('0x5')][_0xf9b448]['length'];_0x15d447+=0x1){if(this[_0x7511('0x5')][_0xf9b448][_0x15d447][_0x7511('0x14')]){_0x2223e1=this['edges'][_0xf9b448][_0x15d447][_0x7511('0x14')]['split'](',');for(var _0x1c45bc=0x0;_0x1c45bc<_0x2223e1[_0x7511('0x12')];_0x1c45bc+=0x1){if(this['vertices'][_0xf9b448][_0x7511('0x15')]===_0x7511('0x16')&&_0x2223e1[_0x1c45bc]==='-'){_0x5b566d=this['edges'][_0xf9b448][_0x15d447]['target'];logger[_0x7511('0xf')](_0x7511('0x17'),_0x2223e1[_0x1c45bc],this['edges'][_0xf9b448][_0x15d447][_0x7511('0x18')]);}else if(this[_0x7511('0x4')][_0xf9b448]['agicommand']==='menu'&&_0x2223e1[_0x1c45bc]==='i'){_0x5b566d=this[_0x7511('0x5')][_0xf9b448][_0x15d447][_0x7511('0x18')];logger['info']('invalid',_0x2223e1[_0x1c45bc],this[_0x7511('0x5')][_0xf9b448][_0x15d447][_0x7511('0x18')]);}if(_0x2223e1[_0x1c45bc]===_0x49895e){return this[_0x7511('0xe')](this[_0x7511('0x5')][_0xf9b448][_0x15d447][_0x7511('0x18')],_0x116b0d);}}}else{return this[_0x7511('0xe')](this['edges'][_0xf9b448][_0x15d447][_0x7511('0x18')],_0x116b0d);}}if(_0x2223e1[_0x7511('0x12')]){if(this[_0x7511('0x4')][_0xf9b448][_0x7511('0x15')]===_0x7511('0x16')){if(_0x5b566d){return this[_0x7511('0xe')](_0x5b566d,_0x116b0d);}return logger[_0x7511('0xf')]('default\x20on\x20switch\x20not\x20found');}else if(_[_0x7511('0x19')](verticesWithRetry,this[_0x7511('0x4')][_0xf9b448]['agicommand'])){if(_0x49895e==='-'){return logger['info'](_0x7511('0x1a'));}if(_0x5b566d&&_0x49895e!=='t'){return this[_0x7511('0xe')](_0x5b566d,_0x116b0d);}return this[_0x7511('0xe')](_0xf9b448,_0x116b0d);}return logger[_0x7511('0xf')]('condition\x20not\x20found');}};module['exports']=Graph;