85aecfaffbfddc5250c4193aefdc26fbb50b1150
[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 _0x0713=['agicommand','invalid','traverseBFS','default\x20on\x20switch\x20not\x20found','max\x20retry\x20reach','condition\x20not\x20found','exports','agi','menu','getdigits','getsecretdigits','vertices','numberOfEdges','prototype','addVertex','edges','addEdge','push','size','getVertex','info','stop\x20traverse','length','no\x20edge/s\x20available','condition','split','vswitch','target','default'];(function(_0x531728,_0x3353ee){var _0x7a4149=function(_0x472d12){while(--_0x472d12){_0x531728['push'](_0x531728['shift']());}};_0x7a4149(++_0x3353ee);}(_0x0713,0x1ba));var _0x3071=function(_0x3dd15e,_0x1f0015){_0x3dd15e=_0x3dd15e-0x0;var _0x231fd0=_0x0713[_0x3dd15e];return _0x231fd0;};'use strict';var _=require('lodash');var logger=require('../../../config/logger')(_0x3071('0x0'));var verticesWithRetry=[_0x3071('0x1'),_0x3071('0x2'),_0x3071('0x3')];var Graph=function(){this[_0x3071('0x4')]={};this['edges']={};this[_0x3071('0x5')]=0x0;};Graph[_0x3071('0x6')][_0x3071('0x7')]=function(_0x3137c8){this[_0x3071('0x4')][_0x3137c8['id']]=_0x3137c8;this[_0x3071('0x8')][_0x3137c8['id']]=[];};Graph[_0x3071('0x6')][_0x3071('0x9')]=function(_0xbd737f,_0x22274c,_0x3e9a5e){this[_0x3071('0x8')][_0xbd737f][_0x3071('0xa')]({'target':_0x22274c,'condition':_0x3e9a5e});this['numberOfEdges']+=0x1;};Graph[_0x3071('0x6')][_0x3071('0xb')]=function(){return _[_0x3071('0xb')](this[_0x3071('0x4')]);};Graph[_0x3071('0x6')]['relations']=function(){return this[_0x3071('0x5')];};Graph[_0x3071('0x6')][_0x3071('0xc')]=function(_0x3ed4a0){return this[_0x3071('0x4')][_0x3ed4a0];};Graph['prototype']['traverseBFS']=function(_0x1826ca,_0x5dc13b){if(!this[_0x3071('0x4')][_0x1826ca]){return logger[_0x3071('0xd')]('no\x20vertex\x20found');}var _0x104e73=_0x5dc13b(this['vertices'][_0x1826ca]);if(!_0x104e73){return logger[_0x3071('0xd')](_0x3071('0xe'));}if(this[_0x3071('0x8')][_0x1826ca][_0x3071('0xf')]===0x0){return logger[_0x3071('0xd')](_0x3071('0x10'));}for(var _0x157a47=0x0,_0x11bdc9=[],_0x21aad3=![];_0x157a47<this[_0x3071('0x8')][_0x1826ca]['length'];_0x157a47+=0x1){if(this[_0x3071('0x8')][_0x1826ca][_0x157a47][_0x3071('0x11')]){_0x11bdc9=this[_0x3071('0x8')][_0x1826ca][_0x157a47][_0x3071('0x11')][_0x3071('0x12')](',');for(var _0x17aee2=0x0;_0x17aee2<_0x11bdc9[_0x3071('0xf')];_0x17aee2+=0x1){if(this[_0x3071('0x4')][_0x1826ca]['agicommand']===_0x3071('0x13')&&_0x11bdc9[_0x17aee2]==='-'){_0x21aad3=this[_0x3071('0x8')][_0x1826ca][_0x157a47][_0x3071('0x14')];logger['info'](_0x3071('0x15'),_0x11bdc9[_0x17aee2],this['edges'][_0x1826ca][_0x157a47][_0x3071('0x14')]);}else if(this[_0x3071('0x4')][_0x1826ca][_0x3071('0x16')]===_0x3071('0x1')&&_0x11bdc9[_0x17aee2]==='i'){_0x21aad3=this[_0x3071('0x8')][_0x1826ca][_0x157a47][_0x3071('0x14')];logger[_0x3071('0xd')](_0x3071('0x17'),_0x11bdc9[_0x17aee2],this['edges'][_0x1826ca][_0x157a47]['target']);}if(_0x11bdc9[_0x17aee2]===_0x104e73){return this[_0x3071('0x18')](this[_0x3071('0x8')][_0x1826ca][_0x157a47][_0x3071('0x14')],_0x5dc13b);}}}else{return this[_0x3071('0x18')](this[_0x3071('0x8')][_0x1826ca][_0x157a47][_0x3071('0x14')],_0x5dc13b);}}if(_0x11bdc9[_0x3071('0xf')]){if(this[_0x3071('0x4')][_0x1826ca][_0x3071('0x16')]==='vswitch'){if(_0x21aad3){return this[_0x3071('0x18')](_0x21aad3,_0x5dc13b);}return logger[_0x3071('0xd')](_0x3071('0x19'));}else if(_['includes'](verticesWithRetry,this[_0x3071('0x4')][_0x1826ca][_0x3071('0x16')])){if(_0x104e73==='-'){return logger[_0x3071('0xd')](_0x3071('0x1a'));}if(_0x21aad3&&_0x104e73!=='t'){return this[_0x3071('0x18')](_0x21aad3,_0x5dc13b);}return this[_0x3071('0x18')](_0x1826ca,_0x5dc13b);}return logger[_0x3071('0xd')](_0x3071('0x1b'));}};module[_0x3071('0x1c')]=Graph;