Built motion from commit e02f907f.|2.6.14
[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 _0x9fe6=['target','menu','invalid','condition\x20not\x20found','exports','../../../config/logger','getdigits','getsecretdigits','vertices','numberOfEdges','prototype','addVertex','edges','getVertex','traverseBFS','info','no\x20edge/s\x20available','length','split','agicommand','vswitch'];(function(_0x61683d,_0xe7e2d5){var _0xfed21e=function(_0x1f7b9d){while(--_0x1f7b9d){_0x61683d['push'](_0x61683d['shift']());}};_0xfed21e(++_0xe7e2d5);}(_0x9fe6,0xd7));var _0x69fe=function(_0x1272ca,_0x5271c0){_0x1272ca=_0x1272ca-0x0;var _0x3b2c98=_0x9fe6[_0x1272ca];return _0x3b2c98;};'use strict';var _=require('lodash');var logger=require(_0x69fe('0x0'))('agi');var verticesWithRetry=['menu',_0x69fe('0x1'),_0x69fe('0x2')];var Graph=function(){this[_0x69fe('0x3')]={};this['edges']={};this[_0x69fe('0x4')]=0x0;};Graph[_0x69fe('0x5')][_0x69fe('0x6')]=function(_0x78712b){this[_0x69fe('0x3')][_0x78712b['id']]=_0x78712b;this['edges'][_0x78712b['id']]=[];};Graph[_0x69fe('0x5')]['addEdge']=function(_0x1244e1,_0x2436c0,_0x1855eb){this[_0x69fe('0x7')][_0x1244e1]['push']({'target':_0x2436c0,'condition':_0x1855eb});this['numberOfEdges']+=0x1;};Graph[_0x69fe('0x5')]['size']=function(){return _['size'](this[_0x69fe('0x3')]);};Graph['prototype']['relations']=function(){return this['numberOfEdges'];};Graph['prototype'][_0x69fe('0x8')]=function(_0x533d7d){return this[_0x69fe('0x3')][_0x533d7d];};Graph[_0x69fe('0x5')][_0x69fe('0x9')]=function(_0x458910,_0x4233a1){if(!this[_0x69fe('0x3')][_0x458910]){return logger['info']('no\x20vertex\x20found');}var _0x52119a=_0x4233a1(this['vertices'][_0x458910]);if(!_0x52119a){return logger[_0x69fe('0xa')]('stop\x20traverse');}if(this['edges'][_0x458910]['length']===0x0){return logger[_0x69fe('0xa')](_0x69fe('0xb'));}for(var _0x1cfe76=0x0,_0x546c2e=[],_0x387a4d=![];_0x1cfe76<this[_0x69fe('0x7')][_0x458910][_0x69fe('0xc')];_0x1cfe76+=0x1){if(this['edges'][_0x458910][_0x1cfe76]['condition']){_0x546c2e=this['edges'][_0x458910][_0x1cfe76]['condition'][_0x69fe('0xd')](',');for(var _0x463314=0x0;_0x463314<_0x546c2e[_0x69fe('0xc')];_0x463314+=0x1){if(this['vertices'][_0x458910][_0x69fe('0xe')]===_0x69fe('0xf')&&_0x546c2e[_0x463314]==='-'){_0x387a4d=this[_0x69fe('0x7')][_0x458910][_0x1cfe76][_0x69fe('0x10')];logger['info']('default',_0x546c2e[_0x463314],this[_0x69fe('0x7')][_0x458910][_0x1cfe76][_0x69fe('0x10')]);}else if(this['vertices'][_0x458910][_0x69fe('0xe')]===_0x69fe('0x11')&&_0x546c2e[_0x463314]==='i'){_0x387a4d=this[_0x69fe('0x7')][_0x458910][_0x1cfe76][_0x69fe('0x10')];logger[_0x69fe('0xa')](_0x69fe('0x12'),_0x546c2e[_0x463314],this['edges'][_0x458910][_0x1cfe76][_0x69fe('0x10')]);}if(_0x546c2e[_0x463314]===_0x52119a){return this[_0x69fe('0x9')](this[_0x69fe('0x7')][_0x458910][_0x1cfe76]['target'],_0x4233a1);}}}else{return this['traverseBFS'](this[_0x69fe('0x7')][_0x458910][_0x1cfe76][_0x69fe('0x10')],_0x4233a1);}}if(_0x546c2e['length']){if(this[_0x69fe('0x3')][_0x458910][_0x69fe('0xe')]===_0x69fe('0xf')){if(_0x387a4d){return this['traverseBFS'](_0x387a4d,_0x4233a1);}return logger[_0x69fe('0xa')]('default\x20on\x20switch\x20not\x20found');}else if(_['includes'](verticesWithRetry,this[_0x69fe('0x3')][_0x458910]['agicommand'])){if(_0x52119a==='-'){return logger[_0x69fe('0xa')]('max\x20retry\x20reach');}if(_0x387a4d&&_0x52119a!=='t'){return this[_0x69fe('0x9')](_0x387a4d,_0x4233a1);}return this[_0x69fe('0x9')](_0x458910,_0x4233a1);}return logger[_0x69fe('0xa')](_0x69fe('0x13'));}};module[_0x69fe('0x14')]=Graph;