Built motion from commit cf5ff673.|2.5.41
[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 _0x1c90=['exports','lodash','agi','menu','getsecretdigits','vertices','edges','numberOfEdges','prototype','push','size','traverseBFS','info','stop\x20traverse','length','no\x20edge/s\x20available','condition','split','agicommand','vswitch','target','default','invalid','default\x20on\x20switch\x20not\x20found'];(function(_0x1ed15d,_0x1c9c0f){var _0x1ac31f=function(_0x20e346){while(--_0x20e346){_0x1ed15d['push'](_0x1ed15d['shift']());}};_0x1ac31f(++_0x1c9c0f);}(_0x1c90,0xd9));var _0x01c9=function(_0x2937db,_0x3d770b){_0x2937db=_0x2937db-0x0;var _0x569e14=_0x1c90[_0x2937db];return _0x569e14;};'use strict';var _=require(_0x01c9('0x0'));var logger=require('../../../config/logger')(_0x01c9('0x1'));var verticesWithRetry=[_0x01c9('0x2'),'getdigits',_0x01c9('0x3')];var Graph=function(){this[_0x01c9('0x4')]={};this[_0x01c9('0x5')]={};this[_0x01c9('0x6')]=0x0;};Graph[_0x01c9('0x7')]['addVertex']=function(_0x49fd76){this[_0x01c9('0x4')][_0x49fd76['id']]=_0x49fd76;this['edges'][_0x49fd76['id']]=[];};Graph[_0x01c9('0x7')]['addEdge']=function(_0x4f8cc1,_0x29794a,_0x4dec00){this[_0x01c9('0x5')][_0x4f8cc1][_0x01c9('0x8')]({'target':_0x29794a,'condition':_0x4dec00});this['numberOfEdges']+=0x1;};Graph[_0x01c9('0x7')][_0x01c9('0x9')]=function(){return _[_0x01c9('0x9')](this['vertices']);};Graph['prototype']['relations']=function(){return this[_0x01c9('0x6')];};Graph[_0x01c9('0x7')]['getVertex']=function(_0x5ae597){return this['vertices'][_0x5ae597];};Graph[_0x01c9('0x7')][_0x01c9('0xa')]=function(_0x43616a,_0x1d1e85){if(!this[_0x01c9('0x4')][_0x43616a]){return logger['info']('no\x20vertex\x20found');}var _0x4e0eca=_0x1d1e85(this['vertices'][_0x43616a]);if(!_0x4e0eca){return logger[_0x01c9('0xb')](_0x01c9('0xc'));}if(this['edges'][_0x43616a][_0x01c9('0xd')]===0x0){return logger[_0x01c9('0xb')](_0x01c9('0xe'));}for(var _0x5193dd=0x0,_0x23636d=[],_0x197cb9=![];_0x5193dd<this[_0x01c9('0x5')][_0x43616a][_0x01c9('0xd')];_0x5193dd+=0x1){if(this[_0x01c9('0x5')][_0x43616a][_0x5193dd]['condition']){_0x23636d=this['edges'][_0x43616a][_0x5193dd][_0x01c9('0xf')][_0x01c9('0x10')](',');for(var _0x3fb854=0x0;_0x3fb854<_0x23636d[_0x01c9('0xd')];_0x3fb854+=0x1){if(this[_0x01c9('0x4')][_0x43616a][_0x01c9('0x11')]===_0x01c9('0x12')&&_0x23636d[_0x3fb854]==='-'){_0x197cb9=this[_0x01c9('0x5')][_0x43616a][_0x5193dd][_0x01c9('0x13')];logger[_0x01c9('0xb')](_0x01c9('0x14'),_0x23636d[_0x3fb854],this['edges'][_0x43616a][_0x5193dd][_0x01c9('0x13')]);}else if(this[_0x01c9('0x4')][_0x43616a][_0x01c9('0x11')]===_0x01c9('0x2')&&_0x23636d[_0x3fb854]==='i'){_0x197cb9=this['edges'][_0x43616a][_0x5193dd][_0x01c9('0x13')];logger[_0x01c9('0xb')](_0x01c9('0x15'),_0x23636d[_0x3fb854],this[_0x01c9('0x5')][_0x43616a][_0x5193dd][_0x01c9('0x13')]);}if(_0x23636d[_0x3fb854]===_0x4e0eca){return this[_0x01c9('0xa')](this[_0x01c9('0x5')][_0x43616a][_0x5193dd]['target'],_0x1d1e85);}}}else{return this[_0x01c9('0xa')](this[_0x01c9('0x5')][_0x43616a][_0x5193dd][_0x01c9('0x13')],_0x1d1e85);}}if(_0x23636d[_0x01c9('0xd')]){if(this[_0x01c9('0x4')][_0x43616a][_0x01c9('0x11')]===_0x01c9('0x12')){if(_0x197cb9){return this['traverseBFS'](_0x197cb9,_0x1d1e85);}return logger[_0x01c9('0xb')](_0x01c9('0x16'));}else if(_['includes'](verticesWithRetry,this[_0x01c9('0x4')][_0x43616a][_0x01c9('0x11')])){if(_0x4e0eca==='-'){return logger[_0x01c9('0xb')]('max\x20retry\x20reach');}if(_0x197cb9&&_0x4e0eca!=='t'){return this[_0x01c9('0xa')](_0x197cb9,_0x1d1e85);}return this[_0x01c9('0xa')](_0x43616a,_0x1d1e85);}return logger['info']('condition\x20not\x20found');}};module[_0x01c9('0x17')]=Graph;