Built motion from commit (unavailable).|2.5.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 _0x1339=['agi','menu','getdigits','getsecretdigits','vertices','edges','numberOfEdges','prototype','addEdge','push','size','relations','getVertex','traverseBFS','no\x20vertex\x20found','info','stop\x20traverse','no\x20edge/s\x20available','length','condition','agicommand','default','target','invalid','vswitch','default\x20on\x20switch\x20not\x20found','includes','max\x20retry\x20reach','exports'];(function(_0x5a1333,_0x5ac266){var _0x179855=function(_0x3ea9b7){while(--_0x3ea9b7){_0x5a1333['push'](_0x5a1333['shift']());}};_0x179855(++_0x5ac266);}(_0x1339,0x1ed));var _0x9133=function(_0xada3d6,_0x2cc5a2){_0xada3d6=_0xada3d6-0x0;var _0x3f7250=_0x1339[_0xada3d6];return _0x3f7250;};'use strict';var _=require('lodash');var logger=require('../../../config/logger')(_0x9133('0x0'));var verticesWithRetry=[_0x9133('0x1'),_0x9133('0x2'),_0x9133('0x3')];var Graph=function(){this[_0x9133('0x4')]={};this[_0x9133('0x5')]={};this[_0x9133('0x6')]=0x0;};Graph[_0x9133('0x7')]['addVertex']=function(_0x578643){this[_0x9133('0x4')][_0x578643['id']]=_0x578643;this[_0x9133('0x5')][_0x578643['id']]=[];};Graph['prototype'][_0x9133('0x8')]=function(_0x334dcd,_0x3059c4,_0x431a55){this[_0x9133('0x5')][_0x334dcd][_0x9133('0x9')]({'target':_0x3059c4,'condition':_0x431a55});this[_0x9133('0x6')]+=0x1;};Graph[_0x9133('0x7')][_0x9133('0xa')]=function(){return _[_0x9133('0xa')](this['vertices']);};Graph[_0x9133('0x7')][_0x9133('0xb')]=function(){return this[_0x9133('0x6')];};Graph[_0x9133('0x7')][_0x9133('0xc')]=function(_0x244ced){return this['vertices'][_0x244ced];};Graph[_0x9133('0x7')][_0x9133('0xd')]=function(_0x4bbfdc,_0x5283a3){if(!this[_0x9133('0x4')][_0x4bbfdc]){return logger['info'](_0x9133('0xe'));}var _0x439e1a=_0x5283a3(this[_0x9133('0x4')][_0x4bbfdc]);if(!_0x439e1a){return logger[_0x9133('0xf')](_0x9133('0x10'));}if(this[_0x9133('0x5')][_0x4bbfdc]['length']===0x0){return logger[_0x9133('0xf')](_0x9133('0x11'));}for(var _0x4f4f14=0x0,_0x28ffcb=[],_0xa46eb1=![];_0x4f4f14<this[_0x9133('0x5')][_0x4bbfdc][_0x9133('0x12')];_0x4f4f14+=0x1){if(this['edges'][_0x4bbfdc][_0x4f4f14][_0x9133('0x13')]){_0x28ffcb=this['edges'][_0x4bbfdc][_0x4f4f14][_0x9133('0x13')]['split'](',');for(var _0x115ee8=0x0;_0x115ee8<_0x28ffcb[_0x9133('0x12')];_0x115ee8+=0x1){if(this['vertices'][_0x4bbfdc][_0x9133('0x14')]==='vswitch'&&_0x28ffcb[_0x115ee8]==='-'){_0xa46eb1=this[_0x9133('0x5')][_0x4bbfdc][_0x4f4f14]['target'];logger['info'](_0x9133('0x15'),_0x28ffcb[_0x115ee8],this['edges'][_0x4bbfdc][_0x4f4f14][_0x9133('0x16')]);}else if(this['vertices'][_0x4bbfdc]['agicommand']==='menu'&&_0x28ffcb[_0x115ee8]==='i'){_0xa46eb1=this[_0x9133('0x5')][_0x4bbfdc][_0x4f4f14][_0x9133('0x16')];logger['info'](_0x9133('0x17'),_0x28ffcb[_0x115ee8],this[_0x9133('0x5')][_0x4bbfdc][_0x4f4f14][_0x9133('0x16')]);}if(_0x28ffcb[_0x115ee8]===_0x439e1a){return this[_0x9133('0xd')](this['edges'][_0x4bbfdc][_0x4f4f14][_0x9133('0x16')],_0x5283a3);}}}else{return this['traverseBFS'](this[_0x9133('0x5')][_0x4bbfdc][_0x4f4f14][_0x9133('0x16')],_0x5283a3);}}if(_0x28ffcb[_0x9133('0x12')]){if(this[_0x9133('0x4')][_0x4bbfdc][_0x9133('0x14')]===_0x9133('0x18')){if(_0xa46eb1){return this[_0x9133('0xd')](_0xa46eb1,_0x5283a3);}return logger[_0x9133('0xf')](_0x9133('0x19'));}else if(_[_0x9133('0x1a')](verticesWithRetry,this['vertices'][_0x4bbfdc]['agicommand'])){if(_0x439e1a==='-'){return logger[_0x9133('0xf')](_0x9133('0x1b'));}if(_0xa46eb1&&_0x439e1a!=='t'){return this[_0x9133('0xd')](_0xa46eb1,_0x5283a3);}return this[_0x9133('0xd')](_0x4bbfdc,_0x5283a3);}return logger['info']('condition\x20not\x20found');}};module[_0x9133('0x1c')]=Graph;