4ce903340bb7bc6e6e383fd8ea4acc4fe8cdae4e
[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 _0xbfcc=['condition\x20not\x20found','exports','lodash','menu','getdigits','getsecretdigits','vertices','prototype','edges','numberOfEdges','size','getVertex','traverseBFS','info','no\x20vertex\x20found','length','no\x20edge/s\x20available','condition','split','agicommand','vswitch','target','default','invalid','includes'];(function(_0xe4e595,_0x4085f5){var _0x3ba4c6=function(_0x51bd38){while(--_0x51bd38){_0xe4e595['push'](_0xe4e595['shift']());}};_0x3ba4c6(++_0x4085f5);}(_0xbfcc,0x1dd));var _0xcbfc=function(_0x4fc9e6,_0xc51915){_0x4fc9e6=_0x4fc9e6-0x0;var _0x551d28=_0xbfcc[_0x4fc9e6];return _0x551d28;};'use strict';var _=require(_0xcbfc('0x0'));var logger=require('../../../config/logger')('agi');var verticesWithRetry=[_0xcbfc('0x1'),_0xcbfc('0x2'),_0xcbfc('0x3')];var Graph=function(){this[_0xcbfc('0x4')]={};this['edges']={};this['numberOfEdges']=0x0;};Graph['prototype']['addVertex']=function(_0x17bc4a){this[_0xcbfc('0x4')][_0x17bc4a['id']]=_0x17bc4a;this['edges'][_0x17bc4a['id']]=[];};Graph[_0xcbfc('0x5')]['addEdge']=function(_0x2ea130,_0x1f8b71,_0x1b1377){this[_0xcbfc('0x6')][_0x2ea130]['push']({'target':_0x1f8b71,'condition':_0x1b1377});this[_0xcbfc('0x7')]+=0x1;};Graph[_0xcbfc('0x5')][_0xcbfc('0x8')]=function(){return _[_0xcbfc('0x8')](this[_0xcbfc('0x4')]);};Graph[_0xcbfc('0x5')]['relations']=function(){return this[_0xcbfc('0x7')];};Graph[_0xcbfc('0x5')][_0xcbfc('0x9')]=function(_0xbbb176){return this[_0xcbfc('0x4')][_0xbbb176];};Graph['prototype'][_0xcbfc('0xa')]=function(_0x86f67c,_0x80d08d){if(!this['vertices'][_0x86f67c]){return logger[_0xcbfc('0xb')](_0xcbfc('0xc'));}var _0x2f2bdd=_0x80d08d(this[_0xcbfc('0x4')][_0x86f67c]);if(!_0x2f2bdd){return logger[_0xcbfc('0xb')]('stop\x20traverse');}if(this[_0xcbfc('0x6')][_0x86f67c][_0xcbfc('0xd')]===0x0){return logger[_0xcbfc('0xb')](_0xcbfc('0xe'));}for(var _0x50c6b6=0x0,_0x565301=[],_0x418f18=![];_0x50c6b6<this[_0xcbfc('0x6')][_0x86f67c][_0xcbfc('0xd')];_0x50c6b6+=0x1){if(this['edges'][_0x86f67c][_0x50c6b6]['condition']){_0x565301=this[_0xcbfc('0x6')][_0x86f67c][_0x50c6b6][_0xcbfc('0xf')][_0xcbfc('0x10')](',');for(var _0x4beb87=0x0;_0x4beb87<_0x565301[_0xcbfc('0xd')];_0x4beb87+=0x1){if(this['vertices'][_0x86f67c][_0xcbfc('0x11')]===_0xcbfc('0x12')&&_0x565301[_0x4beb87]==='-'){_0x418f18=this[_0xcbfc('0x6')][_0x86f67c][_0x50c6b6][_0xcbfc('0x13')];logger[_0xcbfc('0xb')](_0xcbfc('0x14'),_0x565301[_0x4beb87],this['edges'][_0x86f67c][_0x50c6b6][_0xcbfc('0x13')]);}else if(this[_0xcbfc('0x4')][_0x86f67c]['agicommand']===_0xcbfc('0x1')&&_0x565301[_0x4beb87]==='i'){_0x418f18=this['edges'][_0x86f67c][_0x50c6b6]['target'];logger['info'](_0xcbfc('0x15'),_0x565301[_0x4beb87],this['edges'][_0x86f67c][_0x50c6b6]['target']);}if(_0x565301[_0x4beb87]===_0x2f2bdd){return this[_0xcbfc('0xa')](this[_0xcbfc('0x6')][_0x86f67c][_0x50c6b6][_0xcbfc('0x13')],_0x80d08d);}}}else{return this[_0xcbfc('0xa')](this['edges'][_0x86f67c][_0x50c6b6][_0xcbfc('0x13')],_0x80d08d);}}if(_0x565301['length']){if(this[_0xcbfc('0x4')][_0x86f67c][_0xcbfc('0x11')]==='vswitch'){if(_0x418f18){return this[_0xcbfc('0xa')](_0x418f18,_0x80d08d);}return logger[_0xcbfc('0xb')]('default\x20on\x20switch\x20not\x20found');}else if(_[_0xcbfc('0x16')](verticesWithRetry,this[_0xcbfc('0x4')][_0x86f67c][_0xcbfc('0x11')])){if(_0x2f2bdd==='-'){return logger[_0xcbfc('0xb')]('max\x20retry\x20reach');}if(_0x418f18&&_0x2f2bdd!=='t'){return this[_0xcbfc('0xa')](_0x418f18,_0x80d08d);}return this[_0xcbfc('0xa')](_0x86f67c,_0x80d08d);}return logger['info'](_0xcbfc('0x17'));}};module[_0xcbfc('0x18')]=Graph;