Built motion from commit 092f8824.|2.5.49
[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 _0x7a34=['condition\x20not\x20found','lodash','menu','getdigits','getsecretdigits','vertices','edges','numberOfEdges','prototype','addVertex','addEdge','push','size','relations','getVertex','traverseBFS','info','no\x20vertex\x20found','stop\x20traverse','length','no\x20edge/s\x20available','condition','agicommand','vswitch','target','default','invalid','includes','max\x20retry\x20reach'];(function(_0x599c52,_0x55064c){var _0x48aa48=function(_0xf7f699){while(--_0xf7f699){_0x599c52['push'](_0x599c52['shift']());}};_0x48aa48(++_0x55064c);}(_0x7a34,0x75));var _0x47a3=function(_0x4345aa,_0x45ebc0){_0x4345aa=_0x4345aa-0x0;var _0x27b18f=_0x7a34[_0x4345aa];return _0x27b18f;};'use strict';var _=require(_0x47a3('0x0'));var logger=require('../../../config/logger')('agi');var verticesWithRetry=[_0x47a3('0x1'),_0x47a3('0x2'),_0x47a3('0x3')];var Graph=function(){this[_0x47a3('0x4')]={};this[_0x47a3('0x5')]={};this[_0x47a3('0x6')]=0x0;};Graph[_0x47a3('0x7')][_0x47a3('0x8')]=function(_0x248aa9){this[_0x47a3('0x4')][_0x248aa9['id']]=_0x248aa9;this[_0x47a3('0x5')][_0x248aa9['id']]=[];};Graph[_0x47a3('0x7')][_0x47a3('0x9')]=function(_0x4ac58e,_0x38000f,_0xf07df3){this['edges'][_0x4ac58e][_0x47a3('0xa')]({'target':_0x38000f,'condition':_0xf07df3});this['numberOfEdges']+=0x1;};Graph[_0x47a3('0x7')][_0x47a3('0xb')]=function(){return _[_0x47a3('0xb')](this[_0x47a3('0x4')]);};Graph['prototype'][_0x47a3('0xc')]=function(){return this[_0x47a3('0x6')];};Graph[_0x47a3('0x7')][_0x47a3('0xd')]=function(_0x3fd613){return this['vertices'][_0x3fd613];};Graph[_0x47a3('0x7')][_0x47a3('0xe')]=function(_0xe8d453,_0x4823b2){if(!this[_0x47a3('0x4')][_0xe8d453]){return logger[_0x47a3('0xf')](_0x47a3('0x10'));}var _0x265123=_0x4823b2(this[_0x47a3('0x4')][_0xe8d453]);if(!_0x265123){return logger[_0x47a3('0xf')](_0x47a3('0x11'));}if(this['edges'][_0xe8d453][_0x47a3('0x12')]===0x0){return logger[_0x47a3('0xf')](_0x47a3('0x13'));}for(var _0x450a5b=0x0,_0xde2c7c=[],_0x1ee458=![];_0x450a5b<this[_0x47a3('0x5')][_0xe8d453]['length'];_0x450a5b+=0x1){if(this[_0x47a3('0x5')][_0xe8d453][_0x450a5b][_0x47a3('0x14')]){_0xde2c7c=this[_0x47a3('0x5')][_0xe8d453][_0x450a5b][_0x47a3('0x14')]['split'](',');for(var _0x341077=0x0;_0x341077<_0xde2c7c['length'];_0x341077+=0x1){if(this[_0x47a3('0x4')][_0xe8d453][_0x47a3('0x15')]===_0x47a3('0x16')&&_0xde2c7c[_0x341077]==='-'){_0x1ee458=this[_0x47a3('0x5')][_0xe8d453][_0x450a5b][_0x47a3('0x17')];logger[_0x47a3('0xf')](_0x47a3('0x18'),_0xde2c7c[_0x341077],this[_0x47a3('0x5')][_0xe8d453][_0x450a5b][_0x47a3('0x17')]);}else if(this[_0x47a3('0x4')][_0xe8d453][_0x47a3('0x15')]===_0x47a3('0x1')&&_0xde2c7c[_0x341077]==='i'){_0x1ee458=this[_0x47a3('0x5')][_0xe8d453][_0x450a5b]['target'];logger[_0x47a3('0xf')](_0x47a3('0x19'),_0xde2c7c[_0x341077],this[_0x47a3('0x5')][_0xe8d453][_0x450a5b][_0x47a3('0x17')]);}if(_0xde2c7c[_0x341077]===_0x265123){return this[_0x47a3('0xe')](this['edges'][_0xe8d453][_0x450a5b][_0x47a3('0x17')],_0x4823b2);}}}else{return this[_0x47a3('0xe')](this[_0x47a3('0x5')][_0xe8d453][_0x450a5b][_0x47a3('0x17')],_0x4823b2);}}if(_0xde2c7c[_0x47a3('0x12')]){if(this[_0x47a3('0x4')][_0xe8d453][_0x47a3('0x15')]===_0x47a3('0x16')){if(_0x1ee458){return this[_0x47a3('0xe')](_0x1ee458,_0x4823b2);}return logger[_0x47a3('0xf')]('default\x20on\x20switch\x20not\x20found');}else if(_[_0x47a3('0x1a')](verticesWithRetry,this['vertices'][_0xe8d453]['agicommand'])){if(_0x265123==='-'){return logger['info'](_0x47a3('0x1b'));}if(_0x1ee458&&_0x265123!=='t'){return this[_0x47a3('0xe')](_0x1ee458,_0x4823b2);}return this['traverseBFS'](_0xe8d453,_0x4823b2);}return logger[_0x47a3('0xf')](_0x47a3('0x1c'));}};module['exports']=Graph;