Built motion from commit c116dc8b.|2.6.30
[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 _0x7b8b=['../../../config/logger','menu','vertices','edges','numberOfEdges','addVertex','prototype','addEdge','push','size','relations','getVertex','traverseBFS','info','stop\x20traverse','length','no\x20edge/s\x20available','split','agicommand','vswitch','target','default','default\x20on\x20switch\x20not\x20found','includes','max\x20retry\x20reach','condition\x20not\x20found','exports'];(function(_0x240301,_0xc09fd9){var _0x9605eb=function(_0x120930){while(--_0x120930){_0x240301['push'](_0x240301['shift']());}};_0x9605eb(++_0xc09fd9);}(_0x7b8b,0xf3));var _0xb7b8=function(_0x4e5552,_0x19ec4e){_0x4e5552=_0x4e5552-0x0;var _0x60a338=_0x7b8b[_0x4e5552];return _0x60a338;};'use strict';var _=require('lodash');var logger=require(_0xb7b8('0x0'))('agi');var verticesWithRetry=[_0xb7b8('0x1'),'getdigits','getsecretdigits'];var Graph=function(){this[_0xb7b8('0x2')]={};this[_0xb7b8('0x3')]={};this[_0xb7b8('0x4')]=0x0;};Graph['prototype'][_0xb7b8('0x5')]=function(_0x32a19b){this['vertices'][_0x32a19b['id']]=_0x32a19b;this['edges'][_0x32a19b['id']]=[];};Graph[_0xb7b8('0x6')][_0xb7b8('0x7')]=function(_0xb30da1,_0x58da49,_0x57e0ae){this[_0xb7b8('0x3')][_0xb30da1][_0xb7b8('0x8')]({'target':_0x58da49,'condition':_0x57e0ae});this[_0xb7b8('0x4')]+=0x1;};Graph[_0xb7b8('0x6')]['size']=function(){return _[_0xb7b8('0x9')](this[_0xb7b8('0x2')]);};Graph[_0xb7b8('0x6')][_0xb7b8('0xa')]=function(){return this[_0xb7b8('0x4')];};Graph[_0xb7b8('0x6')][_0xb7b8('0xb')]=function(_0x463553){return this[_0xb7b8('0x2')][_0x463553];};Graph[_0xb7b8('0x6')][_0xb7b8('0xc')]=function(_0x1be0e3,_0x28b532){if(!this[_0xb7b8('0x2')][_0x1be0e3]){return logger['info']('no\x20vertex\x20found');}var _0x243c85=_0x28b532(this[_0xb7b8('0x2')][_0x1be0e3]);if(!_0x243c85){return logger[_0xb7b8('0xd')](_0xb7b8('0xe'));}if(this['edges'][_0x1be0e3][_0xb7b8('0xf')]===0x0){return logger[_0xb7b8('0xd')](_0xb7b8('0x10'));}for(var _0x336ad0=0x0,_0x38a1d4=[],_0x5b4632=![];_0x336ad0<this[_0xb7b8('0x3')][_0x1be0e3]['length'];_0x336ad0+=0x1){if(this[_0xb7b8('0x3')][_0x1be0e3][_0x336ad0]['condition']){_0x38a1d4=this[_0xb7b8('0x3')][_0x1be0e3][_0x336ad0]['condition'][_0xb7b8('0x11')](',');for(var _0x3b5b96=0x0;_0x3b5b96<_0x38a1d4[_0xb7b8('0xf')];_0x3b5b96+=0x1){if(this[_0xb7b8('0x2')][_0x1be0e3][_0xb7b8('0x12')]===_0xb7b8('0x13')&&_0x38a1d4[_0x3b5b96]==='-'){_0x5b4632=this[_0xb7b8('0x3')][_0x1be0e3][_0x336ad0][_0xb7b8('0x14')];logger[_0xb7b8('0xd')](_0xb7b8('0x15'),_0x38a1d4[_0x3b5b96],this[_0xb7b8('0x3')][_0x1be0e3][_0x336ad0]['target']);}else if(this[_0xb7b8('0x2')][_0x1be0e3]['agicommand']===_0xb7b8('0x1')&&_0x38a1d4[_0x3b5b96]==='i'){_0x5b4632=this['edges'][_0x1be0e3][_0x336ad0][_0xb7b8('0x14')];logger[_0xb7b8('0xd')]('invalid',_0x38a1d4[_0x3b5b96],this['edges'][_0x1be0e3][_0x336ad0][_0xb7b8('0x14')]);}if(_0x38a1d4[_0x3b5b96]===_0x243c85){return this[_0xb7b8('0xc')](this[_0xb7b8('0x3')][_0x1be0e3][_0x336ad0][_0xb7b8('0x14')],_0x28b532);}}}else{return this[_0xb7b8('0xc')](this[_0xb7b8('0x3')][_0x1be0e3][_0x336ad0]['target'],_0x28b532);}}if(_0x38a1d4[_0xb7b8('0xf')]){if(this[_0xb7b8('0x2')][_0x1be0e3][_0xb7b8('0x12')]===_0xb7b8('0x13')){if(_0x5b4632){return this[_0xb7b8('0xc')](_0x5b4632,_0x28b532);}return logger[_0xb7b8('0xd')](_0xb7b8('0x16'));}else if(_[_0xb7b8('0x17')](verticesWithRetry,this[_0xb7b8('0x2')][_0x1be0e3][_0xb7b8('0x12')])){if(_0x243c85==='-'){return logger[_0xb7b8('0xd')](_0xb7b8('0x18'));}if(_0x5b4632&&_0x243c85!=='t'){return this['traverseBFS'](_0x5b4632,_0x28b532);}return this[_0xb7b8('0xc')](_0x1be0e3,_0x28b532);}return logger[_0xb7b8('0xd')](_0xb7b8('0x19'));}};module[_0xb7b8('0x1a')]=Graph;