Built motion from commit 5293bb2a.|2.6.30
[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 _0xd677=['menu','invalid','default\x20on\x20switch\x20not\x20found','includes','max\x20retry\x20reach','exports','lodash','../../../config/logger','getdigits','getsecretdigits','vertices','edges','prototype','addVertex','addEdge','push','numberOfEdges','size','traverseBFS','info','no\x20vertex\x20found','stop\x20traverse','length','no\x20edge/s\x20available','condition','split','agicommand','vswitch','target','default'];(function(_0x413feb,_0x10477f){var _0x40ee88=function(_0x32a3f6){while(--_0x32a3f6){_0x413feb['push'](_0x413feb['shift']());}};_0x40ee88(++_0x10477f);}(_0xd677,0x18c));var _0x7d67=function(_0x340f5f,_0x2cd7ab){_0x340f5f=_0x340f5f-0x0;var _0x2b1219=_0xd677[_0x340f5f];return _0x2b1219;};'use strict';var _=require(_0x7d67('0x0'));var logger=require(_0x7d67('0x1'))('agi');var verticesWithRetry=['menu',_0x7d67('0x2'),_0x7d67('0x3')];var Graph=function(){this[_0x7d67('0x4')]={};this[_0x7d67('0x5')]={};this['numberOfEdges']=0x0;};Graph[_0x7d67('0x6')][_0x7d67('0x7')]=function(_0x5494e1){this[_0x7d67('0x4')][_0x5494e1['id']]=_0x5494e1;this[_0x7d67('0x5')][_0x5494e1['id']]=[];};Graph[_0x7d67('0x6')][_0x7d67('0x8')]=function(_0x41461f,_0x6aed59,_0x144f3f){this[_0x7d67('0x5')][_0x41461f][_0x7d67('0x9')]({'target':_0x6aed59,'condition':_0x144f3f});this[_0x7d67('0xa')]+=0x1;};Graph[_0x7d67('0x6')][_0x7d67('0xb')]=function(){return _[_0x7d67('0xb')](this[_0x7d67('0x4')]);};Graph[_0x7d67('0x6')]['relations']=function(){return this[_0x7d67('0xa')];};Graph['prototype']['getVertex']=function(_0x2582ba){return this[_0x7d67('0x4')][_0x2582ba];};Graph[_0x7d67('0x6')][_0x7d67('0xc')]=function(_0x3a0994,_0x1e7db5){if(!this[_0x7d67('0x4')][_0x3a0994]){return logger[_0x7d67('0xd')](_0x7d67('0xe'));}var _0x18fec9=_0x1e7db5(this[_0x7d67('0x4')][_0x3a0994]);if(!_0x18fec9){return logger[_0x7d67('0xd')](_0x7d67('0xf'));}if(this[_0x7d67('0x5')][_0x3a0994][_0x7d67('0x10')]===0x0){return logger[_0x7d67('0xd')](_0x7d67('0x11'));}for(var _0x207a27=0x0,_0x487787=[],_0x452353=![];_0x207a27<this[_0x7d67('0x5')][_0x3a0994][_0x7d67('0x10')];_0x207a27+=0x1){if(this[_0x7d67('0x5')][_0x3a0994][_0x207a27][_0x7d67('0x12')]){_0x487787=this[_0x7d67('0x5')][_0x3a0994][_0x207a27][_0x7d67('0x12')][_0x7d67('0x13')](',');for(var _0xf49f47=0x0;_0xf49f47<_0x487787['length'];_0xf49f47+=0x1){if(this['vertices'][_0x3a0994][_0x7d67('0x14')]===_0x7d67('0x15')&&_0x487787[_0xf49f47]==='-'){_0x452353=this[_0x7d67('0x5')][_0x3a0994][_0x207a27][_0x7d67('0x16')];logger[_0x7d67('0xd')](_0x7d67('0x17'),_0x487787[_0xf49f47],this[_0x7d67('0x5')][_0x3a0994][_0x207a27][_0x7d67('0x16')]);}else if(this[_0x7d67('0x4')][_0x3a0994]['agicommand']===_0x7d67('0x18')&&_0x487787[_0xf49f47]==='i'){_0x452353=this['edges'][_0x3a0994][_0x207a27][_0x7d67('0x16')];logger[_0x7d67('0xd')](_0x7d67('0x19'),_0x487787[_0xf49f47],this[_0x7d67('0x5')][_0x3a0994][_0x207a27][_0x7d67('0x16')]);}if(_0x487787[_0xf49f47]===_0x18fec9){return this[_0x7d67('0xc')](this[_0x7d67('0x5')][_0x3a0994][_0x207a27][_0x7d67('0x16')],_0x1e7db5);}}}else{return this[_0x7d67('0xc')](this['edges'][_0x3a0994][_0x207a27][_0x7d67('0x16')],_0x1e7db5);}}if(_0x487787[_0x7d67('0x10')]){if(this[_0x7d67('0x4')][_0x3a0994][_0x7d67('0x14')]===_0x7d67('0x15')){if(_0x452353){return this[_0x7d67('0xc')](_0x452353,_0x1e7db5);}return logger[_0x7d67('0xd')](_0x7d67('0x1a'));}else if(_[_0x7d67('0x1b')](verticesWithRetry,this['vertices'][_0x3a0994]['agicommand'])){if(_0x18fec9==='-'){return logger[_0x7d67('0xd')](_0x7d67('0x1c'));}if(_0x452353&&_0x18fec9!=='t'){return this[_0x7d67('0xc')](_0x452353,_0x1e7db5);}return this[_0x7d67('0xc')](_0x3a0994,_0x1e7db5);}return logger['info']('condition\x20not\x20found');}};module[_0x7d67('0x1d')]=Graph;