Built motion from commit 911eb874.|2.6.31
[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 _0xaa5e=['getdigits','getsecretdigits','vertices','edges','prototype','addVertex','addEdge','numberOfEdges','size','relations','getVertex','traverseBFS','info','no\x20vertex\x20found','length','condition','split','agicommand','vswitch','default','target','invalid','default\x20on\x20switch\x20not\x20found','max\x20retry\x20reach','exports','lodash','../../../config/logger','menu'];(function(_0x162497,_0x1f2cac){var _0x1a31ff=function(_0x344238){while(--_0x344238){_0x162497['push'](_0x162497['shift']());}};_0x1a31ff(++_0x1f2cac);}(_0xaa5e,0xa5));var _0xeaa5=function(_0x5e5e75,_0x5239c){_0x5e5e75=_0x5e5e75-0x0;var _0x294929=_0xaa5e[_0x5e5e75];return _0x294929;};'use strict';var _=require(_0xeaa5('0x0'));var logger=require(_0xeaa5('0x1'))('agi');var verticesWithRetry=[_0xeaa5('0x2'),_0xeaa5('0x3'),_0xeaa5('0x4')];var Graph=function(){this[_0xeaa5('0x5')]={};this[_0xeaa5('0x6')]={};this['numberOfEdges']=0x0;};Graph[_0xeaa5('0x7')][_0xeaa5('0x8')]=function(_0x33d376){this[_0xeaa5('0x5')][_0x33d376['id']]=_0x33d376;this['edges'][_0x33d376['id']]=[];};Graph['prototype'][_0xeaa5('0x9')]=function(_0x2c9696,_0x50cb62,_0x2e35c3){this[_0xeaa5('0x6')][_0x2c9696]['push']({'target':_0x50cb62,'condition':_0x2e35c3});this[_0xeaa5('0xa')]+=0x1;};Graph['prototype'][_0xeaa5('0xb')]=function(){return _[_0xeaa5('0xb')](this['vertices']);};Graph[_0xeaa5('0x7')][_0xeaa5('0xc')]=function(){return this[_0xeaa5('0xa')];};Graph[_0xeaa5('0x7')][_0xeaa5('0xd')]=function(_0x6f18de){return this[_0xeaa5('0x5')][_0x6f18de];};Graph[_0xeaa5('0x7')][_0xeaa5('0xe')]=function(_0x47a779,_0x3ae823){if(!this[_0xeaa5('0x5')][_0x47a779]){return logger[_0xeaa5('0xf')](_0xeaa5('0x10'));}var _0x18ca75=_0x3ae823(this['vertices'][_0x47a779]);if(!_0x18ca75){return logger[_0xeaa5('0xf')]('stop\x20traverse');}if(this[_0xeaa5('0x6')][_0x47a779][_0xeaa5('0x11')]===0x0){return logger[_0xeaa5('0xf')]('no\x20edge/s\x20available');}for(var _0x1cc157=0x0,_0x5a0fed=[],_0x44e4b4=![];_0x1cc157<this[_0xeaa5('0x6')][_0x47a779][_0xeaa5('0x11')];_0x1cc157+=0x1){if(this['edges'][_0x47a779][_0x1cc157][_0xeaa5('0x12')]){_0x5a0fed=this['edges'][_0x47a779][_0x1cc157][_0xeaa5('0x12')][_0xeaa5('0x13')](',');for(var _0x22f4d3=0x0;_0x22f4d3<_0x5a0fed[_0xeaa5('0x11')];_0x22f4d3+=0x1){if(this['vertices'][_0x47a779][_0xeaa5('0x14')]===_0xeaa5('0x15')&&_0x5a0fed[_0x22f4d3]==='-'){_0x44e4b4=this[_0xeaa5('0x6')][_0x47a779][_0x1cc157]['target'];logger[_0xeaa5('0xf')](_0xeaa5('0x16'),_0x5a0fed[_0x22f4d3],this[_0xeaa5('0x6')][_0x47a779][_0x1cc157][_0xeaa5('0x17')]);}else if(this[_0xeaa5('0x5')][_0x47a779]['agicommand']===_0xeaa5('0x2')&&_0x5a0fed[_0x22f4d3]==='i'){_0x44e4b4=this[_0xeaa5('0x6')][_0x47a779][_0x1cc157][_0xeaa5('0x17')];logger[_0xeaa5('0xf')](_0xeaa5('0x18'),_0x5a0fed[_0x22f4d3],this[_0xeaa5('0x6')][_0x47a779][_0x1cc157][_0xeaa5('0x17')]);}if(_0x5a0fed[_0x22f4d3]===_0x18ca75){return this[_0xeaa5('0xe')](this[_0xeaa5('0x6')][_0x47a779][_0x1cc157][_0xeaa5('0x17')],_0x3ae823);}}}else{return this[_0xeaa5('0xe')](this[_0xeaa5('0x6')][_0x47a779][_0x1cc157][_0xeaa5('0x17')],_0x3ae823);}}if(_0x5a0fed[_0xeaa5('0x11')]){if(this[_0xeaa5('0x5')][_0x47a779][_0xeaa5('0x14')]===_0xeaa5('0x15')){if(_0x44e4b4){return this['traverseBFS'](_0x44e4b4,_0x3ae823);}return logger[_0xeaa5('0xf')](_0xeaa5('0x19'));}else if(_['includes'](verticesWithRetry,this[_0xeaa5('0x5')][_0x47a779][_0xeaa5('0x14')])){if(_0x18ca75==='-'){return logger[_0xeaa5('0xf')](_0xeaa5('0x1a'));}if(_0x44e4b4&&_0x18ca75!=='t'){return this[_0xeaa5('0xe')](_0x44e4b4,_0x3ae823);}return this['traverseBFS'](_0x47a779,_0x3ae823);}return logger[_0xeaa5('0xf')]('condition\x20not\x20found');}};module[_0xeaa5('0x1b')]=Graph;