Built motion from commit 9d7072cc.|2.5.39
[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 _0x9e00=['menu','numberOfEdges','addVertex','vertices','edges','prototype','addEdge','push','size','relations','traverseBFS','info','no\x20edge/s\x20available','length','condition','split','agicommand','target','vswitch','default\x20on\x20switch\x20not\x20found','includes','max\x20retry\x20reach','condition\x20not\x20found','exports','lodash','../../../config/logger'];(function(_0x12fc8d,_0x19ee33){var _0x3f9d04=function(_0x52e51c){while(--_0x52e51c){_0x12fc8d['push'](_0x12fc8d['shift']());}};_0x3f9d04(++_0x19ee33);}(_0x9e00,0x1b8));var _0x09e0=function(_0xa464c9,_0x7c86d8){_0xa464c9=_0xa464c9-0x0;var _0x3d73c4=_0x9e00[_0xa464c9];return _0x3d73c4;};'use strict';var _=require(_0x09e0('0x0'));var logger=require(_0x09e0('0x1'))('agi');var verticesWithRetry=[_0x09e0('0x2'),'getdigits','getsecretdigits'];var Graph=function(){this['vertices']={};this['edges']={};this[_0x09e0('0x3')]=0x0;};Graph['prototype'][_0x09e0('0x4')]=function(_0x573430){this[_0x09e0('0x5')][_0x573430['id']]=_0x573430;this[_0x09e0('0x6')][_0x573430['id']]=[];};Graph[_0x09e0('0x7')][_0x09e0('0x8')]=function(_0x170417,_0x46de3d,_0x133120){this[_0x09e0('0x6')][_0x170417][_0x09e0('0x9')]({'target':_0x46de3d,'condition':_0x133120});this['numberOfEdges']+=0x1;};Graph[_0x09e0('0x7')]['size']=function(){return _[_0x09e0('0xa')](this[_0x09e0('0x5')]);};Graph['prototype'][_0x09e0('0xb')]=function(){return this[_0x09e0('0x3')];};Graph[_0x09e0('0x7')]['getVertex']=function(_0x37230e){return this[_0x09e0('0x5')][_0x37230e];};Graph['prototype'][_0x09e0('0xc')]=function(_0x36a720,_0x1ccca4){if(!this['vertices'][_0x36a720]){return logger[_0x09e0('0xd')]('no\x20vertex\x20found');}var _0x4b7a1e=_0x1ccca4(this[_0x09e0('0x5')][_0x36a720]);if(!_0x4b7a1e){return logger[_0x09e0('0xd')]('stop\x20traverse');}if(this[_0x09e0('0x6')][_0x36a720]['length']===0x0){return logger['info'](_0x09e0('0xe'));}for(var _0x231e05=0x0,_0x3088fb=[],_0x5e86da=![];_0x231e05<this[_0x09e0('0x6')][_0x36a720][_0x09e0('0xf')];_0x231e05+=0x1){if(this['edges'][_0x36a720][_0x231e05][_0x09e0('0x10')]){_0x3088fb=this['edges'][_0x36a720][_0x231e05]['condition'][_0x09e0('0x11')](',');for(var _0x14b850=0x0;_0x14b850<_0x3088fb[_0x09e0('0xf')];_0x14b850+=0x1){if(this['vertices'][_0x36a720][_0x09e0('0x12')]==='vswitch'&&_0x3088fb[_0x14b850]==='-'){_0x5e86da=this[_0x09e0('0x6')][_0x36a720][_0x231e05][_0x09e0('0x13')];logger[_0x09e0('0xd')]('default',_0x3088fb[_0x14b850],this['edges'][_0x36a720][_0x231e05][_0x09e0('0x13')]);}else if(this[_0x09e0('0x5')][_0x36a720]['agicommand']==='menu'&&_0x3088fb[_0x14b850]==='i'){_0x5e86da=this[_0x09e0('0x6')][_0x36a720][_0x231e05]['target'];logger[_0x09e0('0xd')]('invalid',_0x3088fb[_0x14b850],this['edges'][_0x36a720][_0x231e05][_0x09e0('0x13')]);}if(_0x3088fb[_0x14b850]===_0x4b7a1e){return this['traverseBFS'](this[_0x09e0('0x6')][_0x36a720][_0x231e05][_0x09e0('0x13')],_0x1ccca4);}}}else{return this[_0x09e0('0xc')](this[_0x09e0('0x6')][_0x36a720][_0x231e05][_0x09e0('0x13')],_0x1ccca4);}}if(_0x3088fb['length']){if(this[_0x09e0('0x5')][_0x36a720][_0x09e0('0x12')]===_0x09e0('0x14')){if(_0x5e86da){return this[_0x09e0('0xc')](_0x5e86da,_0x1ccca4);}return logger['info'](_0x09e0('0x15'));}else if(_[_0x09e0('0x16')](verticesWithRetry,this[_0x09e0('0x5')][_0x36a720][_0x09e0('0x12')])){if(_0x4b7a1e==='-'){return logger[_0x09e0('0xd')](_0x09e0('0x17'));}if(_0x5e86da&&_0x4b7a1e!=='t'){return this[_0x09e0('0xc')](_0x5e86da,_0x1ccca4);}return this[_0x09e0('0xc')](_0x36a720,_0x1ccca4);}return logger[_0x09e0('0xd')](_0x09e0('0x18'));}};module[_0x09e0('0x19')]=Graph;