8b06aeefc08877545b74465c8fb30e6203895537
[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 _0x10a3=['split','agicommand','vswitch','target','default\x20on\x20switch\x20not\x20found','includes','max\x20retry\x20reach','exports','lodash','../../../config/logger','agi','menu','getsecretdigits','vertices','edges','numberOfEdges','prototype','addVertex','push','size','getVertex','traverseBFS','no\x20vertex\x20found','stop\x20traverse','length','info','condition'];(function(_0x5cc8b9,_0x20e3c3){var _0x58892e=function(_0x87457a){while(--_0x87457a){_0x5cc8b9['push'](_0x5cc8b9['shift']());}};_0x58892e(++_0x20e3c3);}(_0x10a3,0x19d));var _0x310a=function(_0x4b369d,_0x265eb8){_0x4b369d=_0x4b369d-0x0;var _0x571a98=_0x10a3[_0x4b369d];return _0x571a98;};'use strict';var _=require(_0x310a('0x0'));var logger=require(_0x310a('0x1'))(_0x310a('0x2'));var verticesWithRetry=[_0x310a('0x3'),'getdigits',_0x310a('0x4')];var Graph=function(){this[_0x310a('0x5')]={};this[_0x310a('0x6')]={};this[_0x310a('0x7')]=0x0;};Graph[_0x310a('0x8')][_0x310a('0x9')]=function(_0x258e3c){this[_0x310a('0x5')][_0x258e3c['id']]=_0x258e3c;this[_0x310a('0x6')][_0x258e3c['id']]=[];};Graph['prototype']['addEdge']=function(_0x1144dc,_0x3a3397,_0x273c03){this[_0x310a('0x6')][_0x1144dc][_0x310a('0xa')]({'target':_0x3a3397,'condition':_0x273c03});this['numberOfEdges']+=0x1;};Graph[_0x310a('0x8')]['size']=function(){return _[_0x310a('0xb')](this[_0x310a('0x5')]);};Graph[_0x310a('0x8')]['relations']=function(){return this[_0x310a('0x7')];};Graph[_0x310a('0x8')][_0x310a('0xc')]=function(_0xe23755){return this[_0x310a('0x5')][_0xe23755];};Graph['prototype'][_0x310a('0xd')]=function(_0x4d2266,_0x13f44b){if(!this[_0x310a('0x5')][_0x4d2266]){return logger['info'](_0x310a('0xe'));}var _0x161f7d=_0x13f44b(this[_0x310a('0x5')][_0x4d2266]);if(!_0x161f7d){return logger['info'](_0x310a('0xf'));}if(this[_0x310a('0x6')][_0x4d2266][_0x310a('0x10')]===0x0){return logger[_0x310a('0x11')]('no\x20edge/s\x20available');}for(var _0x51ae05=0x0,_0x3b35ec=[],_0x40f393=![];_0x51ae05<this[_0x310a('0x6')][_0x4d2266]['length'];_0x51ae05+=0x1){if(this[_0x310a('0x6')][_0x4d2266][_0x51ae05]['condition']){_0x3b35ec=this['edges'][_0x4d2266][_0x51ae05][_0x310a('0x12')][_0x310a('0x13')](',');for(var _0x2c88b3=0x0;_0x2c88b3<_0x3b35ec[_0x310a('0x10')];_0x2c88b3+=0x1){if(this[_0x310a('0x5')][_0x4d2266][_0x310a('0x14')]===_0x310a('0x15')&&_0x3b35ec[_0x2c88b3]==='-'){_0x40f393=this[_0x310a('0x6')][_0x4d2266][_0x51ae05]['target'];logger[_0x310a('0x11')]('default',_0x3b35ec[_0x2c88b3],this[_0x310a('0x6')][_0x4d2266][_0x51ae05]['target']);}else if(this[_0x310a('0x5')][_0x4d2266][_0x310a('0x14')]===_0x310a('0x3')&&_0x3b35ec[_0x2c88b3]==='i'){_0x40f393=this['edges'][_0x4d2266][_0x51ae05][_0x310a('0x16')];logger[_0x310a('0x11')]('invalid',_0x3b35ec[_0x2c88b3],this['edges'][_0x4d2266][_0x51ae05][_0x310a('0x16')]);}if(_0x3b35ec[_0x2c88b3]===_0x161f7d){return this[_0x310a('0xd')](this['edges'][_0x4d2266][_0x51ae05]['target'],_0x13f44b);}}}else{return this[_0x310a('0xd')](this[_0x310a('0x6')][_0x4d2266][_0x51ae05][_0x310a('0x16')],_0x13f44b);}}if(_0x3b35ec[_0x310a('0x10')]){if(this[_0x310a('0x5')][_0x4d2266][_0x310a('0x14')]===_0x310a('0x15')){if(_0x40f393){return this[_0x310a('0xd')](_0x40f393,_0x13f44b);}return logger[_0x310a('0x11')](_0x310a('0x17'));}else if(_[_0x310a('0x18')](verticesWithRetry,this[_0x310a('0x5')][_0x4d2266][_0x310a('0x14')])){if(_0x161f7d==='-'){return logger[_0x310a('0x11')](_0x310a('0x19'));}if(_0x40f393&&_0x161f7d!=='t'){return this['traverseBFS'](_0x40f393,_0x13f44b);}return this[_0x310a('0xd')](_0x4d2266,_0x13f44b);}return logger[_0x310a('0x11')]('condition\x20not\x20found');}};module[_0x310a('0x1a')]=Graph;