bec33a99df2c8a5ee9d3365bb7982f229ad7a060
[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 _0x574d=['lodash','../../../config/logger','agi','menu','getdigits','getsecretdigits','vertices','numberOfEdges','prototype','addVertex','edges','addEdge','size','relations','getVertex','traverseBFS','info','no\x20vertex\x20found','stop\x20traverse','length','no\x20edge/s\x20available','condition','split','agicommand','vswitch','target','default','invalid','includes','max\x20retry\x20reach','condition\x20not\x20found','exports'];(function(_0x36e257,_0x52ce9b){var _0x5ef935=function(_0x265b5b){while(--_0x265b5b){_0x36e257['push'](_0x36e257['shift']());}};_0x5ef935(++_0x52ce9b);}(_0x574d,0xc0));var _0xd574=function(_0x1b2ff7,_0x12a034){_0x1b2ff7=_0x1b2ff7-0x0;var _0x31656a=_0x574d[_0x1b2ff7];return _0x31656a;};'use strict';var _=require(_0xd574('0x0'));var logger=require(_0xd574('0x1'))(_0xd574('0x2'));var verticesWithRetry=[_0xd574('0x3'),_0xd574('0x4'),_0xd574('0x5')];var Graph=function(){this[_0xd574('0x6')]={};this['edges']={};this[_0xd574('0x7')]=0x0;};Graph[_0xd574('0x8')][_0xd574('0x9')]=function(_0x3e2e7d){this['vertices'][_0x3e2e7d['id']]=_0x3e2e7d;this[_0xd574('0xa')][_0x3e2e7d['id']]=[];};Graph[_0xd574('0x8')][_0xd574('0xb')]=function(_0x1558b3,_0x3a1e54,_0x20751c){this['edges'][_0x1558b3]['push']({'target':_0x3a1e54,'condition':_0x20751c});this[_0xd574('0x7')]+=0x1;};Graph[_0xd574('0x8')][_0xd574('0xc')]=function(){return _[_0xd574('0xc')](this[_0xd574('0x6')]);};Graph[_0xd574('0x8')][_0xd574('0xd')]=function(){return this['numberOfEdges'];};Graph[_0xd574('0x8')][_0xd574('0xe')]=function(_0x17b2f7){return this[_0xd574('0x6')][_0x17b2f7];};Graph[_0xd574('0x8')][_0xd574('0xf')]=function(_0x8dd760,_0x2a4dd4){if(!this[_0xd574('0x6')][_0x8dd760]){return logger[_0xd574('0x10')](_0xd574('0x11'));}var _0x2cc660=_0x2a4dd4(this['vertices'][_0x8dd760]);if(!_0x2cc660){return logger[_0xd574('0x10')](_0xd574('0x12'));}if(this[_0xd574('0xa')][_0x8dd760][_0xd574('0x13')]===0x0){return logger[_0xd574('0x10')](_0xd574('0x14'));}for(var _0x137917=0x0,_0x2fcdfe=[],_0x5c1db1=![];_0x137917<this['edges'][_0x8dd760][_0xd574('0x13')];_0x137917+=0x1){if(this[_0xd574('0xa')][_0x8dd760][_0x137917][_0xd574('0x15')]){_0x2fcdfe=this['edges'][_0x8dd760][_0x137917]['condition'][_0xd574('0x16')](',');for(var _0x1ba34c=0x0;_0x1ba34c<_0x2fcdfe[_0xd574('0x13')];_0x1ba34c+=0x1){if(this[_0xd574('0x6')][_0x8dd760][_0xd574('0x17')]===_0xd574('0x18')&&_0x2fcdfe[_0x1ba34c]==='-'){_0x5c1db1=this[_0xd574('0xa')][_0x8dd760][_0x137917][_0xd574('0x19')];logger[_0xd574('0x10')](_0xd574('0x1a'),_0x2fcdfe[_0x1ba34c],this[_0xd574('0xa')][_0x8dd760][_0x137917]['target']);}else if(this[_0xd574('0x6')][_0x8dd760][_0xd574('0x17')]==='menu'&&_0x2fcdfe[_0x1ba34c]==='i'){_0x5c1db1=this[_0xd574('0xa')][_0x8dd760][_0x137917]['target'];logger[_0xd574('0x10')](_0xd574('0x1b'),_0x2fcdfe[_0x1ba34c],this[_0xd574('0xa')][_0x8dd760][_0x137917][_0xd574('0x19')]);}if(_0x2fcdfe[_0x1ba34c]===_0x2cc660){return this[_0xd574('0xf')](this[_0xd574('0xa')][_0x8dd760][_0x137917][_0xd574('0x19')],_0x2a4dd4);}}}else{return this[_0xd574('0xf')](this[_0xd574('0xa')][_0x8dd760][_0x137917][_0xd574('0x19')],_0x2a4dd4);}}if(_0x2fcdfe[_0xd574('0x13')]){if(this[_0xd574('0x6')][_0x8dd760][_0xd574('0x17')]===_0xd574('0x18')){if(_0x5c1db1){return this['traverseBFS'](_0x5c1db1,_0x2a4dd4);}return logger[_0xd574('0x10')]('default\x20on\x20switch\x20not\x20found');}else if(_[_0xd574('0x1c')](verticesWithRetry,this['vertices'][_0x8dd760]['agicommand'])){if(_0x2cc660==='-'){return logger[_0xd574('0x10')](_0xd574('0x1d'));}if(_0x5c1db1&&_0x2cc660!=='t'){return this[_0xd574('0xf')](_0x5c1db1,_0x2a4dd4);}return this['traverseBFS'](_0x8dd760,_0x2a4dd4);}return logger[_0xd574('0x10')](_0xd574('0x1e'));}};module[_0xd574('0x1f')]=Graph;