Built motion from commit da617fac.|2.6.6
[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 _0x26d5=['no\x20edge/s\x20available','length','condition','agicommand','target','vswitch','includes','max\x20retry\x20reach','condition\x20not\x20found','exports','../../../config/logger','agi','menu','getdigits','vertices','edges','numberOfEdges','prototype','addVertex','size','relations','traverseBFS','no\x20vertex\x20found','info','stop\x20traverse'];(function(_0x5a7e3c,_0xdc9219){var _0x59252b=function(_0x29655c){while(--_0x29655c){_0x5a7e3c['push'](_0x5a7e3c['shift']());}};_0x59252b(++_0xdc9219);}(_0x26d5,0x14f));var _0x526d=function(_0x54ebec,_0x4ef157){_0x54ebec=_0x54ebec-0x0;var _0x34b0a0=_0x26d5[_0x54ebec];return _0x34b0a0;};'use strict';var _=require('lodash');var logger=require(_0x526d('0x0'))(_0x526d('0x1'));var verticesWithRetry=[_0x526d('0x2'),_0x526d('0x3'),'getsecretdigits'];var Graph=function(){this[_0x526d('0x4')]={};this[_0x526d('0x5')]={};this[_0x526d('0x6')]=0x0;};Graph[_0x526d('0x7')][_0x526d('0x8')]=function(_0x81167f){this[_0x526d('0x4')][_0x81167f['id']]=_0x81167f;this['edges'][_0x81167f['id']]=[];};Graph[_0x526d('0x7')]['addEdge']=function(_0x2eda62,_0x542a46,_0x113f77){this[_0x526d('0x5')][_0x2eda62]['push']({'target':_0x542a46,'condition':_0x113f77});this['numberOfEdges']+=0x1;};Graph[_0x526d('0x7')][_0x526d('0x9')]=function(){return _[_0x526d('0x9')](this['vertices']);};Graph['prototype'][_0x526d('0xa')]=function(){return this[_0x526d('0x6')];};Graph[_0x526d('0x7')]['getVertex']=function(_0x9fd3df){return this['vertices'][_0x9fd3df];};Graph[_0x526d('0x7')][_0x526d('0xb')]=function(_0x181512,_0x1131bb){if(!this[_0x526d('0x4')][_0x181512]){return logger['info'](_0x526d('0xc'));}var _0x5acf20=_0x1131bb(this[_0x526d('0x4')][_0x181512]);if(!_0x5acf20){return logger[_0x526d('0xd')](_0x526d('0xe'));}if(this[_0x526d('0x5')][_0x181512]['length']===0x0){return logger['info'](_0x526d('0xf'));}for(var _0x733485=0x0,_0x3c657b=[],_0x2f5a61=![];_0x733485<this[_0x526d('0x5')][_0x181512][_0x526d('0x10')];_0x733485+=0x1){if(this[_0x526d('0x5')][_0x181512][_0x733485]['condition']){_0x3c657b=this[_0x526d('0x5')][_0x181512][_0x733485][_0x526d('0x11')]['split'](',');for(var _0x810027=0x0;_0x810027<_0x3c657b[_0x526d('0x10')];_0x810027+=0x1){if(this[_0x526d('0x4')][_0x181512][_0x526d('0x12')]==='vswitch'&&_0x3c657b[_0x810027]==='-'){_0x2f5a61=this['edges'][_0x181512][_0x733485]['target'];logger['info']('default',_0x3c657b[_0x810027],this[_0x526d('0x5')][_0x181512][_0x733485]['target']);}else if(this['vertices'][_0x181512][_0x526d('0x12')]===_0x526d('0x2')&&_0x3c657b[_0x810027]==='i'){_0x2f5a61=this['edges'][_0x181512][_0x733485][_0x526d('0x13')];logger[_0x526d('0xd')]('invalid',_0x3c657b[_0x810027],this[_0x526d('0x5')][_0x181512][_0x733485]['target']);}if(_0x3c657b[_0x810027]===_0x5acf20){return this[_0x526d('0xb')](this['edges'][_0x181512][_0x733485][_0x526d('0x13')],_0x1131bb);}}}else{return this[_0x526d('0xb')](this['edges'][_0x181512][_0x733485][_0x526d('0x13')],_0x1131bb);}}if(_0x3c657b[_0x526d('0x10')]){if(this[_0x526d('0x4')][_0x181512]['agicommand']===_0x526d('0x14')){if(_0x2f5a61){return this[_0x526d('0xb')](_0x2f5a61,_0x1131bb);}return logger[_0x526d('0xd')]('default\x20on\x20switch\x20not\x20found');}else if(_[_0x526d('0x15')](verticesWithRetry,this[_0x526d('0x4')][_0x181512]['agicommand'])){if(_0x5acf20==='-'){return logger[_0x526d('0xd')](_0x526d('0x16'));}if(_0x2f5a61&&_0x5acf20!=='t'){return this['traverseBFS'](_0x2f5a61,_0x1131bb);}return this[_0x526d('0xb')](_0x181512,_0x1131bb);}return logger['info'](_0x526d('0x17'));}};module[_0x526d('0x18')]=Graph;