3ef8c3739d5268791bf04ef6528103b31ed298b2
[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 _0xcf74=['vswitch','default','target','default\x20on\x20switch\x20not\x20found','condition\x20not\x20found','lodash','../../../config/logger','menu','getsecretdigits','vertices','edges','numberOfEdges','addVertex','prototype','addEdge','push','size','relations','getVertex','traverseBFS','no\x20vertex\x20found','info','length','no\x20edge/s\x20available','condition','split','agicommand'];(function(_0x121cb2,_0x37ee38){var _0x3a40b7=function(_0xce759d){while(--_0xce759d){_0x121cb2['push'](_0x121cb2['shift']());}};_0x3a40b7(++_0x37ee38);}(_0xcf74,0x17f));var _0x4cf7=function(_0x1e41b0,_0x5a6b8f){_0x1e41b0=_0x1e41b0-0x0;var _0x50e233=_0xcf74[_0x1e41b0];return _0x50e233;};'use strict';var _=require(_0x4cf7('0x0'));var logger=require(_0x4cf7('0x1'))('agi');var verticesWithRetry=[_0x4cf7('0x2'),'getdigits',_0x4cf7('0x3')];var Graph=function(){this[_0x4cf7('0x4')]={};this[_0x4cf7('0x5')]={};this[_0x4cf7('0x6')]=0x0;};Graph['prototype'][_0x4cf7('0x7')]=function(_0x2a5b48){this[_0x4cf7('0x4')][_0x2a5b48['id']]=_0x2a5b48;this[_0x4cf7('0x5')][_0x2a5b48['id']]=[];};Graph[_0x4cf7('0x8')][_0x4cf7('0x9')]=function(_0x750c13,_0x14056b,_0x569a0f){this[_0x4cf7('0x5')][_0x750c13][_0x4cf7('0xa')]({'target':_0x14056b,'condition':_0x569a0f});this[_0x4cf7('0x6')]+=0x1;};Graph[_0x4cf7('0x8')][_0x4cf7('0xb')]=function(){return _[_0x4cf7('0xb')](this[_0x4cf7('0x4')]);};Graph['prototype'][_0x4cf7('0xc')]=function(){return this[_0x4cf7('0x6')];};Graph[_0x4cf7('0x8')][_0x4cf7('0xd')]=function(_0x4eda56){return this['vertices'][_0x4eda56];};Graph[_0x4cf7('0x8')][_0x4cf7('0xe')]=function(_0x12ac4a,_0x26ff69){if(!this['vertices'][_0x12ac4a]){return logger['info'](_0x4cf7('0xf'));}var _0x332f94=_0x26ff69(this[_0x4cf7('0x4')][_0x12ac4a]);if(!_0x332f94){return logger[_0x4cf7('0x10')]('stop\x20traverse');}if(this[_0x4cf7('0x5')][_0x12ac4a][_0x4cf7('0x11')]===0x0){return logger[_0x4cf7('0x10')](_0x4cf7('0x12'));}for(var _0x21cb93=0x0,_0x48867a=[],_0x257578=![];_0x21cb93<this['edges'][_0x12ac4a][_0x4cf7('0x11')];_0x21cb93+=0x1){if(this[_0x4cf7('0x5')][_0x12ac4a][_0x21cb93][_0x4cf7('0x13')]){_0x48867a=this[_0x4cf7('0x5')][_0x12ac4a][_0x21cb93][_0x4cf7('0x13')][_0x4cf7('0x14')](',');for(var _0x17103a=0x0;_0x17103a<_0x48867a[_0x4cf7('0x11')];_0x17103a+=0x1){if(this[_0x4cf7('0x4')][_0x12ac4a][_0x4cf7('0x15')]===_0x4cf7('0x16')&&_0x48867a[_0x17103a]==='-'){_0x257578=this[_0x4cf7('0x5')][_0x12ac4a][_0x21cb93]['target'];logger[_0x4cf7('0x10')](_0x4cf7('0x17'),_0x48867a[_0x17103a],this[_0x4cf7('0x5')][_0x12ac4a][_0x21cb93][_0x4cf7('0x18')]);}else if(this[_0x4cf7('0x4')][_0x12ac4a][_0x4cf7('0x15')]===_0x4cf7('0x2')&&_0x48867a[_0x17103a]==='i'){_0x257578=this[_0x4cf7('0x5')][_0x12ac4a][_0x21cb93][_0x4cf7('0x18')];logger[_0x4cf7('0x10')]('invalid',_0x48867a[_0x17103a],this[_0x4cf7('0x5')][_0x12ac4a][_0x21cb93][_0x4cf7('0x18')]);}if(_0x48867a[_0x17103a]===_0x332f94){return this[_0x4cf7('0xe')](this[_0x4cf7('0x5')][_0x12ac4a][_0x21cb93]['target'],_0x26ff69);}}}else{return this[_0x4cf7('0xe')](this['edges'][_0x12ac4a][_0x21cb93]['target'],_0x26ff69);}}if(_0x48867a[_0x4cf7('0x11')]){if(this[_0x4cf7('0x4')][_0x12ac4a]['agicommand']===_0x4cf7('0x16')){if(_0x257578){return this[_0x4cf7('0xe')](_0x257578,_0x26ff69);}return logger[_0x4cf7('0x10')](_0x4cf7('0x19'));}else if(_['includes'](verticesWithRetry,this[_0x4cf7('0x4')][_0x12ac4a][_0x4cf7('0x15')])){if(_0x332f94==='-'){return logger[_0x4cf7('0x10')]('max\x20retry\x20reach');}if(_0x257578&&_0x332f94!=='t'){return this['traverseBFS'](_0x257578,_0x26ff69);}return this[_0x4cf7('0xe')](_0x12ac4a,_0x26ff69);}return logger[_0x4cf7('0x10')](_0x4cf7('0x1a'));}};module['exports']=Graph;